Changeset: b997340c8c2b for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/b997340c8c2b
Modified Files:
        sql/backends/monet5/generator/generator.c
        sql/backends/monet5/sql_upgrades.c
        
sql/test/emptydb-previous-upgrade-chain-hge/Tests/upgrade.stable.out.int128
        sql/test/emptydb-previous-upgrade-chain/Tests/upgrade.stable.out
        sql/test/emptydb-previous-upgrade-chain/Tests/upgrade.stable.out.int128
        sql/test/emptydb-previous-upgrade-hge/Tests/upgrade.stable.out.int128
        sql/test/emptydb-previous-upgrade/Tests/upgrade.stable.out
        sql/test/emptydb-previous-upgrade/Tests/upgrade.stable.out.int128
        sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
        sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out
        sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128
        sql/test/emptydb-upgrade-hge/Tests/upgrade.stable.out.int128
        sql/test/emptydb-upgrade/Tests/upgrade.stable.out
        sql/test/emptydb-upgrade/Tests/upgrade.stable.out.int128
        sql/test/emptydb/Tests/check.stable.out
        sql/test/emptydb/Tests/check.stable.out.32bit
        sql/test/emptydb/Tests/check.stable.out.int128
        
sql/test/testdb-previous-upgrade-chain-hge/Tests/upgrade.stable.out.int128
        sql/test/testdb-previous-upgrade-chain/Tests/upgrade.stable.out
        sql/test/testdb-previous-upgrade-chain/Tests/upgrade.stable.out.int128
        sql/test/testdb-previous-upgrade-hge/Tests/upgrade.stable.out.int128
        sql/test/testdb-previous-upgrade/Tests/upgrade.stable.out
        sql/test/testdb-previous-upgrade/Tests/upgrade.stable.out.int128
        sql/test/testdb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
        sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out
        sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.int128
        sql/test/testdb-upgrade-hge/Tests/upgrade.stable.out.int128
        sql/test/testdb-upgrade/Tests/upgrade.stable.out
        sql/test/testdb-upgrade/Tests/upgrade.stable.out.int128
Branch: default
Log Message:

Merge with Aug2024 branch.


diffs (truncated from 2421 to 300 lines):

diff --git a/common/utils/msabaoth.c b/common/utils/msabaoth.c
--- a/common/utils/msabaoth.c
+++ b/common/utils/msabaoth.c
@@ -721,9 +721,15 @@ msab_getSingleStatus(const char *pathbuf
        };
 
        /* store the database name */
-       snprintf(buf, sizeof(buf), "%s/%s", pathbuf, dbname);
+       int dbnamestart;
+#ifdef _MSC_VER
+       dbnamestart = snprintf(buf, sizeof(buf), "%s/", pathbuf);
+       snprintf(buf + dbnamestart, sizeof(buf) - dbnamestart, "%s", dbname);
+#else
+       snprintf(buf, sizeof(buf), "%s/%n%s", pathbuf, &dbnamestart, dbname);
+#endif
        sdb->path = strdup(buf);
-       sdb->dbname = sdb->path + strlen(sdb->path) - strlen(dbname);
+       sdb->dbname = sdb->path + dbnamestart;
 
 
        /* check the state of the server by looking at its gdk lock:
diff --git a/monetdb5/mal/mal.c b/monetdb5/mal/mal.c
--- a/monetdb5/mal/mal.c
+++ b/monetdb5/mal/mal.c
@@ -53,12 +53,6 @@ mal_version(void)
        return MONETDB5_VERSION;
 }
 
-static void
-MALprintinfo(void)
-{
-       MCprintinfo();
-}
-
 /*
  * Initialization of the MAL context
  */
@@ -100,8 +94,6 @@ mal_init(char *modules[], bool embedded,
                return -1;
        initNamespace();
 
-       GDKprintinforegister(MALprintinfo);
-
        err = malBootstrap(modules, embedded, initpasswd);
        if (err != MAL_SUCCEED) {
                mal_client_reset();
diff --git a/monetdb5/mal/mal_client.c b/monetdb5/mal/mal_client.c
--- a/monetdb5/mal/mal_client.c
+++ b/monetdb5/mal/mal_client.c
@@ -616,40 +616,6 @@ MCvalid(Client tc)
 }
 
 void
-MCprintinfo(void)
-{
-       int nrun = 0, nfinish = 0, nblock = 0;
-
-       MT_lock_set(&mal_contextLock);
-       for (Client c = mal_clients; c < mal_clients + MAL_MAXCLIENTS; c++) {
-               switch (c->mode) {
-               case RUNCLIENT:
-                       /* running */
-                       nrun++;
-                       if (c->idle)
-                               printf("client %d, user %s, using %"PRIu64" 
bytes of transient space, idle since %s", c->idx, c->username, (uint64_t) 
ATOMIC_GET(&c->qryctx.datasize), ctime(&c->idle));
-                       else
-                               printf("client %d, user %s, using %"PRIu64" 
bytes of transient space\n", c->idx, c->username, (uint64_t) 
ATOMIC_GET(&c->qryctx.datasize));
-                       break;
-               case FINISHCLIENT:
-                       /* finishing */
-                       nfinish++;
-                       break;
-               case BLOCKCLIENT:
-                       /* blocked */
-                       nblock++;
-                       break;
-               case FREECLIENT:
-                       break;
-               }
-       }
-       MT_lock_unset(&mal_contextLock);
-       printf("%d active clients, %d finishing clients, %d blocked clients\n",
-                  nrun, nfinish, nblock);
-}
-
-
-void
 MCsetClientInfo(Client c, const char *property, const char *value)
 {
        if (strlen(property) < 7)
diff --git a/monetdb5/mal/mal_private.h b/monetdb5/mal/mal_private.h
--- a/monetdb5/mal/mal_private.h
+++ b/monetdb5/mal/mal_private.h
@@ -81,9 +81,6 @@ void mal_runtime_reset(void)
 char *dupError(const char *err)
        __attribute__((__visibility__("hidden"), __returns_nonnull__));
 
-void MCprintinfo(void)
-       __attribute__((__visibility__("hidden")));
-
 void
 setPoly(mel_func *f, malType tpe)
        __attribute__((__visibility__("hidden")));
diff --git a/sql/ChangeLog.Aug2024 b/sql/ChangeLog.Aug2024
--- a/sql/ChangeLog.Aug2024
+++ b/sql/ChangeLog.Aug2024
@@ -1,6 +1,11 @@
 # ChangeLog file for sql
 # This file is updated with Maddlog
 
+* Thu Jul 11 2024 Martin van Dinther <[email protected]>
+- Added execution privilege on all sys.generate_series(first, limit)
+  and sys.generate_series(first, limit, stepsize) functions to public,
+  so all users can now call these table producing generator functions.
+
 * Fri Jun 14 2024 Joeri van Ruth <[email protected]>
 - Extend CREATE USER MAX_MEMORY and ALTER USER MAX_MEMORY to accept
   strings of the form '10MiB', '10G', etc.
diff --git a/sql/backends/monet5/UDF/pyapi3/pytypes3.c 
b/sql/backends/monet5/UDF/pyapi3/pytypes3.c
--- a/sql/backends/monet5/UDF/pyapi3/pytypes3.c
+++ b/sql/backends/monet5/UDF/pyapi3/pytypes3.c
@@ -243,8 +243,10 @@ bool PyType_IsNumpyMaskedArray(PyObject 
 {
        PyObject *type = PyObject_Type(object);
        PyObject *str = PyObject_Str(type);
-       bool ret = strcmp(PyUnicode_AsUTF8(str),
-                                         "<class 
'numpy.ma.core.MaskedArray'>") == 0;
+       bool ret = strcmp(PyUnicode_AsUTF8(str), /* numpy < 2.0 */
+                                         "<class 
'numpy.ma.core.MaskedArray'>") == 0 ||
+               strcmp(PyUnicode_AsUTF8(str), /* numpy >= 2.0 */
+                          "<class 'numpy.ma.MaskedArray'>") == 0;
        Py_DECREF(str);
        Py_DECREF(type);
        return ret;
diff --git a/sql/backends/monet5/generator/90_generator.sql 
b/sql/backends/monet5/generator/90_generator.sql
--- a/sql/backends/monet5/generator/90_generator.sql
+++ b/sql/backends/monet5/generator/90_generator.sql
@@ -13,59 +13,74 @@
 create function sys.generate_series(first tinyint, "limit" tinyint)
 returns table (value tinyint)
 external name generator.series;
+grant execute on function sys.generate_series(tinyint, tinyint) to public;
 
 create function sys.generate_series(first tinyint, "limit" tinyint, stepsize 
tinyint)
 returns table (value tinyint)
 external name generator.series;
+grant execute on function sys.generate_series(tinyint, tinyint, tinyint) to 
public;
 
 create function sys.generate_series(first smallint, "limit" smallint)
 returns table (value smallint)
 external name generator.series;
+grant execute on function sys.generate_series(smallint, smallint) to public;
 
 create function sys.generate_series(first smallint, "limit" smallint, stepsize 
smallint)
 returns table (value smallint)
 external name generator.series;
+grant execute on function sys.generate_series(smallint, smallint, smallint) to 
public;
 
 create function sys.generate_series(first int, "limit" int)
 returns table (value int)
 external name generator.series;
+grant execute on function sys.generate_series(int, int) to public;
 
 create function sys.generate_series(first int, "limit" int, stepsize int)
 returns table (value int)
 external name generator.series;
+grant execute on function sys.generate_series(int, int, int) to public;
 
 create function sys.generate_series(first bigint, "limit" bigint)
 returns table (value bigint)
 external name generator.series;
+grant execute on function sys.generate_series(bigint, bigint) to public;
 
 create function sys.generate_series(first bigint, "limit" bigint, stepsize 
bigint)
 returns table (value bigint)
 external name generator.series;
+grant execute on function sys.generate_series(bigint, bigint, bigint) to 
public;
 
 create function sys.generate_series(first real, "limit" real, stepsize real)
 returns table (value real)
 external name generator.series;
+grant execute on function sys.generate_series(real, real, real) to public;
 
 create function sys.generate_series(first double, "limit" double, stepsize 
double)
 returns table (value double)
 external name generator.series;
+grant execute on function sys.generate_series(double, double, double) to 
public;
 
 create function sys.generate_series(first decimal(10,2), "limit" 
decimal(10,2), stepsize decimal(10,2))
 returns table (value decimal(10,2))
 external name generator.series;
+grant execute on function sys.generate_series(decimal(10,2), decimal(10,2), 
decimal(10,2)) to public;
 
 create function sys.generate_series(first date, "limit" date, stepsize 
interval month)
 returns table (value date)
 external name generator.series;
+grant execute on function sys.generate_series(date, date, interval month) to 
public;
 
 create function sys.generate_series(first date, "limit" date, stepsize 
interval day)
 returns table (value date)
 external name generator.series;
+grant execute on function sys.generate_series(date, date, interval day) to 
public;
 
 create function sys.generate_series(first timestamp, "limit" timestamp, 
stepsize interval second)
 returns table (value timestamp)
 external name generator.series;
+grant execute on function sys.generate_series(timestamp, timestamp, interval 
second) to public;
 
 create function sys.generate_series(first timestamp, "limit" timestamp, 
stepsize interval day)
 returns table (value timestamp)
 external name generator.series;
+grant execute on function sys.generate_series(timestamp, timestamp, interval 
day) to public;
diff --git a/sql/backends/monet5/generator/90_generator_hge.sql 
b/sql/backends/monet5/generator/90_generator_hge.sql
--- a/sql/backends/monet5/generator/90_generator_hge.sql
+++ b/sql/backends/monet5/generator/90_generator_hge.sql
@@ -13,7 +13,9 @@
 create function sys.generate_series(first hugeint, "limit" hugeint)
 returns table (value hugeint)
 external name generator.series;
+grant execute on function sys.generate_series(hugeint, hugeint) to public;
 
 create function sys.generate_series(first hugeint, "limit" hugeint, stepsize 
hugeint)
 returns table (value hugeint)
 external name generator.series;
+grant execute on function sys.generate_series(hugeint, hugeint, hugeint) to 
public;
diff --git a/sql/backends/monet5/generator/Tests/All 
b/sql/backends/monet5/generator/Tests/All
--- a/sql/backends/monet5/generator/Tests/All
+++ b/sql/backends/monet5/generator/Tests/All
@@ -14,3 +14,6 @@ joins02
 thetaselect00
 
 crash.Bug-3609
+
+execute-privilege-for-public
+HAVE_HGE?execute-privilege-for-public-hge
diff --git 
a/sql/backends/monet5/generator/Tests/execute-privilege-for-public-hge.test 
b/sql/backends/monet5/generator/Tests/execute-privilege-for-public-hge.test
new file mode 100644
--- /dev/null
+++ b/sql/backends/monet5/generator/Tests/execute-privilege-for-public-hge.test
@@ -0,0 +1,37 @@
+@connection(id=c1, username=monetdb, password=monetdb)
+statement ok
+create user test with password 'test' name 'test'
+
+@connection(id=c2, username=test, password=test)
+query I
+SELECT * from generate_series(cast(1 as hugeint),3)
+----
+1
+2
+
+@connection(id=c2, username=test, password=test)
+query I
+SELECT * from generate_series(1,cast(4 as hugeint),2)
+----
+1
+3
+
+@connection(id=c2, username=test, password=test)
+query I
+SELECT * from generate_series(5,1,cast(-2 as hugeint))
+----
+5
+3
+
+-- cleanup
+@connection(id=c1, username=monetdb, password=monetdb)
+statement ok
+alter user test set schema sys
+
+@connection(id=c1, username=monetdb, password=monetdb)
+statement ok
+drop schema test
+
+@connection(id=c1, username=monetdb, password=monetdb)
+statement ok
+drop user test
diff --git 
a/sql/backends/monet5/generator/Tests/execute-privilege-for-public.test 
b/sql/backends/monet5/generator/Tests/execute-privilege-for-public.test
new file mode 100644
--- /dev/null
+++ b/sql/backends/monet5/generator/Tests/execute-privilege-for-public.test
@@ -0,0 +1,214 @@
+@connection(id=c1, username=monetdb, password=monetdb)
+statement ok
+create user test with password 'test' name 'test'
+
+@connection(id=c2, username=test, password=test)
+query I
+SELECT * from generate_series(1,3)
+----
+1
+2
+
+@connection(id=c2, username=test, password=test)
+query I
+SELECT * from generate_series(1,4,2)
+----
+1
+3
+
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to