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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list