Changeset: 59f190ddb750 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=59f190ddb750
Modified Files:
        sql/backends/monet5/rel_bin.c
        sql/backends/monet5/sql_upgrades.c
        sql/test/SQLancer/Tests/sqlancer01.stable.out
        sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128
        sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.ppc64.int128
        sql/test/emptydb-upgrade/Tests/upgrade.stable.out.int128
        sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.int128
        sql/test/testdb-upgrade/Tests/upgrade.stable.out.int128
Branch: default
Log Message:

Merge with Jun2020 branch.


diffs (truncated from 9969 to 300 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
@@ -4246,7 +4246,7 @@ update_check_ukey(backend *be, stmt **up
                                        upd = stmt_project(be, tids, 
stmt_col(be, c->c, dels, dels->partition));
                                        */
                                } else {
-                                       upd = stmt_project(be, tids, 
stmt_col(be, c->c, dels, dels->partition));
+                                       upd = stmt_col(be, c->c, dels, 
dels->partition);
                                }
 
                                /* apply cand list first */
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
@@ -76,98 +76,66 @@ sql_fix_system_tables(Client c, mvc *sql
                if (func->base.id >= FUNC_OIDS)
                        continue;
 
-               if (func->type == F_AGGR) {
-                       pos += snprintf(buf + pos, bufsize - pos,
-                                       "insert into sys.functions values"
-                                       " (%d, '%s', '%s', '%s', %d, %d, false,"
-                                       " %s, %s, %d, %s, %s);\n",
-                                       func->base.id, func->base.name, 
func->imp,
-                                       func->mod, (int) FUNC_LANG_INT, (int) 
func->type,
-                                       func->varres ? "true" : "false",
-                                       func->vararg ? "true" : "false",
-                                       func->s ? func->s->base.id : s->base.id,
-                                       func->system ? "true" : "false",
-                                       func->semantics ? "true" : "false");
-                       arg = func->res->h->data;
-                       pos += snprintf(buf + pos, bufsize - pos,
-                                       "insert into sys.args values"
-                                       " (%d, %d, 'res', '%s', %u, %u, %d, 
0);\n",
-                                       store_next_oid(), func->base.id,
-                                       arg->type.type->sqlname, 
arg->type.digits,
-                                       arg->type.scale, arg->inout);
-                       if (func->ops->h) {
-                               arg = func->ops->h->data;
+               pos += snprintf(buf + pos, bufsize - pos,
+                               "insert into sys.functions values"
+                               " (%d, '%s', '%s', '%s',"
+                               " %d, %d, %s, %s, %s, %d, %s, %s);\n",
+                               func->base.id, func->base.name,
+                               func->imp, func->mod, (int) FUNC_LANG_INT,
+                               (int) func->type,
+                               func->side_effect ? "true" : "false",
+                               func->varres ? "true" : "false",
+                               func->vararg ? "true" : "false",
+                               func->s ? func->s->base.id : s->base.id,
+                               func->system ? "true" : "false",
+                               func->semantics ? "true" : "false");
+               if (func->res) {
+                       for (m = func->res->h; m; m = m->next, number++) {
+                               arg = m->data;
                                pos += snprintf(buf + pos, bufsize - pos,
-                                               "insert into sys.args values"
-                                               " (%d, %d, 'arg', '%s', %u,"
-                                               " %u, %d, 1);\n",
-                                               store_next_oid(), func->base.id,
+                                               "insert into sys.args"
+                                               " values"
+                                               " (%d, %d, 'res_%d',"
+                                               " '%s', %u, %u, %d,"
+                                               " %d);\n",
+                                               store_next_oid(),
+                                               func->base.id,
+                                               number,
                                                arg->type.type->sqlname,
-                                               arg->type.digits, 
arg->type.scale,
-                                               arg->inout);
+                                               arg->type.digits,
+                                               arg->type.scale,
+                                               arg->inout, number);
                        }
-               } else {
-                       pos += snprintf(buf + pos, bufsize - pos,
-                                       "insert into sys.functions values"
-                                       " (%d, '%s', '%s', '%s',"
-                                       " %d, %d, %s, %s, %s, %d, %s, %s);\n",
-                                       func->base.id, func->base.name,
-                                       func->imp, func->mod, (int) 
FUNC_LANG_INT,
-                                       (int) func->type,
-                                       func->side_effect ? "true" : "false",
-                                       func->varres ? "true" : "false",
-                                       func->vararg ? "true" : "false",
-                                       func->s ? func->s->base.id : s->base.id,
-                                       func->system ? "true" : "false",
-                                       func->semantics ? "true" : "false");
-                       if (func->res) {
-                               for (m = func->res->h; m; m = m->next, 
number++) {
-                                       arg = m->data;
-                                       pos += snprintf(buf + pos, bufsize - 
pos,
-                                                       "insert into sys.args"
-                                                       " values"
-                                                       " (%d, %d, 'res_%d',"
-                                                       " '%s', %u, %u, %d,"
-                                                       " %d);\n",
-                                                       store_next_oid(),
-                                                       func->base.id,
-                                                       number,
-                                                       arg->type.type->sqlname,
-                                                       arg->type.digits,
-                                                       arg->type.scale,
-                                                       arg->inout, number);
-                               }
-                       }
-                       for (m = func->ops->h; m; m = m->next, number++) {
-                               arg = m->data;
-                               if (arg->name)
-                                       pos += snprintf(buf + pos, bufsize - 
pos,
-                                                       "insert into sys.args"
-                                                       " values"
-                                                       " (%d, %d, '%s', '%s',"
-                                                       " %u, %u, %d, %d);\n",
-                                                       store_next_oid(),
-                                                       func->base.id,
-                                                       arg->name,
-                                                       arg->type.type->sqlname,
-                                                       arg->type.digits,
-                                                       arg->type.scale,
-                                                       arg->inout, number);
-                               else
-                                       pos += snprintf(buf + pos, bufsize - 
pos,
-                                                       "insert into sys.args"
-                                                       " values"
-                                                       " (%d, %d, 'arg_%d',"
-                                                       " '%s', %u, %u, %d,"
-                                                       " %d);\n",
-                                                       store_next_oid(),
-                                                       func->base.id,
-                                                       number,
-                                                       arg->type.type->sqlname,
-                                                       arg->type.digits,
-                                                       arg->type.scale,
-                                                       arg->inout, number);
-                       }
+               }
+               for (m = func->ops->h; m; m = m->next, number++) {
+                       arg = m->data;
+                       if (arg->name)
+                               pos += snprintf(buf + pos, bufsize - pos,
+                                               "insert into sys.args"
+                                               " values"
+                                               " (%d, %d, '%s', '%s',"
+                                               " %u, %u, %d, %d);\n",
+                                               store_next_oid(),
+                                               func->base.id,
+                                               arg->name,
+                                               arg->type.type->sqlname,
+                                               arg->type.digits,
+                                               arg->type.scale,
+                                               arg->inout, number);
+                       else
+                               pos += snprintf(buf + pos, bufsize - pos,
+                                               "insert into sys.args"
+                                               " values"
+                                               " (%d, %d, 'arg_%d',"
+                                               " '%s', %u, %u, %d,"
+                                               " %d);\n",
+                                               store_next_oid(),
+                                               func->base.id,
+                                               number,
+                                               arg->type.type->sqlname,
+                                               arg->type.digits,
+                                               arg->type.scale,
+                                               arg->inout, number);
                }
        }
 
@@ -2123,13 +2091,6 @@ sql_update_jun2020(Client c, mvc *sql, c
         * see also function load_func() in store.c */
        pos += snprintf(buf + pos, bufsize - pos,
                        "update sys.functions set language = language - 2 where 
language in (8, 9);\n");
-       sql_subtype tp;
-       sql_find_subtype(&tp, "varchar", 0, 0);
-       sql_subfunc *f = sql_bind_func(sql->sa, sys, "listagg", &tp, &tp, 
F_AGGR);
-       pos += snprintf(buf + pos, bufsize - pos,
-                       "insert into sys.args values"
-                       " (%d, %d, 'arg_2', 'varchar', 0, 0, %d, 2);\n",
-                       store_next_oid(), f->func->base.id, ARG_IN);
 
        pos += snprintf(buf + pos, bufsize - pos,
                        "update sys.args set name = name || '_' || cast(number 
as string) where name in ('arg', 'res') and func_id in (select id from 
sys.functions f where f.system);\n");
diff --git a/sql/test/SQLancer/Tests/sqlancer01.stable.out 
b/sql/test/SQLancer/Tests/sqlancer01.stable.out
--- a/sql/test/SQLancer/Tests/sqlancer01.stable.out
+++ b/sql/test/SQLancer/Tests/sqlancer01.stable.out
@@ -107,6 +107,11 @@ stdout of test 'sqlancer01` in directory
 % clob # type
 % 28 # length
 [ "}*4nR<!뮯s5j4쫺YMe1pb[੧rc\r 8"        ]
+#INSERT INTO another_t(col4) VALUES(-589206676), (-1557408577);
+[ 2    ]
+#DELETE FROM another_t WHERE ((another_t.col8)<=(+ (another_t.col8)));
+[ 4    ]
+#ALTER TABLE another_t ADD UNIQUE(col8, col1, col6, col3);
 #ROLLBACK;
 #DROP TABLE tbl_ProductSales;
 #DROP TABLE another_T;
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
--- a/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.ppc64.int128
+++ b/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.ppc64.int128
@@ -180,23 +180,23 @@ insert into sys.args values (30959, 62, 
 insert into sys.args values (30960, 62, 'arg_1', 'mbr', 0, 0, 1, 1);
 insert into sys.args values (30961, 62, 'arg_2', 'mbr', 0, 0, 1, 2);
 insert into sys.functions values (63, 'grouping', '', '', 0, 3, false, false, 
false, 2000, true, true);
-insert into sys.args values (30962, 63, 'res', 'tinyint', 8, 0, 0, 0);
-insert into sys.args values (30963, 63, 'arg', 'any', 0, 0, 1, 1);
+insert into sys.args values (30962, 63, 'res_0', 'tinyint', 8, 0, 0, 0);
+insert into sys.args values (30963, 63, 'arg_1', 'any', 0, 0, 1, 1);
 insert into sys.functions values (64, 'grouping', '', '', 0, 3, false, false, 
false, 2000, true, true);
-insert into sys.args values (30964, 64, 'res', 'smallint', 16, 0, 0, 0);
-insert into sys.args values (30965, 64, 'arg', 'any', 0, 0, 1, 1);
+insert into sys.args values (30964, 64, 'res_0', 'smallint', 16, 0, 0, 0);
+insert into sys.args values (30965, 64, 'arg_1', 'any', 0, 0, 1, 1);
 insert into sys.functions values (65, 'grouping', '', '', 0, 3, false, false, 
false, 2000, true, true);
-insert into sys.args values (30966, 65, 'res', 'int', 32, 0, 0, 0);
-insert into sys.args values (30967, 65, 'arg', 'any', 0, 0, 1, 1);
+insert into sys.args values (30966, 65, 'res_0', 'int', 32, 0, 0, 0);
+insert into sys.args values (30967, 65, 'arg_1', 'any', 0, 0, 1, 1);
 insert into sys.functions values (66, 'grouping', '', '', 0, 3, false, false, 
false, 2000, true, true);
-insert into sys.args values (30968, 66, 'res', 'bigint', 64, 0, 0, 0);
-insert into sys.args values (30969, 66, 'arg', 'any', 0, 0, 1, 1);
+insert into sys.args values (30968, 66, 'res_0', 'bigint', 64, 0, 0, 0);
+insert into sys.args values (30969, 66, 'arg_1', 'any', 0, 0, 1, 1);
 insert into sys.functions values (67, 'grouping', '', '', 0, 3, false, false, 
false, 2000, true, true);
-insert into sys.args values (30970, 67, 'res', 'hugeint', 128, 0, 0, 0);
-insert into sys.args values (30971, 67, 'arg', 'any', 0, 0, 1, 1);
+insert into sys.args values (30970, 67, 'res_0', 'hugeint', 128, 0, 0, 0);
+insert into sys.args values (30971, 67, 'arg_1', 'any', 0, 0, 1, 1);
 insert into sys.functions values (68, 'not_unique', 'not_unique', 'sql', 0, 3, 
false, false, false, 2000, true, true);
-insert into sys.args values (30972, 68, 'res', 'boolean', 1, 0, 0, 0);
-insert into sys.args values (30973, 68, 'arg', 'oid', 63, 0, 1, 1);
+insert into sys.args values (30972, 68, 'res_0', 'boolean', 1, 0, 0, 0);
+insert into sys.args values (30973, 68, 'arg_1', 'oid', 63, 0, 1, 1);
 insert into sys.functions values (69, 'hash', 'hash', 'mkey', 0, 1, false, 
false, false, 2000, true, true);
 insert into sys.args values (30974, 69, 'res_0', 'bigint', 64, 0, 0, 0);
 insert into sys.args values (30975, 69, 'arg_1', 'any', 0, 0, 1, 1);
@@ -243,14 +243,14 @@ insert into sys.args values (31006, 78, 
 insert into sys.args values (31007, 78, 'arg_7', 'boolean', 1, 0, 1, 7);
 insert into sys.args values (31008, 78, 'arg_8', 'boolean', 1, 0, 1, 8);
 insert into sys.functions values (79, 'zero_or_one', 'zero_or_one', 'sql', 0, 
3, false, false, false, 2000, true, true);
-insert into sys.args values (31009, 79, 'res', 'any', 0, 0, 0, 0);
-insert into sys.args values (31010, 79, 'arg', 'any', 0, 0, 1, 1);
+insert into sys.args values (31009, 79, 'res_0', 'any', 0, 0, 0, 0);
+insert into sys.args values (31010, 79, 'arg_1', 'any', 0, 0, 1, 1);
 insert into sys.functions values (80, 'all', 'all', 'sql', 0, 3, false, false, 
false, 2000, true, true);
-insert into sys.args values (31011, 80, 'res', 'any', 0, 0, 0, 0);
-insert into sys.args values (31012, 80, 'arg', 'any', 0, 0, 1, 1);
+insert into sys.args values (31011, 80, 'res_0', 'any', 0, 0, 0, 0);
+insert into sys.args values (31012, 80, 'arg_1', 'any', 0, 0, 1, 1);
 insert into sys.functions values (81, 'null', 'null', 'sql', 0, 3, false, 
false, false, 2000, true, true);
-insert into sys.args values (31013, 81, 'res', 'boolean', 1, 0, 0, 0);
-insert into sys.args values (31014, 81, 'arg', 'any', 0, 0, 1, 1);
+insert into sys.args values (31013, 81, 'res_0', 'boolean', 1, 0, 0, 0);
+insert into sys.args values (31014, 81, 'arg_1', 'any', 0, 0, 1, 1);
 insert into sys.functions values (82, 'any', 'any', 'sql', 0, 1, false, false, 
false, 2000, true, true);
 insert into sys.args values (31015, 82, 'res_0', 'boolean', 1, 0, 0, 0);
 insert into sys.args values (31016, 82, 'arg_1', 'boolean', 1, 0, 1, 1);
@@ -262,11 +262,11 @@ insert into sys.args values (31020, 83, 
 insert into sys.args values (31021, 83, 'arg_2', 'boolean', 1, 0, 1, 2);
 insert into sys.args values (31022, 83, 'arg_3', 'boolean', 1, 0, 1, 3);
 insert into sys.functions values (84, 'anyequal', 'anyequal', 'aggr', 0, 3, 
false, false, false, 2000, true, true);
-insert into sys.args values (31023, 84, 'res', 'boolean', 1, 0, 0, 0);
-insert into sys.args values (31024, 84, 'arg', 'any', 0, 0, 1, 1);
+insert into sys.args values (31023, 84, 'res_0', 'boolean', 1, 0, 0, 0);
+insert into sys.args values (31024, 84, 'arg_1', 'any', 0, 0, 1, 1);
 insert into sys.functions values (85, 'allnotequal', 'allnotequal', 'aggr', 0, 
3, false, false, false, 2000, true, true);
-insert into sys.args values (31025, 85, 'res', 'boolean', 1, 0, 0, 0);
-insert into sys.args values (31026, 85, 'arg', 'any', 0, 0, 1, 1);
+insert into sys.args values (31025, 85, 'res_0', 'boolean', 1, 0, 0, 0);
+insert into sys.args values (31026, 85, 'arg_1', 'any', 0, 0, 1, 1);
 insert into sys.functions values (86, 'sql_anyequal', 'anyequal', 'aggr', 0, 
1, false, false, false, 2000, true, true);
 insert into sys.args values (31027, 86, 'res_0', 'boolean', 1, 0, 0, 0);
 insert into sys.args values (31028, 86, 'arg_1', 'any', 0, 0, 1, 1);
@@ -276,11 +276,11 @@ insert into sys.args values (31030, 87, 
 insert into sys.args values (31031, 87, 'arg_1', 'any', 0, 0, 1, 1);
 insert into sys.args values (31032, 87, 'arg_2', 'any', 0, 0, 1, 2);
 insert into sys.functions values (88, 'exist', 'exist', 'aggr', 0, 3, false, 
false, false, 2000, true, true);
-insert into sys.args values (31033, 88, 'res', 'boolean', 1, 0, 0, 0);
-insert into sys.args values (31034, 88, 'arg', 'any', 0, 0, 1, 1);
+insert into sys.args values (31033, 88, 'res_0', 'boolean', 1, 0, 0, 0);
+insert into sys.args values (31034, 88, 'arg_1', 'any', 0, 0, 1, 1);
 insert into sys.functions values (89, 'not_exist', 'not_exist', 'aggr', 0, 3, 
false, false, false, 2000, true, true);
-insert into sys.args values (31035, 89, 'res', 'boolean', 1, 0, 0, 0);
-insert into sys.args values (31036, 89, 'arg', 'any', 0, 0, 1, 1);
+insert into sys.args values (31035, 89, 'res_0', 'boolean', 1, 0, 0, 0);
+insert into sys.args values (31036, 89, 'arg_1', 'any', 0, 0, 1, 1);
 insert into sys.functions values (90, 'sql_exists', 'exist', 'aggr', 0, 1, 
false, false, false, 2000, true, true);
 insert into sys.args values (31037, 90, 'res_0', 'boolean', 1, 0, 0, 0);
 insert into sys.args values (31038, 90, 'arg_1', 'any', 0, 0, 1, 1);
@@ -299,11 +299,11 @@ insert into sys.args values (31046, 94, 
 insert into sys.args values (31047, 94, 'arg_2', 'varchar', 0, 0, 1, 2);
 insert into sys.args values (31048, 94, 'arg_3', 'varchar', 0, 0, 1, 3);
 insert into sys.functions values (95, 'min', 'min', 'aggr', 0, 3, false, 
false, false, 2000, true, false);
-insert into sys.args values (31049, 95, 'res', 'any', 0, 0, 0, 0);
-insert into sys.args values (31050, 95, 'arg', 'any', 0, 0, 1, 1);
+insert into sys.args values (31049, 95, 'res_0', 'any', 0, 0, 0, 0);
+insert into sys.args values (31050, 95, 'arg_1', 'any', 0, 0, 1, 1);
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to