MonetDB: Dec2023 - Stop following us on twitter.

2024-02-09 Thread Sjoerd Mullender via checkin-list
Changeset: 4731848816b9 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/4731848816b9
Modified Files:
clients/mapiclient/mclient.c
Branch: Dec2023
Log Message:

Stop following us on twitter.
This fixes bug #7454.


diffs (13 lines):

diff --git a/clients/mapiclient/mclient.c b/clients/mapiclient/mclient.c
--- a/clients/mapiclient/mclient.c
+++ b/clients/mapiclient/mclient.c
@@ -3650,8 +3650,7 @@ main(int argc, char **argv)
if (mode == SQL)
dump_version(mid, toConsole, "Database:");
 
-   mnstr_printf(toConsole, "FOLLOW US on 
https://twitter.com/MonetDB "
-   "or 
https://github.com/MonetDB/MonetDB\n";
+   mnstr_printf(toConsole, "FOLLOW US on 
https://github.com/MonetDB/MonetDB\n";
"Type \\q to quit, \\? for a list of 
available commands\n");
if (mode == SQL)
mnstr_printf(toConsole, "auto commit mode: %s\n",
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: Dec2023 - fixes for issues #7450 and #7451

2024-02-09 Thread Niels Nes via checkin-list
Changeset: 6dcdedda192c for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/6dcdedda192c
Modified Files:
sql/backends/monet5/rel_bin.c
sql/server/rel_exp.c
sql/test/BugTracker-2024/Tests/All
Branch: Dec2023
Log Message:

fixes for issues #7450 and #7451

make sure group by results are used
don't rewrite into semijoin when for the join expression the uniqueness cannot 
be concluded.


diffs (33 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
@@ -4441,6 +4441,8 @@ rel2bin_groupby(backend *be, sql_rel *re
cursub = stmt_list(be, l);
if (cursub == NULL)
return NULL;
+   if (aggrs && !aggrs->h && ext)
+   list_append(l, ext);
for (n = aggrs->h; n; n = n->next) {
sql_exp *aggrexp = n->data;
stmt *aggrstmt = NULL;
diff --git a/sql/server/rel_exp.c b/sql/server/rel_exp.c
--- a/sql/server/rel_exp.c
+++ b/sql/server/rel_exp.c
@@ -2405,7 +2405,7 @@ exp_has_func_or_cmp(sql_exp *e, bool cmp
return exps_have_func_or_cmp(e->f, true);
return 0;
case e_convert:
-   return exp_has_func(e->l);
+   return exp_has_func_or_cmp(e->l, cmp);
case e_func:
return 1;
case e_aggr:
diff --git a/sql/test/BugTracker-2024/Tests/All 
b/sql/test/BugTracker-2024/Tests/All
--- a/sql/test/BugTracker-2024/Tests/All
+++ b/sql/test/BugTracker-2024/Tests/All
@@ -19,3 +19,5 @@ greatest-as-colname-7444
 where-cond-issue-7447
 where-cond-issue-7448
 function_return_issue
+where_null-7450
+between-boolean-7451
___
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org


MonetDB: cleanup_types - merged with default

2024-02-09 Thread Niels Nes via checkin-list
Changeset: 5df54f939917 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/5df54f939917
Modified Files:
clients/Tests/exports.stable.out
sql/backends/monet5/sql.c
Branch: cleanup_types
Log Message:

merged with default


diffs (truncated from 1321 to 300 lines):

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
@@ -215,7 +215,7 @@ BBPrec *BBP[N_BBPINIT];
 gdk_return BBPaddfarm(const char *dirname, uint32_t rolemask, bool logerror);
 void BBPcold(bat i);
 int BBPfix(bat b);
-unsigned BBPheader(FILE *fp, int *lineno, bat *bbpsize, lng *logno, lng 
*transid, bool allow_hge_upgrade);
+unsigned BBPheader(FILE *fp, int *lineno, bat *bbpsize, lng *logno, bool 
allow_hge_upgrade);
 bat BBPindex(const char *nme);
 gdk_return BBPjson_upgrade(json_storage_conversion);
 void BBPkeepref(BAT *b) __attribute__((__nonnull__(1)));
@@ -227,7 +227,6 @@ int BBPrelease(bat b);
 int BBPrename(BAT *b, const char *nme);
 int BBPretain(bat b);
 gdk_return BBPsave(BAT *b);
-gdk_return BBPsync(int cnt, bat *restrict subcommit, BUN *restrict sizes, lng 
logno, lng transid);
 void BBPtmlock(void);
 void BBPtmunlock(void);
 int BBPunfix(bat b);
@@ -416,7 +415,7 @@ void STRMPdestroy(BAT *b);
 BAT *STRMPfilter(BAT *b, BAT *s, const char *q, const bool keep_nils);
 bool THRhighwater(void);
 gdk_return TMsubcommit(BAT *bl) __attribute__((__warn_unused_result__));
-gdk_return TMsubcommit_list(bat *restrict subcommit, BUN *restrict sizes, int 
cnt, lng logno, lng transid) __attribute__((__warn_unused_result__));
+gdk_return TMsubcommit_list(bat *restrict subcommit, BUN *restrict sizes, int 
cnt, lng logno) __attribute__((__warn_unused_result__));
 void VALclear(ValPtr v);
 int VALcmp(const ValRecord *p, const ValRecord *q);
 void *VALconvert(int typ, ValPtr t);
diff --git a/clients/mapiclient/dump.c b/clients/mapiclient/dump.c
--- a/clients/mapiclient/dump.c
+++ b/clients/mapiclient/dump.c
@@ -2188,7 +2188,7 @@ dump_table(Mapi mid, const char *schema,
fprintf(stderr, "no tables matching %s.%s\n", 
schema, tname);
goto doreturn;
}
-   tables = malloc(rows * sizeof(struct tables));
+   tables = malloc((size_t) rows * sizeof(struct tables));
if (tables == NULL) {
mapi_close_handle(hdl);
fprintf(stderr, "malloc failure\n");
@@ -3203,6 +3203,123 @@ dump_database(Mapi mid, stream *sqlf, co
mapi_close_handle(hdl);
hdl = NULL;
 
+   /* dump views, functions and triggers */
+   if ((hdl = mapi_query(mid, views_functions_triggers)) == NULL ||
+   mapi_error(mid))
+   goto bailout;
+
+   while (rc == 0 &&
+  mnstr_errnr(sqlf) == MNSTR_NO__ERROR &&
+  mapi_fetch_row(hdl) != 0) {
+   char *id = strdup(mapi_fetch_field(hdl, 0));
+   char *schema = strdup(mapi_fetch_field(hdl, 1));
+   char *name = strdup(mapi_fetch_field(hdl, 2));
+   const char *query = mapi_fetch_field(hdl, 3);
+   const char *remark = mapi_fetch_field(hdl, 4);
+
+   if (mapi_error(mid) || id == NULL || schema == NULL || name == 
NULL) {
+   free(id);
+   free(schema);
+   free(name);
+   goto bailout;
+   }
+   if (sname != NULL && strcmp(schema, sname) != 0) {
+   free(id);
+   free(schema);
+   free(name);
+   continue;
+   }
+   if (curschema == NULL || strcmp(schema, curschema) != 0) {
+   if (curschema)
+   free(curschema);
+   curschema = strdup(schema);
+   if (curschema == NULL) {
+   free(id);
+   free(schema);
+   free(name);
+   goto bailout;
+   }
+   mnstr_printf(sqlf, "SET SCHEMA ");
+   dquoted_print(sqlf, curschema, ";\n");
+   }
+   if (query) {
+   /* view or trigger */
+   mnstr_printf(sqlf, "%s\n", query);
+   /* only views have comments due to query */
+   comment_on(sqlf, "VIEW", schema, name, NULL, remark);
+   } else {
+   /* procedure */
+   dump_functions(mid, sqlf, 0, schema, name, id);
+   }
+   free(id);
+   free(schema);
+   free(name);
+   }
+   mapi_close_handle(hdl);
+   hdl = NULL;
+
+   /* d

MonetDB: cleanup_types - sys.time_to_str and sys.timestamp_to_st...

2024-02-09 Thread Sjoerd Mullender via checkin-list
Changeset: 243d3bc294dd for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/243d3bc294dd
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
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-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: cleanup_types
Log Message:

sys.time_to_str and sys.timestamp_to_str upgrade code.


diffs (truncated from 926 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
@@ -6630,18 +6630,31 @@ sql_update_default(Client c, mvc *sql, s
if (BATcount(b) == 0) {
/* do update */
sql_table *t;
-   const char *query = "drop function 
sys.dump_database(boolean);\n"
+   const char *query =
+   "drop function if exists sys.time_to_str(time 
with time zone, string) cascade;\n"
+   "drop function if exists 
sys.timestamp_to_str(timestamp with time zone, string) cascade;\n"
+   "create function time_to_str(d time, format 
string) returns string\n"
+   " external name mtime.\"time_to_str\";\n"
+   "create function time_to_str(d time with time 
zone, format string) returns string\n"
+   " external name mtime.\"timetz_to_str\";\n"
+   "create function timestamp_to_str(d timestamp 
with time zone, format string) returns string\n"
+   " external name mtime.\"timestamptz_to_str\";\n"
+   "grant execute on function time_to_str(time, 
string) to public;\n"
+   "grant execute on function time_to_str(time 
with time zone, string) to public;\n"
+   "grant execute on function 
timestamp_to_str(timestamp with time zone, string) to public;\n"
+   "update sys.functions set system = true where 
not system and schema_id = 2000 and name in ('time_to_str', 
'timestamp_to_str');\n"
+   "drop function if exists 
sys.dump_database(boolean) cascade;\n"
"drop view sys.dump_comments;\n"
"drop view sys.dump_tables;\n"
"drop view sys.dump_functions;\n"
"drop view sys.dump_function_grants;\n"
-   "drop function sys.describe_columns(string, 
string);\n"
+   "drop function if exists 
sys.describe_columns(string, string) cascade;\n"
"drop view sys.describe_functions;\n"
"drop view sys.describe_privileges;\n"
"drop view sys.describe_comments;\n"
"drop view sys.fully_qualified_functions;\n"
"drop view sys.describe_tables;\n"
-   "drop function sys.describe_type(string, 
integer, integer);\n"
+   "drop function if exists 
sys.describe_type(string, integer, integer) cascade;\n"
"CREATE FUNCTION sys.describe_type(ctype 

MonetDB: cleanup_types - Move upgrade code to a better place.

2024-02-09 Thread Sjoerd Mullender via checkin-list
Changeset: 0f2c76f98217 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/0f2c76f98217
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
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-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: cleanup_types
Log Message:

Move upgrade code to a better place.


diffs (truncated from 575 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
@@ -168,24 +168,6 @@ check_sys_tables(Client c, mvc *m, sql_s
};
char *err;
 
-   /* cleanup_types: change introduced post Dec2023 */
-   err = SQLstatementIntern(c,
-"update sys._columns 
set type_digits = 7 where type = 'tinyint' and type_digits <> 7;\n"
-"update sys._columns 
set type_digits = 15 where type = 'smallint' and type_digits <> 15;\n"
-"update sys._columns 
set type_digits = 31 where type = 'int' and type_digits <> 31;\n"
-"update sys._columns 
set type_digits = 63 where type = 'bigint' and type_digits <> 63;\n"
-"update sys._columns 
set type_digits = 127 where type = 'hugeint' and type_digits <> 127;\n"
-"update sys._columns 
set type = 'varchar' where type in ('clob', 'char') and table_id in (select id 
from sys._tables where system and name <> 'netcdf_files');\n"
-"update sys.args set 
type_digits = 7 where type = 'tinyint' and type_digits <> 7;\n"
-"update sys.args set 
type_digits = 15 where type = 'smallint' and type_digits <> 15;\n"
-"update sys.args set 
type_digits = 31 where type = 'int' and type_digits <> 31;\n"
-"update sys.args set 
type_digits = 63 where type = 'bigint' and type_digits <> 63;\n"
-"update sys.args set 
type_digits = 127 where type = 'hugeint' and type_digits <> 127;\n"
-"update sys.args set 
type = 'varchar' where type in ('clob', 'char');\n",
-"update", true, false, 
NULL);
-   if (err)
-   return err;
-
/* if any of the tested function's internal ID does not match the ID
 * in the sys.functions table, we recreate the internal part of the
 * system tables */
@@ -6631,6 +6613,18 @@ sql_update_default(Client c, mvc *sql, s
/* do update */
sql_table *t;
const char *query =
+   "update sys._columns set type_digits = 7 where 
type = 'tinyint' and type_digits <> 7;\n"
+   "update sys._columns set type_digits = 15 where 
type = 'smallint' and type_digits <> 15;\n"
+   "update sys._columns set type_digits = 31 where 
type = 'int' and type

MonetDB: Dec2023 - We can't run these upgrade tests anymore on o...

2024-02-09 Thread Sjoerd Mullender via checkin-list
Changeset: 4126ca9a7b1f for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/4126ca9a7b1f
Removed Files:
sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.ppc64.int128
Branch: Dec2023
Log Message:

We can't run these upgrade tests anymore on our big-endian ppc64.


diffs (83 lines):

diff --git 
a/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.ppc64.int128 
b/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.ppc64.int128
deleted file mode 100644
--- a/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.ppc64.int128
+++ /dev/null
@@ -1,78 +0,0 @@
-Running database upgrade commands to update system tables.
-
-Running database upgrade commands:
-create function sys.generate_series(first hugeint, "limit" hugeint)
-returns table (value hugeint)
-external name generator.series;
-create function sys.generate_series(first hugeint, "limit" hugeint, stepsize 
hugeint)
-returns table (value hugeint)
-external name generator.series;
-create aggregate stddev_samp(val HUGEINT) returns DOUBLE
- external name "aggr"."stdev";
-GRANT EXECUTE ON AGGREGATE stddev_samp(HUGEINT) TO PUBLIC;
-create window stddev_samp(val HUGEINT) returns DOUBLE
- external name "sql"."stdev";
-GRANT EXECUTE ON WINDOW stddev_samp(HUGEINT) TO PUBLIC;
-create aggregate stddev_pop(val HUGEINT) returns DOUBLE
- external name "aggr"."stdevp";
-GRANT EXECUTE ON AGGREGATE stddev_pop(HUGEINT) TO PUBLIC;
-create window stddev_pop(val HUGEINT) returns DOUBLE
- external name "sql"."stdevp";
-GRANT EXECUTE ON WINDOW stddev_pop(HUGEINT) TO PUBLIC;
-create aggregate var_samp(val HUGEINT) returns DOUBLE
- external name "aggr"."variance";
-GRANT EXECUTE ON AGGREGATE var_samp(HUGEINT) TO PUBLIC;
-create window var_samp(val HUGEINT) returns DOUBLE
- external name "sql"."variance";
-GRANT EXECUTE ON WINDOW var_samp(HUGEINT) TO PUBLIC;
-create aggregate covar_samp(e1 HUGEINT, e2 HUGEINT) returns DOUBLE
- external name "aggr"."covariance";
-GRANT EXECUTE ON AGGREGATE covar_samp(HUGEINT, HUGEINT) TO PUBLIC;
-create window covar_samp(e1 HUGEINT, e2 HUGEINT) returns DOUBLE
- external name "sql"."covariance";
-GRANT EXECUTE ON WINDOW covar_samp(HUGEINT, HUGEINT) TO PUBLIC;
-create aggregate var_pop(val HUGEINT) returns DOUBLE
- external name "aggr"."variancep";
-GRANT EXECUTE ON AGGREGATE var_pop(HUGEINT) TO PUBLIC;
-create window var_pop(val HUGEINT) returns DOUBLE
- external name "sql"."variancep";
-GRANT EXECUTE ON WINDOW var_pop(HUGEINT) TO PUBLIC;
-create aggregate covar_pop(e1 HUGEINT, e2 HUGEINT) returns DOUBLE
- external name "aggr"."covariancep";
-GRANT EXECUTE ON AGGREGATE covar_pop(HUGEINT, HUGEINT) TO PUBLIC;
-create window covar_pop(e1 HUGEINT, e2 HUGEINT) returns DOUBLE
- external name "sql"."covariancep";
-GRANT EXECUTE ON WINDOW covar_pop(HUGEINT, HUGEINT) TO PUBLIC;
-create aggregate median(val HUGEINT) returns HUGEINT
- external name "aggr"."median";
-GRANT EXECUTE ON AGGREGATE median(HUGEINT) TO PUBLIC;
-create aggregate quantile(val HUGEINT, q DOUBLE) returns HUGEINT
- external name "aggr"."quantile";
-GRANT EXECUTE ON AGGREGATE quantile(HUGEINT, DOUBLE) TO PUBLIC;
-create aggregate median_avg(val HUGEINT) returns DOUBLE
- external name "aggr"."median_avg";
-GRANT EXECUTE ON AGGREGATE median_avg(HUGEINT) TO PUBLIC;
-create aggregate quantile_avg(val HUGEINT, q DOUBLE) returns DOUBLE
- external name "aggr"."quantile_avg";
-GRANT EXECUTE ON AGGREGATE quantile_avg(HUGEINT, DOUBLE) TO PUBLIC;
-create aggregate corr(e1 HUGEINT, e2 HUGEINT) returns DOUBLE
- external name "aggr"."corr";
-GRANT EXECUTE ON AGGREGATE corr(HUGEINT, HUGEINT) TO PUBLIC;
-create window corr(e1 HUGEINT, e2 HUGEINT) returns DOUBLE
- external name "sql"."corr";
-GRANT EXECUTE ON WINDOW corr(HUGEINT, HUGEINT) TO PUBLIC;
-create function json.filter(js json, name hugeint)
-returns json external name json.filter;
-GRANT EXECUTE ON FUNCTION json.filter(json, hugeint) TO PUBLIC;
-update sys.functions set system = true where system <> true and name in 
('generate_series') and schema_id = (select id from sys.schemas where name = 
'sys') and type = 5;
-update sys.functions set system = true where system <> true and name in 
('stddev_samp', 'stddev_pop', 'var_samp', 'covar_samp', 'var_pop', 'covar_pop', 
'median', 'median_avg', 'quantile', 'quantile_avg', 'corr') and schema_id = 
(select id from sys.schemas where name = 'sys') and type = 3;
-update sys.functions set system = true where system <> true and name in 
('stddev_samp', 'stddev_pop', 'var_samp', 'covar_samp', 'var_pop', 'covar_pop', 
'corr') and schema_id = (select id from sys.schemas where name = 'sys') and 
type = 6;
-update sys.functions set system = true where system <> true and name = 
'filter' and schema_id = (select id from sys.schemas where name = 'json') and 
type = 1;
-
-Running database upgrade commands:
-drop function json.isvalid(json);
-create function json.isvalid(js json)
-returns bool begin return case when js is NULL then NULL else true end; end;
-GRANT EXECUTE ON FUNCTION json.isva

MonetDB: default - Merge with Dec2023 branch.

2024-02-09 Thread Sjoerd Mullender via checkin-list
Changeset: 0d6fe51df85e for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/0d6fe51df85e
Modified Files:
clients/mapiclient/mclient.c
sql/backends/monet5/rel_bin.c
sql/server/rel_exp.c
Branch: default
Log Message:

Merge with Dec2023 branch.


diffs (129 lines):

diff --git a/clients/mapiclient/mclient.c b/clients/mapiclient/mclient.c
--- a/clients/mapiclient/mclient.c
+++ b/clients/mapiclient/mclient.c
@@ -3771,8 +3771,7 @@ main(int argc, char **argv)
if (mode == SQL)
dump_version(mid, toConsole, "Database:");
 
-   mnstr_printf(toConsole, "FOLLOW US on 
https://twitter.com/MonetDB "
-   "or 
https://github.com/MonetDB/MonetDB\n";
+   mnstr_printf(toConsole, "FOLLOW US on 
https://github.com/MonetDB/MonetDB\n";
"Type \\q to quit, \\? for a list of 
available commands\n");
if (mode == SQL)
mnstr_printf(toConsole, "auto commit mode: %s\n",
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
@@ -4441,6 +4441,8 @@ rel2bin_groupby(backend *be, sql_rel *re
cursub = stmt_list(be, l);
if (cursub == NULL)
return NULL;
+   if (aggrs && !aggrs->h && ext)
+   list_append(l, ext);
for (n = aggrs->h; n; n = n->next) {
sql_exp *aggrexp = n->data;
stmt *aggrstmt = NULL;
diff --git a/sql/server/rel_exp.c b/sql/server/rel_exp.c
--- a/sql/server/rel_exp.c
+++ b/sql/server/rel_exp.c
@@ -2406,7 +2406,7 @@ exp_has_func_or_cmp(sql_exp *e, bool cmp
return exps_have_func_or_cmp(e->f, true);
return 0;
case e_convert:
-   return exp_has_func(e->l);
+   return exp_has_func_or_cmp(e->l, cmp);
case e_func:
return 1;
case e_aggr:
diff --git a/sql/test/BugTracker-2024/Tests/All 
b/sql/test/BugTracker-2024/Tests/All
--- a/sql/test/BugTracker-2024/Tests/All
+++ b/sql/test/BugTracker-2024/Tests/All
@@ -19,3 +19,5 @@ greatest-as-colname-7444
 where-cond-issue-7447
 where-cond-issue-7448
 function_return_issue
+where_null-7450
+between-boolean-7451
diff --git 
a/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.ppc64.int128 
b/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.ppc64.int128
deleted file mode 100644
--- a/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.ppc64.int128
+++ /dev/null
@@ -1,78 +0,0 @@
-Running database upgrade commands to update system tables.
-
-Running database upgrade commands:
-create function sys.generate_series(first hugeint, "limit" hugeint)
-returns table (value hugeint)
-external name generator.series;
-create function sys.generate_series(first hugeint, "limit" hugeint, stepsize 
hugeint)
-returns table (value hugeint)
-external name generator.series;
-create aggregate stddev_samp(val HUGEINT) returns DOUBLE
- external name "aggr"."stdev";
-GRANT EXECUTE ON AGGREGATE stddev_samp(HUGEINT) TO PUBLIC;
-create window stddev_samp(val HUGEINT) returns DOUBLE
- external name "sql"."stdev";
-GRANT EXECUTE ON WINDOW stddev_samp(HUGEINT) TO PUBLIC;
-create aggregate stddev_pop(val HUGEINT) returns DOUBLE
- external name "aggr"."stdevp";
-GRANT EXECUTE ON AGGREGATE stddev_pop(HUGEINT) TO PUBLIC;
-create window stddev_pop(val HUGEINT) returns DOUBLE
- external name "sql"."stdevp";
-GRANT EXECUTE ON WINDOW stddev_pop(HUGEINT) TO PUBLIC;
-create aggregate var_samp(val HUGEINT) returns DOUBLE
- external name "aggr"."variance";
-GRANT EXECUTE ON AGGREGATE var_samp(HUGEINT) TO PUBLIC;
-create window var_samp(val HUGEINT) returns DOUBLE
- external name "sql"."variance";
-GRANT EXECUTE ON WINDOW var_samp(HUGEINT) TO PUBLIC;
-create aggregate covar_samp(e1 HUGEINT, e2 HUGEINT) returns DOUBLE
- external name "aggr"."covariance";
-GRANT EXECUTE ON AGGREGATE covar_samp(HUGEINT, HUGEINT) TO PUBLIC;
-create window covar_samp(e1 HUGEINT, e2 HUGEINT) returns DOUBLE
- external name "sql"."covariance";
-GRANT EXECUTE ON WINDOW covar_samp(HUGEINT, HUGEINT) TO PUBLIC;
-create aggregate var_pop(val HUGEINT) returns DOUBLE
- external name "aggr"."variancep";
-GRANT EXECUTE ON AGGREGATE var_pop(HUGEINT) TO PUBLIC;
-create window var_pop(val HUGEINT) returns DOUBLE
- external name "sql"."variancep";
-GRANT EXECUTE ON WINDOW var_pop(HUGEINT) TO PUBLIC;
-create aggregate covar_pop(e1 HUGEINT, e2 HUGEINT) returns DOUBLE
- external name "aggr"."covariancep";
-GRANT EXECUTE ON AGGREGATE covar_pop(HUGEINT, HUGEINT) TO PUBLIC;
-create window covar_pop(e1 HUGEINT, e2 HUGEINT) returns DOUBLE
- external name "sql"."covariancep";
-GRANT EXECUTE ON WINDOW covar_pop(HUGEINT, HUGEINT) TO PUBLIC;
-create aggregate median(val HUGEINT) returns HUGEINT
- external name "aggr"."median";
-GRANT EXECUTE ON AGGREGATE median(HUGEINT) TO PUBLIC;
-create aggregat

MonetDB: cleanup_types - Merge with default branch.

2024-02-09 Thread Sjoerd Mullender via checkin-list
Changeset: aa2d01140f52 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/aa2d01140f52
Modified Files:
sql/backends/monet5/rel_bin.c
sql/server/rel_exp.c
Branch: cleanup_types
Log Message:

Merge with default branch.


diffs (129 lines):

diff --git a/clients/mapiclient/mclient.c b/clients/mapiclient/mclient.c
--- a/clients/mapiclient/mclient.c
+++ b/clients/mapiclient/mclient.c
@@ -3771,8 +3771,7 @@ main(int argc, char **argv)
if (mode == SQL)
dump_version(mid, toConsole, "Database:");
 
-   mnstr_printf(toConsole, "FOLLOW US on 
https://twitter.com/MonetDB "
-   "or 
https://github.com/MonetDB/MonetDB\n";
+   mnstr_printf(toConsole, "FOLLOW US on 
https://github.com/MonetDB/MonetDB\n";
"Type \\q to quit, \\? for a list of 
available commands\n");
if (mode == SQL)
mnstr_printf(toConsole, "auto commit mode: %s\n",
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
@@ -4440,6 +4440,8 @@ rel2bin_groupby(backend *be, sql_rel *re
cursub = stmt_list(be, l);
if (cursub == NULL)
return NULL;
+   if (aggrs && !aggrs->h && ext)
+   list_append(l, ext);
for (n = aggrs->h; n; n = n->next) {
sql_exp *aggrexp = n->data;
stmt *aggrstmt = NULL;
diff --git a/sql/server/rel_exp.c b/sql/server/rel_exp.c
--- a/sql/server/rel_exp.c
+++ b/sql/server/rel_exp.c
@@ -2406,7 +2406,7 @@ exp_has_func_or_cmp(sql_exp *e, bool cmp
return exps_have_func_or_cmp(e->f, true);
return 0;
case e_convert:
-   return exp_has_func(e->l);
+   return exp_has_func_or_cmp(e->l, cmp);
case e_func:
return 1;
case e_aggr:
diff --git a/sql/test/BugTracker-2024/Tests/All 
b/sql/test/BugTracker-2024/Tests/All
--- a/sql/test/BugTracker-2024/Tests/All
+++ b/sql/test/BugTracker-2024/Tests/All
@@ -19,3 +19,5 @@ greatest-as-colname-7444
 where-cond-issue-7447
 where-cond-issue-7448
 function_return_issue
+where_null-7450
+between-boolean-7451
diff --git 
a/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.ppc64.int128 
b/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.ppc64.int128
deleted file mode 100644
--- a/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.ppc64.int128
+++ /dev/null
@@ -1,78 +0,0 @@
-Running database upgrade commands to update system tables.
-
-Running database upgrade commands:
-create function sys.generate_series(first hugeint, "limit" hugeint)
-returns table (value hugeint)
-external name generator.series;
-create function sys.generate_series(first hugeint, "limit" hugeint, stepsize 
hugeint)
-returns table (value hugeint)
-external name generator.series;
-create aggregate stddev_samp(val HUGEINT) returns DOUBLE
- external name "aggr"."stdev";
-GRANT EXECUTE ON AGGREGATE stddev_samp(HUGEINT) TO PUBLIC;
-create window stddev_samp(val HUGEINT) returns DOUBLE
- external name "sql"."stdev";
-GRANT EXECUTE ON WINDOW stddev_samp(HUGEINT) TO PUBLIC;
-create aggregate stddev_pop(val HUGEINT) returns DOUBLE
- external name "aggr"."stdevp";
-GRANT EXECUTE ON AGGREGATE stddev_pop(HUGEINT) TO PUBLIC;
-create window stddev_pop(val HUGEINT) returns DOUBLE
- external name "sql"."stdevp";
-GRANT EXECUTE ON WINDOW stddev_pop(HUGEINT) TO PUBLIC;
-create aggregate var_samp(val HUGEINT) returns DOUBLE
- external name "aggr"."variance";
-GRANT EXECUTE ON AGGREGATE var_samp(HUGEINT) TO PUBLIC;
-create window var_samp(val HUGEINT) returns DOUBLE
- external name "sql"."variance";
-GRANT EXECUTE ON WINDOW var_samp(HUGEINT) TO PUBLIC;
-create aggregate covar_samp(e1 HUGEINT, e2 HUGEINT) returns DOUBLE
- external name "aggr"."covariance";
-GRANT EXECUTE ON AGGREGATE covar_samp(HUGEINT, HUGEINT) TO PUBLIC;
-create window covar_samp(e1 HUGEINT, e2 HUGEINT) returns DOUBLE
- external name "sql"."covariance";
-GRANT EXECUTE ON WINDOW covar_samp(HUGEINT, HUGEINT) TO PUBLIC;
-create aggregate var_pop(val HUGEINT) returns DOUBLE
- external name "aggr"."variancep";
-GRANT EXECUTE ON AGGREGATE var_pop(HUGEINT) TO PUBLIC;
-create window var_pop(val HUGEINT) returns DOUBLE
- external name "sql"."variancep";
-GRANT EXECUTE ON WINDOW var_pop(HUGEINT) TO PUBLIC;
-create aggregate covar_pop(e1 HUGEINT, e2 HUGEINT) returns DOUBLE
- external name "aggr"."covariancep";
-GRANT EXECUTE ON AGGREGATE covar_pop(HUGEINT, HUGEINT) TO PUBLIC;
-create window covar_pop(e1 HUGEINT, e2 HUGEINT) returns DOUBLE
- external name "sql"."covariancep";
-GRANT EXECUTE ON WINDOW covar_pop(HUGEINT, HUGEINT) TO PUBLIC;
-create aggregate median(val HUGEINT) returns HUGEINT
- external name "aggr"."median";
-GRANT EXECUTE ON AGGREGATE median(HUGEINT) TO PUBLIC;
-create aggregate quantile(val HUGEINT, q DOUBL