MonetDB: Dec2023 - Stop following us on twitter.
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
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
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...
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.
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...
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.
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.
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