Changeset: a378b7ec25f3 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/a378b7ec25f3
Branch: ustr
Log Message:
Merge with default branch.
diffs (truncated from 506 to 300 lines):
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
@@ -5501,6 +5501,30 @@ sql_update_default(Client c, mvc *sql, s
BBPreclaim(b);
}
res_table_destroy(output);
+ if (err != MAL_SUCCEED)
+ return err;
+
+ if ((err = SQLstatementIntern(c, "select function_type_id from
sys.function_types where function_type_keyword = 'GROUP FILTER FUNCTION';\n",
"update", true, false, &output)))
+ return err;
+ if ((b = BBPquickdesc(output->cols[0].b)) && BATcount(b) == 0) {
+ static const char query1[] =
+ "ALTER TABLE sys.function_types SET READ WRITE;\n"
+ "COMMIT;\n";
+ static const char query2[] =
+ "INSERT INTO sys.function_types VALUES (8, 'Group
filter function', 'GROUP FILTER FUNCTION');\n"
+ "COMMIT;\n";
+ static const char query3[] = "ALTER TABLE sys.function_types
SET READ ONLY;\n";
+ printf("Running database upgrade commands:\n%s%s%s\n", query1,
query2, query3);
+ fflush(stdout);
+ err = SQLstatementIntern(c, query1, "update", true, false,
NULL);
+ if (err == MAL_SUCCEED) {
+ err = SQLstatementIntern(c, query2, "update", true,
false, NULL);
+ if (err == MAL_SUCCEED) {
+ err = SQLstatementIntern(c, query3, "update",
true, false, NULL);
+ }
+ }
+ }
+ res_table_destroy(output);
return err;
}
diff --git
a/sql/test/BugTracker-2021/Tests/serializable-snapshot.Bug-7200.SQL.py
b/sql/test/BugTracker-2021/Tests/serializable-snapshot.Bug-7200.SQL.py
--- a/sql/test/BugTracker-2021/Tests/serializable-snapshot.Bug-7200.SQL.py
+++ b/sql/test/BugTracker-2021/Tests/serializable-snapshot.Bug-7200.SQL.py
@@ -34,7 +34,9 @@ thread2.join()
cursor1.execute("SELECT COUNT(*), COUNT(DISTINCT k), SUM(k) from T;")
if cursor1.fetchall() != [(MAX_ITERATIONS, MAX_ITERATIONS, EXPECTED_SUM)]:
- sys.stderr.write("[(%d,%d,%d)] expected" % (MAX_ITERATIONS,
MAX_ITERATIONS, EXPECTED_SUM))
+ sys.stderr.write("[(%d,%d,%d)] expected, [(%d,%d,%d)] received" %
(MAX_ITERATIONS, MAX_ITERATIONS, EXPECTED_SUM, res[0][0], res[0][1], res[0][2]))
+
+
cursor1.execute("DROP TABLE T;")
cursor1.close()
diff --git
a/sql/test/emptydb-previous-upgrade-chain-hge/Tests/upgrade.stable.out.int128
b/sql/test/emptydb-previous-upgrade-chain-hge/Tests/upgrade.stable.out.int128
---
a/sql/test/emptydb-previous-upgrade-chain-hge/Tests/upgrade.stable.out.int128
+++
b/sql/test/emptydb-previous-upgrade-chain-hge/Tests/upgrade.stable.out.int128
@@ -368,3 +368,10 @@ END;
update sys.functions set system = true where not system and schema_id = 2000
and name = 'dump_database' and type = 5;
update sys._tables set system = true where not system and schema_id = 2000 and
name in ('dump_tables', 'describe_tables');
+Running database upgrade commands:
+ALTER TABLE sys.function_types SET READ WRITE;
+COMMIT;
+INSERT INTO sys.function_types VALUES (8, 'Group filter function', 'GROUP
FILTER FUNCTION');
+COMMIT;
+ALTER TABLE sys.function_types SET READ ONLY;
+
diff --git a/sql/test/emptydb-previous-upgrade-chain/Tests/upgrade.stable.out
b/sql/test/emptydb-previous-upgrade-chain/Tests/upgrade.stable.out
--- a/sql/test/emptydb-previous-upgrade-chain/Tests/upgrade.stable.out
+++ b/sql/test/emptydb-previous-upgrade-chain/Tests/upgrade.stable.out
@@ -368,3 +368,10 @@ END;
update sys.functions set system = true where not system and schema_id = 2000
and name = 'dump_database' and type = 5;
update sys._tables set system = true where not system and schema_id = 2000 and
name in ('dump_tables', 'describe_tables');
+Running database upgrade commands:
+ALTER TABLE sys.function_types SET READ WRITE;
+COMMIT;
+INSERT INTO sys.function_types VALUES (8, 'Group filter function', 'GROUP
FILTER FUNCTION');
+COMMIT;
+ALTER TABLE sys.function_types SET READ ONLY;
+
diff --git
a/sql/test/emptydb-previous-upgrade-chain/Tests/upgrade.stable.out.int128
b/sql/test/emptydb-previous-upgrade-chain/Tests/upgrade.stable.out.int128
--- a/sql/test/emptydb-previous-upgrade-chain/Tests/upgrade.stable.out.int128
+++ b/sql/test/emptydb-previous-upgrade-chain/Tests/upgrade.stable.out.int128
@@ -453,3 +453,10 @@ END;
update sys.functions set system = true where not system and schema_id = 2000
and name = 'dump_database' and type = 5;
update sys._tables set system = true where not system and schema_id = 2000 and
name in ('dump_tables', 'describe_tables');
+Running database upgrade commands:
+ALTER TABLE sys.function_types SET READ WRITE;
+COMMIT;
+INSERT INTO sys.function_types VALUES (8, 'Group filter function', 'GROUP
FILTER FUNCTION');
+COMMIT;
+ALTER TABLE sys.function_types SET READ ONLY;
+
diff --git
a/sql/test/emptydb-previous-upgrade-hge/Tests/upgrade.stable.out.int128
b/sql/test/emptydb-previous-upgrade-hge/Tests/upgrade.stable.out.int128
--- a/sql/test/emptydb-previous-upgrade-hge/Tests/upgrade.stable.out.int128
+++ b/sql/test/emptydb-previous-upgrade-hge/Tests/upgrade.stable.out.int128
@@ -370,3 +370,10 @@ END;
update sys.functions set system = true where not system and schema_id = 2000
and name = 'dump_database' and type = 5;
update sys._tables set system = true where not system and schema_id = 2000 and
name in ('dump_tables', 'describe_tables');
+Running database upgrade commands:
+ALTER TABLE sys.function_types SET READ WRITE;
+COMMIT;
+INSERT INTO sys.function_types VALUES (8, 'Group filter function', 'GROUP
FILTER FUNCTION');
+COMMIT;
+ALTER TABLE sys.function_types SET READ ONLY;
+
diff --git a/sql/test/emptydb-previous-upgrade/Tests/upgrade.stable.out
b/sql/test/emptydb-previous-upgrade/Tests/upgrade.stable.out
--- a/sql/test/emptydb-previous-upgrade/Tests/upgrade.stable.out
+++ b/sql/test/emptydb-previous-upgrade/Tests/upgrade.stable.out
@@ -370,3 +370,10 @@ END;
update sys.functions set system = true where not system and schema_id = 2000
and name = 'dump_database' and type = 5;
update sys._tables set system = true where not system and schema_id = 2000 and
name in ('dump_tables', 'describe_tables');
+Running database upgrade commands:
+ALTER TABLE sys.function_types SET READ WRITE;
+COMMIT;
+INSERT INTO sys.function_types VALUES (8, 'Group filter function', 'GROUP
FILTER FUNCTION');
+COMMIT;
+ALTER TABLE sys.function_types SET READ ONLY;
+
diff --git a/sql/test/emptydb-previous-upgrade/Tests/upgrade.stable.out.int128
b/sql/test/emptydb-previous-upgrade/Tests/upgrade.stable.out.int128
--- a/sql/test/emptydb-previous-upgrade/Tests/upgrade.stable.out.int128
+++ b/sql/test/emptydb-previous-upgrade/Tests/upgrade.stable.out.int128
@@ -453,3 +453,10 @@ END;
update sys.functions set system = true where not system and schema_id = 2000
and name = 'dump_database' and type = 5;
update sys._tables set system = true where not system and schema_id = 2000 and
name in ('dump_tables', 'describe_tables');
+Running database upgrade commands:
+ALTER TABLE sys.function_types SET READ WRITE;
+COMMIT;
+INSERT INTO sys.function_types VALUES (8, 'Group filter function', 'GROUP
FILTER FUNCTION');
+COMMIT;
+ALTER TABLE sys.function_types SET READ ONLY;
+
diff --git a/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
b/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
--- a/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
+++ b/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
@@ -88,3 +88,10 @@ END;
update sys.functions set system = true where not system and schema_id = 2000
and name = 'dump_database' and type = 5;
update sys._tables set system = true where not system and schema_id = 2000 and
name in ('dump_tables', 'describe_tables');
+Running database upgrade commands:
+ALTER TABLE sys.function_types SET READ WRITE;
+COMMIT;
+INSERT INTO sys.function_types VALUES (8, 'Group filter function', 'GROUP
FILTER FUNCTION');
+COMMIT;
+ALTER TABLE sys.function_types SET READ ONLY;
+
diff --git a/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out
b/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out
--- a/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out
+++ b/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out
@@ -88,3 +88,10 @@ END;
update sys.functions set system = true where not system and schema_id = 2000
and name = 'dump_database' and type = 5;
update sys._tables set system = true where not system and schema_id = 2000 and
name in ('dump_tables', 'describe_tables');
+Running database upgrade commands:
+ALTER TABLE sys.function_types SET READ WRITE;
+COMMIT;
+INSERT INTO sys.function_types VALUES (8, 'Group filter function', 'GROUP
FILTER FUNCTION');
+COMMIT;
+ALTER TABLE sys.function_types SET READ ONLY;
+
diff --git a/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128
b/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128
--- a/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128
+++ b/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128
@@ -173,3 +173,10 @@ END;
update sys.functions set system = true where not system and schema_id = 2000
and name = 'dump_database' and type = 5;
update sys._tables set system = true where not system and schema_id = 2000 and
name in ('dump_tables', 'describe_tables');
+Running database upgrade commands:
+ALTER TABLE sys.function_types SET READ WRITE;
+COMMIT;
+INSERT INTO sys.function_types VALUES (8, 'Group filter function', 'GROUP
FILTER FUNCTION');
+COMMIT;
+ALTER TABLE sys.function_types SET READ ONLY;
+
diff --git a/sql/test/emptydb-upgrade-hge/Tests/upgrade.stable.out.int128
b/sql/test/emptydb-upgrade-hge/Tests/upgrade.stable.out.int128
--- a/sql/test/emptydb-upgrade-hge/Tests/upgrade.stable.out.int128
+++ b/sql/test/emptydb-upgrade-hge/Tests/upgrade.stable.out.int128
@@ -88,3 +88,10 @@ END;
update sys.functions set system = true where not system and schema_id = 2000
and name = 'dump_database' and type = 5;
update sys._tables set system = true where not system and schema_id = 2000 and
name in ('dump_tables', 'describe_tables');
+Running database upgrade commands:
+ALTER TABLE sys.function_types SET READ WRITE;
+COMMIT;
+INSERT INTO sys.function_types VALUES (8, 'Group filter function', 'GROUP
FILTER FUNCTION');
+COMMIT;
+ALTER TABLE sys.function_types SET READ ONLY;
+
diff --git a/sql/test/emptydb-upgrade/Tests/upgrade.stable.out
b/sql/test/emptydb-upgrade/Tests/upgrade.stable.out
--- a/sql/test/emptydb-upgrade/Tests/upgrade.stable.out
+++ b/sql/test/emptydb-upgrade/Tests/upgrade.stable.out
@@ -88,3 +88,10 @@ END;
update sys.functions set system = true where not system and schema_id = 2000
and name = 'dump_database' and type = 5;
update sys._tables set system = true where not system and schema_id = 2000 and
name in ('dump_tables', 'describe_tables');
+Running database upgrade commands:
+ALTER TABLE sys.function_types SET READ WRITE;
+COMMIT;
+INSERT INTO sys.function_types VALUES (8, 'Group filter function', 'GROUP
FILTER FUNCTION');
+COMMIT;
+ALTER TABLE sys.function_types SET READ ONLY;
+
diff --git a/sql/test/emptydb-upgrade/Tests/upgrade.stable.out.int128
b/sql/test/emptydb-upgrade/Tests/upgrade.stable.out.int128
--- a/sql/test/emptydb-upgrade/Tests/upgrade.stable.out.int128
+++ b/sql/test/emptydb-upgrade/Tests/upgrade.stable.out.int128
@@ -173,3 +173,10 @@ END;
update sys.functions set system = true where not system and schema_id = 2000
and name = 'dump_database' and type = 5;
update sys._tables set system = true where not system and schema_id = 2000 and
name in ('dump_tables', 'describe_tables');
+Running database upgrade commands:
+ALTER TABLE sys.function_types SET READ WRITE;
+COMMIT;
+INSERT INTO sys.function_types VALUES (8, 'Group filter function', 'GROUP
FILTER FUNCTION');
+COMMIT;
+ALTER TABLE sys.function_types SET READ ONLY;
+
diff --git a/sql/test/emptydb/Tests/check.stable.out
b/sql/test/emptydb/Tests/check.stable.out
--- a/sql/test/emptydb/Tests/check.stable.out
+++ b/sql/test/emptydb/Tests/check.stable.out
@@ -5536,7 +5536,7 @@ select 'null in fkeys.delete_action', de
% .%1, .function_types, .function_types # table_name
% %1, function_type_name, function_type_keyword # name
% varchar, varchar, varchar # type
-% 18, 26, 15 # length
+% 18, 26, 21 # length
[ "sys.function_types", "Aggregate function", "AGGREGATE" ]
[ "sys.function_types", "Filter function", "FILTER FUNCTION"
]
[ "sys.function_types", "Function returning a table", "FUNCTION"
]
@@ -7024,39 +7024,39 @@ select 'null in fkeys.delete_action', de
% %1, action_name, action_id, action_name # name
% varchar, varchar, smallint, varchar # type
% 0, 0, 1, 0 # length
-% .%5, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys,
.fkeys # table_name
+% .%5, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, sys.fkeys,
.fkeys, sys.fkeys # table_name
% %5, id, id, table_id, type, name, rkey,
update_action_id, update_action, delete_action_id, delete_action #
name
% varchar, int, int, int, int, varchar, int,
smallint, varchar, smallint, varchar # type
% 0, 1, 1, 1, 1, 0, 1, 1, 0, 1,
0 # length
-% .%5, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys,
.fkeys # table_name
+% .%5, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, sys.fkeys,
.fkeys, sys.fkeys # table_name
% %5, table_id, id, table_id, type, name, rkey,
update_action_id, update_action, delete_action_id, delete_action #
name
% varchar, int, int, int, int, varchar, int,
smallint, varchar, smallint, varchar # type
% 0, 1, 1, 1, 1, 0, 1, 1, 0, 1,
0 # length
-% .%5, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys,
.fkeys # table_name
+% .%5, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, sys.fkeys,
.fkeys, sys.fkeys # table_name
% %5, type, id, table_id, type, name, rkey,
update_action_id, update_action, delete_action_id, delete_action #
name
% varchar, int, int, int, int, varchar, int,
smallint, varchar, smallint, varchar # type
% 0, 1, 1, 1, 1, 0, 1, 1, 0, 1,
0 # length
-% .%5, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys,
.fkeys # table_name
+% .%5, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, sys.fkeys,
.fkeys, sys.fkeys # table_name
% %5, name, id, table_id, type, name, rkey,
update_action_id, update_action, delete_action_id, delete_action #
name
% varchar, varchar, int, int, int, varchar, int,
smallint, varchar, smallint, varchar # type
% 0, 0, 1, 1, 1, 0, 1, 1, 0, 1,
0 # length
-% .%5, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys,
.fkeys # table_name
+% .%5, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, sys.fkeys,
.fkeys, sys.fkeys # table_name
% %5, rkey, id, table_id, type, name, rkey,
update_action_id, update_action, delete_action_id, delete_action #
name
% varchar, int, int, int, int, varchar, int,
smallint, varchar, smallint, varchar # type
% 0, 1, 1, 1, 1, 0, 1, 1, 0, 1,
0 # length
-% .%5, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys,
.fkeys # table_name
+% .%5, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, sys.fkeys,
.fkeys, sys.fkeys # table_name
% %5, update_action_id, id, table_id, type, name, rkey,
update_action_id, update_action, delete_action_id, delete_action #
name
% varchar, smallint, int, int, int, varchar, int,
smallint, varchar, smallint, varchar # type
% 0, 1, 1, 1, 1, 0, 1, 1, 0, 1,
0 # length
-% .%5, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys,
.fkeys # table_name
+% .%5, sys.fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys,
sys.fkeys, .fkeys, sys.fkeys # table_name
% %5, update_action, id, table_id, type, name, rkey,
update_action_id, update_action, delete_action_id, delete_action #
name
% varchar, varchar, int, int, int, varchar, int,
smallint, varchar, smallint, varchar # type
% 0, 0, 1, 1, 1, 0, 1, 1, 0, 1,
0 # length
-% .%5, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys,
.fkeys # table_name
+% .%5, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, sys.fkeys,
.fkeys, sys.fkeys # table_name
% %5, delete_action_id, id, table_id, type, name, rkey,
update_action_id, update_action, delete_action_id, delete_action #
name
% varchar, smallint, int, int, int, varchar, int,
smallint, varchar, smallint, varchar # type
% 0, 1, 1, 1, 1, 0, 1, 1, 0, 1,
0 # length
-% .%5, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys,
.fkeys # table_name
+% .%5, sys.fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys,
sys.fkeys, .fkeys, sys.fkeys # table_name
% %5, delete_action, id, table_id, type, name, rkey,
update_action_id, update_action, delete_action_id, delete_action #
name
% varchar, varchar, int, int, int, varchar, int,
smallint, varchar, smallint, varchar # type
% 0, 0, 1, 1, 1, 0, 1, 1, 0, 1,
0 # length
diff --git a/sql/test/emptydb/Tests/check.stable.out.int128
b/sql/test/emptydb/Tests/check.stable.out.int128
--- a/sql/test/emptydb/Tests/check.stable.out.int128
+++ b/sql/test/emptydb/Tests/check.stable.out.int128
@@ -5679,7 +5679,7 @@ select 'null in fkeys.delete_action', de
% .%1, .function_types, .function_types # table_name
% %1, function_type_name, function_type_keyword # name
% varchar, varchar, varchar # type
-% 18, 26, 15 # length
+% 18, 26, 21 # length
[ "sys.function_types", "Aggregate function", "AGGREGATE" ]
[ "sys.function_types", "Filter function", "FILTER FUNCTION"
]
[ "sys.function_types", "Function returning a table", "FUNCTION"
]
@@ -7167,39 +7167,39 @@ select 'null in fkeys.delete_action', de
% %1, action_name, action_id, action_name # name
% varchar, varchar, smallint, varchar # type
% 0, 0, 1, 0 # length
-% .%5, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys,
.fkeys # table_name
+% .%5, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, sys.fkeys,
.fkeys, sys.fkeys # table_name
% %5, id, id, table_id, type, name, rkey,
update_action_id, update_action, delete_action_id, delete_action #
name
% varchar, int, int, int, int, varchar, int,
smallint, varchar, smallint, varchar # type
% 0, 1, 1, 1, 1, 0, 1, 1, 0, 1,
0 # length
-% .%5, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys,
.fkeys # table_name
+% .%5, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, .fkeys, sys.fkeys,
.fkeys, sys.fkeys # table_name
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]