Changeset: 3ceae43efdab for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=3ceae43efdab Added Files: sql/test/rename/Tests/rename12.sql sql/test/rename/Tests/rename12.stable.err sql/test/rename/Tests/rename12.stable.out Modified Files: clients/Tests/exports.stable.out clients/mapilib/monetdb-mapi.pc.in monetdb5/modules/mal/profiler.mal monetdb5/tools/Tests/mserver5--help.stable.err monetdb5/tools/Tests/mserver5--help.stable.err.Windows sql/backends/monet5/sql_scenario.c sql/backends/monet5/sql_upgrades.c sql/server/rel_exp.c sql/server/rel_unnest.c sql/server/sql_mvc.c sql/storage/bat/bat_storage.c sql/storage/sql_storage.h sql/storage/store.c sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128 sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.powerpc64.int128 sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.32bit sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128 sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.powerpc64 sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.powerpc64.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.32bit sql/test/emptydb-upgrade/Tests/upgrade.stable.out.int128 sql/test/mergetables/Tests/sqlsmith-exists2.stable.out sql/test/rename/Tests/All 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.32bit 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.32bit sql/test/testdb-upgrade/Tests/upgrade.stable.out.int128 tools/mserver/mserver5.c Branch: hitchhiker Log Message:
Merge with default diffs (truncated from 1289 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 @@ -300,10 +300,11 @@ ssize_t GDKstrFromStr(unsigned char *res str GDKstrdup(const char *s) __attribute__((__warn_unused_result__)); str GDKstrndup(const char *s, size_t n) __attribute__((__warn_unused_result__)); void GDKsyserror(_In_z_ _Printf_format_string_ const char *format, ...) __attribute__((__format__(__printf__, 1, 2))); -gdk_return GDKtracer_fill_comp_info(BAT *id, BAT *component, BAT *log_Level); +gdk_return GDKtracer_fill_comp_info(BAT *id, BAT *component, BAT *log_level); gdk_return GDKtracer_flush_buffer(void); char *GDKtracer_get_timestamp(const char *fmt, char *buf, size_t sz); gdk_return GDKtracer_log(LOG_LEVEL level, const char *fmt, ...) __attribute__((format(printf, 2, 3))); +void GDKtracer_reinit_basic(int sig); gdk_return GDKtracer_reset_adapter(void); gdk_return GDKtracer_reset_component_level(int comp); gdk_return GDKtracer_reset_flush_level(void); diff --git a/clients/mapilib/monetdb-mapi.pc.in b/clients/mapilib/monetdb-mapi.pc.in --- a/clients/mapilib/monetdb-mapi.pc.in +++ b/clients/mapilib/monetdb-mapi.pc.in @@ -2,17 +2,17 @@ # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. # -# Copyright 1997 - July 2008 CWI, August 2008 - 2020 MonetDB B.V. +# Copyright 1997 - July 2008 CWI, August 2008 - 2019 MonetDB B.V. -prefix=@prefix@ -exec_prefix=@exec_prefix@ -libdir=@libdir@ -includedir=@includedir@ +prefix=@CMAKE_INSTALL_PREFIX@ +exec_prefix=${exec_prefix} +libdir=${libdir} +includedir=${includedir} Name: monetdb-mapi Description: MonetDB MAPI C-client libary -Version: @PACKAGE_VERSION@ +Version: @MONETDB_VERSION@ Requires: monetdb-stream openssl -Libs: -L${libdir} -lmapi @SOCKET_LIBS@ +Libs: -L${libdir} -lmapi Cflags: -I${includedir}/monetdb diff --git a/monetdb5/modules/mal/profiler.mal b/monetdb5/modules/mal/profiler.mal --- a/monetdb5/modules/mal/profiler.mal +++ b/monetdb5/modules/mal/profiler.mal @@ -38,10 +38,6 @@ pattern openstream():void address CMDopenProfilerStream comment "Start profiling the events, send to output stream"; -pattern openstream(mode:int):void -address CMDopenProfilerStream -comment "Start profiling the events, send to output stream"; - pattern closestream():void address CMDcloseProfilerStream comment "Stop offline proviling"; diff --git a/monetdb5/tools/Tests/mserver5--help.stable.err b/monetdb5/tools/Tests/mserver5--help.stable.err --- a/monetdb5/tools/Tests/mserver5--help.stable.err +++ b/monetdb5/tools/Tests/mserver5--help.stable.err @@ -13,6 +13,7 @@ stderr of test 'mserver5--help` in direc Usage: mserver5 [options] --dbpath=<directory> Specify database location --dbextra=<directory> Directory for transient BATs + --dbtrace=<directory> Directory for produced traces --in-memory Run database in-memory only --config=<config_file> Use config_file to read options from --single-user Allow only one user at a time diff --git a/monetdb5/tools/Tests/mserver5--help.stable.err.Windows b/monetdb5/tools/Tests/mserver5--help.stable.err.Windows --- a/monetdb5/tools/Tests/mserver5--help.stable.err.Windows +++ b/monetdb5/tools/Tests/mserver5--help.stable.err.Windows @@ -8,6 +8,7 @@ stderr of test 'mserver5--help` in direc Usage: mserver5.exe [options] --dbpath=<directory> Specify database location --dbextra=<directory> Directory for transient BATs + --dbtrace=<directory> Directory for produced traces --in-memory Run database in-memory only --config=<config_file> Use config_file to read options from --single-user Allow only one user at a time 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 @@ -1123,6 +1123,8 @@ SQLparser(Client c) } if (be->language !='S') { msg = createException(SQL, "SQLparser", SQLSTATE(42000) "Unrecognized language prefix: %ci\n", be->language); + in->pos = in->len; /* skip rest of the input */ + c->mode = FINISHCLIENT; /* and disconnect, as client doesn't respect the mapi protocol */ goto finalize; } 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 @@ -2272,10 +2272,10 @@ sql_update_nov2019_sp1_hugeint(Client c, #endif static str -sql_update_default(Client c, mvc *sql, const char *prev_schema, bool *systabfixed) +sql_update_linear_hashing(Client c, mvc *sql, const char *prev_schema, bool *systabfixed) { sql_table *t; - size_t bufsize = 32768, pos = 0; + size_t bufsize = 8192, pos = 0; char *err = NULL, *buf = GDKmalloc(bufsize); sql_schema *sys = mvc_bind_schema(sql, "sys"); @@ -2486,6 +2486,41 @@ sql_update_default(Client c, mvc *sql, c "('STATEMENT'),('TABLE'),('TEMP'),('TEMPORARY'),('TEXT'),('TIME'),('TIMESTAMP'),('TRACE'),('TYPE'),('UNIONJOIN')," "('WEEK'),('YEAR'),('ZONE');\n"); + pos += snprintf(buf + pos, bufsize - pos, "commit;\n"); + pos += snprintf(buf + pos, bufsize - pos, "set schema \"%s\";\n", prev_schema); + assert(pos < bufsize); + + printf("Running database upgrade commands:\n%s\n", buf); + err = SQLstatementIntern(c, &buf, "update", true, false, NULL); + if (err == MAL_SUCCEED) { + pos = snprintf(buf, bufsize, "set schema \"sys\";\n" + "ALTER TABLE sys.keywords SET READ ONLY;\n"); + pos += snprintf(buf + pos, bufsize - pos, "set schema \"%s\";\n", prev_schema); + assert(pos < bufsize); + printf("Running database upgrade commands:\n%s\n", buf); + err = SQLstatementIntern(c, &buf, "update", true, false, NULL); + } + GDKfree(buf); + return err; /* usually MAL_SUCCEED */ +} + +static str +sql_update_default(Client c, mvc *sql, const char *prev_schema, bool *systabfixed) +{ + size_t bufsize = 32768, pos = 0; + char *err = NULL, *buf = GDKmalloc(bufsize); + + if (!*systabfixed && + (err = sql_fix_system_tables(c, sql, prev_schema)) != NULL) + return err; + *systabfixed = true; + + if (buf == NULL) + throw(SQL, __func__, SQLSTATE(HY013) MAL_MALLOC_FAIL); + + pos += snprintf(buf + pos, bufsize - pos, + "set schema \"sys\";\n"); + /* 39_analytics.sql */ pos += snprintf(buf + pos, bufsize - pos, "create window stddev_samp(val TINYINT) returns DOUBLE\n" @@ -3187,19 +3222,29 @@ SQLupgrades(Client c, mvc *m) #endif if (!res && !sql_bind_func(m->sa, s, "suspend_log_flushing", NULL, NULL, F_PROC)) { - if ((err = sql_update_default(c, m, prev_schema, &systabfixed)) != NULL) { - TRC_ERROR(SQL_UPGRADES, "%s\n", err); - freeException(err); - res = -1; - } - if (!res && - (err = sql_update_default_bam(c, m, prev_schema)) != NULL) { + if ((err = sql_update_linear_hashing(c, m, prev_schema, &systabfixed)) != NULL) { TRC_ERROR(SQL_UPGRADES, "%s\n", err); freeException(err); res = -1; } } + sql_find_subtype(&tp, "tinyint", 0, 0); + if (!sql_bind_func(m->sa, s, "stddev_samp", &tp, NULL, F_ANALYTIC)) { + if ((err = sql_update_default(c, m, prev_schema, &systabfixed)) != NULL) { + TRC_ERROR(SQL_UPGRADES, "%s\n", err); + freeException(err); + res = -1; + } + } + + if (!res && + (err = sql_update_default_bam(c, m, prev_schema)) != NULL) { + TRC_ERROR(SQL_UPGRADES, "%s\n", err); + freeException(err); + res = -1; + } + GDKfree(prev_schema); return res; } 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 @@ -1592,6 +1592,8 @@ exp_is_true(mvc *sql, sql_exp *e) return atom_is_true(sql->args[e->flag]); } } + if (e->type == e_cmp && e->flag == cmp_equal) + return (exp_is_true(sql, e->l) && exp_is_true(sql, e->r)); return 0; } diff --git a/sql/server/rel_unnest.c b/sql/server/rel_unnest.c --- a/sql/server/rel_unnest.c +++ b/sql/server/rel_unnest.c @@ -2662,6 +2662,7 @@ rel_unnest(mvc *sql, sql_rel *rel) rel = rel_visitor_bottomup(sql, rel, &rewrite_join2semi, &changes); /* where possible convert anyequal functions into marks */ rel = rel_visitor_bottomup(sql, rel, &rewrite_compare_exp, &changes); /* only allow for e_cmp in selects and handling */ rel = rel_visitor_bottomup(sql, rel, &rewrite_remove_xp_project, &changes); /* remove crossproducts with project ( project [ atom ] ) [ etc ] */ + rel = rel_visitor_bottomup(sql, rel, &rewrite_simplify, &changes); /* as expressions got merged before, lets try to simplify again */ rel = _rel_unnest(sql, rel); rel = rel_visitor_bottomup(sql, rel, &rewrite_fix_count, &changes); /* fix count inside a left join (adds a project (if (cnt IS null) then (0) else (cnt)) */ rel = rel_visitor_bottomup(sql, rel, &rewrite_remove_xp, &changes); /* remove crossproducts with project [ atom ] */ diff --git a/sql/server/sql_mvc.c b/sql/server/sql_mvc.c --- a/sql/server/sql_mvc.c +++ b/sql/server/sql_mvc.c @@ -1055,7 +1055,7 @@ mvc_bind_trigger(mvc *m, sql_schema *s, } sql_type * -mvc_create_type(mvc *sql, sql_schema * s, const char *name, int digits, int scale, int radix, const char *impl) +mvc_create_type(mvc *sql, sql_schema *s, const char *name, int digits, int scale, int radix, const char *impl) { sql_type *t = NULL; @@ -1355,7 +1355,7 @@ mvc_create_column(mvc *m, sql_table *t, TRC_DEBUG(SQL_MVC, "Create column: %s %s %s\n", t->base.name, name, tpe->type->sqlname); if (t->persistence == SQL_DECLARED_TABLE && (!t->s || strcmp(t->s->base.name, dt_schema))) /* declared tables should not end up in the catalog */ - return create_sql_column(m->sa, t, name, tpe); + return create_sql_column(m->session->tr, t, name, tpe); else return sql_trans_create_column(m->session->tr, t, name, tpe); } diff --git a/sql/storage/bat/bat_storage.c b/sql/storage/bat/bat_storage.c --- a/sql/storage/bat/bat_storage.c +++ b/sql/storage/bat/bat_storage.c @@ -2822,7 +2822,7 @@ update_table(sql_trans *tr, sql_table *f } } - dup_sql_type(tr, ft->s, &(cc->type), &(oc->type)); + dup_sql_type(tr->parent, ft->s, &(cc->type), &(oc->type)); oc->colnr = cc->colnr; oc->null = cc->null; oc->unique = cc->unique; diff --git a/sql/storage/sql_storage.h b/sql/storage/sql_storage.h --- a/sql/storage/sql_storage.h +++ b/sql/storage/sql_storage.h @@ -470,7 +470,7 @@ extern int sql_trans_check_dependency(sq extern list* sql_trans_owner_schema_dependencies(sql_trans *tr, sqlid id); extern sql_table *create_sql_table(sql_allocator *sa, const char *name, sht type, bit system, int persistence, int commit_action, bit properties); -extern sql_column *create_sql_column(sql_allocator *sa, sql_table *t, const char *name, sql_subtype *tpe); +extern sql_column *create_sql_column(sql_trans *tr, sql_table *t, const char *name, sql_subtype *tpe); extern sql_ukey *create_sql_ukey(sql_allocator *sa, sql_table *t, const char *nme, key_type kt); extern sql_fkey *create_sql_fkey(sql_allocator *sa, sql_table *t, const char *nme, key_type kt, sql_key *rkey, int on_delete, int on_update ); extern sql_key *create_sql_kc(sql_allocator *sa, sql_key *k, sql_column *c); diff --git a/sql/storage/store.c b/sql/storage/store.c --- a/sql/storage/store.c +++ b/sql/storage/store.c @@ -1549,8 +1549,10 @@ create_sql_table(sql_allocator *sa, cons void dup_sql_type(sql_trans *tr, sql_schema *os, sql_subtype *oc, sql_subtype *nc) { - *nc = *oc; - if (nc->type->s) { /* user type */ + nc->digits = oc->digits; + nc->scale = oc->scale; + nc->type = oc->type; + if (os && nc->type->s) { /* user type */ sql_type *lt = NULL; if (os->base.id == nc->type->s->base.id) { @@ -3407,6 +3409,8 @@ type_dup(sql_trans *tr, int flags, sql_t t->bits = ot->bits; t->localtype = ot->localtype; t->s = s; + if (isNew(ot) && newFlagSet(flags) && tr->parent == gtrans) + removeNewFlag(ot); return t; } @@ -3453,11 +3457,13 @@ func_dup(sql_trans *tr, int flags, sql_f } f->s = s; f->sa = sa; + if (isNew(of) && newFlagSet(flags) && tr->parent == gtrans) + removeNewFlag(of); return f; } static sql_sequence * -seq_dup(sql_trans *tr, int flags, sql_sequence *oseq, sql_schema * s) +seq_dup(sql_trans *tr, int flags, sql_sequence *oseq, sql_schema *s) { sql_allocator *sa = (newFlagSet(flags))?tr->parent->sa:tr->sa; sql_sequence *seq = SA_ZNEW(sa, sql_sequence); @@ -3471,6 +3477,8 @@ seq_dup(sql_trans *tr, int flags, sql_se seq->cacheinc = oseq->cacheinc; seq->cycle = oseq->cycle; seq->s = s; + if (isNew(oseq) && newFlagSet(flags) && tr->parent == gtrans) _______________________________________________ checkin-list mailing list [email protected] https://www.monetdb.org/mailman/listinfo/checkin-list
