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