Changeset: d5d22b7b6459 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/d5d22b7b6459
Modified Files:
sql/backends/monet5/UDF/capi/capi.c
sql/backends/monet5/sql_cat.c
sql/backends/monet5/sql_gencode.c
sql/backends/monet5/sql_upgrades.c
sql/server/rel_exp.h
sql/server/rel_rewriter.h
sql/server/sql_privileges.c
sql/server/sql_qc.c
sql/storage/store.c
sql/test/BugTracker-2015/Tests/crash.Bug-3736.test
sql/test/Tests/function_syntax.test
sql/test/Tests/procedure_syntax.test
Branch: mangled
Log Message:
More fixes...
diffs (truncated from 959 to 300 lines):
diff --git a/sql/backends/monet5/UDF/capi/capi.c
b/sql/backends/monet5/UDF/capi/capi.c
--- a/sql/backends/monet5/UDF/capi/capi.c
+++ b/sql/backends/monet5/UDF/capi/capi.c
@@ -539,7 +539,7 @@ static str CUDFeval(Client cntxt, MalBlk
sqlfun = *(sql_func **)getArgReference_ptr(stk, pci, pci->retc);
}
- funcname = sqlfun ? sqlfun->base.name : "yet_another_c_function";
+ funcname = sqlfun ? sqlfun->sql_name : "yet_another_c_function";
args = (str *)GDKzalloc(sizeof(str) * pci->argc);
output_names = (str *)GDKzalloc(sizeof(str) * pci->argc);
diff --git a/sql/backends/monet5/sql_cat.c b/sql/backends/monet5/sql_cat.c
--- a/sql/backends/monet5/sql_cat.c
+++ b/sql/backends/monet5/sql_cat.c
@@ -995,7 +995,7 @@ create_func(mvc *sql, char *sname, char
sql_func *sff = sf->func;
if (!sff->s || sff->system)
- throw(SQL,"sql.create_func", SQLSTATE(42000)
"%s %s: not allowed to replace system %s %s;", base, F, fn, sff->base.name);
+ throw(SQL,"sql.create_func", SQLSTATE(42000)
"%s %s: not allowed to replace system %s %s;", base, F, fn, sff->sql_name);
/* if all function parameters are the same, return */
if (sff->lang == f->lang && sff->type == f->type &&
@@ -1006,7 +1006,7 @@ create_func(mvc *sql, char *sname, char
return MAL_SUCCEED;
if (mvc_check_dependency(sql, sff->base.id,
!IS_PROC(sff) ? FUNC_DEPENDENCY : PROC_DEPENDENCY, NULL))
- throw(SQL,"sql.create_func", SQLSTATE(42000)
"%s %s: there are database objects dependent on %s %s;", base, F, fn,
sff->base.name);
+ throw(SQL,"sql.create_func", SQLSTATE(42000)
"%s %s: there are database objects dependent on %s %s;", base, F, fn,
sff->sql_name);
switch (mvc_drop_func(sql, s, sff, 0)) {
case -1:
throw(SQL,"sql.create_func",
SQLSTATE(HY013) MAL_MALLOC_FAIL);
diff --git a/sql/backends/monet5/sql_gencode.c
b/sql/backends/monet5/sql_gencode.c
--- a/sql/backends/monet5/sql_gencode.c
+++ b/sql/backends/monet5/sql_gencode.c
@@ -1158,12 +1158,12 @@ backend_create_mal_func(mvc *m, sql_func
if (!(fimp = mal_function_find_implementation_address(m, f)))
return -1;
if (!backend_resolve_function(&clientid, f, fimp, &new_side_effect)) {
- (void) sql_error(m, 10, SQLSTATE(3F000) "MAL external name
%s.%s not bound (%s.%s)", f->mod, fimp, f->s->base.name, f->base.name);
+ (void) sql_error(m, 10, SQLSTATE(3F000) "MAL external name
%s.%s not bound (%s.%s)", f->mod, fimp, f->s->base.name, f->sql_name);
return -1;
}
if (old_side_effect != new_side_effect) {
(void) sql_error(m, 10, SQLSTATE(42000) "Side-effect value from
the SQL %s %s.%s doesn't match the MAL definition %s.%s\n"
- "Either re-create the %s, or
fix the MAL definition and restart the database", fn, f->s->base.name,
f->base.name, f->mod, fimp, fn);
+ "Either re-create the %s, or
fix the MAL definition and restart the database", fn, f->s->base.name,
f->sql_name, f->mod, fimp, fn);
return -1;
}
MT_lock_set(&sql_gencodeLock);
@@ -1210,11 +1210,11 @@ backend_create_sql_func(backend *be, sql
#ifndef NDEBUG
/* for debug builds we keep the SQL function name in the MAL function
name to make it easy to debug */
- if (strlen(f->base.name) + 21 >= IDLENGTH) { /* 20 bits for u64 number
+ '%' */
- (void) sql_error(m, 10, SQLSTATE(42000) "MAL function name '%s'
too large for the backend", f->base.name);
+ if (strlen(f->sql_name) + 21 >= IDLENGTH) { /* 20 bits for u64 number +
'%' */
+ (void) sql_error(m, 10, SQLSTATE(42000) "MAL function name '%s'
too large for the backend", f->sql_name);
return -1;
}
- (void) snprintf(befname, IDLENGTH, "%%" LLFMT "%s",
store_function_counter(m->store), f->base.name);
+ (void) snprintf(befname, IDLENGTH, "%%" LLFMT "%s",
store_function_counter(m->store), f->sql_name);
#else
(void) snprintf(befname, IDLENGTH, "f_" LLFMT,
store_function_counter(m->store));
#endif
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
@@ -76,9 +76,9 @@ sql_fix_system_tables(Client c, mvc *sql
pos += snprintf(buf + pos, bufsize - pos,
"insert into sys.functions values"
- " (%d, '%s', '%s', '%s',"
+ " (%d, '%s', '%s', '%s', '%s',"
" %d, %d, %s, %s, %s, %d, %s, %s);\n",
- func->base.id, func->sql_name,
+ func->base.id, func->base.name, func->sql_name,
sql_func_imp(func), sql_func_mod(func), (int)
FUNC_LANG_INT,
(int) func->type,
boolnames[func->side_effect],
@@ -236,10 +236,10 @@ sql_update_hugeint(Client c, mvc *sql, c
"GRANT EXECUTE ON FUNCTION json.filter(json, hugeint)
TO PUBLIC;\n");
pos += snprintf(buf + pos, bufsize - pos,
- "update sys.functions set system = true where system <>
true and name in ('generate_series') and schema_id = (select id from
sys.schemas where name = 'sys') and type = %d;\n"
- "update sys.functions set system = true where system <>
true and name in ('stddev_samp', 'stddev_pop', 'var_samp', 'covar_samp',
'var_pop', 'covar_pop', 'median', 'median_avg', 'quantile', 'quantile_avg',
'corr') and schema_id = (select id from sys.schemas where name = 'sys') and
type = %d;\n"
- "update sys.functions set system = true where system <>
true and name in ('stddev_samp', 'stddev_pop', 'var_samp', 'covar_samp',
'var_pop', 'covar_pop', 'corr') and schema_id = (select id from sys.schemas
where name = 'sys') and type = %d;\n"
- "update sys.functions set system = true where system <>
true and name = 'filter' and schema_id = (select id from sys.schemas where name
= 'json') and type = %d;\n",
+ "update sys.functions set system = true where system <>
true and sqlname in ('generate_series') and schema_id = (select id from
sys.schemas where name = 'sys') and type = %d;\n"
+ "update sys.functions set system = true where system <>
true and sqlname in ('stddev_samp', 'stddev_pop', 'var_samp', 'covar_samp',
'var_pop', 'covar_pop', 'median', 'median_avg', 'quantile', 'quantile_avg',
'corr') and schema_id = (select id from sys.schemas where name = 'sys') and
type = %d;\n"
+ "update sys.functions set system = true where system <>
true and sqlname in ('stddev_samp', 'stddev_pop', 'var_samp', 'covar_samp',
'var_pop', 'covar_pop', 'corr') and schema_id = (select id from sys.schemas
where name = 'sys') and type = %d;\n"
+ "update sys.functions set system = true where system <>
true and sqlname = 'filter' and schema_id = (select id from sys.schemas where
name = 'json') and type = %d;\n",
(int) F_UNION, (int) F_AGGR, (int) F_ANALYTIC, (int)
F_FUNC);
pos += snprintf(buf + pos, bufsize - pos, "set schema \"%s\";\n",
prev_schema);
@@ -620,13 +620,13 @@ sql_update_storagemodel(Client c, mvc *s
" and name in ('storage', 'tablestorage', 'schemastorage',
'storagemodelinput', 'storagemodel', 'tablestoragemodel');\n");
pos += snprintf(buf + pos, bufsize - pos,
"update sys.functions set system = true where system <> true
and schema_id = (select id from sys.schemas where name = 'sys')"
- " and name in ('storage') and type = %d;\n", (int) F_UNION);
+ " and sqlname in ('storage') and type = %d;\n", (int) F_UNION);
pos += snprintf(buf + pos, bufsize - pos,
"update sys.functions set system = true where system <> true
and schema_id = (select id from sys.schemas where name = 'sys')"
- " and name in ('storagemodelinit') and type = %d;\n", (int)
F_PROC);
+ " and sqlname in ('storagemodelinit') and type = %d;\n", (int)
F_PROC);
pos += snprintf(buf + pos, bufsize - pos,
"update sys.functions set system = true where system <> true
and schema_id = (select id from sys.schemas where name = 'sys')"
- " and name in ('columnsize', 'heapsize', 'hashsize',
'imprintsize') and type = %d;\n", (int) F_FUNC);
+ " and sqlname in ('columnsize', 'heapsize', 'hashsize',
'imprintsize') and type = %d;\n", (int) F_FUNC);
pos += snprintf(buf + pos, bufsize - pos, "set schema \"%s\";\n",
prev_schema);
assert(pos < bufsize);
@@ -805,7 +805,7 @@ sql_update_nov2019(Client c, mvc *sql, c
throw(SQL, __func__, SQLSTATE(HY013) MAL_MALLOC_FAIL);
pos += snprintf(buf + pos, bufsize - pos,
- "select id from sys.args where func_id in (select id
from sys.functions where schema_id = (select id from sys.schemas where name =
'sys') and name = 'second' and func = 'sql_seconds') and number = 0 and
type_scale = 3;\n");
+ "select id from sys.args where func_id in (select id
from sys.functions where schema_id = (select id from sys.schemas where name =
'sys') and sqlname = 'second' and func = 'sql_seconds') and number = 0 and
type_scale = 3;\n");
err = SQLstatementIntern(c, buf, "update", 1, 0, &output);
if (err) {
GDKfree(buf);
@@ -953,24 +953,24 @@ sql_update_nov2019(Client c, mvc *sql, c
pos += snprintf(buf + pos, bufsize - pos,
"update sys.functions set system = true where system <>
true and schema_id = (select id from sys.schemas where name = 'sys')"
- " and name in ('deltas') and type = %d;\n", (int)
F_UNION);
+ " and sqlname in ('deltas') and type = %d;\n", (int)
F_UNION);
pos += snprintf(buf + pos, bufsize - pos,
"update sys.functions set system = true where system <>
true and schema_id = (select id from sys.schemas where name = 'sys')"
- " and name in ('median_avg', 'quantile_avg') and type =
%d;\n", (int) F_AGGR);
+ " and sqlname in ('median_avg', 'quantile_avg') and
type = %d;\n", (int) F_AGGR);
pos += snprintf(buf + pos, bufsize - pos,
"update sys.schemas set system = true where name in
('wlc', 'wlr');\n");
pos += snprintf(buf + pos, bufsize - pos,
"update sys.functions set system = true where system <>
true and schema_id = (select id from sys.schemas where name = 'wlc')"
- " and name in ('clock', 'tick') and type = %d;\n",
(int) F_FUNC);
+ " and sqlname in ('clock', 'tick') and type = %d;\n",
(int) F_FUNC);
pos += snprintf(buf + pos, bufsize - pos,
"update sys.functions set system = true where system <>
true and schema_id = (select id from sys.schemas where name = 'wlc')"
- " and name in ('master', 'stop', 'flush', 'beat') and
type = %d;\n", (int) F_PROC);
+ " and sqlname in ('master', 'stop', 'flush', 'beat')
and type = %d;\n", (int) F_PROC);
pos += snprintf(buf + pos, bufsize - pos,
"update sys.functions set system = true where system <>
true and schema_id = (select id from sys.schemas where name = 'wlr')"
- " and name in ('clock', 'tick') and type = %d;\n",
(int) F_FUNC);
+ " and sqlname in ('clock', 'tick') and type = %d;\n",
(int) F_FUNC);
pos += snprintf(buf + pos, bufsize - pos,
"update sys.functions set system = true where system <>
true and schema_id = (select id from sys.schemas where name = 'wlr')"
- " and name in ('master', 'stop', 'accept', 'replicate',
'beat') and type = %d;\n", (int) F_PROC);
+ " and sqlname in ('master', 'stop', 'accept',
'replicate', 'beat') and type = %d;\n", (int) F_PROC);
/* 39_analytics.sql */
pos += snprintf(buf + pos, bufsize - pos,
@@ -1019,7 +1019,7 @@ sql_update_nov2019(Client c, mvc *sql, c
pos += snprintf(buf + pos, bufsize - pos,
"update sys.functions set system = true where system <>
true and schema_id = (select id from sys.schemas where name = 'sys')"
- " and name in ('stddev_samp', 'stddev_pop', 'var_samp',
'var_pop', 'median', 'quantile') and type = %d;\n", (int) F_AGGR);
+ " and sqlname in ('stddev_samp', 'stddev_pop',
'var_samp', 'var_pop', 'median', 'quantile') and type = %d;\n", (int) F_AGGR);
/* The MAL implementation of functions json.text(string) and
json.text(int) do not exist */
pos += snprintf(buf + pos, bufsize - pos,
@@ -1029,7 +1029,7 @@ sql_update_nov2019(Client c, mvc *sql, c
/* The first argument to copyfrom is a PTR type */
pos += snprintf(buf + pos, bufsize - pos,
"update sys.args set type = 'ptr' where"
- " func_id = (select id from sys.functions where name =
'copyfrom' and func = 'copy_from' and mod = 'sql' and type = %d) and name =
'arg_1';\n", (int) F_UNION);
+ " func_id = (select id from sys.functions where sqlname
= 'copyfrom' and func = 'copy_from' and mod = 'sql' and type = %d) and name =
'arg_1';\n", (int) F_UNION);
pos += snprintf(buf + pos, bufsize - pos, "set schema \"%s\";\n",
prev_schema);
assert(pos < bufsize);
@@ -1067,7 +1067,7 @@ sql_update_nov2019_sp1_hugeint(Client c,
"GRANT EXECUTE ON AGGREGATE quantile_avg(HUGEINT,
DOUBLE) TO PUBLIC;\n");
pos += snprintf(buf + pos, bufsize - pos,
- "update sys.functions set system = true where system <>
true and name in ('median_avg', 'quantile_avg') and schema_id = (select id from
sys.schemas where name = 'sys') and type = %d;\n", (int) F_AGGR);
+ "update sys.functions set system = true where system <>
true and sqlname in ('median_avg', 'quantile_avg') and schema_id = (select id
from sys.schemas where name = 'sys') and type = %d;\n", (int) F_AGGR);
pos += snprintf(buf + pos, bufsize - pos, "set schema \"%s\";\n",
prev_schema);
assert(pos < bufsize);
@@ -1106,7 +1106,7 @@ sql_update_jun2020(Client c, mvc *sql, c
pos += snprintf(buf + pos, bufsize - pos,
"update sys.args set name = name || '_' || cast(number
as string) where name in ('arg', 'res') and func_id in (select id from
sys.functions f where f.system);\n");
pos += snprintf(buf + pos, bufsize - pos,
- "insert into sys.dependencies values ((select id from
sys.functions where name = 'ms_trunc' and schema_id = (select id from
sys.schemas where name = 'sys')), (select id from sys.functions where name =
'ms_round' and schema_id = (select id from sys.schemas where name = 'sys')),
(select dependency_type_id from sys.dependency_types where dependency_type_name
= 'FUNCTION'));\n");
+ "insert into sys.dependencies values ((select id from
sys.functions where sqlname = 'ms_trunc' and schema_id = (select id from
sys.schemas where name = 'sys')), (select id from sys.functions where sqlname =
'ms_round' and schema_id = (select id from sys.schemas where name = 'sys')),
(select dependency_type_id from sys.dependency_types where dependency_type_name
= 'FUNCTION'));\n");
/* 12_url */
pos += snprintf(buf + pos, bufsize - pos,
@@ -1115,7 +1115,7 @@ sql_update_jun2020(Client c, mvc *sql, c
" EXTERNAL NAME url.\"isaURL\";\n"
"GRANT EXECUTE ON FUNCTION isaURL(string) TO PUBLIC;\n"
"update sys.functions set system = true where system <>
true and schema_id = (select id from sys.schemas where name = 'sys')"
- " and name = 'isaurl' and type = %d;\n", (int) F_FUNC);
+ " and sqlname = 'isaurl' and type = %d;\n", (int)
F_FUNC);
/* 13_date.sql */
pos += snprintf(buf + pos, bufsize - pos,
@@ -1135,7 +1135,7 @@ sql_update_jun2020(Client c, mvc *sql, c
"grant execute on function time_to_str to public;\n"
"grant execute on function str_to_timestamp to
public;\n"
"grant execute on function timestamp_to_str to
public;\n"
- "update sys.functions set system = true where system <>
true and name in"
+ "update sys.functions set system = true where system <>
true and sqlname in"
" ('str_to_time', 'str_to_timestamp', 'time_to_str',
'timestamp_to_str')"
" and schema_id = (select id from sys.schemas where
name = 'sys') and type = %d;\n", (int) F_FUNC);
@@ -1153,7 +1153,7 @@ sql_update_jun2020(Client c, mvc *sql, c
" external name sql.dump_trace;\n"
"create view sys.tracelog as select * from
sys.tracelog();\n"
"update sys.functions set system = true where system <>
true and schema_id = (select id from sys.schemas where name = 'sys')"
- " and name = 'tracelog' and type = %d;\n", (int)
F_UNION);
+ " and sqlname = 'tracelog' and type = %d;\n", (int)
F_UNION);
pos += snprintf(buf + pos, bufsize - pos,
"update sys._tables set system = true where schema_id =
(select id from sys.schemas where name = 'sys')"
" and name = 'tracelog';\n");
@@ -1177,7 +1177,7 @@ sql_update_jun2020(Client c, mvc *sql, c
"grant execute on function sys.epoch (BIGINT) to
public;\n"
"grant execute on function sys.epoch (INT) to public;\n"
"grant execute on function sys.epoch (TIMESTAMP WITH
TIME ZONE) to public;\n"
- "update sys.functions set system = true where system <>
true and name in"
+ "update sys.functions set system = true where system <>
true and sqlname in"
" ('epoch', 'date_trunc')"
" and schema_id = (select id from sys.schemas where
name = 'sys') and type = %d;\n", (int) F_FUNC);
@@ -1266,13 +1266,13 @@ sql_update_jun2020(Client c, mvc *sql, c
pos += snprintf(buf + pos, bufsize - pos,
"update sys.functions set system = true where system <>
true and schema_id = (select id from sys.schemas where name = 'sys')"
- " and name in ('sessions', 'prepared_statements',
'prepared_statements_args') and type = %d;\n", (int) F_UNION);
+ " and sqlname in ('sessions', 'prepared_statements',
'prepared_statements_args') and type = %d;\n", (int) F_UNION);
pos += snprintf(buf + pos, bufsize - pos,
"update sys._tables set system = true where schema_id =
(select id from sys.schemas where name = 'sys')"
- " and name in ('sessions', 'prepared_statements',
'prepared_statements_args');\n");
+ " and sqlname in ('sessions', 'prepared_statements',
'prepared_statements_args');\n");
pos += snprintf(buf + pos, bufsize - pos,
"update sys.functions set system = true where system <>
true and schema_id = (select id from sys.schemas where name = 'sys')"
- " and name in ('setoptimizer', 'setquerytimeout',
'setsessiontimeout', 'setworkerlimit', 'setmemorylimit', 'setoptimizer',
'stopsession') and type = %d;\n", (int) F_PROC);
+ " and sqlname in ('setoptimizer', 'setquerytimeout',
'setsessiontimeout', 'setworkerlimit', 'setmemorylimit', 'setoptimizer',
'stopsession') and type = %d;\n", (int) F_PROC);
/* 25_debug */
pos += snprintf(buf + pos, bufsize - pos,
@@ -1281,7 +1281,7 @@ sql_update_jun2020(Client c, mvc *sql, c
"create procedure sys.resume_log_flushing()\n"
" external name sql.resume_log_flushing;\n"
"update sys.functions set system = true where system <>
true and schema_id = (select id from sys.schemas where name = 'sys')"
- " and name in ('suspend_log_flushing',
'resume_log_flushing') and type = %d;\n", (int) F_PROC);
+ " and sqlname in ('suspend_log_flushing',
'resume_log_flushing') and type = %d;\n", (int) F_PROC);
pos += snprintf(buf + pos, bufsize - pos,
"create function sys.debug(flag string) returns
integer\n"
@@ -1291,9 +1291,9 @@ sql_update_jun2020(Client c, mvc *sql, c
" external name mdb.\"getDebugFlags\";\n");
pos += snprintf(buf + pos, bufsize - pos,
"update sys.functions set system = true where system <>
true and schema_id = (select id from sys.schemas where name = 'sys')"
- " and name in ('debug') and type = %d;\n"
+ " and sqlname in ('debug') and type = %d;\n"
"update sys.functions set system = true where system <>
true and schema_id = (select id from sys.schemas where name = 'sys')"
- " and name in ('debugflags') and type = %d;\n",
+ " and sqlname in ('debugflags') and type = %d;\n",
(int) F_FUNC, (int) F_UNION);
/* 26_sysmon */
@@ -1329,7 +1329,7 @@ sql_update_jun2020(Client c, mvc *sql, c
pos += snprintf(buf + pos, bufsize - pos,
"update sys.functions set system = true where system <>
true and schema_id = (select id from sys.schemas where name = 'sys')"
- " and name = 'queue' and type = %d;\n", (int) F_UNION);
+ " and sqlname = 'queue' and type = %d;\n", (int)
F_UNION);
pos += snprintf(buf + pos, bufsize - pos,
"update sys._tables set system = true where schema_id =
(select id from sys.schemas where name = 'sys')"
" and name = 'queue';\n");
@@ -1568,7 +1568,7 @@ sql_update_jun2020(Client c, mvc *sql, c
"GRANT EXECUTE ON WINDOW sys.group_concat(STRING, STRING) TO
PUBLIC;\n");
pos += snprintf(buf + pos, bufsize - pos,
- "update sys.functions set system = true where system <>
true and name in"
+ "update sys.functions set system = true where system <>
true and sqlname in"
" ('stddev_samp', 'stddev_pop', 'var_samp', 'var_pop',
'covar_samp', 'covar_pop', 'corr', 'group_concat')"
" and schema_id = (select id from sys.schemas where
name = 'sys') and type in (%d, %d);\n", (int) F_ANALYTIC, (int) F_AGGR);
@@ -1607,7 +1607,7 @@ sql_update_jun2020(Client c, mvc *sql, c
"create procedure sys.hot_snapshot(tarfile string)\n"
" external name sql.hot_snapshot;\n"
"update sys.functions set system = true where system <>
true and schema_id = (select id from sys.schemas where name = 'sys')"
- " and name in ('hot_snapshot') and type = %d;\n", (int)
F_PROC);
+ " and sqlname in ('hot_snapshot') and type = %d;\n",
(int) F_PROC);
/* 81_tracer.sql */
pos += snprintf(buf + pos, bufsize - pos,
@@ -1642,10 +1642,10 @@ sql_update_jun2020(Client c, mvc *sql, c
"GRANT SELECT ON logging.compinfo TO public;\n");
pos += snprintf(buf + pos, bufsize - pos,
"update sys.schemas set system = true where name =
'logging';\n"
- "update sys.functions set system = true where system <>
true and name in"
+ "update sys.functions set system = true where system <>
true and sqlname in"
" ('flush', 'setcomplevel', 'resetcomplevel',
'setlayerlevel', 'resetlayerlevel', 'setflushlevel', 'resetflushlevel',
'setadapter', 'resetadapter')"
- " and schema_id = (select id from sys.schemas where
name = 'logging') and type = %d;\n"
- "update sys.functions set system = true where system <>
true and name in"
+ " and schema_id = (select id from sys.schemas where
sqlname = 'logging') and type = %d;\n"
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list