Changeset: 4cf7f79098d8 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=4cf7f79098d8
Added Files:
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-case-coalesce.Bug-6550.sql
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-wrong-cast-null.Bug-6551.sql
Modified Files:
        clients/Tests/MAL-signatures.stable.out
        clients/Tests/MAL-signatures.stable.out.int128
        sql/backends/monet5/rel_bin.c
        sql/backends/monet5/sql.h
        sql/backends/monet5/sql.mal
        sql/backends/monet5/sql_cat.c
        sql/backends/monet5/sql_cat.h
        sql/backends/monet5/sql_upgrades.c
        sql/include/sql_relation.h
        sql/scripts/97_comments.sql
        sql/server/sql_mvc.c
        sql/server/sql_privileges.c
        sql/test/BugTracker-2018/Tests/All
        sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
        sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.powerpc64
        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-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/emptydb/Tests/check.stable.out
        sql/test/emptydb/Tests/check.stable.out.32bit
        sql/test/emptydb/Tests/check.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.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
Branch: default
Log Message:

Merge with Mar2018 branch.


diffs (truncated from 860 to 300 lines):

diff --git a/clients/Tests/MAL-signatures.stable.out 
b/clients/Tests/MAL-signatures.stable.out
--- a/clients/Tests/MAL-signatures.stable.out
+++ b/clients/Tests/MAL-signatures.stable.out
@@ -10810,8 +10810,6 @@ Ready.
 [ "sql",       "copy_from",    "pattern sql.copy_from(t:ptr, sep:str, 
rsep:str, ssep:str, ns:str, fname:str, nr:lng, offset:lng, locked:int, 
best:int, fwf:str):bat[:any]... ",        "mvc_import_table_wrap;",       
"Import a table from bstream s with the \n\tgiven tuple and seperators 
(sep/rsep)"      ]
 [ "sql",       "copy_rejects", "pattern sql.copy_rejects() (rowid:bat[:lng], 
fldid:bat[:int], msg:bat[:str], inp:bat[:str]) ", "COPYrejects;", ""      ]
 [ "sql",       "copy_rejects_clear",   "pattern sql.copy_rejects_clear():void 
",       "COPYrejects_clear;",   ""      ]
-[ "sql",       "create_func_upgrade_oct2014",  "pattern 
sql.create_func_upgrade_oct2014(sname:str, f:str):int ",       
"UPGcreate_func;",      "Create the function described by f, needed for the 
Oct2014 upgrade"    ]
-[ "sql",       "create_view_upgrade_oct2014",  "pattern 
sql.create_view_upgrade_oct2014(sname:str, v:str):int ",       
"UPGcreate_view;",      "Create the view described by f, needed for the Oct2014 
upgrade"        ]
 [ "sql",       "createorderindex",     "pattern sql.createorderindex(sch:str, 
tbl:str, col:str):void ",        "sql_createorderindex;",        "Instantiate 
the order index on a column"       ]
 [ "sql",       "current_time", "pattern sql.current_time():daytime ",  
"SQLcurrent_daytime;",  "Get the clients current daytime"       ]
 [ "sql",       "current_timestamp",    "pattern 
sql.current_timestamp():timestamp ",   "SQLcurrent_timestamp;",        "Get the 
clients current timestamp"     ]
@@ -10828,7 +10826,6 @@ Ready.
 [ "sql",       "dense_rank",   "pattern sql.dense_rank(b:any_1, p:bit, 
o:bit):int ",   "SQLdense_rank;",       "return the densely ranked groups"      
]
 [ "sql",       "diff", "pattern sql.diff(b:any_1):bit ",       "SQLdiff;",     
"return true if cur != prev row"        ]
 [ "sql",       "diff", "pattern sql.diff(p:bit, b:any_1):bit ",        
"SQLdiff;",     "return true if cur != prev row"        ]
-[ "sql",       "drop_func_upgrade_oct2014",    "pattern 
sql.drop_func_upgrade_oct2014(id:int):int ",   "UPGdrop_func;",        "Drop 
the function identified by id, needed for the Oct2014 upgrade"    ]
 [ "sql",       "drop_hash",    "pattern sql.drop_hash(sch:str, tbl:str):void 
",        "SQLdrop_hash;",        "Drop hash indices for the given table" ]
 [ "sql",       "droporderindex",       "pattern sql.droporderindex(sch:str, 
tbl:str, col:str):void ",  "sql_droporderindex;",  "Drop the order index on a 
column"      ]
 [ "sql",       "dump_cache",   "pattern sql.dump_cache() (query:bat[:str], 
count:bat[:int]) ", "dump_cache;",  "dump the content of the query cache"   ]
diff --git a/clients/Tests/MAL-signatures.stable.out.int128 
b/clients/Tests/MAL-signatures.stable.out.int128
--- a/clients/Tests/MAL-signatures.stable.out.int128
+++ b/clients/Tests/MAL-signatures.stable.out.int128
@@ -15021,8 +15021,6 @@ Ready.
 [ "sql",       "copy_from",    "pattern sql.copy_from(t:ptr, sep:str, 
rsep:str, ssep:str, ns:str, fname:str, nr:lng, offset:lng, locked:int, 
best:int, fwf:str):bat[:any]... ",        "mvc_import_table_wrap;",       
"Import a table from bstream s with the \n\tgiven tuple and seperators 
(sep/rsep)"      ]
 [ "sql",       "copy_rejects", "pattern sql.copy_rejects() (rowid:bat[:lng], 
fldid:bat[:int], msg:bat[:str], inp:bat[:str]) ", "COPYrejects;", ""      ]
 [ "sql",       "copy_rejects_clear",   "pattern sql.copy_rejects_clear():void 
",       "COPYrejects_clear;",   ""      ]
-[ "sql",       "create_func_upgrade_oct2014",  "pattern 
sql.create_func_upgrade_oct2014(sname:str, f:str):int ",       
"UPGcreate_func;",      "Create the function described by f, needed for the 
Oct2014 upgrade"    ]
-[ "sql",       "create_view_upgrade_oct2014",  "pattern 
sql.create_view_upgrade_oct2014(sname:str, v:str):int ",       
"UPGcreate_view;",      "Create the view described by f, needed for the Oct2014 
upgrade"        ]
 [ "sql",       "createorderindex",     "pattern sql.createorderindex(sch:str, 
tbl:str, col:str):void ",        "sql_createorderindex;",        "Instantiate 
the order index on a column"       ]
 [ "sql",       "current_time", "pattern sql.current_time():daytime ",  
"SQLcurrent_daytime;",  "Get the clients current daytime"       ]
 [ "sql",       "current_timestamp",    "pattern 
sql.current_timestamp():timestamp ",   "SQLcurrent_timestamp;",        "Get the 
clients current timestamp"     ]
@@ -15040,7 +15038,6 @@ Ready.
 [ "sql",       "dense_rank",   "pattern sql.dense_rank(b:any_1, p:bit, 
o:bit):int ",   "SQLdense_rank;",       "return the densely ranked groups"      
]
 [ "sql",       "diff", "pattern sql.diff(b:any_1):bit ",       "SQLdiff;",     
"return true if cur != prev row"        ]
 [ "sql",       "diff", "pattern sql.diff(p:bit, b:any_1):bit ",        
"SQLdiff;",     "return true if cur != prev row"        ]
-[ "sql",       "drop_func_upgrade_oct2014",    "pattern 
sql.drop_func_upgrade_oct2014(id:int):int ",   "UPGdrop_func;",        "Drop 
the function identified by id, needed for the Oct2014 upgrade"    ]
 [ "sql",       "drop_hash",    "pattern sql.drop_hash(sch:str, tbl:str):void 
",        "SQLdrop_hash;",        "Drop hash indices for the given table" ]
 [ "sql",       "droporderindex",       "pattern sql.droporderindex(sch:str, 
tbl:str, col:str):void ",  "sql_droporderindex;",  "Drop the order index on a 
column"      ]
 [ "sql",       "dump_cache",   "pattern sql.dump_cache() (query:bat[:str], 
count:bat[:int]) ", "dump_cache;",  "dump the content of the query cache"   ]
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
@@ -5335,20 +5335,10 @@ rel_deps(sql_allocator *sa, sql_rel *r, 
                        if (r->r)
                                return rel_deps(sa, r->r, refs, l);
                } else if (r->flag == DDL_PSM) {
-                       exps_deps(sa, r->exps, refs, l);
+                       break;
                } else if (r->flag <= DDL_ALTER_SEQ) {
                        if (r->l)
                                return rel_deps(sa, r->l, refs, l);
-               } else if (r->flag <= DDL_DROP_SEQ) {
-                       exps_deps(sa, r->exps, refs, l);
-               } else if (r->flag <= DDL_TRANS) {
-                       exps_deps(sa, r->exps, refs, l);
-               } else if (r->flag <= DDL_DROP_SCHEMA) {
-                       exps_deps(sa, r->exps, refs, l);
-               } else if (r->flag <= DDL_ALTER_TABLE) {
-                       exps_deps(sa, r->exps, refs, l);
-               } else if (r->flag <= DDL_ALTER_TABLE_SET_ACCESS) {
-                       exps_deps(sa, r->exps, refs, l);
                }
                break;
        }
diff --git a/sql/backends/monet5/sql.h b/sql/backends/monet5/sql.h
--- a/sql/backends/monet5/sql.h
+++ b/sql/backends/monet5/sql.h
@@ -95,10 +95,6 @@ sql5_export str mvc_declared_table_colum
 sql5_export str mvc_drop_declared_table_wrap(Client cntxt, MalBlkPtr mb, 
MalStkPtr stk, InstrPtr pci);
 sql5_export str mvc_drop_declared_tables_wrap(Client cntxt, MalBlkPtr mb, 
MalStkPtr stk, InstrPtr pci);
 
-sql5_export str UPGdrop_func(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
-sql5_export str UPGcreate_func(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
-sql5_export str UPGcreate_view(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
-
 sql5_export str mvc_affected_rows_wrap(Client cntxt, MalBlkPtr mb, MalStkPtr 
stk, InstrPtr pci);
 sql5_export str mvc_export_result_wrap(Client cntxt, MalBlkPtr mb, MalStkPtr 
stk, InstrPtr pci);
 sql5_export str mvc_export_head_wrap(Client cntxt, MalBlkPtr mb, MalStkPtr 
stk, InstrPtr pci);
diff --git a/sql/backends/monet5/sql.mal b/sql/backends/monet5/sql.mal
--- a/sql/backends/monet5/sql.mal
+++ b/sql/backends/monet5/sql.mal
@@ -264,18 +264,6 @@ unsafe pattern export_table(fname:str, f
 address mvc_export_table_wrap
 comment "Prepare a table result set for the COPY INTO stream";
 
-pattern drop_func_upgrade_oct2014(id:int) :int
-address UPGdrop_func
-comment "Drop the function identified by id, needed for the Oct2014 upgrade";
-
-pattern create_func_upgrade_oct2014(sname:str,f:str) :int
-address UPGcreate_func
-comment "Create the function described by f, needed for the Oct2014 upgrade";
-
-pattern create_view_upgrade_oct2014(sname:str,v:str) :int
-address UPGcreate_view
-comment "Create the view described by f, needed for the Oct2014 upgrade";
-
 unsafe pattern exportHead(s:streams, res_id:int) :void
 address mvc_export_head_wrap
 comment "Export a result (in order) to stream s"; 
diff --git a/sql/backends/monet5/sql_cat.c b/sql/backends/monet5/sql_cat.c
--- a/sql/backends/monet5/sql_cat.c
+++ b/sql/backends/monet5/sql_cat.c
@@ -714,101 +714,6 @@ alter_table(Client cntxt, mvc *sql, char
        return MAL_SUCCEED;
 }
 
-str
-UPGdrop_func(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
-{
-       mvc *sql = NULL;
-       str msg = MAL_SUCCEED;
-       int id = *getArgReference_int(stk, pci, 1);
-       sql_func *func;
-
-       if ((msg = getSQLContext(cntxt, mb, &sql, NULL)) != NULL)
-               return msg;
-       if ((msg = checkSQLContext(cntxt)) != NULL)
-               return msg;
-
-       func = sql_trans_find_func(sql->session->tr, id);
-       if (func) {
-               if(mvc_drop_func(sql, func->s, func, 0))
-                       throw(SQL, "sql.drop_func", SQLSTATE(HY001) 
MAL_MALLOC_FAIL);
-       }
-       return msg;
-}
-
-str
-UPGcreate_func(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
-{
-       mvc *sql = NULL;
-       str msg = MAL_SUCCEED;
-       str sname = *getArgReference_str(stk, pci, 1), osname;
-       str fname = *getArgReference_str(stk, pci, 2);
-       str func = *getArgReference_str(stk, pci, 3);
-       stmt *s;
-       backend *be;
-       sql_allocator *sa;
-
-       if ((msg = getSQLContext(cntxt, mb, &sql, &be)) != NULL)
-               return msg;
-       if ((msg = checkSQLContext(cntxt)) != NULL)
-               return msg;
-       osname = cur_schema(sql)->base.name;
-       if (!mvc_set_schema(sql, sname))
-               throw(SQL,"sql.catalog", SQLSTATE(3F000) "Schema (%s) 
missing\n", sname);
-       sa = sa_create();
-       if(!sa)
-               throw(SQL, "sql.catalog",SQLSTATE(HY001) MAL_MALLOC_FAIL);
-       s = sql_parse(be, sa, func, 0);
-       if (s && s->type == st_catalog) {
-               char *schema = 
((stmt*)s->op1->op4.lval->h->data)->op4.aval->data.val.sval;
-               sql_func *func = 
(sql_func*)((stmt*)s->op1->op4.lval->t->data)->op4.aval->data.val.pval;
-
-               msg = create_func(sql, schema, fname, func);
-               if (!mvc_set_schema(sql, osname))
-                       throw(SQL,"sql.catalog", SQLSTATE(3F000) "Schema (%s) 
missing\n", osname);
-       } else {
-               (void) mvc_set_schema(sql, osname);
-               throw(SQL, "sql.catalog", SQLSTATE(42000) "function creation 
failed '%s'", func);
-       }
-       return msg;
-}
-
-str
-UPGcreate_view(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
-{
-       mvc *sql = NULL;
-       str msg = MAL_SUCCEED;
-       str sname = *getArgReference_str(stk, pci, 1), osname;
-       str view = *getArgReference_str(stk, pci, 2);
-       stmt *s;
-       backend *be;
-       sql_allocator *sa;
-
-       if ((msg = getSQLContext(cntxt, mb, &sql, &be)) != NULL)
-               return msg;
-       if ((msg = checkSQLContext(cntxt)) != NULL)
-               return msg;
-       osname = cur_schema(sql)->base.name;
-       if (!mvc_set_schema(sql, sname))
-               throw(SQL,"sql.catalog", SQLSTATE(3F000) "Schema (%s) 
missing\n", sname);
-       sa = sa_create();
-       if(!sa)
-               throw(SQL, "sql.catalog",SQLSTATE(HY001) MAL_MALLOC_FAIL);
-       s = sql_parse(be, sa, view, 0);
-       if (s && s->type == st_catalog) {
-               char *schema = 
((stmt*)s->op1->op4.lval->h->data)->op4.aval->data.val.sval;
-               sql_table *v = 
(sql_table*)((stmt*)s->op1->op4.lval->h->next->data)->op4.aval->data.val.pval;
-               int temp = 
((stmt*)s->op1->op4.lval->t->data)->op4.aval->data.val.ival;
-
-               msg = create_table_or_view(sql, schema, v->base.name, v, temp);
-               if (!mvc_set_schema(sql, osname))
-                       throw(SQL,"sql.catalog", SQLSTATE(3F000) "Schema (%s) 
missing\n", osname);
-       } else {
-               (void) mvc_set_schema(sql, osname);
-               throw(SQL, "sql.catalog", SQLSTATE(42000) "view creation failed 
'%s'", view);
-       }
-       return msg;
-}
-
 /* the MAL wrappers */
 str
 SQLcreate_seq(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
diff --git a/sql/backends/monet5/sql_cat.h b/sql/backends/monet5/sql_cat.h
--- a/sql/backends/monet5/sql_cat.h
+++ b/sql/backends/monet5/sql_cat.h
@@ -65,10 +65,6 @@ sql5_export str SQLalter_del_table(Clien
 sql5_export str SQLalter_set_table(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
 sql5_export str SQLcomment_on(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
 
-sql5_export str UPGdrop_func(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
-sql5_export str UPGcreate_func(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
-sql5_export str UPGcreate_view(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
-
 
 #endif /* _SQL_CATALOG_H */
 
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
@@ -975,6 +975,21 @@ sql_update_mar2018(Client c, mvc *sql)
                throw(SQL, "sql_update_mar2018", SQLSTATE(HY001) 
MAL_MALLOC_FAIL);
        s = mvc_bind_schema(sql, "sys");
 
+       t = mvc_create_table(sql, s, "comments", tt_table, 1, SQL_PERSIST, 0, 
-1);
+       sql_column *col = mvc_create_column_(sql, t, "id", "int", 32);
+       sql_key *k = sql_trans_create_ukey(sql->session->tr, t, 
"comments_id_pkey", pkey);
+       k = sql_trans_create_kc(sql->session->tr, k, col);
+       k = sql_trans_key_done(sql->session->tr, k);
+       sql_trans_create_dependency(sql->session->tr, col->base.id, 
k->idx->base.id, INDEX_DEPENDENCY);
+       col = mvc_create_column_(sql, t, "remark", "varchar", 65000);
+       sql_trans_alter_null(sql->session->tr, col, 0);
+
+       sql_table *privs = mvc_bind_table(sql, s, "privileges");
+       int pub = ROLE_PUBLIC;
+       int p = PRIV_SELECT;
+       int zero = 0;
+       table_funcs.table_insert(sql->session->tr, privs, &t->base.id, &pub, 
&p, &zero, &zero);
+
        pos += snprintf(buf + pos, bufsize - pos, "set schema \"sys\";\n");
 
        /* 21_dependency_views.sql */
@@ -1406,11 +1421,6 @@ sql_update_mar2018(Client c, mvc *sql)
 
        /* 97_comments */
        pos += snprintf(buf + pos, bufsize - pos,
-                       "CREATE TABLE sys.comments (\n"
-                       "        id INTEGER NOT NULL PRIMARY KEY,\n"
-                       "        remark VARCHAR(65000) NOT NULL\n"
-                       ");\n"
-                       "GRANT SELECT ON sys.comments TO PUBLIC;\n"
                        "CREATE FUNCTION sys.function_type_keyword(ftype INT)\n"
                        "RETURNS VARCHAR(20)\n"
                        "BEGIN\n"
diff --git a/sql/include/sql_relation.h b/sql/include/sql_relation.h
--- a/sql/include/sql_relation.h
+++ b/sql/include/sql_relation.h
@@ -29,21 +29,21 @@ typedef enum expression_type {
 #define CARD_MULTI 3
 
 typedef struct expression {
-       expression_type  type;  /* atom, cmp, func/aggr */
+       expression_type type;   /* atom, cmp, func/aggr */
        const char *name;
        const char *rname;
        void *l;
        void *r;
-       void *f;        /* func's and aggr's */
+       void *f;        /* func's and aggr's */
                        /* e_cmp may have have 2 arguments */
-       int  flag;      /* EXP_DISTINCT, NO_NIL, ASCENDING, cmp types */
-       unsigned char card;     /* card 
+       int flag;       /* EXP_DISTINCT, NO_NIL, ASCENDING, cmp types */
+       unsigned char card;     /* card
                                   (0 truth value!)
-                                  (1 atoms) 
+                                  (1 atoms)
                                   (2 aggr)
                                   (3 multi value)
                        */
-       sql_subtype     tpe;
+       sql_subtype     tpe;
        int used;       /* used for quick dead code removal */
        void *p;        /* properties for the optimizer */
 } sql_exp;
@@ -55,15 +55,15 @@ typedef struct expression {
 
 #define LEFT_JOIN      4
 
-#define APPLY_JOIN     8
-#define APPLY_LOJ      16
+#define APPLY_JOIN     8
+#define APPLY_LOJ      16
 #define APPLY_EXISTS   32
 #define APPLY_NOTEXISTS        64
 
 /* ASCENDING > 15 else we have problems with cmp types */
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to