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

Reply via email to