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

Reply via email to