MonetDB: default - New function nextafter.

2024-07-15 Thread Sjoerd Mullender via checkin-list
Changeset: a4999116e45a for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/a4999116e45a
Modified Files:
sql/test/emptydb/Tests/check.stable.out
Branch: default
Log Message:

New function nextafter.


diffs (12 lines):

diff --git a/sql/test/emptydb/Tests/check.stable.out 
b/sql/test/emptydb/Tests/check.stable.out
--- a/sql/test/emptydb/Tests/check.stable.out
+++ b/sql/test/emptydb/Tests/check.stable.out
@@ -2178,6 +2178,8 @@ select 'null in fkeys.delete_action', de
 [ "sys.functions", "sys",  "newurl",   "SYSTEM",   "create 
function newurl(protocol string, hostname string, \"port\" int, file string) 
returns url external name url.\"new\";",   "url",  "MAL",  "Scalar function",   
   false,  false,  false,  true,   NULL,   "result",   "url",  0,  0,   
   "out",  "protocol", "varchar",  0,  0,  "in",   "hostname",  
   "varchar",  0,  0,  "in",   "port", "int",  31, 0,  
"in",   "file", "varchar",  0,  0,  "in",   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL]
 [ "sys.functions", "sys",  "newurl",   "SYSTEM",   "create 
function newurl(protocol string, hostname string, file string) returns url 
external name url.\"new\";", "url",  "MAL",  "Scalar function",  false,  
false,  false,  true,   NULL,   "result",   "url",  0,  0,  "out",  
"protocol", "varchar",  0,  0,  "in",   "hostname", 
"varchar",  0,  0,  "in",   "file", "varchar",  0,  0,  
"in",   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL]
 [ "sys.functions", "sys",  "next_value_for",   "SYSTEM",   
"next_value",   "sql",  "Internal C",   "Scalar function",  true,   false,  
false,  true,   NULL,   "res_0","bigint",   63, 0,  "out",  
"arg_1","varchar",  0,  0,  "in",   "arg_2",
"varchar",  0,  0,  "in",   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL
]
+[ "sys.functions", "sys",  "nextafter","SYSTEM",   "nextafter",
"mmath","Internal C",   "Scalar function",  false,  false,  false,  
false,  NULL,   "res_0","double",   53, 0,  "out",  
"arg_1","double",   53, 0,  "in",   "arg_2",
"double",   53, 0,  "in",   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL
]
+[ "sys.functions", "sys",  "nextafter","SYSTEM",   "nextafter",
"mmath","Internal C",   "Scalar function",  false,  false,  false,  
false,  NULL,   "res_0","real", 24, 0,  "out",  "arg_1",
"real", 24, 0,  "in",   "arg_2","real", 24, 0,  "in",   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL

MonetDB: Aug2024 - Fix thinko: cleanup function if it exists, no...

2024-07-15 Thread Sjoerd Mullender via checkin-list
Changeset: cf1c8e7104b1 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/cf1c8e7104b1
Modified Files:
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.int128
sql/test/emptydb-previous-upgrade-hge/Tests/upgrade.stable.out.int128
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.int128
sql/test/emptydb-upgrade-hge/Tests/upgrade.stable.out.int128
sql/test/emptydb-upgrade/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.int128
sql/test/testdb-upgrade-hge/Tests/upgrade.stable.out.int128
sql/test/testdb-upgrade/Tests/upgrade.stable.out.int128
Branch: Aug2024
Log Message:

Fix thinko: cleanup function if it exists, not if it doesn't.


diffs (truncated from 301 to 300 lines):

diff --git a/sql/backends/monet5/sql_upgrades.c 
b/sql/backends/monet5/sql_upgrades.c
--- a/sql/backends/monet5/sql_upgrades.c
+++ b/sql/backends/monet5/sql_upgrades.c
@@ -3293,9 +3293,10 @@ sql_update_jan2022(Client c, mvc *sql)
printf("Running database upgrade 
commands:\n%s\n", query);
fflush(stdout);
err = SQLstatementIntern(c, query, "update", 
true, false, NULL);
+   } else {
+   sql->session->status = 0; /* if the function 
was not found clean the error */
+   sql->errstr[0] = '\0';
}
-   sql->session->status = 0; /* if the function was not 
found clean the error */
-   sql->errstr[0] = '\0';
}
sa_destroy(sql->sa);
if (err)
@@ -5575,9 +5576,10 @@ sql_update_jun2023(Client c, mvc *sql, s
printf("Running database upgrade commands:\n%s\n", query);
fflush(stdout);
err = SQLstatementIntern(c, query, "update", true, false, NULL);
+   } else {
+   sql->session->status = 0; /* if the function was not found 
clean the error */
+   sql->errstr[0] = '\0';
}
-   sql->session->status = 0; /* if the function was not found clean the 
error */
-   sql->errstr[0] = '\0';
 
if (!sql_bind_func(sql, "sys", "jarowinkler", &t2, &t2, F_FUNC, true, 
true)) {
sql->session->status = 0; /* if the function was not found 
clean the error */
@@ -5828,9 +5830,10 @@ sql_update_dec2023_geom(Client c, mvc *s
if (sql_bind_func(sql, s->base.name, "shpattach", &tp, NULL, F_PROC, 
true, true)) {
if ((err = sql_drop_shp(c)) != NULL)
return err;
+   } else {
+   sql->session->status = 0; /* if the shpattach function was not 
found clean the error */
+   sql->errstr[0] = '\0';
}
-   sql->session->status = 0; /* if the shpattach function was not found 
clean the error */
-   sql->errstr[0] = '\0';
 #ifdef HAVE_GEOM
if (backend_has_module(&(int){0}, "geom")) {
 #ifdef HAVE_SHP
@@ -7246,10 +7249,8 @@ sql_update_aug2024(Client c, mvc *sql, s
}
if (err == MAL_SUCCEED) {
sql_subtype tp;
-   sql_find_subtype(&tp, "clob", 0, 0);
-   if (!sql_bind_func(sql, s->base.name, 
"gzcompress", &tp, &tp, F_PROC, true, true)) {
-   sql->session->status = 0;
-   sql->errstr[0] = '\0';
+   sql_find_subtype(&tp, "varchar", 0, 0);
+   if (sql_bind_func(sql, s->base.name, 
"gzcompress", &tp, &tp, F_PROC, true, true)) {
const char query[] =
"drop procedure if exists 
sys.gzcompress(string, string);\n"
"drop procedure if exists 
sys.gzdecompress(string, string);\n"
@@ -7258,14 +7259,15 @@ sql_update_aug2024(Client c, mvc *sql, s
printf("Running database upgrade 
commands:\n%s\n", query);
fflush(stdout);
err = SQLstatementIntern(c, query, 
"update", true, false, NULL);
+   } else {
+   sql->session->status = 0;
+   sql->errstr[0] = '\0';
}
}
if 

MonetDB: Dec2023 - Indicate different SIGUSR1 output sections.

2024-07-15 Thread Sjoerd Mullender via checkin-list
Changeset: 11bebf588226 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/11bebf588226
Modified Files:
gdk/gdk_bbp.c
gdk/gdk_system.c
sql/backends/monet5/sql_scenario.c
sql/storage/store.c
Branch: Dec2023
Log Message:

Indicate different SIGUSR1 output sections.


diffs (53 lines):

diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c
--- a/gdk/gdk_bbp.c
+++ b/gdk/gdk_bbp.c
@@ -4987,6 +4987,7 @@ BBPprintinfo(void)
}
uint32_t nfree = BBP_nfree;
BBPtmunlock();
+   printf("BATs:\n");
if (bats[1][1][1][1][1].nr > 0)
printf("fix, dirty, persistent, loaded, hot: %d bats, %zu 
virtual, %zu malloc\n", bats[1][1][1][1][1].nr, bats[1][1][1][1][1].vmsz, 
bats[1][1][1][1][1].sz);
if (bats[1][1][1][1][0].nr > 0)
diff --git a/gdk/gdk_system.c b/gdk/gdk_system.c
--- a/gdk/gdk_system.c
+++ b/gdk/gdk_system.c
@@ -145,6 +145,7 @@ GDKlockstatistics(int what)
MT_Lock *l;
int n = 0;
 
+   printf("Locks:\n");
if (ATOMIC_TAS(&GDKlocklistlock) != 0) {
printf("GDKlocklistlock is set, so cannot access lock list\n");
return;
@@ -285,6 +286,8 @@ dump_threads(void)
 {
char buf[1024];
thread_lock();
+   if (!GDK_TRACER_TEST(M_DEBUG, THRD))
+   printf("Threads:\n");
for (struct mtthread *t = mtthreads; t; t = t->next) {
MT_Lock *lk = t->lockwait;
MT_Sema *sm = t->semawait;
diff --git a/sql/backends/monet5/sql_scenario.c 
b/sql/backends/monet5/sql_scenario.c
--- a/sql/backends/monet5/sql_scenario.c
+++ b/sql/backends/monet5/sql_scenario.c
@@ -100,6 +100,7 @@ CLIENTprintinfo(void)
struct tm tm;
 
MT_lock_set(&mal_contextLock);
+   printf("Clients:\n");
for (Client c = mal_clients; c < mal_clients + MAL_MAXCLIENTS; c++) {
switch (c->mode) {
case RUNCLIENT:
diff --git a/sql/storage/store.c b/sql/storage/store.c
--- a/sql/storage/store.c
+++ b/sql/storage/store.c
@@ -7409,6 +7409,7 @@ void
 store_printinfo(sqlstore *store)
 {
MT_lock_set(&store->commit);
+   printf("WAL:\n");
printf("SQL store oldest pending "ULLFMT"\n", store->oldest_pending);
log_printinfo(store->logger);
MT_lock_unset(&store->commit);
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: Aug2024 - Merge with Dec2023 branch.

2024-07-15 Thread Sjoerd Mullender via checkin-list
Changeset: cd6e8588f88c for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/cd6e8588f88c
Modified Files:
gdk/gdk_bbp.c
gdk/gdk_system.c
sql/backends/monet5/sql_scenario.c
sql/storage/store.c
Branch: Aug2024
Log Message:

Merge with Dec2023 branch.


diffs (75 lines):

diff --git a/clients/Tests/All b/clients/Tests/All
--- a/clients/Tests/All
+++ b/clients/Tests/All
@@ -1,6 +1,6 @@
 exports
-HAVE_HGE&HAVE_FITS&HAVE_GEOM&HAVE_LIBR&HAVE_LIBPY3&HAVE_NETCDF&HAVE_SHP&NOT_WIN32?MAL-signatures-hge
-!HAVE_HGE&HAVE_FITS&HAVE_GEOM&HAVE_LIBR&HAVE_LIBPY3&HAVE_NETCDF&HAVE_SHP&NOT_WIN32?MAL-signatures
+HAVE_HGE&HAVE_FITS&HAVE_GEOM&HAVE_LIBR&HAVE_LIBPY3&HAVE_NETCDF&HAVE_SHP&HAVE_CUDF?MAL-signatures-hge
+!HAVE_HGE&HAVE_FITS&HAVE_GEOM&HAVE_LIBR&HAVE_LIBPY3&HAVE_NETCDF&HAVE_SHP&HAVE_CUDF?MAL-signatures
 NOT_WIN32?melcheck
 mclient-uri
 testcondvar
diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c
--- a/gdk/gdk_bbp.c
+++ b/gdk/gdk_bbp.c
@@ -4912,6 +4912,7 @@ BBPprintinfo(void)
}
uint32_t nfree = BBP_nfree;
BBPtmunlock();
+   printf("BATs:\n");
if (bats[1][1][1][1][1].nr > 0)
printf("fix, dirty, persistent, loaded, hot: %d bats, %zu 
virtual, %zu malloc\n", bats[1][1][1][1][1].nr, bats[1][1][1][1][1].vmsz, 
bats[1][1][1][1][1].sz);
if (bats[1][1][1][1][0].nr > 0)
diff --git a/gdk/gdk_system.c b/gdk/gdk_system.c
--- a/gdk/gdk_system.c
+++ b/gdk/gdk_system.c
@@ -145,6 +145,7 @@ GDKlockstatistics(int what)
MT_Lock *l;
int n = 0;
 
+   printf("Locks:\n");
if (ATOMIC_TAS(&GDKlocklistlock) != 0) {
printf("GDKlocklistlock is set, so cannot access lock list\n");
return;
@@ -285,6 +286,8 @@ dump_threads(void)
 {
char buf[1024];
thread_lock();
+   if (!GDK_TRACER_TEST(M_DEBUG, THRD))
+   printf("Threads:\n");
for (struct mtthread *t = mtthreads; t; t = t->next) {
MT_Lock *lk = t->lockwait;
MT_Sema *sm = t->semawait;
diff --git a/sql/backends/monet5/sql_scenario.c 
b/sql/backends/monet5/sql_scenario.c
--- a/sql/backends/monet5/sql_scenario.c
+++ b/sql/backends/monet5/sql_scenario.c
@@ -100,6 +100,7 @@ CLIENTprintinfo(void)
struct tm tm;
 
MT_lock_set(&mal_contextLock);
+   printf("Clients:\n");
for (Client c = mal_clients; c < mal_clients + MAL_MAXCLIENTS; c++) {
switch (c->mode) {
case RUNCLIENT:
@@ -112,6 +113,9 @@ CLIENTprintinfo(void)
if (c->idle) {
localtime_r(&c->idle, &tm);
strftime(tmbuf, sizeof(tmbuf), ", idle since %F 
%H:%M:%S%z", &tm);
+   } else if (c->lastcmd) {
+   localtime_r(&c->lastcmd, &tm);
+   strftime(tmbuf, sizeof(tmbuf), ", busy since %F 
%H:%M:%S%z", &tm);
} else
tmbuf[0] = 0;
if (c->sqlcontext && ((backend *) c->sqlcontext)->mvc 
&& ((backend *) c->sqlcontext)->mvc->session && ((backend *) 
c->sqlcontext)->mvc->session->tr && ((backend *) 
c->sqlcontext)->mvc->session->tr->active)
diff --git a/sql/storage/store.c b/sql/storage/store.c
--- a/sql/storage/store.c
+++ b/sql/storage/store.c
@@ -7479,6 +7479,7 @@ void
 store_printinfo(sqlstore *store)
 {
MT_lock_set(&store->commit);
+   printf("WAL:\n");
printf("SQL store oldest pending "ULLFMT"\n", store->oldest_pending);
log_printinfo(store->logger);
MT_lock_unset(&store->commit);
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: default - Merge with Aug2024 branch.

2024-07-15 Thread Sjoerd Mullender via checkin-list
Changeset: 0f3228d505e4 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/0f3228d505e4
Modified Files:
sql/backends/monet5/sql_upgrades.c
sql/storage/store.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/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-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 538 to 300 lines):

diff --git a/clients/Tests/All b/clients/Tests/All
--- a/clients/Tests/All
+++ b/clients/Tests/All
@@ -1,6 +1,6 @@
 exports
-HAVE_HGE&HAVE_FITS&HAVE_GEOM&HAVE_LIBR&HAVE_LIBPY3&HAVE_NETCDF&HAVE_SHP&NOT_WIN32?MAL-signatures-hge
-!HAVE_HGE&HAVE_FITS&HAVE_GEOM&HAVE_LIBR&HAVE_LIBPY3&HAVE_NETCDF&HAVE_SHP&NOT_WIN32?MAL-signatures
+HAVE_HGE&HAVE_FITS&HAVE_GEOM&HAVE_LIBR&HAVE_LIBPY3&HAVE_NETCDF&HAVE_SHP&HAVE_CUDF?MAL-signatures-hge
+!HAVE_HGE&HAVE_FITS&HAVE_GEOM&HAVE_LIBR&HAVE_LIBPY3&HAVE_NETCDF&HAVE_SHP&HAVE_CUDF?MAL-signatures
 NOT_WIN32?melcheck
 mclient-uri
 testcondvar
diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c
--- a/gdk/gdk_bbp.c
+++ b/gdk/gdk_bbp.c
@@ -4912,6 +4912,7 @@ BBPprintinfo(void)
}
uint32_t nfree = BBP_nfree;
BBPtmunlock();
+   printf("BATs:\n");
if (bats[1][1][1][1][1].nr > 0)
printf("fix, dirty, persistent, loaded, hot: %d bats, %zu 
virtual, %zu malloc\n", bats[1][1][1][1][1].nr, bats[1][1][1][1][1].vmsz, 
bats[1][1][1][1][1].sz);
if (bats[1][1][1][1][0].nr > 0)
diff --git a/gdk/gdk_system.c b/gdk/gdk_system.c
--- a/gdk/gdk_system.c
+++ b/gdk/gdk_system.c
@@ -145,6 +145,7 @@ GDKlockstatistics(int what)
MT_Lock *l;
int n = 0;
 
+   printf("Locks:\n");
if (ATOMIC_TAS(&GDKlocklistlock) != 0) {
printf("GDKlocklistlock is set, so cannot access lock list\n");
return;
@@ -285,6 +286,8 @@ dump_threads(void)
 {
char buf[1024];
thread_lock();
+   if (!GDK_TRACER_TEST(M_DEBUG, THRD))
+   printf("Threads:\n");
for (struct mtthread *t = mtthreads; t; t = t->next) {
MT_Lock *lk = t->lockwait;
MT_Sema *sm = t->semawait;
diff --git a/sql/backends/monet5/sql_scenario.c 
b/sql/backends/monet5/sql_scenario.c
--- a/sql/backends/monet5/sql_scenario.c
+++ b/sql/backends/monet5/sql_scenario.c
@@ -100,6 +100,7 @@ CLIENTprintinfo(void)
struct tm tm;
 
MT_lock_set(&mal_contextLock);
+   printf("Clients:\n");
for (Client c = mal_clients; c < mal_clients + MAL_MAXCLIENTS; c++) {
switch (c->mode) {
case RUNCLIENT:
@@ -112,6 +113,9 @@ CLIENTprintinfo(void)
if (c->idle) {
localtime_r(&c->idle, &tm);
strftime(tmbuf, sizeof(tmbuf), ", idle since %F 
%H:%M:%S%z", &tm);
+   } else if (c->lastcmd) {
+   localtime_r(&c->lastcmd, &tm);
+   strftime(tmbuf, sizeof(tmbuf), ", busy since %F 
%H:%M:%S%z", &tm);
} else
tmbuf[0] = 0;
if (c->sqlcontext && ((backend *) c->sqlcontext)->mvc 
&& ((backend *) c->sqlcontext)->mvc->session && ((backend *) 
c->sqlcontext)->mvc->session->tr && ((backend *) 
c->sqlcontext)->mvc->session->tr->active)
diff --git a/sql/backends/monet5/sql_upgrades.c 
b/sql/backends/monet5/sql_upgrades.c
--- a/sql/backends/monet5/sql_upgrades.c
+++ b/sql/backends/monet5/sql_upgrades.c
@@ -3293,9 +3293,10 @@ sql_update_jan2022(Client c, mvc *sql)
printf("Running database upgrade 
commands:\n%s\n", query);
fflush(stdout);
err = SQLstatementIntern(c, query, "update", 
true, false, NULL);
+   } else {
+

MonetDB: cmp-or-patterns - Uselect might be needed even when we ...

2024-07-15 Thread stefanos mavros via checkin-list
Changeset: 3cc9257301c7 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/3cc9257301c7
Modified Files:
sql/backends/monet5/rel_bin.c
Branch: cmp-or-patterns
Log Message:

Uselect might be needed even when we don't have a cand list


diffs (12 lines):

diff --git a/sql/backends/monet5/rel_bin.c b/sql/backends/monet5/rel_bin.c
--- a/sql/backends/monet5/rel_bin.c
+++ b/sql/backends/monet5/rel_bin.c
@@ -520,7 +520,7 @@ handle_in_tuple_exps(backend *be, sql_ex
else
s = cursel;
}
-   if (sel && !(depth || !reduce))
+   if (!depth && reduce)
s = stmt_uselect(be,
s->nrcols == 0?stmt_const(be, 
bin_find_smallest_column(be, left), s): s,
stmt_bool(be, 1), cmp_equal, sel, 0, 0);
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: cmp-or-patterns - Merges default

2024-07-15 Thread stefanos mavros via checkin-list
Changeset: e04dfb7d47b5 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/e04dfb7d47b5
Branch: cmp-or-patterns
Log Message:

Merges default


diffs (truncated from 3547 to 300 lines):

diff --git a/.hgtags b/.hgtags
--- a/.hgtags
+++ b/.hgtags
@@ -829,3 +829,4 @@ 9a694c41042503a22d6c92aeab5bc4ca1912b62e
 9a694c41042503a22d6c92aeab5bc4ca1912b62e Dec2023_SP3_release
 e1e9e22bf3d734dc50b56151c657a57c18f56561 Aug2024_root
 cde7d8f7c99540a8c95856df052a9f123b0c1643 Dec2023_11
+cde7d8f7c99540a8c95856df052a9f123b0c1643 Dec2023_SP4_release
diff --git a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -182,6 +182,11 @@ install(FILES
   DESTINATION ${EXPORT_TARGET_PATH}
   COMPONENT monetdbdev)
 
+install(FILES
+  ${CMAKE_CURRENT_BINARY_DIR}/MonetDBConfigVersion.cmake
+  DESTINATION ${EXPORT_TARGET_PATH}
+  COMPONENT monetdbdev)
+
 include(monetdb-packages)
 
 include(CTest)
diff --git a/clients/Tests/All b/clients/Tests/All
--- a/clients/Tests/All
+++ b/clients/Tests/All
@@ -1,6 +1,6 @@
 exports
-HAVE_HGE&HAVE_FITS&HAVE_GEOM&HAVE_LIBR&HAVE_LIBPY3&HAVE_NETCDF&HAVE_SHP&NOT_WIN32?MAL-signatures-hge
-!HAVE_HGE&HAVE_FITS&HAVE_GEOM&HAVE_LIBR&HAVE_LIBPY3&HAVE_NETCDF&HAVE_SHP&NOT_WIN32?MAL-signatures
+HAVE_HGE&HAVE_FITS&HAVE_GEOM&HAVE_LIBR&HAVE_LIBPY3&HAVE_NETCDF&HAVE_SHP&HAVE_CUDF?MAL-signatures-hge
+!HAVE_HGE&HAVE_FITS&HAVE_GEOM&HAVE_LIBR&HAVE_LIBPY3&HAVE_NETCDF&HAVE_SHP&HAVE_CUDF?MAL-signatures
 NOT_WIN32?melcheck
 mclient-uri
 testcondvar
diff --git a/clients/Tests/MAL-signatures-hge.test 
b/clients/Tests/MAL-signatures-hge.test
--- a/clients/Tests/MAL-signatures-hge.test
+++ b/clients/Tests/MAL-signatures-hge.test
@@ -47519,6 +47519,16 @@ command mmath.log2arg(X_0:flt, X_1:flt):
 MATHbinary_LOGflt;
 The log(x) function returns the logarithm of x in the given base.
 mmath
+nextafter
+command mmath.nextafter(X_0:dbl, X_1:dbl):dbl
+MATHbinary_NEXTAFTERdbl;
+The returns the next representable floating-point value of x in the direction 
of y.
+mmath
+nextafter
+command mmath.nextafter(X_0:flt, X_1:flt):flt
+MATHbinary_NEXTAFTERflt;
+The returns the next representable floating-point value of x in the direction 
of y.
+mmath
 pi
 command mmath.pi():dbl
 MATHpi;
diff --git a/clients/Tests/MAL-signatures.test 
b/clients/Tests/MAL-signatures.test
--- a/clients/Tests/MAL-signatures.test
+++ b/clients/Tests/MAL-signatures.test
@@ -35989,6 +35989,16 @@ command mmath.log2arg(X_0:flt, X_1:flt):
 MATHbinary_LOGflt;
 The log(x) function returns the logarithm of x in the given base.
 mmath
+nextafter
+command mmath.nextafter(X_0:dbl, X_1:dbl):dbl
+MATHbinary_NEXTAFTERdbl;
+The returns the next representable floating-point value of x in the direction 
of y.
+mmath
+nextafter
+command mmath.nextafter(X_0:flt, X_1:flt):flt
+MATHbinary_NEXTAFTERflt;
+The returns the next representable floating-point value of x in the direction 
of y.
+mmath
 pi
 command mmath.pi():dbl
 MATHpi;
diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out
--- a/clients/Tests/exports.stable.out
+++ b/clients/Tests/exports.stable.out
@@ -790,7 +790,6 @@ str AUTHunlockVault(const char *password
 str AUTHverifyPassword(const char *passwd);
 str BKCmirror(bat *ret, const bat *bid);
 str BKCnewBAT(bat *res, const int *tt, const BUN *cap, role_t role);
-str CLTsessions(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
 str CLTshutdown(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
 str COPYrejects(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
 str COPYrejects_clear(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
@@ -1022,6 +1021,7 @@ int getOidConstant(MalBlkPtr mb, oid val
 int getPC(MalBlkPtr mb, InstrPtr p);
 str getPipeCatalog(bat *nme, bat *def, bat *stat);
 const char *getRef;
+str getScenarioLanguage(Client c);
 int getShtConstant(MalBlkPtr mb, sht val);
 int getStrConstant(MalBlkPtr mb, str val);
 const char *getTraceRef;
@@ -1065,6 +1065,7 @@ const char *likeRef;
 const char *likejoinRef;
 const char *likeselectRef;
 const char *likeuselectRef;
+const char *lngRef;
 str loadLibrary(const char *modulename, int flag);
 char *locate_file(const char *basename, const char *ext, bit recurse);
 const char *lockRef;
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 serve

MonetDB: default - add support for dicts using int offsets

2024-07-15 Thread Niels Nes via checkin-list
Changeset: 54adcef69551 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/54adcef69551
Modified Files:
sql/backends/monet5/dict.c
sql/storage/bat/bat_storage.c
sql/storage/sql_storage.h
Branch: default
Log Message:

add support for dicts using int offsets


diffs (truncated from 630 to 300 lines):

diff --git a/sql/backends/monet5/dict.c b/sql/backends/monet5/dict.c
--- a/sql/backends/monet5/dict.c
+++ b/sql/backends/monet5/dict.c
@@ -33,7 +33,6 @@ BATmaxminpos_bte(BAT *o, bte m)
bte minval = m<0?GDK_bte_min:0; /* Later once nils use a bitmask we can 
include -128 in the range */
bte maxval = m<0?GDK_bte_max:m;
 
-   assert(o->ttype == TYPE_bte);
o->tnil = m<0?true:false;
o->tnonil = m<=0?false:true;
bte *op = (bte*)Tloc(o, 0);
@@ -80,6 +79,33 @@ BATmaxminpos_sht(BAT *o, sht m)
o->tmaxpos = maxpos;
 }
 
+static void
+BATmaxminpos_int(BAT *o, int m)
+{
+   BUN minpos = BUN_NONE, maxpos = BUN_NONE, p, q;
+   int minval = m<0?GDK_int_min:0; /* Later once nils use a bitmask we can 
include -32768 in the range */
+   int maxval = m<0?GDK_int_max:m;
+
+   assert(o->ttype == TYPE_int);
+   o->tnil = m<0?true:false;
+   o->tnonil = m<=0?false:true;
+   int *op = (int*)Tloc(o, 0);
+   BATloop(o, p, q) {
+   if (op[p] == minval) {
+   minpos = p;
+   break;
+   }
+   }
+   BATloop(o, p, q) {
+   if (op[p] == maxval) {
+   maxpos = p;
+   break;
+   }
+   }
+   o->tminpos = minpos;
+   o->tmaxpos = maxpos;
+}
+
 static str
 DICTcompress_intern(BAT **O, BAT **U, BAT *b, bool ordered, bool persists, 
bool smallest_type)
 {
@@ -91,12 +117,12 @@ DICTcompress_intern(BAT **O, BAT **U, BA
 
BUN cnt = BATcount(u);
/* create hash on u */
-   int tt = (cnt<256)?TYPE_bte:TYPE_sht;
+   int tt = (cnt<256)?TYPE_bte:(cnt<65536)?TYPE_sht:TYPE_int;
if (!smallest_type) {
BUN cnt = BATcount(b);
-   tt = (cnt<256)?TYPE_bte:TYPE_sht;
+   tt = (cnt<256)?TYPE_bte:(cnt<65536)?TYPE_sht:TYPE_int;
}
-   if (cnt >= 64*1024) {
+   if (cnt >= INT_MAX) {
bat_destroy(u);
throw(SQL, "dict.compress", SQLSTATE(3F000) "dict compress: too 
many values");
}
@@ -153,7 +179,7 @@ DICTcompress_intern(BAT **O, BAT **U, BA
 
if (BATcount(u) > 0)
BATmaxminpos_bte(o, (bte) (BATcount(u)-1));
-   } else {
+   } else if (tt == TYPE_sht) {
sht *op = (sht*)Tloc(o, 0);
bool havenil = false;
BATloop(b, p, q) {
@@ -172,6 +198,25 @@ DICTcompress_intern(BAT **O, BAT **U, BA
 
if (BATcount(u) > 0)
BATmaxminpos_sht(o, (sht) (BATcount(u)-1));
+   } else {
+   int *op = (int*)Tloc(o, 0);
+   bool havenil = false;
+   BATloop(b, p, q) {
+   BUN up = 0;
+   HASHloop(ui, ui.b->thash, up, BUNtail(bi, p)) {
+   op[p] = (int)up;
+   havenil |= is_int_nil(op[p]);
+   }
+   }
+   BATsetcount(o, BATcount(b));
+   o->tsorted = (u->tsorted && bi.sorted);
+   o->trevsorted = false;
+   o->tnil = havenil;
+   o->tnonil = !havenil;
+   o->tkey = bi.key;
+
+   if (BATcount(u) > 0)
+   BATmaxminpos_int(o, (int) (BATcount(u)-1));
}
bat_iterator_end(&bi);
*O = o;
@@ -339,8 +384,7 @@ DICTdecompress_(BAT *o, BAT *u, role_t r
}
}
}
-   } else {
-   assert(o->ttype == TYPE_sht);
+   } else if (o->ttype == TYPE_sht) {
unsigned short *op = Tloc(o, 0);
 
switch (ATOMbasetype(u->ttype)) {
@@ -365,6 +409,35 @@ DICTdecompress_(BAT *o, BAT *u, role_t r
}
}
}
+   } else if (o->ttype == TYPE_int) {
+   unsigned int *op = Tloc(o, 0);
+
+   switch (ATOMbasetype(u->ttype)) {
+   case TYPE_int:
+   decompress_loop(int);
+   break;
+   case TYPE_lng:
+   decompress_loop(lng);
+   break;
+#ifdef HAVE_HGE
+   case TYPE_hge:
+   decompress_loop(hge);
+   break;
+#endif
+   default:
+   BATloop(o, p, q) {
+   BUN up = op[p];
+   if (BUNappend(b, BUNtail(ui, up), false) != 
GDK_SUCCEED) {
+   bat_iterator_end(&oi);

MonetDB: cmp-or-patterns - small fix for expressions without rel...

2024-07-15 Thread Niels Nes via checkin-list
Changeset: d314d1698740 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/d314d1698740
Modified Files:
sql/server/rel_optimize_sel.c
Branch: cmp-or-patterns
Log Message:

small fix for expressions without relational names.


diffs (15 lines):

diff --git a/sql/server/rel_optimize_sel.c b/sql/server/rel_optimize_sel.c
--- a/sql/server/rel_optimize_sel.c
+++ b/sql/server/rel_optimize_sel.c
@@ -608,7 +608,10 @@ detect_multicol_cmp_eqs(mvc *sql, list *
char *cs = "";
for (node *m = sl->h; m; m = m->next) {
sql_exp *col_exp = ((sql_exp*)m->data)->l;
-   cs = strconcat(cs, strconcat(col_exp->alias.rname, 
col_exp->alias.name));
+   if (col_exp->alias.rname)
+   cs = strconcat(cs, 
strconcat(col_exp->alias.rname, col_exp->alias.name));
+   else
+   cs = strconcat(cs, col_exp->alias.name);
}
 
/* find the eq exp in the hash and append the values */
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org