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

Reply via email to