Changeset: 01ee70b5e6f8 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/01ee70b5e6f8
Modified Files:
        
sql/test/emptydb-previous-upgrade-chain-hge/Tests/upgrade.stable.out.int128
        sql/test/emptydb-previous-upgrade-chain/Tests/upgrade.stable.out
        sql/test/emptydb-previous-upgrade-chain/Tests/upgrade.stable.out.int128
        sql/test/emptydb-previous-upgrade-hge/Tests/upgrade.stable.out.int128
        sql/test/emptydb-previous-upgrade/Tests/upgrade.stable.out
        sql/test/emptydb-previous-upgrade/Tests/upgrade.stable.out.int128
        sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
        sql/test/emptydb-upgrade-chain/Tests/upgrade.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-hge/Tests/upgrade.stable.out.int128
        sql/test/emptydb-upgrade/Tests/upgrade.stable.out
        sql/test/emptydb-upgrade/Tests/upgrade.stable.out.int128
        
sql/test/testdb-previous-upgrade-chain-hge/Tests/upgrade.stable.out.int128
        sql/test/testdb-previous-upgrade-chain/Tests/upgrade.stable.out
        sql/test/testdb-previous-upgrade-chain/Tests/upgrade.stable.out.int128
        sql/test/testdb-previous-upgrade-hge/Tests/dump.stable.out
        sql/test/testdb-previous-upgrade-hge/Tests/upgrade.stable.out.int128
        sql/test/testdb-previous-upgrade/Tests/dump.stable.out
        sql/test/testdb-previous-upgrade/Tests/upgrade.stable.out
        sql/test/testdb-previous-upgrade/Tests/upgrade.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.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.int128
Branch: Dec2023
Log Message:

Dec2023 has been released, so upgrades from different source.


diffs (truncated from 12648 to 300 lines):

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
@@ -1,369 +1,6 @@
 Running database upgrade commands to update system tables.
 
 Running database upgrade commands:
-drop procedure if exists wlc.master() cascade;
-drop procedure if exists wlc.master(string) cascade;
-drop procedure if exists wlc.stop() cascade;
-drop procedure if exists wlc.flush() cascade;
-drop procedure if exists wlc.beat(int) cascade;
-drop function if exists wlc.clock() cascade;
-drop function if exists wlc.tick() cascade;
-drop procedure if exists wlr.master(string) cascade;
-drop procedure if exists wlr.stop() cascade;
-drop procedure if exists wlr.accept() cascade;
-drop procedure if exists wlr.replicate() cascade;
-drop procedure if exists wlr.replicate(timestamp) cascade;
-drop procedure if exists wlr.replicate(tinyint) cascade;
-drop procedure if exists wlr.replicate(smallint) cascade;
-drop procedure if exists wlr.replicate(integer) cascade;
-drop procedure if exists wlr.replicate(bigint) cascade;
-drop procedure if exists wlr.beat(integer) cascade;
-drop function if exists wlr.clock() cascade;
-drop function if exists wlr.tick() cascade;
-drop schema if exists wlc cascade;
-drop schema if exists wlr cascade;
-
-Running database upgrade commands:
-create function sys.regexp_replace(ori string, pat string, rep string, flg 
string)
-returns string external name pcre.replace;
-grant execute on function regexp_replace(string, string, string, string) to 
public;
-create function sys.regexp_replace(ori string, pat string, rep string)
-returns string
-begin
- return sys.regexp_replace(ori, pat, rep, '');
-end;
-grant execute on function regexp_replace(string, string, string) to public;
-update sys.functions set system = true where system <> true and name = 
'regexp_replace' and schema_id = 2000 and type = 1;
-
-Running database upgrade commands:
-drop function if exists sys.dump_database(boolean) cascade;
-drop procedure if exists sys.dump_table_data() cascade;
-drop procedure if exists sys.dump_table_data(string, string) cascade;
-drop view if exists sys.dump_tables cascade;
-drop view if exists sys.dump_comments cascade;
-drop function if exists sys.prepare_esc(string, string) cascade;
-drop view if exists sys.dump_partition_tables cascade;
-drop view if exists sys.dump_create_users cascade;
-drop view if exists sys.describe_tables cascade;
-drop function if exists sys.get_remote_table_expressions(string, string) 
cascade;
-drop function if exists sys.remote_table_credentials(string) cascade;
-drop function if exists sys.sq(string) cascade;
-create table sys.remote_user_info (table_id int, username varchar(1024), 
password varchar(256));
-create function sys.decypher (cypher string) returns string external name 
sql.decypher;
-update sys.functions set system = true where system <> true and name = 
'decypher' and schema_id = 2000 and type = 1;
-update sys._tables set system = true where system <> true and name = 
'remote_user_info' and schema_id = 2000;
-CREATE FUNCTION sys.SQ (s STRING) RETURNS STRING BEGIN RETURN '''' || 
sys.replace(s,'''','''''') || ''''; END;
-CREATE FUNCTION sys.get_remote_table_expressions(s STRING, t STRING) RETURNS 
STRING BEGIN
- RETURN SELECT ' ON ' || sys.SQ(tt.query) || ' WITH USER ' || sys.SQ(username) 
|| ' ENCRYPTED PASSWORD ' || sys.SQ(sys.decypher("password")) FROM 
sys.remote_user_info r, sys._tables tt, sys.schemas ss where tt.name = t and 
ss.name = s and tt.schema_id = ss.id and r.table_id = tt.id;
-END;
-CREATE VIEW sys.describe_tables AS
- SELECT
- t.id o,
- s.name sch,
- t.name tab,
- ts.table_type_name typ,
- (SELECT
- ' (' ||
- GROUP_CONCAT(
- sys.DQ(c.name) || ' ' ||
- sys.describe_type(c.type, c.type_digits, c.type_scale) ||
- ifthenelse(c."null" = 'false', ' NOT NULL', '')
- , ', ') || ')'
- FROM sys._columns c
- WHERE c.table_id = t.id) col,
- CASE ts.table_type_name
- WHEN 'REMOTE TABLE' THEN
- sys.get_remote_table_expressions(s.name, t.name)
- WHEN 'MERGE TABLE' THEN
- sys.get_merge_table_partition_expressions(t.id)
- WHEN 'VIEW' THEN
- sys.schema_guard(s.name, t.name, t.query)
- ELSE
- ''
- END opt
- FROM sys.schemas s, sys.table_types ts, sys.tables t
- WHERE ts.table_type_name IN ('TABLE', 'VIEW', 'MERGE TABLE', 'REMOTE TABLE', 
'REPLICA TABLE', 'UNLOGGED TABLE')
- AND t.system = FALSE
- AND s.id = t.schema_id
- AND ts.table_type_id = t.type
- AND s.name <> 'tmp';
-CREATE VIEW sys.dump_create_users AS
- SELECT
- 'CREATE USER ' || sys.dq(ui.name) || ' WITH ENCRYPTED PASSWORD ' ||
- sys.sq(sys.password_hash(ui.name)) ||
- ' NAME ' || sys.sq(ui.fullname) || ' SCHEMA sys' || ifthenelse(ui.schema_path 
= '"sys"', '', ' SCHEMA PATH ' || sys.sq(ui.schema_path)) || ';' stmt,
- ui.name user_name
- FROM sys.db_user_info ui, sys.schemas s
- WHERE ui.default_schema = s.id
- AND ui.name <> 'monetdb'
- AND ui.name <> '.snapshot';
-CREATE VIEW sys.dump_partition_tables AS
- SELECT
- 'ALTER TABLE ' || sys.FQN(m_sch, m_tbl) || ' ADD TABLE ' || sys.FQN(p_sch, 
p_tbl) ||
- CASE
- WHEN tpe = 'VALUES' THEN ' AS PARTITION IN (' || pvalues || ')'
- WHEN tpe = 'RANGE' THEN ' AS PARTITION FROM ' || ifthenelse(minimum IS NOT 
NULL, sys.SQ(minimum), 'RANGE MINVALUE') || ' TO ' || ifthenelse(maximum IS NOT 
NULL, sys.SQ(maximum), 'RANGE MAXVALUE')
- WHEN tpe = 'FOR NULLS' THEN ' AS PARTITION FOR NULL VALUES'
- ELSE '' --'READ ONLY'
- END ||
- CASE WHEN tpe in ('VALUES', 'RANGE') AND with_nulls THEN ' WITH NULL VALUES' 
ELSE '' END ||
- ';' stmt,
- m_sch merge_schema_name,
- m_tbl merge_table_name,
- p_sch partition_schema_name,
- p_tbl partition_table_name
- FROM sys.describe_partition_tables;
-CREATE VIEW sys.dump_tables AS
- SELECT
- t.o o,
- CASE
- WHEN t.typ <> 'VIEW' THEN
- 'CREATE ' || t.typ || ' ' || sys.FQN(t.sch, t.tab) || t.col || t.opt || ';'
- ELSE
- t.opt
- END stmt,
- t.sch schema_name,
- t.tab table_name
- FROM sys.describe_tables t;
-CREATE VIEW sys.dump_comments AS
- SELECT 'COMMENT ON ' || c.tpe || ' ' || c.fqn || ' IS ' || sys.SQ(c.rem) || 
';' stmt FROM sys.describe_comments c;
-CREATE FUNCTION sys.prepare_esc(s STRING, t STRING) RETURNS STRING
-BEGIN
- RETURN
- CASE
- WHEN (t = 'varchar' OR t ='char' OR t = 'clob' OR t = 'json' OR t = 
'geometry' OR t = 'url') THEN
- 'CASE WHEN ' || sys.DQ(s) || ' IS NULL THEN ''null'' ELSE ' || 'sys.esc(' || 
sys.DQ(s) || ')' || ' END'
- ELSE
- 'CASE WHEN ' || sys.DQ(s) || ' IS NULL THEN ''null'' ELSE CAST(' || sys.DQ(s) 
|| ' AS STRING) END'
- END;
-END;
-CREATE PROCEDURE sys.dump_table_data(sch STRING, tbl STRING)
-BEGIN
- DECLARE tid INT;
- SET tid = (SELECT MIN(t.id) FROM sys.tables t, sys.schemas s WHERE t.name = 
tbl AND t.schema_id = s.id AND s.name = sch);
- IF tid IS NOT NULL THEN
- DECLARE k INT;
- DECLARE m INT;
- SET k = (SELECT MIN(c.id) FROM sys.columns c WHERE c.table_id = tid);
- SET m = (SELECT MAX(c.id) FROM sys.columns c WHERE c.table_id = tid);
- IF k IS NOT NULL AND m IS NOT NULL THEN
- DECLARE cname STRING;
- DECLARE ctype STRING;
- DECLARE _cnt INT;
- SET cname = (SELECT c.name FROM sys.columns c WHERE c.id = k);
- SET ctype = (SELECT c.type FROM sys.columns c WHERE c.id = k);
- SET _cnt = (SELECT count FROM sys.storage(sch, tbl, cname));
- IF _cnt > 0 THEN
- DECLARE COPY_INTO_STMT STRING;
- DECLARE SELECT_DATA_STMT STRING;
- SET COPY_INTO_STMT = 'COPY ' || _cnt || ' RECORDS INTO ' || sys.FQN(sch, tbl) 
|| '(' || sys.DQ(cname);
- SET SELECT_DATA_STMT = 'SELECT (SELECT COUNT(*) FROM sys.dump_statements) + 
RANK() OVER(), ' || sys.prepare_esc(cname, ctype);
- WHILE (k < m) DO
- SET k = (SELECT MIN(c.id) FROM sys.columns c WHERE c.table_id = tid AND c.id 
> k);
- SET cname = (SELECT c.name FROM sys.columns c WHERE c.id = k);
- SET ctype = (SELECT c.type FROM sys.columns c WHERE c.id = k);
- SET COPY_INTO_STMT = (COPY_INTO_STMT || ', ' || sys.DQ(cname));
- SET SELECT_DATA_STMT = (SELECT_DATA_STMT || '|| ''|'' || ' || 
sys.prepare_esc(cname, ctype));
- END WHILE;
- SET COPY_INTO_STMT = (COPY_INTO_STMT || R') FROM STDIN USING DELIMITERS 
''|'',E''\n'',''"'';');
- SET SELECT_DATA_STMT = (SELECT_DATA_STMT || ' FROM ' || sys.FQN(sch, tbl));
- INSERT INTO sys.dump_statements VALUES ((SELECT COUNT(*) FROM 
sys.dump_statements) + 1, COPY_INTO_STMT);
- CALL sys.EVAL('INSERT INTO sys.dump_statements ' || SELECT_DATA_STMT || ';');
- END IF;
- END IF;
- END IF;
- END;
-CREATE PROCEDURE sys.dump_table_data()
-BEGIN
- DECLARE i INT;
- SET i = (SELECT MIN(t.id) FROM sys.tables t, sys.table_types ts WHERE t.type 
= ts.table_type_id AND ts.table_type_name = 'TABLE' AND NOT t.system);
- IF i IS NOT NULL THEN
- DECLARE M INT;
- SET M = (SELECT MAX(t.id) FROM sys.tables t, sys.table_types ts WHERE t.type 
= ts.table_type_id AND ts.table_type_name = 'TABLE' AND NOT t.system);
- DECLARE sch STRING;
- DECLARE tbl STRING;
- WHILE i IS NOT NULL AND i <= M DO
- SET sch = (SELECT s.name FROM sys.tables t, sys.schemas s WHERE s.id = 
t.schema_id AND t.id = i);
- SET tbl = (SELECT t.name FROM sys.tables t, sys.schemas s WHERE s.id = 
t.schema_id AND t.id = i);
- CALL sys.dump_table_data(sch, tbl);
- SET i = (SELECT MIN(t.id) FROM sys.tables t, sys.table_types ts WHERE t.type 
= ts.table_type_id AND ts.table_type_name = 'TABLE' AND NOT t.system AND t.id > 
i);
- END WHILE;
- END IF;
-END;
-CREATE FUNCTION sys.dump_database(describe BOOLEAN) RETURNS TABLE(o int, stmt 
STRING)
-BEGIN
- SET SCHEMA sys;
- TRUNCATE sys.dump_statements;
- INSERT INTO sys.dump_statements VALUES (1, 'START TRANSACTION;');
- INSERT INTO sys.dump_statements VALUES (2, 'SET SCHEMA "sys";');
- INSERT INTO sys.dump_statements SELECT (SELECT COUNT(*) FROM 
sys.dump_statements) + RANK() OVER(), stmt FROM sys.dump_create_roles;
- INSERT INTO sys.dump_statements SELECT (SELECT COUNT(*) FROM 
sys.dump_statements) + RANK() OVER(), stmt FROM sys.dump_create_users;
- INSERT INTO sys.dump_statements SELECT (SELECT COUNT(*) FROM 
sys.dump_statements) + RANK() OVER(), stmt FROM sys.dump_create_schemas;
- INSERT INTO sys.dump_statements SELECT (SELECT COUNT(*) FROM 
sys.dump_statements) + RANK() OVER(), stmt FROM sys.dump_user_defined_types;
- INSERT INTO sys.dump_statements SELECT (SELECT COUNT(*) FROM 
sys.dump_statements) + RANK() OVER(), stmt FROM sys.dump_add_schemas_to_users;
- INSERT INTO sys.dump_statements SELECT (SELECT COUNT(*) FROM 
sys.dump_statements) + RANK() OVER(), stmt FROM sys.dump_grant_user_privileges;
- INSERT INTO sys.dump_statements SELECT (SELECT COUNT(*) FROM 
sys.dump_statements) + RANK() OVER(), stmt FROM sys.dump_sequences;
- --functions and table-likes can be interdependent. They should be inserted in 
the order of their catalogue id.
- INSERT INTO sys.dump_statements SELECT (SELECT COUNT(*) FROM 
sys.dump_statements) + RANK() OVER(ORDER BY stmts.o), stmts.s
- FROM (
- SELECT f.o, f.stmt FROM sys.dump_functions f
- UNION ALL
- SELECT t.o, t.stmt FROM sys.dump_tables t
- ) AS stmts(o, s);
- -- dump table data before adding constraints and fixing sequences
- IF NOT DESCRIBE THEN
- CALL sys.dump_table_data();
- END IF;
- INSERT INTO sys.dump_statements SELECT (SELECT COUNT(*) FROM 
sys.dump_statements) + RANK() OVER(), stmt FROM sys.dump_start_sequences;
- INSERT INTO sys.dump_statements SELECT (SELECT COUNT(*) FROM 
sys.dump_statements) + RANK() OVER(), stmt FROM sys.dump_column_defaults;
- INSERT INTO sys.dump_statements SELECT (SELECT COUNT(*) FROM 
sys.dump_statements) + RANK() OVER(), stmt FROM sys.dump_table_constraint_type;
- INSERT INTO sys.dump_statements SELECT (SELECT COUNT(*) FROM 
sys.dump_statements) + RANK() OVER(), stmt FROM sys.dump_indices;
- INSERT INTO sys.dump_statements SELECT (SELECT COUNT(*) FROM 
sys.dump_statements) + RANK() OVER(), stmt FROM sys.dump_foreign_keys;
- INSERT INTO sys.dump_statements SELECT (SELECT COUNT(*) FROM 
sys.dump_statements) + RANK() OVER(), stmt FROM sys.dump_partition_tables;
- INSERT INTO sys.dump_statements SELECT (SELECT COUNT(*) FROM 
sys.dump_statements) + RANK() OVER(), stmt FROM sys.dump_triggers;
- INSERT INTO sys.dump_statements SELECT (SELECT COUNT(*) FROM 
sys.dump_statements) + RANK() OVER(), stmt FROM sys.dump_comments;
- INSERT INTO sys.dump_statements SELECT (SELECT COUNT(*) FROM 
sys.dump_statements) + RANK() OVER(), stmt FROM sys.dump_table_grants;
- INSERT INTO sys.dump_statements SELECT (SELECT COUNT(*) FROM 
sys.dump_statements) + RANK() OVER(), stmt FROM sys.dump_column_grants;
- INSERT INTO sys.dump_statements SELECT (SELECT COUNT(*) FROM 
sys.dump_statements) + RANK() OVER(), stmt FROM sys.dump_function_grants;
- --TODO Improve performance of dump_table_data.
- --TODO loaders ,procedures, window and filter sys.functions.
- --TODO look into order dependent group_concat
- INSERT INTO sys.dump_statements VALUES ((SELECT COUNT(*) FROM 
sys.dump_statements) + 1, 'COMMIT;');
- RETURN sys.dump_statements;
-END;
-update sys.functions set system = true where system <> true and name in ('sq', 
'get_remote_table_expressions', 'prepare_esc') and schema_id = 2000 and type = 
1;
-update sys._tables set system = true where system <> true and name in 
('describe_tables', 'dump_create_users', 'dump_partition_tables', 
'dump_comments', 'dump_tables') and schema_id = 2000;
-update sys.functions set system = true where system <> true and name = 
'dump_table_data' and schema_id = 2000 and type = 2;
-update sys.functions set system = true where system <> true and name = 
'dump_database' and schema_id = 2000 and type = 5;
-GRANT SELECT ON sys.describe_tables TO PUBLIC;
-
-Running database upgrade commands:
-drop view if exists sys.dependency_tables_on_functions cascade;
-drop view if exists sys.dependency_views_on_functions cascade;
-CREATE VIEW sys.dependency_tables_on_functions AS
-SELECT t.schema_id AS table_schema_id, t.id AS table_id, t.name AS table_name, 
f.id AS function_id, f.name AS function_name, f.type AS function_type, 
dep.depend_type AS depend_type
-  FROM sys.functions AS f, sys.tables AS t, sys.dependencies AS dep
- WHERE t.id = dep.id AND f.id = dep.depend_id
-   AND dep.depend_type = 7 AND f.type <> 2 AND t.type NOT IN (1, 11)
- ORDER BY t.name, t.schema_id, f.name, f.id;
-GRANT SELECT ON sys.dependency_tables_on_functions TO PUBLIC;
-CREATE VIEW sys.dependency_views_on_functions AS
-SELECT v.schema_id AS view_schema_id, v.id AS view_id, v.name AS view_name, 
f.id AS function_id, f.name AS function_name, f.type AS function_type, 
dep.depend_type AS depend_type
-  FROM sys.functions AS f, sys.tables AS v, sys.dependencies AS dep
- WHERE v.id = dep.id AND f.id = dep.depend_id
-   AND dep.depend_type = 7 AND f.type <> 2 AND v.type IN (1, 11)
- ORDER BY v.name, v.schema_id, f.name, f.id;
-GRANT SELECT ON sys.dependency_views_on_functions TO PUBLIC;
-update sys._tables set system = true where system <> true and name in 
('dependency_tables_on_functions','dependency_views_on_functions') and 
schema_id = 2000;
-
-Running database upgrade commands:
-create function sys.database ()
-returns string
-external name inspect."getDatabaseName";
-grant execute on function sys.database() to public;
-update sys.functions set system = true where system <> true and name = 
'database' and schema_id = 2000 and type = 1;
-
-Running database upgrade commands:
-create function sys.queue(username string) returns table("tag" bigint, 
"sessionid" int, "username" string, "started" timestamp, "status" string, 
"query" string, "finished" timestamp, "maxworkers" int, "footprint" int) 
external name sysmon.queue;
-create procedure sys.pause(tag bigint, username string) external name 
sysmon.pause;
-create procedure sys.resume(tag bigint, username string) external name 
sysmon.resume;
-create procedure sys.stop(tag bigint, username string) external name 
sysmon.stop;
-update sys.functions set system = true where system <> true and mod = 'sysmon' 
and name in ('stop', 'pause', 'resume', 'queue');
-
-Running database upgrade commands:
-drop procedure sys.settimeout(bigint) cascade;
-drop procedure sys.settimeout(bigint, bigint) cascade;
-drop procedure sys.setsession(bigint) cascade;
-
-Running database upgrade commands:
-create function sys.levenshtein(x string, y string)
-returns int external name txtsim.levenshtein;
-grant execute on function levenshtein(string, string) to public;
-create function sys.levenshtein(x string, y string, insdel int, rep int)
-returns int external name txtsim.levenshtein;
-grant execute on function levenshtein(string, string, int, int) to public;
-create function sys.levenshtein(x string, y string, insdel int, rep int, trans 
int)
-returns int external name txtsim.levenshtein;
-grant execute on function levenshtein(string, string, int, int, int) to public;
-create filter function sys.maxlevenshtein(x string, y string, k int)
-external name txtsim.maxlevenshtein;
-grant execute on filter function maxlevenshtein(string, string, int) to public;
-create filter function sys.maxlevenshtein(x string, y string, k int, insdel 
int, rep int)
-external name txtsim.maxlevenshtein;
-grant execute on filter function maxlevenshtein(string, string, int, int, int) 
to public;
-create function sys.jarowinkler(x string, y string)
-returns double external name txtsim.jarowinkler;
-grant execute on function jarowinkler(string, string) to public;
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to