Changeset: ce93d1e02bff for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ce93d1e02bff
Modified Files:
monetdb5/modules/mal/clients.c
sql/backends/monet5/sql_upgrades.c
sql/scripts/22_clients.sql
sql/scripts/25_debug.sql
sql/test/Users/Tests/sessioncontrol.stable.err
sql/test/emptydb/Tests/check.stable.out
sql/test/emptydb/Tests/check.stable.out.32bit
sql/test/emptydb/Tests/check.stable.out.int128
sql/test/sys-schema/Tests/systemfunctions.stable.out
sql/test/sys-schema/Tests/systemfunctions.stable.out.int128
Branch: linear-hashing
Log Message:
Grant setoptimizer, setquerytimeout, setsessiontimeout, setworkerlimit,
setmemorylimit and sleep functions to the public. As long they change only the
session's parameters, it's safe to grant them to the public
diffs (truncated from 378 to 300 lines):
diff --git a/monetdb5/modules/mal/clients.c b/monetdb5/modules/mal/clients.c
--- a/monetdb5/modules/mal/clients.c
+++ b/monetdb5/modules/mal/clients.c
@@ -267,8 +267,10 @@ CLTsetworkerlimit(Client cntxt, MalBlkPt
if( idx < 0 || idx > MAL_MAXCLIENTS)
throw(MAL,"clients.setworkerlimit","Illegal session id");
+ if( is_int_nil(limit))
+ throw(MAL, "clients.setworkerlimit","The number of workers
cannot be NULL");
if( limit < 0)
- throw(MAL, "clients.setworkerlimit", "At least one worker
needed");
+ throw(MAL, "clients.setworkerlimit","The number of workers
cannot be negative");
if (mal_clients[idx].mode == FREECLIENT)
throw(MAL,"clients.setworkerlimit","Session not active
anymore");
if (cntxt->user == mal_clients[idx].user || cntxt->user == MAL_ADMIN){
@@ -295,6 +297,10 @@ CLTsetmemorylimit(Client cntxt, MalBlkPt
throw(MAL,"clients.setmemorylimit","Illegal session id");
if (mal_clients[idx].mode == FREECLIENT)
throw(MAL,"clients.setmemorylimit","Session not active
anymore");
+ if( is_int_nil(limit))
+ throw(MAL, "clients.setmemorylimit", "The memmory limit cannot
be NULL");
+ if( limit < 0)
+ throw(MAL, "clients.setmemorylimit", "The memmory limit cannot
be negative");
if (cntxt->user == mal_clients[idx].user || cntxt->user == MAL_ADMIN){
mal_clients[idx].memorylimit = limit;
}
@@ -366,7 +372,9 @@ CLTsetSessionTimeout(Client cntxt, MalBl
throw(MAL,"clients.setsession","Illegal session id %d", idx);
if (mal_clients[idx].mode == FREECLIENT)
throw(MAL,"clients.setsession","Session not active anymore");
- sto = *getArgReference_lng(stk,pci,1);
+ sto = *getArgReference_lng(stk,pci,1);
+ if (is_lng_nil(sto))
+ throw(MAL,"clients.setsession","Session timeout cannot be
NULL");
if (sto < 0)
throw(MAL,"clients.setsession","Session timeout should be >=
0");
mal_clients[idx].sessiontimeout = sto * 1000000;
@@ -386,10 +394,14 @@ CLTsetTimeout(Client cntxt, MalBlkPtr mb
if (mal_clients[idx].mode == FREECLIENT)
throw(MAL,"clients.settimeout","Session not active anymore");
qto = *getArgReference_lng(stk,pci,1);
+ if (is_lng_nil(qto))
+ throw(MAL,"clients.settimeout","Query timeout cannot be NULL");
if (qto < 0)
throw(MAL,"clients.settimeout","Query timeout should be >= 0");
if (pci->argc == 3) {
sto = *getArgReference_lng(stk,pci,2);
+ if (is_lng_nil(sto))
+ throw(MAL,"clients.settimeout","Session timeout cannot
be NULL");
if( sto < 0)
throw(MAL,"clients.settimeout","Session timeout should
be >= 0");
mal_clients[idx].sessiontimeout = sto * 1000000;
@@ -424,8 +436,10 @@ CLTqueryTimeout(Client cntxt, MalBlkPtr
idx = cntxt->idx;
qto= *getArgReference_int(stk,pci,1);
}
+ if (is_int_nil(qto))
+ throw(MAL,"clients.queryTimeout","Query timeout cannot be
NULL");
if( qto < 0)
- throw(MAL,"clients.queryTimeout","Query time-out should be >=
0");
+ throw(MAL,"clients.queryTimeout","Query timeout should be >=
0");
mal_clients[idx].querytimeout = (lng) qto * 1000000;
return MAL_SUCCEED;
}
@@ -456,8 +470,10 @@ CLTsessionTimeout(Client cntxt, MalBlkPt
idx = cntxt->idx;
sto = *getArgReference_int(stk,pci,1);
}
+ if (is_lng_nil(sto))
+ throw(MAL,"clients.sessionTimeout","Session timeout cannot be
NULL");
if( sto < 0)
- throw(MAL,"clients.sessionTimeout","Session time-out should be
>= 0");
+ throw(MAL,"clients.sessionTimeout","Session timeout should be
>= 0");
if( idx < 0 || idx > MAL_MAXCLIENTS)
throw(MAL,"clients.sessionTimeout","Illegal session id %d",
idx);
if (mal_clients[idx].mode == FREECLIENT)
@@ -749,10 +765,12 @@ CLTshutdown(Client cntxt, MalBlkPtr mb,
if (cntxt->user != MAL_ADMIN)
throw(MAL,"mal.shutdown", "Administrator rights required");
+ if (is_int_nil(delay))
+ throw(MAL,"mal.shutdown", "Delay cannot be NULL");
if (delay < 0)
throw(MAL,"mal.shutdown", "Delay cannot be negative");
if (is_bit_nil(force))
- throw(MAL,"mal.shutdown", "Force cannot be null");
+ throw(MAL,"mal.shutdown", "Force cannot be NULL");
MCstopClients(cntxt);
do{
if ( (leftover = MCactiveClients()-1) )
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
@@ -2430,16 +2430,26 @@ sql_update_linear_hashing(Client c, mvc
"create view sys.sessions as select * from
sys.sessions();\n");
pos += snprintf(buf + pos, bufsize - pos,
+ "grant execute on procedure sys.settimeout(bigint) to
public;\n"
+ "grant execute on procedure
sys.settimeout(bigint,bigint) to public;\n"
+ "grant execute on procedure sys.setsession(bigint) to
public;\n");
+
+ pos += snprintf(buf + pos, bufsize - pos,
"create procedure sys.setoptimizer(\"optimizer\"
string)\n"
" external name clients.setoptimizer;\n"
+ "grant execute on procedure sys.setoptimizer(string) to
public;\n"
"create procedure sys.setquerytimeout(\"query\" int)\n"
" external name clients.setquerytimeout;\n"
+ "grant execute on procedure sys.setquerytimeout(int) to
public;\n"
"create procedure sys.setsessiontimeout(\"timeout\"
int)\n"
" external name clients.setsessiontimeout;\n"
+ "grant execute on procedure sys.setsessiontimeout(int)
to public;\n"
"create procedure sys.setworkerlimit(\"limit\" int)\n"
" external name clients.setworkerlimit;\n"
+ "grant execute on procedure sys.setworkerlimit(int) to
public;\n"
"create procedure sys.setmemorylimit(\"limit\" int)\n"
" external name clients.setmemorylimit;\n"
+ "grant execute on procedure sys.setmemorylimit(int) to
public;\n"
"create procedure sys.setoptimizer(\"sessionid\" int,
\"optimizer\" string)\n"
" external name clients.setoptimizer;\n"
"create procedure sys.setquerytimeout(\"sessionid\"
int, \"query\" int)\n"
@@ -2500,8 +2510,10 @@ sql_update_linear_hashing(Client c, mvc
" external name mdb.\"getDebugFlags\";\n"
"create procedure sys.\"sleep\"(msecs int)\n"
" external name \"alarm\".\"sleep\";\n"
+ "grant execute on procedure sys.\"sleep\"(int) to
public;\n"
"create function sys.\"sleep\"(msecs int) returns
integer\n"
- " external name \"alarm\".\"sleep\";\n");
+ " external name \"alarm\".\"sleep\";\n"
+ "grant execute on function sys.\"sleep\"(int) to
public;\n");
pos += snprintf(buf + pos, bufsize - pos,
"update sys.functions set system = true where schema_id
= (select id from sys.schemas where name = 'sys')"
" and name in ('debug', 'debugflags', 'sleep');\n");
diff --git a/sql/scripts/22_clients.sql b/sql/scripts/22_clients.sql
--- a/sql/scripts/22_clients.sql
+++ b/sql/scripts/22_clients.sql
@@ -26,39 +26,51 @@ returns table(
)
external name sql.sessions;
create view sys.sessions as select * from sys.sessions();
+/* we won't grant sys.sessions to the public */
-- routines to bring the system down quickly
-create procedure sys.shutdown(delay tinyint)
-external name sql.shutdown;
-
-create procedure sys.shutdown(delay tinyint, force bool)
-external name sql.shutdown;
+create procedure sys.shutdown("delay" tinyint)
+ external name sql.shutdown;
+/* we won't grant sys.shutdown to the public */
+create procedure sys.shutdown("delay" tinyint, "force" bool)
+ external name sql.shutdown;
+/* we won't grant sys.shutdown to the public */
-- control the query and session time out.
-- As of December 2019, the procedures settimeout and setsession are
deprecated.
-- Use setquerytimeout and setsessiontimeout instead.
create procedure sys.settimeout("query" bigint)
external name clients.settimeout;
+grant execute on procedure sys.settimeout(bigint) to public;
+
create procedure sys.settimeout("query" bigint, "session" bigint)
external name clients.settimeout;
+grant execute on procedure sys.settimeout(bigint, bigint) to public;
+
create procedure sys.setsession("timeout" bigint)
external name clients.setsession;
+grant execute on procedure sys.setsession(bigint) to public;
-- control the session properties session time out for the current user.
create procedure sys.setoptimizer("optimizer" string)
external name clients.setoptimizer;
+grant execute on procedure sys.setoptimizer(string) to public;
create procedure sys.setquerytimeout("query" int)
external name clients.setquerytimeout;
+grant execute on procedure sys.setquerytimeout(int) to public;
create procedure sys.setsessiontimeout("timeout" int)
external name clients.setsessiontimeout;
+grant execute on procedure sys.setsessiontimeout(int) to public;
create procedure sys.setworkerlimit("limit" int)
external name clients.setworkerlimit;
+grant execute on procedure sys.setworkerlimit(int) to public;
create procedure sys.setmemorylimit("limit" int)
external name clients.setmemorylimit;
+grant execute on procedure sys.setmemorylimit(int) to public;
-- The super user can change the properties of all sessions
create procedure sys.setoptimizer("sessionid" int, "optimizer" string)
diff --git a/sql/scripts/25_debug.sql b/sql/scripts/25_debug.sql
--- a/sql/scripts/25_debug.sql
+++ b/sql/scripts/25_debug.sql
@@ -85,7 +85,9 @@ create function sys.deltas ("schema" str
-- Sleep procedure
create procedure sys."sleep"(msecs int)
external name "alarm"."sleep";
+grant execute on procedure sys."sleep"(int) to public;
-- Sleep function
create function sys."sleep"(msecs int) returns integer
external name "alarm"."sleep";
+grant execute on function sys."sleep"(int) to public;
diff --git a/sql/test/Users/Tests/sessioncontrol.stable.err
b/sql/test/Users/Tests/sessioncontrol.stable.err
--- a/sql/test/Users/Tests/sessioncontrol.stable.err
+++ b/sql/test/Users/Tests/sessioncontrol.stable.err
@@ -28,11 +28,11 @@ stderr of test 'sessioncontrol` in direc
MAPI = (monetdb) /var/tmp/mtest-5773/.s.monetdb.30383
QUERY = call setsessiontimeout(-1);
-ERROR = !Session time-out should be >= 0
-MAPI = (monetdb) /var/tmp/mtest-5773/.s.monetdb.30383
+ERROR = !Session timeout should be >= 0
+MAPI = (monetdb) /var/tmp/mtest-61463/.s.monetdb.39827
QUERY = call setquerytimeout(-1);
-ERROR = !Query time-out should be >= 0
-MAPI = (monetdb) /var/tmp/mtest-5773/.s.monetdb.30383
+ERROR = !Query timeout should be >= 0
+MAPI = (monetdb) /var/tmp/mtest-61463/.s.monetdb.39827
QUERY = call setworkerlimit( -1);
ERROR = !At least one worker needed
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
@@ -1175,8 +1175,8 @@ create procedure shpattach(fname string)
create procedure shpload(fid integer) external name shp.import;
create procedure shpload(fid integer, filter geometry) external name
shp.import;
create procedure shrink(sys string, tab string) external name sql.shrink;
-create procedure sys.shutdown(delay tinyint) external name sql.shutdown;
-create procedure sys.shutdown(delay tinyint, force bool) external name
sql.shutdown;
+create procedure sys.shutdown("delay" tinyint) external name sql.shutdown;
+create procedure sys.shutdown("delay" tinyint, "force" bool) external name
sql.shutdown;
create function sys."sleep"(msecs int) returns integer external name
"alarm"."sleep";
create procedure sys."sleep"(msecs int) external name "alarm"."sleep";
create function st_area(geom geometry) returns double external name
geom."Area";
@@ -3372,8 +3372,8 @@ drop function pcre_replace(string, strin
[ "sys", "shpload", "SYSTEM", "create procedure shpload(fid
integer) external name shp.import;", "shp", "MAL", "Procedure", true,
false, false, "fid", "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, NULL, NULL, NULL,
NULL, NULL ]
[ "sys", "shpload", "SYSTEM", "create procedure shpload(fid
integer, filter geometry) external name shp.import;", "shp", "MAL",
"Procedure", true, false, false, "fid", "int", 32, 0, "in",
"filter", "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", "shrink", "SYSTEM", "create procedure shrink(sys
string, tab string) external name sql.shrink;", "sql", "MAL", "Procedure",
true, false, false, "sys", "clob", 0, 0, "in", "tab",
"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", "shutdown", "SYSTEM", "create procedure
sys.shutdown(delay tinyint) external name sql.shutdown;", "sql", "MAL",
"Procedure", true, false, false, "delay", "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, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL ]
-[ "sys", "shutdown", "SYSTEM", "create procedure
sys.shutdown(delay tinyint, force bool) external name sql.shutdown;", "sql",
"MAL", "Procedure", true, false, false, "delay", "tinyint",
8, 0, "in", "force", "boolean", 1, 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", "shutdown", "SYSTEM", "create procedure
sys.shutdown(\"delay\" tinyint) external name sql.shutdown;", "sql", "MAL",
"Procedure", true, false, false, "delay", "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, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL ]
+[ "sys", "shutdown", "SYSTEM", "create procedure
sys.shutdown(\"delay\" tinyint, \"force\" bool) external name sql.shutdown;",
"sql", "MAL", "Procedure", true, false, false, "delay",
"tinyint", 8, 0, "in", "force", "boolean", 1,
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", "sign", "SYSTEM", "sign", "calc", "Internal C", "Scalar
function", false, false, false, "res_0", "tinyint", 8,
0, "out", "arg_1", "bigint", 64, 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", "sign", "SYSTEM", "sign", "calc", "Internal C", "Scalar
function", false, false, false, "res_0", "tinyint", 8,
0, "out", "arg_1", "decimal", 2, 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", "sign", "SYSTEM", "sign", "calc", "Internal C", "Scalar
function", false, false, false, "res_0", "tinyint", 8,
0, "out", "arg_1", "decimal", 4, 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 ]
@@ -5053,6 +5053,16 @@ drop function pcre_replace(string, strin
[ "seq_char", "public", "EXECUTE", "monetdb", 0 ]
[ "seq_length", "public", "EXECUTE", "monetdb", 0
]
[ "setmasklen", "public", "EXECUTE", "monetdb", 0
]
+[ "setmemorylimit", "public", "EXECUTE", "monetdb", 0
]
+[ "setoptimizer", "public", "EXECUTE", "monetdb", 0
]
+[ "setquerytimeout", "public", "EXECUTE", "monetdb", 0
]
+[ "setsession", "public", "EXECUTE", "monetdb", 0
]
+[ "setsessiontimeout", "public", "EXECUTE", "monetdb", 0
]
+[ "settimeout", "public", "EXECUTE", "monetdb", 0
]
+[ "settimeout", "public", "EXECUTE", "monetdb", 0
]
+[ "setworkerlimit", "public", "EXECUTE", "monetdb", 0
]
+[ "sleep", "public", "EXECUTE", "monetdb", 0 ]
+[ "sleep", "public", "EXECUTE", "monetdb", 0 ]
[ "st_area", "public", "EXECUTE", "monetdb", 0 ]
[ "st_asbinary", "public", "EXECUTE", "monetdb", 0
]
[ "st_asewkt", "public", "EXECUTE", "monetdb", 0 ]
diff --git a/sql/test/emptydb/Tests/check.stable.out.32bit
b/sql/test/emptydb/Tests/check.stable.out.32bit
--- a/sql/test/emptydb/Tests/check.stable.out.32bit
+++ b/sql/test/emptydb/Tests/check.stable.out.32bit
@@ -1169,8 +1169,8 @@ create procedure shpattach(fname string)
create procedure shpload(fid integer) external name shp.import;
create procedure shpload(fid integer, filter geometry) external name
shp.import;
create procedure shrink(sys string, tab string) external name sql.shrink;
-create procedure sys.shutdown(delay tinyint) external name sql.shutdown;
-create procedure sys.shutdown(delay tinyint, force bool) external name
sql.shutdown;
+create procedure sys.shutdown("delay" tinyint) external name sql.shutdown;
+create procedure sys.shutdown("delay" tinyint, "force" bool) external name
sql.shutdown;
create function sys."sleep"(msecs int) returns integer external name
"alarm"."sleep";
create procedure sys."sleep"(msecs int) external name "alarm"."sleep";
create function st_area(geom geometry) returns double external name
geom."Area";
@@ -3355,8 +3355,8 @@ drop function pcre_replace(string, strin
[ "sys", "shpload", "SYSTEM", "create procedure shpload(fid
integer) external name shp.import;", "shp", "MAL", "Procedure", true,
false, false, "fid", "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, NULL, NULL, NULL,
NULL, NULL ]
[ "sys", "shpload", "SYSTEM", "create procedure shpload(fid
integer, filter geometry) external name shp.import;", "shp", "MAL",
"Procedure", true, false, false, "fid", "int", 32, 0, "in",
"filter", "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", "shrink", "SYSTEM", "create procedure shrink(sys
string, tab string) external name sql.shrink;", "sql", "MAL", "Procedure",
true, false, false, "sys", "clob", 0, 0, "in", "tab",
"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", "shutdown", "SYSTEM", "create procedure
sys.shutdown(delay tinyint) external name sql.shutdown;", "sql", "MAL",
"Procedure", true, false, false, "delay", "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, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL ]
-[ "sys", "shutdown", "SYSTEM", "create procedure
sys.shutdown(delay tinyint, force bool) external name sql.shutdown;", "sql",
"MAL", "Procedure", true, false, false, "delay", "tinyint",
8, 0, "in", "force", "boolean", 1, 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", "shutdown", "SYSTEM", "create procedure
sys.shutdown(\"delay\" tinyint) external name sql.shutdown;", "sql", "MAL",
"Procedure", true, false, false, "delay", "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, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL ]
+[ "sys", "shutdown", "SYSTEM", "create procedure
sys.shutdown(\"delay\" tinyint, \"force\" bool) external name sql.shutdown;",
"sql", "MAL", "Procedure", true, false, false, "delay",
"tinyint", 8, 0, "in", "force", "boolean", 1,
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", "sign", "SYSTEM", "sign", "calc", "Internal C", "Scalar
function", false, false, false, "res_0", "tinyint", 8,
0, "out", "arg_1", "bigint", 64, 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", "sign", "SYSTEM", "sign", "calc", "Internal C", "Scalar
function", false, false, false, "res_0", "tinyint", 8,
0, "out", "arg_1", "decimal", 2, 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", "sign", "SYSTEM", "sign", "calc", "Internal C", "Scalar
function", false, false, false, "res_0", "tinyint", 8,
0, "out", "arg_1", "decimal", 4, 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 ]
@@ -5036,6 +5036,16 @@ drop function pcre_replace(string, strin
[ "seq_char", "public", "EXECUTE", "monetdb", 0 ]
[ "seq_length", "public", "EXECUTE", "monetdb", 0
]
[ "setmasklen", "public", "EXECUTE", "monetdb", 0
]
+[ "setmemorylimit", "public", "EXECUTE", "monetdb", 0
]
+[ "setoptimizer", "public", "EXECUTE", "monetdb", 0
]
+[ "setquerytimeout", "public", "EXECUTE", "monetdb", 0
]
+[ "setsession", "public", "EXECUTE", "monetdb", 0
]
+[ "setsessiontimeout", "public", "EXECUTE", "monetdb", 0
]
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list