Changeset: f0e87449d8cf for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/f0e87449d8cf
Modified Files:
sql/backends/monet5/sql_upgrades.c
Branch: default
Log Message:
schema_guard function depends on FQN, so drop it before and later re-create it
diffs (31 lines):
diff --git a/sql/backends/monet5/sql_upgrades.c
b/sql/backends/monet5/sql_upgrades.c
--- a/sql/backends/monet5/sql_upgrades.c
+++ b/sql/backends/monet5/sql_upgrades.c
@@ -3650,6 +3650,7 @@ sql_update_default(Client c, mvc *sql, c
"drop view sys.describe_privileges;\n"
"drop view sys.describe_comments;\n"
"drop view sys.describe_tables;\n"
+ "drop function sys.schema_guard(string,
string, string);\n"
"drop function
sys.get_remote_table_expressions(string, string);\n"
"drop function
sys.get_merge_table_partition_expressions(int);\n"
"drop view sys.describe_constraints;\n"
@@ -3659,6 +3660,10 @@ sql_update_default(Client c, mvc *sql, c
pos += snprintf(buf + pos, bufsize - pos,
"CREATE FUNCTION sys.SQ (s STRING)
RETURNS STRING BEGIN RETURN '''' || sys.replace(s,'''','''''') || ''''; END;\n"
"CREATE FUNCTION sys.FQN(s STRING, t
STRING) RETURNS STRING BEGIN RETURN '\"' || sys.replace(s,'\"','\"\"') ||
'\".\"' || sys.replace(t,'\"','\"\"') || '\"'; END;\n"
+ "CREATE FUNCTION sys.schema_guard(sch
STRING, nme STRING, stmt STRING) RETURNS STRING BEGIN\n"
+ "RETURN\n"
+ " SELECT sys.replace_first(stmt,
'(\\\\s*\"?' || sch || '\"?\\\\s*\\\\.|)\\\\s*\"?' || nme || '\"?\\\\s*', ' '
|| sys.FQN(sch, nme) || ' ', 'imsx');\n"
+ "END;\n"
"CREATE VIEW sys.describe_constraints
AS\n"
" SELECT\n"
" s.name sch,\n"
@@ -3883,7 +3888,7 @@ sql_update_default(Client c, mvc *sql, c
" LEFT OUTER JOIN
sys.function_languages fl ON f.language = fl.language_id\n"
" WHERE s.name <> 'tmp' AND NOT
f.system;\n");
pos += snprintf(buf + pos, bufsize - pos,
- "update sys.functions set system = true
where system <> true and name in ('sq', 'fqn',
'get_merge_table_partition_expressions', 'get_remote_table_expressions') and
schema_id = 2000 and type = %d;\n", F_FUNC);
+ "update sys.functions set system = true
where system <> true and name in ('sq', 'fqn',
'get_merge_table_partition_expressions', 'get_remote_table_expressions',
'schema_guard') and schema_id = 2000 and type = %d;\n", F_FUNC);
pos += snprintf(buf + pos, bufsize - pos,
"update sys._tables set system = true where
name in ('describe_constraints', 'describe_tables', 'describe_comments',
'describe_privileges', 'describe_partition_tables', 'describe_functions') AND
schema_id = 2000;\n");
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list