Changeset: cb7e09b86c8b for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/cb7e09b86c8b Modified Files: sql/test/emptydb-previous-upgrade-chain/Tests/upgrade.stable.out sql/test/emptydb-previous-upgrade/Tests/upgrade.stable.out sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out sql/test/emptydb-upgrade/Tests/upgrade.stable.out sql/test/emptydb/Tests/check.stable.out sql/test/testdb-previous-upgrade-chain/Tests/upgrade.stable.out sql/test/testdb-previous-upgrade/Tests/upgrade.stable.out sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out sql/test/testdb-upgrade/Tests/upgrade.stable.out Branch: default Log Message:
Approve upgrade code on no-hge build. diffs (250 lines): 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 @@ -376,10 +376,15 @@ drop view if exists sys.dump_partition_t 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(uri) || ' WITH USER ' || sys.SQ(username) || ' ENCRYPTED PASSWORD ' || sys.SQ("hash") FROM sys.remote_table_credentials(s ||'.' || t); + 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 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,10 +370,15 @@ drop view if exists sys.dump_partition_t 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(uri) || ' WITH USER ' || sys.SQ(username) || ' ENCRYPTED PASSWORD ' || sys.SQ("hash") FROM sys.remote_table_credentials(s ||'.' || t); + 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 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 @@ -46,10 +46,15 @@ drop view if exists sys.dump_partition_t 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(uri) || ' WITH USER ' || sys.SQ(username) || ' ENCRYPTED PASSWORD ' || sys.SQ("hash") FROM sys.remote_table_credentials(s ||'.' || t); + 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 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 @@ -46,10 +46,15 @@ drop view if exists sys.dump_partition_t 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(uri) || ' WITH USER ' || sys.SQ(username) || ' ENCRYPTED PASSWORD ' || sys.SQ("hash") FROM sys.remote_table_credentials(s ||'.' || t); + 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 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 @@ -545,6 +545,7 @@ select 'null in fkeys.delete_action', de [ "sys._tables", "sys", "queue", "create view sys.queue as select * from sys.queue();", "VIEW", true, "COMMIT", "WRITABLE", NULL ] [ "sys._tables", "sys", "range_partitions", NULL, "TABLE", true, "COMMIT", "WRITABLE", NULL ] [ "sys._tables", "sys", "rejects", "create view sys.rejects as select * from sys.rejects();", "VIEW", true, "COMMIT", "WRITABLE", NULL ] +[ "sys._tables", "sys", "remote_user_info", NULL, "TABLE", true, "COMMIT", "WRITABLE", NULL ] [ "sys._tables", "sys", "roles", "create view sys.roles as select id, name, grantor from sys.auths a where a.name not in (select u.name from sys.db_user_info u);", "VIEW", true, "COMMIT", "WRITABLE", NULL ] [ "sys._tables", "sys", "schemas", NULL, "TABLE", true, "COMMIT", "WRITABLE", NULL ] [ "sys._tables", "sys", "schemastorage", "create view sys.\"schemastorage\" as select \"schema\", count(*) as \"storages\", sum(columnsize) as columnsize, sum(heapsize) as heapsize, sum(hashes) as hashsize, sum(\"imprints\") as imprintsize, sum(orderidx) as orderidxsize from sys.\"storage\" group by \"schema\" order by \"schema\";", "VIEW", true, "COMMIT", "WRITABLE", NULL ] @@ -1173,6 +1174,9 @@ select 'null in fkeys.delete_action', de [ "sys._columns", "rejects", "fldid", "int", 32, 0, NULL, true, 1, NULL, NULL ] [ "sys._columns", "rejects", "message", "clob", 0, 0, NULL, true, 2, NULL, NULL ] [ "sys._columns", "rejects", "input", "clob", 0, 0, NULL, true, 3, NULL, NULL ] +[ "sys._columns", "remote_user_info", "table_id", "int", 32, 0, NULL, true, 0, NULL, NULL ] +[ "sys._columns", "remote_user_info", "username", "varchar", 1024, 0, NULL, true, 1, NULL, NULL ] +[ "sys._columns", "remote_user_info", "password", "varchar", 256, 0, NULL, true, 2, NULL, NULL ] [ "sys._columns", "roles", "id", "int", 32, 0, NULL, true, 0, NULL, NULL ] [ "sys._columns", "roles", "name", "varchar", 1024, 0, NULL, true, 1, NULL, NULL ] [ "sys._columns", "roles", "grantor", "int", 32, 0, NULL, true, 2, NULL, NULL ] @@ -1584,6 +1588,7 @@ select 'null in fkeys.delete_action', de [ "sys.functions", "sys", "decade", "SYSTEM", "decade", "mtime", "Internal C", "Scalar function", false, false, false, false, NULL, "res_0", "int", 32, 0, "out", "arg_1", "date", 0, 0, "in", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ] [ "sys.functions", "sys", "decade", "SYSTEM", "decade", "mtime", "Internal C", "Scalar function", false, false, false, false, NULL, "res_0", "int", 32, 0, "out", "arg_1", "timestamp", 7, 0, "in", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ] [ "sys.functions", "sys", "decade", "SYSTEM", "decade", "mtime", "Internal C", "Scalar function", false, false, false, false, NULL, "res_0", "int", 32, 0, "out", "arg_1", "timestamptz", 7, 0, "in", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ] +[ "sys.functions", "sys", "decypher", "SYSTEM", "create function sys.decypher (cypher string) returns string external name sql.decypher;", "sql", "MAL", "Scalar function", false, false, false, true, NULL, "result", "clob", 0, 0, "out", "cypher", "clob", 0, 0, "in", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ] [ "sys.functions", "sys", "degrees", "SYSTEM", "degrees", "mmath", "Internal C", "Scalar function", false, false, false, false, NULL, "res_0", "double", 53, 0, "out", "arg_1", "double", 53, 0, "in", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ] [ "sys.functions", "sys", "degrees", "SYSTEM", "degrees", "mmath", "Internal C", "Scalar function", false, false, false, false, NULL, "res_0", "real", 24, 0, "out", "arg_1", "real", 24, 0, "in", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ] [ "sys.functions", "sys", "deltas", "SYSTEM", "create function sys.deltas (\"schema\" string) returns table (\"id\" int, \"segments\" bigint, \"all\" bigint, \"inserted\" bigint, \"updates\" bigint, \"deletes\" bigint, \"level\" int) external name \"sql\".\"deltas\";", "sql", "MAL", "Function returning a table", false, false, false, true, NULL, "id", "int", 32, 0, "out", "segments", "bigint", 64, 0, "out", "all", "bigint", 64, 0, "out", "inserted", "bigint", 64, 0, "out", "updates", "bigint", 64, 0, "out", "deletes", "bigint", 64, 0, "out", "level", "int", 32, 0, "out", "schema", "clob", 0, 0, "in", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ] @@ -1645,7 +1650,7 @@ select 'null in fkeys.delete_action', de [ "sys.functions", "sys", "generate_series", "SYSTEM", "create function sys.generate_series(first tinyint, \"limit\" tinyint, stepsize tinyint) returns table (value tinyint) external name generator.series;", "generator", "MAL", "Function returning a table", false, false, false, true, NULL, "value", "tinyint", 8, 0, "out", "first", "tinyint", 8, 0, "in", "limit", "tinyint", 8, 0, "in", "stepsize", "tinyint", 8, 0, "in", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ] [ "sys.functions", "sys", "geometrytype", "SYSTEM", "create function geometrytype(geom geometry) returns string external name geom.\"GeometryType1\";", "geom", "MAL", "Scalar function", false, false, false, true, NULL, "result", "clob", 0, 0, "out", "geom", "geometry", 0, 0, "in", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ] [ "sys.functions", "sys", "get_merge_table_partition_expressions", "SYSTEM", "create function sys.get_merge_table_partition_expressions(tid int) returns string begin return select case when tp.table_id is not null then ' PARTITION BY ' || ifthenelse(bit_and(tp.type, 2) = 2, 'VALUES ', 'RANGE ') || case when bit_and(tp.type, 4) = 4 then 'ON ' || '(' || (select sys.dq(c.name) || ')' from sys.columns c where c.id = tp.column_id) else 'USING ' || '(' || tp.expression || ')' end else '' end from (values (tid)) t(id) left join sys.table_partitions tp on t.id = tp.table_id; end;", "sql", "SQL", "Scalar function", false, false, false, true, NULL, "result", "clob", 0, 0, "out", "tid", "int", 32, 0, "in", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ] -[ "sys.functions", "sys", "get_remote_table_expressions", "SYSTEM", "create function sys.get_remote_table_expressions(s string, t string) returns string begin return select ' ON ' || sys.sq(uri) || ' WITH USER ' || sys.sq(username) || ' ENCRYPTED PASSWORD ' || sys.sq(\"hash\") from sys.remote_table_credentials(s ||'.' || t); end;", "sql", "SQL", "Scalar function", false, false, false, true, NULL, "result", "clob", 0, 0, "out", "s", "clob", 0, 0, "in", "t", "clob", 0, 0, "in", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ] +[ "sys.functions", "sys", "get_remote_table_expressions", "SYSTEM", "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;", "sql", "SQL", "Scalar function", false, false, false, true, NULL, "result", "clob", 0, 0, "out", "s", "clob", 0, 0, "in", "t", "clob", 0, 0, "in", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ] [ "sys.functions", "sys", "get_type", "SYSTEM", "create function get_type(info integer, format integer) returns string external name geom.\"getType\";", "geom", "MAL", "Scalar function", false, false, false, true, NULL, "result", "clob", 0, 0, "out", "info", "int", 32, 0, "in", "format", "int", 32, 0, "in", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ] [ "sys.functions", "sys", "get_value_for", "SYSTEM", "get_value", "sql", "Internal C", "Scalar function", false, false, false, true, NULL, "res_0", "bigint", 64, 0, "out", "arg_1", "char", 0, 0, "in", "arg_2", "char", 0, 0, "in", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ] [ "sys.functions", "sys", "get_value_for", "SYSTEM", "get_value", "sql", "Internal C", "Scalar function", false, false, false, true, NULL, "res_0", "bigint", 64, 0, "out", "arg_1", "clob", 0, 0, "in", "arg_2", "clob", 0, 0, "in", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ] @@ -1952,7 +1957,6 @@ select 'null in fkeys.delete_action', de [ "sys.functions", "sys", "regexp_replace", "SYSTEM", "create function sys.regexp_replace(ori string, pat string, rep string) returns string begin return sys.regexp_replace(ori, pat, rep, ''); end;", "sql", "SQL", "Scalar function", false, false, false, true, NULL, "result", "clob", 0, 0, "out", "ori", "clob", 0, 0, "in", "pat", "clob", 0, 0, "in", "rep", "clob", 0, 0, "in", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ] [ "sys.functions", "sys", "regexp_replace", "SYSTEM", "create function sys.regexp_replace(ori string, pat string, rep string, flg string) returns string external name pcre.replace;", "pcre", "MAL", "Scalar function", false, false, false, true, NULL, "result", "clob", 0, 0, "out", "ori", "clob", 0, 0, "in", "pat", "clob", 0, 0, "in", "rep", "clob", 0, 0, "in", "flg", "clob", 0, 0, "in", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ] [ "sys.functions", "sys", "rejects", "SYSTEM", "create function sys.rejects() returns table(rowid bigint, fldid int, \"message\" string, \"input\" string) external name sql.copy_rejects;", "sql", "MAL", "Function returning a table", false, false, false, true, NULL, "rowid", "bigint", 64, 0, "out", "fldid", "int", 32, 0, "out", "message", "clob", 0, 0, "out", "input", "clob", 0, 0, "out", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ] -[ "sys.functions", "sys", "remote_table_credentials", "SYSTEM", "create function sys.remote_table_credentials (tablename string) returns table (\"uri\" string, \"username\" string, \"hash\" string) external name sql.rt_credentials;", "sql", "MAL", "Function returning a table", false, false, false, true, NULL, "uri", "clob", 0, 0, "out", "username", "clob", 0, 0, "out", "hash", "clob", 0, 0, "out", "tablename", "clob", 0, 0, "in", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ] [ "sys.functions", "sys", "repeat", "SYSTEM", "repeat", "str", "Internal C", "Scalar function", false, false, false, true, NULL, "res_0", "char", 0, 0, "out", "arg_1", "char", 0, 0, "in", "arg_2", "int", 32, 0, "in", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ] [ "sys.functions", "sys", "repeat", "SYSTEM", "repeat", "str", "Internal C", "Scalar function", false, false, false, true, NULL, "res_0", "clob", 0, 0, "out", "arg_1", "clob", 0, 0, "in", "arg_2", "int", 32, 0, "in", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ] [ "sys.functions", "sys", "repeat", "SYSTEM", "repeat", "str", "Internal C", "Scalar function", false, false, false, true, NULL, "res_0", "varchar", 0, 0, "out", "arg_1", "varchar", 0, 0, "in", "arg_2", "int", 32, 0, "in", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ] @@ -2603,7 +2607,7 @@ select 'null in fkeys.delete_action', de % .%1, .s1, .f1, .s2, .f2, .dt # table_name % %1, name, name, name, name, dependency_type_name # name % char, varchar, varchar, varchar, varchar, varchar # type -% 25, 3, 24, 3, 37, 9 # length +% 25, 3, 17, 3, 37, 9 # length [ "function used by function", "sys", "describe_type", "sys", "describe_columns", "FUNCTION" ] [ "function used by function", "sys", "dump_table_data", "sys", "dump_database", "FUNCTION" ] [ "function used by function", "sys", "dq", "sys", "dump_table_data", "PROCEDURE" ] @@ -2613,7 +2617,7 @@ select 'null in fkeys.delete_action', de [ "function used by function", "sys", "prepare_esc", "sys", "dump_table_data", "PROCEDURE" ] [ "function used by function", "sys", "storage", "sys", "dump_table_data", "PROCEDURE" ] [ "function used by function", "sys", "dq", "sys", "get_merge_table_partition_expressions", "FUNCTION" ] -[ "function used by function", "sys", "remote_table_credentials", "sys", "get_remote_table_expressions", "FUNCTION" ] +[ "function used by function", "sys", "decypher", "sys", "get_remote_table_expressions", "FUNCTION" ] [ "function used by function", "sys", "sq", "sys", "get_remote_table_expressions", "FUNCTION" ] [ "function used by function", "sys", "ms_trunc", "sys", "ms_round", "FUNCTION" ] [ "function used by function", "sys", "dq", "sys", "prepare_esc", "FUNCTION" ] @@ -2673,6 +2677,9 @@ select 'null in fkeys.delete_action', de [ "table used by function", "sys", "tables", "sys", "dump_table_data", "PROCEDURE" ] [ "table used by function", "sys", "columns", "sys", "get_merge_table_partition_expressions", "FUNCTION" ] [ "table used by function", "sys", "table_partitions", "sys", "get_merge_table_partition_expressions", "FUNCTION" ] +[ "table used by function", "sys", "_tables", "sys", "get_remote_table_expressions", "FUNCTION" ] +[ "table used by function", "sys", "remote_user_info", "sys", "get_remote_table_expressions", "FUNCTION" ] +[ "table used by function", "sys", "schemas", "sys", "get_remote_table_expressions", "FUNCTION" ] [ "table used by function", "sys", "spatial_ref_sys", "sys", "getproj4", "FUNCTION" ] [ "table used by function", "sys", "columns", "sys", "storagemodelinit", "PROCEDURE" ] [ "table used by function", "sys", "keys", "sys", "storagemodelinit", "PROCEDURE" ] @@ -2794,6 +2801,15 @@ select 'null in fkeys.delete_action', de [ "column used by function", "sys", "table_partitions", "id", "sys", "get_merge_table_partition_expressions", "FUNCTION" ] [ "column used by function", "sys", "table_partitions", "table_id", "sys", "get_merge_table_partition_expressions", "FUNCTION" ] [ "column used by function", "sys", "table_partitions", "type", "sys", "get_merge_table_partition_expressions", "FUNCTION" ] +[ "column used by function", "sys", "_tables", "id", "sys", "get_remote_table_expressions", "FUNCTION" ] +[ "column used by function", "sys", "_tables", "name", "sys", "get_remote_table_expressions", "FUNCTION" ] +[ "column used by function", "sys", "_tables", "query", "sys", "get_remote_table_expressions", "FUNCTION" ] +[ "column used by function", "sys", "_tables", "schema_id", "sys", "get_remote_table_expressions", "FUNCTION" ] +[ "column used by function", "sys", "remote_user_info", "password", "sys", "get_remote_table_expressions", "FUNCTION" ] +[ "column used by function", "sys", "remote_user_info", "table_id", "sys", "get_remote_table_expressions", "FUNCTION" ] +[ "column used by function", "sys", "remote_user_info", "username", "sys", "get_remote_table_expressions", "FUNCTION" ] +[ "column used by function", "sys", "schemas", "id", "sys", "get_remote_table_expressions", "FUNCTION" ] +[ "column used by function", "sys", "schemas", "name", "sys", "get_remote_table_expressions", "FUNCTION" ] [ "column used by function", "sys", "spatial_ref_sys", "proj4text", "sys", "getproj4", "FUNCTION" ] [ "column used by function", "sys", "spatial_ref_sys", "srid", "sys", "getproj4", "FUNCTION" ] [ "column used by function", "sys", "columns", "name", "sys", "storagemodelinit", "PROCEDURE" ] diff --git a/sql/test/testdb-previous-upgrade-chain/Tests/upgrade.stable.out b/sql/test/testdb-previous-upgrade-chain/Tests/upgrade.stable.out --- a/sql/test/testdb-previous-upgrade-chain/Tests/upgrade.stable.out +++ b/sql/test/testdb-previous-upgrade-chain/Tests/upgrade.stable.out @@ -376,10 +376,15 @@ drop view if exists sys.dump_partition_t 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(uri) || ' WITH USER ' || sys.SQ(username) || ' ENCRYPTED PASSWORD ' || sys.SQ("hash") FROM sys.remote_table_credentials(s ||'.' || t); + 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 diff --git a/sql/test/testdb-previous-upgrade/Tests/upgrade.stable.out b/sql/test/testdb-previous-upgrade/Tests/upgrade.stable.out --- a/sql/test/testdb-previous-upgrade/Tests/upgrade.stable.out +++ b/sql/test/testdb-previous-upgrade/Tests/upgrade.stable.out @@ -370,10 +370,15 @@ drop view if exists sys.dump_partition_t 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(uri) || ' WITH USER ' || sys.SQ(username) || ' ENCRYPTED PASSWORD ' || sys.SQ("hash") FROM sys.remote_table_credentials(s ||'.' || t); + 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 diff --git a/sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out b/sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out --- a/sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out +++ b/sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out @@ -46,10 +46,15 @@ drop view if exists sys.dump_partition_t 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(uri) || ' WITH USER ' || sys.SQ(username) || ' ENCRYPTED PASSWORD ' || sys.SQ("hash") FROM sys.remote_table_credentials(s ||'.' || t); + 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 diff --git a/sql/test/testdb-upgrade/Tests/upgrade.stable.out b/sql/test/testdb-upgrade/Tests/upgrade.stable.out --- a/sql/test/testdb-upgrade/Tests/upgrade.stable.out +++ b/sql/test/testdb-upgrade/Tests/upgrade.stable.out @@ -46,10 +46,15 @@ drop view if exists sys.dump_partition_t 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(uri) || ' WITH USER ' || sys.SQ(username) || ' ENCRYPTED PASSWORD ' || sys.SQ("hash") FROM sys.remote_table_credentials(s ||'.' || t); + 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 _______________________________________________ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org