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]