Changeset: 83cdbcb8730a for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=83cdbcb8730a
Added Files:
        sql/scripts/58_hot_snapshot.sql
        sql/test/BugTracker-2019/Tests/NOT_IN-AND-OR-wrong-results.Bug-6775.sql
        
sql/test/BugTracker-2019/Tests/NOT_IN-AND-OR-wrong-results.Bug-6775.stable.err
        
sql/test/BugTracker-2019/Tests/NOT_IN-AND-OR-wrong-results.Bug-6775.stable.out
        sql/test/BugTracker-2019/Tests/msqldump-mapi-cache.Bug-6777.py
        sql/test/BugTracker-2019/Tests/msqldump-mapi-cache.Bug-6777.stable.err
        sql/test/BugTracker-2019/Tests/msqldump-mapi-cache.Bug-6777.stable.out
        sql/test/BugTracker-2019/Tests/msqldump-mapi-cache.Bug-6777.timeout
        sql/test/BugTracker-2019/Tests/next-get-value-bulk.Bug-6766.stable.err
        sql/test/BugTracker-2019/Tests/outer-join-varchar.Bug-6776.sql
        sql/test/BugTracker-2019/Tests/outer-join-varchar.Bug-6776.stable.err
        sql/test/BugTracker-2019/Tests/outer-join-varchar.Bug-6776.stable.out
        sql/test/BugTracker-2019/Tests/rank-nan.Bug-6780.sql
        sql/test/BugTracker-2019/Tests/rank-nan.Bug-6780.stable.err
        sql/test/BugTracker-2019/Tests/rank-nan.Bug-6780.stable.out
        sql/test/Tests/hot-snapshot.py
        sql/test/Tests/hot-snapshot.stable.err
        sql/test/Tests/hot-snapshot.stable.out
        sql/test/miscellaneous/Tests/view-mul-digits.sql
        sql/test/miscellaneous/Tests/view-mul-digits.stable.err
        sql/test/miscellaneous/Tests/view-mul-digits.stable.out
Modified Files:
        ChangeLog
        clients/ChangeLog
        clients/Tests/MAL-signatures.stable.out
        clients/Tests/MAL-signatures.stable.out.int128
        clients/Tests/exports.stable.out
        clients/mapiclient/dump.c
        gdk/gdk.h
        gdk/gdk_analytic_bounds.c
        gdk/gdk_analytic_func.c
        monetdb5/mal/mal_client.c
        monetdb5/mal/mal_dataflow.c
        monetdb5/mal/mal_profiler.c
        monetdb5/modules/kernel/batmmath.c
        monetdb5/modules/kernel/mmath.c
        monetdb5/modules/mal/clients.c
        monetdb5/modules/mal/clients.h
        monetdb5/modules/mal/clients.mal
        monetdb5/modules/mal/mal_io.c
        monetdb5/modules/mal/mal_io.h
        monetdb5/modules/mal/mal_io.mal
        monetdb5/modules/mal/sysmon.c
        monetdb5/modules/mal/tablet.c
        sql/ChangeLog.Nov2019
        sql/backends/monet5/rel_bin.c
        sql/backends/monet5/sql.c
        sql/backends/monet5/sql.h
        sql/backends/monet5/sql.mal
        sql/backends/monet5/sql_cat.c
        sql/backends/monet5/sql_rank.c
        sql/backends/monet5/sql_upgrades.c
        sql/scripts/22_clients.sql
        sql/scripts/26_sysmon.sql
        sql/scripts/Makefile.ag
        sql/server/rel_exp.c
        sql/server/rel_optimizer.c
        sql/server/rel_psm.c
        sql/server/rel_schema.c
        sql/server/rel_select.c
        sql/server/rel_sequence.c
        sql/server/sql_parser.y
        sql/storage/bat/bat_logger.c
        sql/storage/sql_catalog.c
        sql/storage/sql_storage.h
        sql/storage/store.c
        sql/storage/store_sequence.c
        sql/storage/store_sequence.h
        sql/test/BugTracker-2009/Tests/All
        sql/test/BugTracker-2013/Tests/All
        sql/test/BugTracker-2013/Tests/check-constraint.Bug-3335.stable.err
        sql/test/BugTracker-2013/Tests/check-constraint.Bug-3335.stable.out
        sql/test/BugTracker-2015/Tests/crash.Bug-3736.sql
        sql/test/BugTracker-2015/Tests/crash.Bug-3736.stable.out
        sql/test/BugTracker-2016/Tests/set-negative-querytimeout.Bug-6070.sql
        
sql/test/BugTracker-2016/Tests/set-negative-querytimeout.Bug-6070.stable.err
        
sql/test/BugTracker-2017/Tests/crash-select_after_MAL_error.Bug-6332.stable.out
        
sql/test/BugTracker-2017/Tests/crash_correlated_subqueries_in_select.Bug-6254.stable.out
        sql/test/BugTracker-2017/Tests/push_subslice.Bug-6322.sql
        sql/test/BugTracker-2017/Tests/sqlsmith-semijoin-constant.bug-6417.sql
        
sql/test/BugTracker-2017/Tests/sqlsmith-semijoin-constant.bug-6417.stable.out
        
sql/test/BugTracker-2017/Tests/type-resolution-error.Bugs-6313.stable.err
        sql/test/BugTracker-2018/Tests/negative-sequences.Bug-6665.stable.err
        sql/test/BugTracker-2019/Tests/All
        sql/test/BugTracker-2019/Tests/crash-in-rel_dependencies.Bug-6703.sql
        
sql/test/BugTracker-2019/Tests/crash-in-rel_dependencies.Bug-6703.stable.out
        sql/test/BugTracker-2019/Tests/next-get-value-bulk.Bug-6766.sql
        sql/test/BugTracker-2019/Tests/next-get-value-bulk.Bug-6766.stable.out
        sql/test/BugTracker-2019/Tests/python-loader-string.Bug-6759.stable.err
        sql/test/BugTracker-2019/Tests/sequences-defaults.Bug-6744.sql
        sql/test/BugTracker-2019/Tests/sequences-defaults.Bug-6744.stable.err
        sql/test/BugTracker-2019/Tests/sequences-defaults.Bug-6744.stable.out
        sql/test/Dump/Tests/dump-again.stable.err
        sql/test/Tests/All
        sql/test/Tests/alter-sequence.sql
        sql/test/Tests/alter-sequence.stable.err
        sql/test/Tests/comment-auth.stable.err
        sql/test/Tests/comment-dump.stable.err
        sql/test/analytics/Tests/analytics06.sql
        sql/test/analytics/Tests/analytics06.stable.err
        sql/test/analytics/Tests/analytics06.stable.out
        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/mergetables/Tests/sqlsmith.Bug-6455.stable.err
        sql/test/mergetables/Tests/sqlsmith.Bug-6459.stable.err
        sql/test/miscellaneous/Tests/All
        sql/test/miscellaneous/Tests/groupby_expressions.stable.err
        
sql/test/sys-schema/Tests/check_ForeignKey_referential_integrity.stable.out
        sql/test/sys-schema/Tests/check_PrimaryKey_uniqueness.sql
        sql/test/sys-schema/Tests/check_PrimaryKey_uniqueness.stable.out
        sql/test/sys-schema/Tests/systemfunctions.stable.out
        sql/test/sys-schema/Tests/systemfunctions.stable.out.int128
        sql/test/testdb-reload/Tests/reload.stable.err
        sql/test/testdb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
        sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out
        sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.32bit
        sql/test/testdb-upgrade-hge/Tests/upgrade.stable.out.int128
        sql/test/testdb-upgrade/Tests/upgrade.stable.out
        sql/test/testdb-upgrade/Tests/upgrade.stable.out.32bit
        sql/test/testdb/Tests/dump-nogeom.stable.err
        sql/test/wlcr/Tests/All
Branch: grouping-analytics
Log Message:

Merge with default


diffs (truncated from 9115 to 300 lines):

diff --git a/ChangeLog b/ChangeLog
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,15 @@
 # ChangeLog file for devel
 # This file is updated with Maddlog
 
+* Fri Oct 25 2019 Joeri van Ruth <joeri.van.r...@monetdbsolutions.com>
+- Added SQL function sql.hot_snapshot() which can be used to make write
+  a snapshot of the database to a tar file. For example,
+  sys.hot_snapshot('/tmp/snapshot.tar'). If compression support is
+  compiled in, snapshots can also be compressed ('/tmp/snapshot.tar.gz').
+  The tar file expands to a single directory with the same name as the
+  database that was snapshotted. This directory can be passed directly
+  as the --dbpath argument of mserver5.
+
 * Sat Oct 12 2019 Martin Kersten <m...@cwi.nl>
 - The MAL profiler now assigns the SQL TRACE output to the client record
   thereby avoiding the interaction with other queries, but loosing
diff --git a/clients/ChangeLog b/clients/ChangeLog
--- a/clients/ChangeLog
+++ b/clients/ChangeLog
@@ -1,3 +1,11 @@
 # ChangeLog file for clients
 # This file is updated with Maddlog
 
+* Fri Oct 25 2019 Pedro Ferreira <pedro.ferre...@monetdbsolutions.com>
+- Added 'sessionid' column to system function sys.queue(), so each query
+  gets tagged with the current session identifier
+
+* Thu Oct 24 2019 Martin Kersten <m...@cwi.nl>
+- Allow monetdb user to control session and query time out and selective
+  stopping a client sessions with a soft termination request.
+
diff --git a/clients/Tests/MAL-signatures.stable.out 
b/clients/Tests/MAL-signatures.stable.out
--- a/clients/Tests/MAL-signatures.stable.out
+++ b/clients/Tests/MAL-signatures.stable.out
@@ -8973,6 +8973,9 @@ stdout of test 'MAL-signatures` in direc
 [ "batsql",    "diff", "pattern batsql.diff(b:bat[:any_1]):bat[:bit] ",        
"SQLdiff;",     "return true if cur != prev row"        ]
 [ "batsql",    "diff", "pattern batsql.diff(p:bat[:bit], 
b:bat[:any_1]):bat[:bit] ",   "SQLdiff;",     "return true if cur != prev row"  
      ]
 [ "batsql",    "first_value",  "pattern batsql.first_value(b:bat[:any_1], 
s:bat[:lng], e:bat[:lng]):bat[:any_1] ",     "SQLfirst_value;",      "return 
the first value of groups"      ]
+[ "batsql",    "get_value",    "pattern batsql.get_value(sname:bat[:str], 
sequence:bat[:str]):bat[:lng] ",     "mvc_bat_get_value;",   "return the 
current value of sequences" ]
+[ "batsql",    "get_value",    "pattern batsql.get_value(sname:bat[:str], 
sequence:str):bat[:lng] ",   "mvc_bat_get_value;",   "return the current value 
of the sequence"      ]
+[ "batsql",    "get_value",    "pattern batsql.get_value(sname:str, 
sequence:bat[:str]):bat[:lng] ",   "mvc_bat_get_value;",   "return the current 
value of sequences" ]
 [ "batsql",    "lag",  "pattern batsql.lag(b:bat[:any_1], l:any_2, d:any_1, 
p:any_3, o:any_4):bat[:any_1] ",   "SQLlag;",      "return the value in the 
previous 'l' row in the partition or 'd' if non existent"      ]
 [ "batsql",    "lag",  "pattern batsql.lag(b:bat[:any_1], l:any_2, 
d:bat[:any_1], p:any_3, o:any_4):bat[:any_1] ",     "SQLlag;",      "return the 
value in the previous 'l' row in the partition or 'd' if non existent"      ]
 [ "batsql",    "lag",  "pattern batsql.lag(b:bat[:any_1], l:any_2, p:any_3, 
o:any_4):bat[:any_1] ",    "SQLlag;",      "return the value in the previous 
'l' row in the partition or NULL if non existent"     ]
@@ -8990,7 +8993,9 @@ stdout of test 'MAL-signatures` in direc
 [ "batsql",    "lead", "pattern batsql.lead(b:bat[:any_1], p:any_3, 
o:any_4):bat[:any_1] ",    "SQLlead;",     "return the value in the next row in 
the partition or NULL if non existent"     ]
 [ "batsql",    "max",  "pattern batsql.max(b:bat[:any_1], s:bat[:lng], 
e:bat[:lng]):bat[:any_1] ",     "SQLmax;",      "return the maximum of groups"  
]
 [ "batsql",    "min",  "pattern batsql.min(b:bat[:any_1], s:bat[:lng], 
e:bat[:lng]):bat[:any_1] ",     "SQLmin;",      "return the minimum of groups"  
]
+[ "batsql",    "next_value",   "pattern batsql.next_value(sname:bat[:str], 
sequence:bat[:str]):bat[:lng] ",    "mvc_bat_next_value;",  "return the next 
value of sequences"    ]
 [ "batsql",    "next_value",   "pattern batsql.next_value(sname:bat[:str], 
sequence:str):bat[:lng] ",  "mvc_bat_next_value;",  "return the next value of 
the sequence" ]
+[ "batsql",    "next_value",   "pattern batsql.next_value(sname:str, 
sequence:bat[:str]):bat[:lng] ",  "mvc_bat_next_value;",  "return the next 
value of sequences"    ]
 [ "batsql",    "nth_value",    "pattern batsql.nth_value(b:bat[:any_1], 
n:any_2, s:bat[:lng], e:bat[:lng]):bat[:any_1] ",      "SQLnth_value;",        
"return the nth value of each group"    ]
 [ "batsql",    "nth_value",    "pattern batsql.nth_value(b:bat[:any_1], 
n:bat[:any_2], s:bat[:lng], e:bat[:lng]):bat[:any_1] ",        "SQLnth_value;", 
       "return the nth value of each group"    ]
 [ "batsql",    "ntile",        "pattern batsql.ntile(b:bat[:any_1], n:any_2, 
p:any_3, o:any_4):bat[:any_2] ",  "SQLntile;",    "return the groups divided as 
equally as possible"      ]
@@ -9005,6 +9010,13 @@ stdout of test 'MAL-signatures` in direc
 [ "batsql",    "prod", "pattern batsql.prod(b:bat[:lng], s:bat[:lng], 
e:bat[:lng]):bat[:lng] ",        "SQLprod;",     "return the product of groups" 
 ]
 [ "batsql",    "prod", "pattern batsql.prod(b:bat[:sht], s:bat[:lng], 
e:bat[:lng]):bat[:lng] ",        "SQLprod;",     "return the product of groups" 
 ]
 [ "batsql",    "rank", "pattern batsql.rank(b:bat[:any_1], p:any_2, 
o:any_3):bat[:int] ",      "SQLrank;",     "return the ranked groups"      ]
+[ "batsql",    "restart",      "unsafe pattern batsql.restart(sname:bat[:str], 
sequence:bat[:str], start:bat[:lng]):bat[:lng] ",       "mvc_bat_restart_seq;", 
"restart the sequence with value start" ]
+[ "batsql",    "restart",      "unsafe pattern batsql.restart(sname:bat[:str], 
sequence:bat[:str], start:lng):bat[:lng] ",     "mvc_bat_restart_seq;", 
"restart the sequence with value start" ]
+[ "batsql",    "restart",      "unsafe pattern batsql.restart(sname:bat[:str], 
sequence:str, start:bat[:lng]):bat[:lng] ",     "mvc_bat_restart_seq;", 
"restart the sequence with value start" ]
+[ "batsql",    "restart",      "unsafe pattern batsql.restart(sname:bat[:str], 
sequence:str, start:lng):bat[:lng] ",   "mvc_bat_restart_seq;", "restart the 
sequence with value start" ]
+[ "batsql",    "restart",      "unsafe pattern batsql.restart(sname:str, 
sequence:bat[:str], start:bat[:lng]):bat[:lng] ",     "mvc_bat_restart_seq;", 
"restart the sequence with value start" ]
+[ "batsql",    "restart",      "unsafe pattern batsql.restart(sname:str, 
sequence:bat[:str], start:lng):bat[:lng] ",   "mvc_bat_restart_seq;", "restart 
the sequence with value start" ]
+[ "batsql",    "restart",      "unsafe pattern batsql.restart(sname:str, 
sequence:str, start:bat[:lng]):bat[:lng] ",   "mvc_bat_restart_seq;", "restart 
the sequence with value start" ]
 [ "batsql",    "round",        "command batsql.round(v:bat[:bte], d:int, 
s:int, r:bte):bat[:bte] ",    "bte_bat_round_wrap;",  "round off the decimal 
v(d,s) to r digits behind the dot (if r < 0, before the dot)"    ]
 [ "batsql",    "round",        "command batsql.round(v:bat[:dbl], 
r:bte):bat[:dbl] ",  "dbl_bat_round_wrap;",  "round off the floating point v to 
r digits behind the dot (if r < 0, before the dot)"  ]
 [ "batsql",    "round",        "command batsql.round(v:bat[:flt], 
r:bte):bat[:flt] ",  "flt_bat_round_wrap;",  "round off the floating point v to 
r digits behind the dot (if r < 0, before the dot)"  ]
@@ -10741,22 +10753,30 @@ stdout of test 'MAL-signatures` in direc
 [ "clients",   "getUsername",  "pattern clients.getUsername():str ",   
"CLTgetUsername;",      "Return the username of the currently logged in user"   
]
 [ "clients",   "getUsers",     "pattern clients.getUsers() (X_0:bat[:oid], 
X_1:bat[:str]) ",   "CLTgetUsers;", "return a BAT with user id and one with 
name available in the system"   ]
 [ "clients",   "md5sum",       "command clients.md5sum(pw:str):str ",  
"CLTmd5sum;",   "Return hex string representation of the MD5 hash of the given 
string"  ]
+[ "clients",   "querytimeout", "pattern clients.querytimeout(sid:bte, 
n:lng):void ",   "CLTqueryTimeout;",     ""      ]
+[ "clients",   "querytimeout", "pattern clients.querytimeout(sid:int, 
n:lng):void ",   "CLTqueryTimeout;",     ""      ]
+[ "clients",   "querytimeout", "pattern clients.querytimeout(sid:sht, 
n:lng):void ",   "CLTqueryTimeout;",     ""      ]
 [ "clients",   "quit", "pattern clients.quit():void ", "CLTquit;",     
"Terminate the client session." ]
 [ "clients",   "quit", "pattern clients.quit(idx:int):void ",  "CLTquit;",     
"Terminate the session for a single client using a soft error.\nIt is the 
privilige of the console user."       ]
 [ "clients",   "removeUser",   "pattern clients.removeUser(nme:str):void ",    
"CLTremoveUser;",       "Remove the given user from the system" ]
 [ "clients",   "ripemd160sum", "command clients.ripemd160sum(pw:str):str ",    
"CLTripemd160sum;",     "Return hex string representation of the RIPEMD160 hash 
of the given string"    ]
+[ "clients",   "sessiontimeout",       "pattern 
clients.sessiontimeout(sid:bte, n:lng):void ", "CLTsessionTimeout;",   "Set the 
session timeout for a particulat session id"   ]
+[ "clients",   "sessiontimeout",       "pattern 
clients.sessiontimeout(sid:int, n:lng):void ", "CLTsessionTimeout;",   "Set the 
session timeout for a particulat session id"   ]
+[ "clients",   "sessiontimeout",       "pattern 
clients.sessiontimeout(sid:sht, n:lng):void ", "CLTsessionTimeout;",   "Set the 
session timeout for a particulat session id"   ]
 [ "clients",   "setListing",   "pattern clients.setListing(flag:int):int ",    
"CLTsetListing;",       "Turn on/off echo of MAL instructions:\n\t1 - echo 
input,\n\t2 - show mal instruction,\n\t4 - show details of type resolutoin, 
\n\t8 - show binding information."       ]
 [ "clients",   "setPassword",  "pattern clients.setPassword(user:str, 
pass:str):void ",        "CLTsetPassword;",      "Set the password for the 
given user"   ]
 [ "clients",   "setScenario",  "pattern clients.setScenario(msg:str):str ",    
"CLTsetScenario;",      "Switch to other scenario handler, return previous 
one."        ]
 [ "clients",   "setprinttimeout",      "command 
clients.setprinttimeout(n:int):void ", "CLTsetPrintTimeout;",  "Print running 
query every so many seconds."    ]
 [ "clients",   "setsession",   "pattern clients.setsession(n:lng):void ",      
"CLTsetSessionTimeout;",        "Abort a session after  n seconds."     ]
-[ "clients",   "settimeout",   "pattern clients.settimeout(n:lng):void ",      
"CLTsetTimeout;",       "Abort a query after  n seconds."       ]
-[ "clients",   "settimeout",   "pattern clients.settimeout(q:lng, s:lng):void 
",       "CLTsetTimeout;",       "Abort a query after q seconds (q=0 means run 
undisturbed).\nThe session timeout aborts the connection after spending 
too\nmany seconds on query processing."   ]
+[ "clients",   "settimeout",   "pattern clients.settimeout(n:lng):void ",      
"CLTsetTimeout;",       "Abort a query after q seconds (q=0 means run 
undisturbed).\nThe session timeout aborts the connection after spending 
too\nmany seconds on query processing."   ]
 [ "clients",   "sha1sum",      "command clients.sha1sum(pw:str):str ", 
"CLTsha1sum;",  "Return hex string representation of the SHA-1 hash of the 
given string"        ]
 [ "clients",   "sha2sum",      "command clients.sha2sum(pw:str, bits:int):str 
",       "CLTsha2sum;",  "Return hex string representation of the SHA-2 hash 
with bits of the given string"      ]
 [ "clients",   "shutdown",     "pattern clients.shutdown(delay:int):str ",     
"CLTshutdown;", ""      ]
 [ "clients",   "shutdown",     "pattern clients.shutdown(delay:int, 
forced:bit):str ", "CLTshutdown;", "Close all other client connections. Return 
if it succeeds.\nIf forced is set then always stop the system the hard way" ]
 [ "clients",   "stop", "pattern clients.stop(id:int):void ",   "CLTstop;",     
"Stop the query execution at the next eligble statement."       ]
+[ "clients",   "stopsession",  "pattern clients.stopsession(sid:bte):void ",   
"CLTstopSession;",      "Stop a particular session"     ]
+[ "clients",   "stopsession",  "pattern clients.stopsession(sid:int):void ",   
"CLTstopSession;",      "Stop a particular session"     ]
+[ "clients",   "stopsession",  "pattern clients.stopsession(sid:sht):void ",   
"CLTstopSession;",      "Stop a particular session"     ]
 [ "clients",   "suspend",      "pattern clients.suspend(id:int):void ",        
"CLTsuspend;",  "Put a client process to sleep for some time.\nIt will simple 
sleep for a second at a time, until\nthe awake bit has been set in its 
descriptor"        ]
 [ "clients",   "wakeup",       "command clients.wakeup(id:int):void ", 
"CLTwakeup;",   "Wakeup a client process"       ]
 [ "color",     "#fromstr",     "command color.#fromstr():void ",       
"color_fromstr;",       ""      ]
@@ -11123,7 +11143,6 @@ stdout of test 'MAL-signatures` in direc
 [ "io",        "printf",       "pattern io.printf(filep:streams, fmt:str):void 
",      "IOprintfStream;",      "Select default format "        ]
 [ "io",        "printf",       "pattern io.printf(filep:streams, fmt:str, 
val:any...):void ",  "IOprintfStream;",      "Select default format "        ]
 [ "io",        "setmallocsuccesscount",        "command 
io.setmallocsuccesscount(count:lng):void ",    "IOsetmallocsuccesscount;",     
"Set number of mallocs that are allowed to succeed."    ]
-[ "io",        "stderr",       "pattern io.stderr():streams ", "io_stderr;",   
"return the error stream for the database console"      ]
 [ "io",        "stdin",        "pattern io.stdin():bstream ",  "io_stdin;",    
"return the input stream to the database client"        ]
 [ "io",        "stdout",       "pattern io.stdout():streams ", "io_stdout;",   
"return the output stream for the database client"      ]
 [ "iterator",  "new",  "pattern iterator.new(b:bat[:any_2]) (h:oid, t:any_2) 
",        "ITRbunIterator;",      "Process the buns one by one extracted from a 
void table."      ]
@@ -11138,7 +11157,7 @@ stdout of test 'MAL-signatures` in direc
 [ "iterator",  "next", "command iterator.next(step:sht, last:sht):sht ",       
"ITRnext_sht;", ""      ]
 [ "json",      "#fromstr",     "command json.#fromstr():void ",        
"JSONfromString;",      "Validate a string to be JSON compliant. A NOOP if 
valid json, NULL otherwise." ]
 [ "json",      "#tostr",       "command json.#tostr():void ",  
"JSONtoString;",        "Convert JSON to its string equivalent. Dealing with 
escape characters" ]
-[ "json",      "dump", "command json.dump(j:json):void ",      "JSONdump;",    
""      ]
+[ "json",      "dump", "pattern json.dump(j:json):void ",      "JSONdump;",    
""      ]
 [ "json",      "filter",       "command json.filter(name:json, 
pathexpr:str):json ",   "JSONfilter;",  "Filter all members of an object by a 
path expression, returning an array.\nNon-matching elements are skipped." ]
 [ "json",      "filter",       "command json.filter(name:json, idx:bte, 
other:str):json ",     "JSONfilterArrayDefault_bte;",  ""      ]
 [ "json",      "filter",       "command json.filter(name:json, idx:int, 
other:str):json ",     "JSONfilterArrayDefault_int;",  ""      ]
@@ -11667,11 +11686,12 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",       "export_table", "unsafe pattern sql.export_table(fname:str, 
fmt:str, colsep:str, recsep:str, qout:str, nullrep:str, onclient:int, 
tbl:bat[:str], attr:bat[:str], tpe:bat[:str], len:bat[:int], scale:bat[:int], 
cols:any...):int ",     "mvc_export_row_wrap;", "Prepare a table result set for 
the COPY INTO stream"   ]
 [ "sql",       "export_table", "unsafe pattern sql.export_table(fname:str, 
fmt:str, colsep:str, recsep:str, qout:str, nullrep:str, onclient:int, 
tbl:bat[:str], attr:bat[:str], tpe:bat[:str], len:bat[:int], scale:bat[:int], 
cols:bat[:any]...):int ",       "mvc_export_table_wrap;",       "Prepare a 
table result set for the COPY INTO stream"   ]
 [ "sql",       "first_value",  "pattern sql.first_value(b:any_1, s:lng, 
e:lng):any_1 ",        "SQLfirst_value;",      "return the first value of 
groups"      ]
-[ "sql",       "flush_log",    "command sql.flush_log():void ",        
"SQLflush_log;",        "flush the log now"     ]
+[ "sql",       "flush_log",    "command sql.flush_log():void ",        
"SQLflush_log;",        "start flushing the write ahead log"    ]
 [ "sql",       "getVariable",  "pattern sql.getVariable(mvc:int, 
varname:str):any_1 ", "getVariable;", "Get the value of a session variable"   ]
 [ "sql",       "getVersion",   "command sql.getVersion(clientid:int):lng ",    
"mvc_getVersion;",      "Return the database version identifier for a client."  
]
 [ "sql",       "get_value",    "pattern sql.get_value(sname:str, 
sequence:str):lng ",  "mvc_get_value;",       "return the current value of the 
sequence"      ]
 [ "sql",       "grow", "pattern sql.grow(tid:bat[:oid], X_0:any_1):int ",      
"mvc_grow_wrap;",       "Resize the tid column of a declared table."    ]
+[ "sql",       "hot_snapshot", "command sql.hot_snapshot(tarfile:str):void ",  
"SQLhot_snapshot;",     "Write db snapshot to the given tar(.gz) file"  ]
 [ "sql",       "importTable",  "unsafe pattern sql.importTable(sname:str, 
tname:str, onclient:int, fname:str...):bat[:any]... ",       
"mvc_bin_import_table_wrap;",   "Import a table from the files (fname)" ]
 [ "sql",       "include",      "pattern sql.include(fname:str):void ", 
"SQLinclude;",  "Compile and execute a sql statements on the file"      ]
 [ "sql",       "lag",  "pattern sql.lag(b:any_1, l:any_2, d:any_1, p:any_3, 
o:any_4):any_1 ",  "SQLlag;",      "return the value in the previous 'l' row in 
the partition or 'd' if non existent"      ]
@@ -11739,7 +11759,7 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",       "round",        "command sql.round(v:sht, d:int, s:int, 
r:bte):sht ",   "sht_round_wrap;",      "round off the decimal v(d,s) to r 
digits behind the dot (if r < 0, before the dot)"    ]
 [ "sql",       "row_number",   "pattern sql.row_number(b:any_1, p:bit, 
o:bit):int ",   "SQLrow_number;",       "return the row_numer-ed groups"        
]
 [ "sql",       "rt_credentials",       "pattern 
sql.rt_credentials(tablename:str) (uri:bat[:str], username:bat[:str], 
hash:bat[:str]) ",       "sql_rt_credentials_wrap;",     "Return the remote 
table credentials for the given table"       ]
-[ "sql",       "sessions",     "pattern sql.sessions() (user:bat[:str], 
start:bat[:timestamp], stimeout:bat[:lng], lastcmd:bat[:timestamp], 
qtimeout:bat[:lng], idle:bat[:bit]) ",     "sql_sessions_wrap;",   "SQL export 
table of active sessions, their timeouts and idle status"   ]
+[ "sql",       "sessions",     "pattern sql.sessions() (id:bat[:int], 
user:bat[:str], start:bat[:timestamp], stimeout:bat[:lng], 
lastcmd:bat[:timestamp], qtimeout:bat[:lng], idle:bat[:int]) ",       
"sql_sessions_wrap;",   "SQL export table of active sessions, their timeouts 
and idle status"   ]
 [ "sql",       "setVariable",  "pattern sql.setVariable(mvc:int, varname:str, 
value:any_1):int ",      "setVariable;", "Set the value of a session variable"  
 ]
 [ "sql",       "shrink",       "pattern sql.shrink(sch:str, tbl:str):void ",   
"SQLshrink;",   "Consolidate the deletion table over all columns using 
shrinking"       ]
 [ "sql",       "shutdown",     "pattern sql.shutdown(delay:bte):str ", 
"SQLshutdown_wrap;",    ""      ]
@@ -11771,7 +11791,7 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",       "sysmon_pause", "pattern sql.sysmon_pause(tag:int):void ",      
"SYSMONpause;", ""      ]
 [ "sql",       "sysmon_pause", "pattern sql.sysmon_pause(tag:lng):void ",      
"SYSMONpause;", ""      ]
 [ "sql",       "sysmon_pause", "pattern sql.sysmon_pause(tag:sht):void ",      
"SYSMONpause;", ""      ]
-[ "sql",       "sysmon_queue", "pattern sql.sysmon_queue() (qtag:bat[:lng], 
user:bat[:str], started:bat[:timestamp], estimate:bat[:timestamp], 
progress:bat[:int], status:bat[:str], tag:bat[:oid], query:bat[:str]) ",        
"SYSMONqueue;", ""      ]
+[ "sql",       "sysmon_queue", "pattern sql.sysmon_queue() (qtag:bat[:lng], 
sessionid:bat[:int], user:bat[:str], started:bat[:timestamp], 
estimate:bat[:timestamp], progress:bat[:int], status:bat[:str], tag:bat[:oid], 
query:bat[:str]) ",   "SYSMONqueue;", ""      ]
 [ "sql",       "sysmon_resume",        "pattern 
sql.sysmon_resume(tag:int):void ",     "SYSMONresume;",        ""      ]
 [ "sql",       "sysmon_resume",        "pattern 
sql.sysmon_resume(tag:lng):void ",     "SYSMONresume;",        ""      ]
 [ "sql",       "sysmon_resume",        "pattern 
sql.sysmon_resume(tag:sht):void ",     "SYSMONresume;",        ""      ]
diff --git a/clients/Tests/MAL-signatures.stable.out.int128 
b/clients/Tests/MAL-signatures.stable.out.int128
--- a/clients/Tests/MAL-signatures.stable.out.int128
+++ b/clients/Tests/MAL-signatures.stable.out.int128
@@ -12695,6 +12695,9 @@ stdout of test 'MAL-signatures` in direc
 [ "batsql",    "diff", "pattern batsql.diff(b:bat[:any_1]):bat[:bit] ",        
"SQLdiff;",     "return true if cur != prev row"        ]
 [ "batsql",    "diff", "pattern batsql.diff(p:bat[:bit], 
b:bat[:any_1]):bat[:bit] ",   "SQLdiff;",     "return true if cur != prev row"  
      ]
 [ "batsql",    "first_value",  "pattern batsql.first_value(b:bat[:any_1], 
s:bat[:lng], e:bat[:lng]):bat[:any_1] ",     "SQLfirst_value;",      "return 
the first value of groups"      ]
+[ "batsql",    "get_value",    "pattern batsql.get_value(sname:bat[:str], 
sequence:bat[:str]):bat[:lng] ",     "mvc_bat_get_value;",   "return the 
current value of sequences" ]
+[ "batsql",    "get_value",    "pattern batsql.get_value(sname:bat[:str], 
sequence:str):bat[:lng] ",   "mvc_bat_get_value;",   "return the current value 
of the sequence"      ]
+[ "batsql",    "get_value",    "pattern batsql.get_value(sname:str, 
sequence:bat[:str]):bat[:lng] ",   "mvc_bat_get_value;",   "return the current 
value of sequences" ]
 [ "batsql",    "lag",  "pattern batsql.lag(b:bat[:any_1], l:any_2, d:any_1, 
p:any_3, o:any_4):bat[:any_1] ",   "SQLlag;",      "return the value in the 
previous 'l' row in the partition or 'd' if non existent"      ]
 [ "batsql",    "lag",  "pattern batsql.lag(b:bat[:any_1], l:any_2, 
d:bat[:any_1], p:any_3, o:any_4):bat[:any_1] ",     "SQLlag;",      "return the 
value in the previous 'l' row in the partition or 'd' if non existent"      ]
 [ "batsql",    "lag",  "pattern batsql.lag(b:bat[:any_1], l:any_2, p:any_3, 
o:any_4):bat[:any_1] ",    "SQLlag;",      "return the value in the previous 
'l' row in the partition or NULL if non existent"     ]
@@ -12712,7 +12715,9 @@ stdout of test 'MAL-signatures` in direc
 [ "batsql",    "lead", "pattern batsql.lead(b:bat[:any_1], p:any_3, 
o:any_4):bat[:any_1] ",    "SQLlead;",     "return the value in the next row in 
the partition or NULL if non existent"     ]
 [ "batsql",    "max",  "pattern batsql.max(b:bat[:any_1], s:bat[:lng], 
e:bat[:lng]):bat[:any_1] ",     "SQLmax;",      "return the maximum of groups"  
]
 [ "batsql",    "min",  "pattern batsql.min(b:bat[:any_1], s:bat[:lng], 
e:bat[:lng]):bat[:any_1] ",     "SQLmin;",      "return the minimum of groups"  
]
+[ "batsql",    "next_value",   "pattern batsql.next_value(sname:bat[:str], 
sequence:bat[:str]):bat[:lng] ",    "mvc_bat_next_value;",  "return the next 
value of sequences"    ]
 [ "batsql",    "next_value",   "pattern batsql.next_value(sname:bat[:str], 
sequence:str):bat[:lng] ",  "mvc_bat_next_value;",  "return the next value of 
the sequence" ]
+[ "batsql",    "next_value",   "pattern batsql.next_value(sname:str, 
sequence:bat[:str]):bat[:lng] ",  "mvc_bat_next_value;",  "return the next 
value of sequences"    ]
 [ "batsql",    "nth_value",    "pattern batsql.nth_value(b:bat[:any_1], 
n:any_2, s:bat[:lng], e:bat[:lng]):bat[:any_1] ",      "SQLnth_value;",        
"return the nth value of each group"    ]
 [ "batsql",    "nth_value",    "pattern batsql.nth_value(b:bat[:any_1], 
n:bat[:any_2], s:bat[:lng], e:bat[:lng]):bat[:any_1] ",        "SQLnth_value;", 
       "return the nth value of each group"    ]
 [ "batsql",    "ntile",        "pattern batsql.ntile(b:bat[:any_1], n:any_2, 
p:any_3, o:any_4):bat[:any_2] ",  "SQLntile;",    "return the groups divided as 
equally as possible"      ]
@@ -12732,6 +12737,13 @@ stdout of test 'MAL-signatures` in direc
 [ "batsql",    "prod", "pattern batsql.prod(b:bat[:sht], s:bat[:lng], 
e:bat[:lng]):bat[:hge] ",        "SQLprod;",     "return the product of groups" 
 ]
 [ "batsql",    "prod", "pattern batsql.prod(b:bat[:sht], s:bat[:lng], 
e:bat[:lng]):bat[:lng] ",        "SQLprod;",     "return the product of groups" 
 ]
 [ "batsql",    "rank", "pattern batsql.rank(b:bat[:any_1], p:any_2, 
o:any_3):bat[:int] ",      "SQLrank;",     "return the ranked groups"      ]
+[ "batsql",    "restart",      "unsafe pattern batsql.restart(sname:bat[:str], 
sequence:bat[:str], start:bat[:lng]):bat[:lng] ",       "mvc_bat_restart_seq;", 
"restart the sequence with value start" ]
+[ "batsql",    "restart",      "unsafe pattern batsql.restart(sname:bat[:str], 
sequence:bat[:str], start:lng):bat[:lng] ",     "mvc_bat_restart_seq;", 
"restart the sequence with value start" ]
+[ "batsql",    "restart",      "unsafe pattern batsql.restart(sname:bat[:str], 
sequence:str, start:bat[:lng]):bat[:lng] ",     "mvc_bat_restart_seq;", 
"restart the sequence with value start" ]
+[ "batsql",    "restart",      "unsafe pattern batsql.restart(sname:bat[:str], 
sequence:str, start:lng):bat[:lng] ",   "mvc_bat_restart_seq;", "restart the 
sequence with value start" ]
+[ "batsql",    "restart",      "unsafe pattern batsql.restart(sname:str, 
sequence:bat[:str], start:bat[:lng]):bat[:lng] ",     "mvc_bat_restart_seq;", 
"restart the sequence with value start" ]
+[ "batsql",    "restart",      "unsafe pattern batsql.restart(sname:str, 
sequence:bat[:str], start:lng):bat[:lng] ",   "mvc_bat_restart_seq;", "restart 
the sequence with value start" ]
+[ "batsql",    "restart",      "unsafe pattern batsql.restart(sname:str, 
sequence:str, start:bat[:lng]):bat[:lng] ",   "mvc_bat_restart_seq;", "restart 
the sequence with value start" ]
 [ "batsql",    "round",        "command batsql.round(v:bat[:bte], d:int, 
s:int, r:bte):bat[:bte] ",    "bte_bat_round_wrap;",  "round off the decimal 
v(d,s) to r digits behind the dot (if r < 0, before the dot)"    ]
 [ "batsql",    "round",        "command batsql.round(v:bat[:dbl], 
r:bte):bat[:dbl] ",  "dbl_bat_round_wrap;",  "round off the floating point v to 
r digits behind the dot (if r < 0, before the dot)"  ]
 [ "batsql",    "round",        "command batsql.round(v:bat[:flt], 
r:bte):bat[:flt] ",  "flt_bat_round_wrap;",  "round off the floating point v to 
r digits behind the dot (if r < 0, before the dot)"  ]
@@ -15129,22 +15141,30 @@ stdout of test 'MAL-signatures` in direc
 [ "clients",   "getUsername",  "pattern clients.getUsername():str ",   
"CLTgetUsername;",      "Return the username of the currently logged in user"   
]
 [ "clients",   "getUsers",     "pattern clients.getUsers() (X_0:bat[:oid], 
X_1:bat[:str]) ",   "CLTgetUsers;", "return a BAT with user id and one with 
name available in the system"   ]
 [ "clients",   "md5sum",       "command clients.md5sum(pw:str):str ",  
"CLTmd5sum;",   "Return hex string representation of the MD5 hash of the given 
string"  ]
+[ "clients",   "querytimeout", "pattern clients.querytimeout(sid:bte, 
n:lng):void ",   "CLTqueryTimeout;",     ""      ]
+[ "clients",   "querytimeout", "pattern clients.querytimeout(sid:int, 
n:lng):void ",   "CLTqueryTimeout;",     ""      ]
+[ "clients",   "querytimeout", "pattern clients.querytimeout(sid:sht, 
n:lng):void ",   "CLTqueryTimeout;",     ""      ]
 [ "clients",   "quit", "pattern clients.quit():void ", "CLTquit;",     
"Terminate the client session." ]
 [ "clients",   "quit", "pattern clients.quit(idx:int):void ",  "CLTquit;",     
"Terminate the session for a single client using a soft error.\nIt is the 
privilige of the console user."       ]
 [ "clients",   "removeUser",   "pattern clients.removeUser(nme:str):void ",    
"CLTremoveUser;",       "Remove the given user from the system" ]
 [ "clients",   "ripemd160sum", "command clients.ripemd160sum(pw:str):str ",    
"CLTripemd160sum;",     "Return hex string representation of the RIPEMD160 hash 
of the given string"    ]
+[ "clients",   "sessiontimeout",       "pattern 
clients.sessiontimeout(sid:bte, n:lng):void ", "CLTsessionTimeout;",   "Set the 
session timeout for a particulat session id"   ]
+[ "clients",   "sessiontimeout",       "pattern 
clients.sessiontimeout(sid:int, n:lng):void ", "CLTsessionTimeout;",   "Set the 
session timeout for a particulat session id"   ]
+[ "clients",   "sessiontimeout",       "pattern 
clients.sessiontimeout(sid:sht, n:lng):void ", "CLTsessionTimeout;",   "Set the 
session timeout for a particulat session id"   ]
 [ "clients",   "setListing",   "pattern clients.setListing(flag:int):int ",    
"CLTsetListing;",       "Turn on/off echo of MAL instructions:\n\t1 - echo 
input,\n\t2 - show mal instruction,\n\t4 - show details of type resolutoin, 
\n\t8 - show binding information."       ]
 [ "clients",   "setPassword",  "pattern clients.setPassword(user:str, 
pass:str):void ",        "CLTsetPassword;",      "Set the password for the 
given user"   ]
 [ "clients",   "setScenario",  "pattern clients.setScenario(msg:str):str ",    
"CLTsetScenario;",      "Switch to other scenario handler, return previous 
one."        ]
 [ "clients",   "setprinttimeout",      "command 
clients.setprinttimeout(n:int):void ", "CLTsetPrintTimeout;",  "Print running 
query every so many seconds."    ]
 [ "clients",   "setsession",   "pattern clients.setsession(n:lng):void ",      
"CLTsetSessionTimeout;",        "Abort a session after  n seconds."     ]
-[ "clients",   "settimeout",   "pattern clients.settimeout(n:lng):void ",      
"CLTsetTimeout;",       "Abort a query after  n seconds."       ]
-[ "clients",   "settimeout",   "pattern clients.settimeout(q:lng, s:lng):void 
",       "CLTsetTimeout;",       "Abort a query after q seconds (q=0 means run 
undisturbed).\nThe session timeout aborts the connection after spending 
too\nmany seconds on query processing."   ]
+[ "clients",   "settimeout",   "pattern clients.settimeout(n:lng):void ",      
"CLTsetTimeout;",       "Abort a query after q seconds (q=0 means run 
undisturbed).\nThe session timeout aborts the connection after spending 
too\nmany seconds on query processing."   ]
 [ "clients",   "sha1sum",      "command clients.sha1sum(pw:str):str ", 
"CLTsha1sum;",  "Return hex string representation of the SHA-1 hash of the 
given string"        ]
 [ "clients",   "sha2sum",      "command clients.sha2sum(pw:str, bits:int):str 
",       "CLTsha2sum;",  "Return hex string representation of the SHA-2 hash 
with bits of the given string"      ]
 [ "clients",   "shutdown",     "pattern clients.shutdown(delay:int):str ",     
"CLTshutdown;", ""      ]
 [ "clients",   "shutdown",     "pattern clients.shutdown(delay:int, 
forced:bit):str ", "CLTshutdown;", "Close all other client connections. Return 
if it succeeds.\nIf forced is set then always stop the system the hard way" ]
 [ "clients",   "stop", "pattern clients.stop(id:int):void ",   "CLTstop;",     
"Stop the query execution at the next eligble statement."       ]
+[ "clients",   "stopsession",  "pattern clients.stopsession(sid:bte):void ",   
"CLTstopSession;",      "Stop a particular session"     ]
+[ "clients",   "stopsession",  "pattern clients.stopsession(sid:int):void ",   
"CLTstopSession;",      "Stop a particular session"     ]
+[ "clients",   "stopsession",  "pattern clients.stopsession(sid:sht):void ",   
"CLTstopSession;",      "Stop a particular session"     ]
 [ "clients",   "suspend",      "pattern clients.suspend(id:int):void ",        
"CLTsuspend;",  "Put a client process to sleep for some time.\nIt will simple 
sleep for a second at a time, until\nthe awake bit has been set in its 
descriptor"        ]
 [ "clients",   "wakeup",       "command clients.wakeup(id:int):void ", 
"CLTwakeup;",   "Wakeup a client process"       ]
 [ "color",     "#fromstr",     "command color.#fromstr():void ",       
"color_fromstr;",       ""      ]
@@ -15521,7 +15541,6 @@ stdout of test 'MAL-signatures` in direc
 [ "io",        "printf",       "pattern io.printf(filep:streams, fmt:str):void 
",      "IOprintfStream;",      "Select default format "        ]
 [ "io",        "printf",       "pattern io.printf(filep:streams, fmt:str, 
val:any...):void ",  "IOprintfStream;",      "Select default format "        ]
 [ "io",        "setmallocsuccesscount",        "command 
io.setmallocsuccesscount(count:lng):void ",    "IOsetmallocsuccesscount;",     
"Set number of mallocs that are allowed to succeed."    ]
-[ "io",        "stderr",       "pattern io.stderr():streams ", "io_stderr;",   
"return the error stream for the database console"      ]
 [ "io",        "stdin",        "pattern io.stdin():bstream ",  "io_stdin;",    
"return the input stream to the database client"        ]
 [ "io",        "stdout",       "pattern io.stdout():streams ", "io_stdout;",   
"return the output stream for the database client"      ]
 [ "iterator",  "filter",       "command iterator.filter(name:json, idx:hge, 
other:str):json ", "JSONfilterArrayDefault_hge;",  ""      ]
@@ -15539,7 +15558,7 @@ stdout of test 'MAL-signatures` in direc
 [ "iterator",  "next", "command iterator.next(step:sht, last:sht):sht ",       
"ITRnext_sht;", ""      ]
 [ "json",      "#fromstr",     "command json.#fromstr():void ",        
"JSONfromString;",      "Validate a string to be JSON compliant. A NOOP if 
valid json, NULL otherwise." ]
 [ "json",      "#tostr",       "command json.#tostr():void ",  
"JSONtoString;",        "Convert JSON to its string equivalent. Dealing with 
escape characters" ]
-[ "json",      "dump", "command json.dump(j:json):void ",      "JSONdump;",    
""      ]
+[ "json",      "dump", "pattern json.dump(j:json):void ",      "JSONdump;",    
""      ]
 [ "json",      "filter",       "command json.filter(name:json, 
pathexpr:str):json ",   "JSONfilter;",  "Filter all members of an object by a 
path expression, returning an array.\nNon-matching elements are skipped." ]
 [ "json",      "filter",       "command json.filter(name:json, idx:bte, 
other:str):json ",     "JSONfilterArrayDefault_bte;",  ""      ]
 [ "json",      "filter",       "command json.filter(name:json, idx:int, 
other:str):json ",     "JSONfilterArrayDefault_int;",  ""      ]
@@ -16073,11 +16092,12 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",       "export_table", "unsafe pattern sql.export_table(fname:str, 
fmt:str, colsep:str, recsep:str, qout:str, nullrep:str, onclient:int, 
tbl:bat[:str], attr:bat[:str], tpe:bat[:str], len:bat[:int], scale:bat[:int], 
cols:any...):int ",     "mvc_export_row_wrap;", "Prepare a table result set for 
the COPY INTO stream"   ]
 [ "sql",       "export_table", "unsafe pattern sql.export_table(fname:str, 
fmt:str, colsep:str, recsep:str, qout:str, nullrep:str, onclient:int, 
tbl:bat[:str], attr:bat[:str], tpe:bat[:str], len:bat[:int], scale:bat[:int], 
cols:bat[:any]...):int ",       "mvc_export_table_wrap;",       "Prepare a 
table result set for the COPY INTO stream"   ]
 [ "sql",       "first_value",  "pattern sql.first_value(b:any_1, s:lng, 
e:lng):any_1 ",        "SQLfirst_value;",      "return the first value of 
groups"      ]
-[ "sql",       "flush_log",    "command sql.flush_log():void ",        
"SQLflush_log;",        "flush the log now"     ]
+[ "sql",       "flush_log",    "command sql.flush_log():void ",        
"SQLflush_log;",        "start flushing the write ahead log"    ]
 [ "sql",       "getVariable",  "pattern sql.getVariable(mvc:int, 
varname:str):any_1 ", "getVariable;", "Get the value of a session variable"   ]
 [ "sql",       "getVersion",   "command sql.getVersion(clientid:int):lng ",    
"mvc_getVersion;",      "Return the database version identifier for a client."  
]
 [ "sql",       "get_value",    "pattern sql.get_value(sname:str, 
sequence:str):lng ",  "mvc_get_value;",       "return the current value of the 
sequence"      ]
 [ "sql",       "grow", "pattern sql.grow(tid:bat[:oid], X_0:any_1):int ",      
"mvc_grow_wrap;",       "Resize the tid column of a declared table."    ]
+[ "sql",       "hot_snapshot", "command sql.hot_snapshot(tarfile:str):void ",  
"SQLhot_snapshot;",     "Write db snapshot to the given tar(.gz) file"  ]
 [ "sql",       "importTable",  "unsafe pattern sql.importTable(sname:str, 
tname:str, onclient:int, fname:str...):bat[:any]... ",       
"mvc_bin_import_table_wrap;",   "Import a table from the files (fname)" ]
 [ "sql",       "include",      "pattern sql.include(fname:str):void ", 
"SQLinclude;",  "Compile and execute a sql statements on the file"      ]
 [ "sql",       "lag",  "pattern sql.lag(b:any_1, l:any_2, d:any_1, p:any_3, 
o:any_4):any_1 ",  "SQLlag;",      "return the value in the previous 'l' row in 
the partition or 'd' if non existent"      ]
@@ -16151,7 +16171,7 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",       "round",        "command sql.round(v:sht, d:int, s:int, 
r:bte):sht ",   "sht_round_wrap;",      "round off the decimal v(d,s) to r 
digits behind the dot (if r < 0, before the dot)"    ]
 [ "sql",       "row_number",   "pattern sql.row_number(b:any_1, p:bit, 
o:bit):int ",   "SQLrow_number;",       "return the row_numer-ed groups"        
]
 [ "sql",       "rt_credentials",       "pattern 
sql.rt_credentials(tablename:str) (uri:bat[:str], username:bat[:str], 
hash:bat[:str]) ",       "sql_rt_credentials_wrap;",     "Return the remote 
table credentials for the given table"       ]
-[ "sql",       "sessions",     "pattern sql.sessions() (user:bat[:str], 
start:bat[:timestamp], stimeout:bat[:lng], lastcmd:bat[:timestamp], 
qtimeout:bat[:lng], idle:bat[:bit]) ",     "sql_sessions_wrap;",   "SQL export 
table of active sessions, their timeouts and idle status"   ]
+[ "sql",       "sessions",     "pattern sql.sessions() (id:bat[:int], 
user:bat[:str], start:bat[:timestamp], stimeout:bat[:lng], 
lastcmd:bat[:timestamp], qtimeout:bat[:lng], idle:bat[:int]) ",       
"sql_sessions_wrap;",   "SQL export table of active sessions, their timeouts 
and idle status"   ]
 [ "sql",       "setVariable",  "pattern sql.setVariable(mvc:int, varname:str, 
value:any_1):int ",      "setVariable;", "Set the value of a session variable"  
 ]
 [ "sql",       "shrink",       "pattern sql.shrink(sch:str, tbl:str):void ",   
"SQLshrink;",   "Consolidate the deletion table over all columns using 
shrinking"       ]
 [ "sql",       "shutdown",     "pattern sql.shutdown(delay:bte):str ", 
"SQLshutdown_wrap;",    ""      ]
@@ -16188,7 +16208,7 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",       "sysmon_pause", "pattern sql.sysmon_pause(tag:int):void ",      
"SYSMONpause;", ""      ]
 [ "sql",       "sysmon_pause", "pattern sql.sysmon_pause(tag:lng):void ",      
"SYSMONpause;", ""      ]
 [ "sql",       "sysmon_pause", "pattern sql.sysmon_pause(tag:sht):void ",      
"SYSMONpause;", ""      ]
-[ "sql",       "sysmon_queue", "pattern sql.sysmon_queue() (qtag:bat[:lng], 
user:bat[:str], started:bat[:timestamp], estimate:bat[:timestamp], 
progress:bat[:int], status:bat[:str], tag:bat[:oid], query:bat[:str]) ",        
"SYSMONqueue;", ""      ]
+[ "sql",       "sysmon_queue", "pattern sql.sysmon_queue() (qtag:bat[:lng], 
sessionid:bat[:int], user:bat[:str], started:bat[:timestamp], 
estimate:bat[:timestamp], progress:bat[:int], status:bat[:str], tag:bat[:oid], 
query:bat[:str]) ",   "SYSMONqueue;", ""      ]
 [ "sql",       "sysmon_resume",        "pattern 
sql.sysmon_resume(tag:int):void ",     "SYSMONresume;",        ""      ]
 [ "sql",       "sysmon_resume",        "pattern 
sql.sysmon_resume(tag:lng):void ",     "SYSMONresume;",        ""      ]
 [ "sql",       "sysmon_resume",        "pattern 
sql.sysmon_resume(tag:sht):void ",     "SYSMONresume;",        ""      ]
diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out
--- a/clients/Tests/exports.stable.out
+++ b/clients/Tests/exports.stable.out
@@ -161,7 +161,7 @@ bool BATordered(BAT *b);
 bool BATordered_rev(BAT *b);
 gdk_return BATorderidx(BAT *b, bool stable);
 gdk_return BATouterjoin(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, BAT 
*sr, bool nil_matches, BUN estimate) __attribute__((__warn_unused_result__));
-gdk_return BATprint(BAT *b);
+gdk_return BATprint(stream *s, BAT *b);
 gdk_return BATprintcolumns(stream *s, int argc, BAT *argv[]);
 gdk_return BATprod(void *res, int tp, BAT *b, BAT *s, bool skip_nils, bool 
abort_on_error, bool nil_if_empty);
 BAT *BATproject(BAT *l, BAT *r);
@@ -929,9 +929,11 @@ str CLTgetTimeout(Client cntxt, MalBlkPt
 str CLTgetUsername(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
 str CLTgetUsers(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
 str CLTmd5sum(str *ret, str *pw);
+str CLTqueryTimeout(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
 str CLTquit(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
 str CLTremoveUser(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
 str CLTripemd160sum(str *ret, str *pw);
+str CLTsessionTimeout(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
 str CLTsessions(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
 str CLTsetListing(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
 str CLTsetPassword(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
@@ -943,6 +945,7 @@ str CLTsha1sum(str *ret, str *pw);
 str CLTsha2sum(str *ret, str *pw, int *bits);
 str CLTshutdown(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
 str CLTstop(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to