Changeset: 3394725e7975 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=3394725e7975
Added Files:
        sql/test/BugTracker-2020/Tests/global_table_propagation.Bug-6846.py
        
sql/test/BugTracker-2020/Tests/global_table_propagation.Bug-6846.stable.err
        
sql/test/BugTracker-2020/Tests/global_table_propagation.Bug-6846.stable.out
        sql/test/BugTracker-2020/Tests/sysqueue.sql
        sql/test/BugTracker-2020/Tests/sysqueue.stable.err
        sql/test/BugTracker-2020/Tests/sysqueue.stable.out
Modified Files:
        ChangeLog
        NT/monetdb_config.h.in
        clients/Tests/All
        clients/Tests/MAL-signatures.stable.out
        clients/Tests/MAL-signatures.stable.out.int128
        clients/Tests/SingleServer
        clients/Tests/exports.stable.out
        clients/examples/C/smack00.c
        clients/examples/C/smack01.c
        clients/mapiclient/mclient.1
        clients/mapiclient/mclient.c
        clients/odbc/samples/arraytest.c
        clients/odbc/samples/odbcsample1.c
        clients/odbc/samples/testStmtAttr.c
        clients/odbc/samples/testgetinfo.c
        gdk/gdk.h
        gdk/gdk_aggr.c
        gdk/gdk_align.c
        gdk/gdk_analytic_bounds.c
        gdk/gdk_analytic_func.c
        gdk/gdk_atoms.c
        gdk/gdk_bat.c
        gdk/gdk_batop.c
        gdk/gdk_bbp.c
        gdk/gdk_calc.c
        gdk/gdk_calc_compare.h
        gdk/gdk_cand.c
        gdk/gdk_group.c
        gdk/gdk_hash.c
        gdk/gdk_heap.c
        gdk/gdk_imprints.c
        gdk/gdk_join.c
        gdk/gdk_logger.c
        gdk/gdk_orderidx.c
        gdk/gdk_posix.c
        gdk/gdk_private.h
        gdk/gdk_project.c
        gdk/gdk_sample.c
        gdk/gdk_select.c
        gdk/gdk_storage.c
        gdk/gdk_string.c
        gdk/gdk_system.c
        gdk/gdk_system_private.h
        gdk/gdk_tm.c
        gdk/gdk_tracer.c
        gdk/gdk_tracer.h
        gdk/gdk_unique.c
        gdk/gdk_utils.c
        geom/lib/libgeom.c
        monetdb5/mal/mal.c
        monetdb5/mal/mal_client.c
        monetdb5/mal/mal_dataflow.c
        monetdb5/mal/mal_exception.c
        monetdb5/mal/mal_instruction.c
        monetdb5/mal/mal_linker.c
        monetdb5/mal/mal_parser.c
        monetdb5/mal/mal_resolve.c
        monetdb5/mal/mal_runtime.c
        monetdb5/mal/mal_runtime.h
        monetdb5/modules/atoms/blob.c
        monetdb5/modules/atoms/xml.c
        monetdb5/modules/kernel/algebra.c
        monetdb5/modules/kernel/microbenchmark.c
        monetdb5/modules/mal/mal_mapi.c
        monetdb5/modules/mal/sysmon.c
        monetdb5/modules/mal/sysmon.mal
        monetdb5/modules/mal/tablet.c
        monetdb5/optimizer/opt_multiplex.c
        monetdb5/optimizer/opt_pushselect.c
        monetdb5/tools/Tests/mserver5--help.stable.err
        monetdb5/tools/Tests/mserver5--help.stable.err.Windows
        sql/ChangeLog.Jun2020
        sql/backends/monet5/rel_bin.c
        sql/backends/monet5/sql.c
        sql/backends/monet5/sql.mal
        sql/backends/monet5/sql_cat.c
        sql/backends/monet5/sql_execute.c
        sql/backends/monet5/sql_result.c
        sql/backends/monet5/sql_statement.c
        sql/backends/monet5/sql_statement.h
        sql/backends/monet5/sql_upgrades.c
        sql/common/sql_list.c
        sql/common/sql_mem.c
        sql/include/sql_catalog.h
        sql/include/sql_list.h
        sql/scripts/26_sysmon.sql
        sql/server/rel_propagate.c
        sql/server/rel_schema.c
        sql/server/rel_select.c
        sql/server/rel_semantic.c
        sql/server/rel_unnest.c
        sql/server/rel_updates.c
        sql/server/sql_mvc.c
        sql/server/sql_partition.c
        sql/server/sql_query.c
        sql/server/sql_query.h
        sql/storage/bat/bat_storage.c
        sql/storage/sql_catalog.c
        sql/storage/sql_storage.h
        sql/storage/store.c
        sql/test/BugTracker-2010/Tests/new-readonly-db.Bug-2695.stable.err
        sql/test/BugTracker-2014/Tests/inet_error_handling.Bug-3624.stable.err
        sql/test/BugTracker-2014/Tests/queueError.Bug-3604.stable.out
        sql/test/BugTracker-2015/Tests/float-space-parse.Bug-3691.stable.err
        sql/test/BugTracker-2015/Tests/sessions_crash.Bug-3759.stable.out
        sql/test/BugTracker-2018/Tests/nested-merge-tables.Bug-6585.stable.err
        sql/test/BugTracker-2019/Tests/grant-select-column.Bug-6765.py
        sql/test/BugTracker-2019/Tests/grant-select-column.Bug-6765.stable.err
        sql/test/BugTracker-2019/Tests/grant-select-column.Bug-6765.stable.out
        sql/test/BugTracker-2019/Tests/python-loader-string.Bug-6759.py
        sql/test/BugTracker-2019/Tests/python-loader-string.Bug-6759.stable.err
        sql/test/BugTracker-2019/Tests/python-loader-string.Bug-6759.stable.out
        sql/test/BugTracker-2019/Tests/rank-nan.Bug-6780.sql
        sql/test/BugTracker-2019/Tests/rank-nan.Bug-6780.stable.out
        sql/test/BugTracker-2020/Tests/All
        sql/test/BugTracker-2020/Tests/alter-table-add-column.Bug-6816.py
        
sql/test/BugTracker-2020/Tests/alter-table-add-column.Bug-6816.stable.err
        
sql/test/BugTracker-2020/Tests/alter-table-add-column.Bug-6816.stable.out
        sql/test/BugTracker-2020/Tests/functions-not-persist.Bug-6819.SQL.py
        sql/test/BugTracker-2020/Tests/functions-not-persist.Bug-6819.stable.err
        sql/test/BugTracker-2020/Tests/functions-not-persist.Bug-6819.stable.out
        sql/test/VOC/Tests/VOC.stable.out
        sql/test/analytics/Tests/analytics13.sql
        sql/test/analytics/Tests/analytics13.stable.out
        sql/test/merge-partitions/Tests/mergepart05.stable.err
        sql/test/merge-partitions/Tests/mergepart07.stable.err
        sql/test/merge-partitions/Tests/mergepart23.SQL.py
        sql/test/merge-partitions/Tests/mergepart23.stable.err
        sql/test/mergetables/Tests/mergedropcrash.stable.err
        sql/test/pg_regress/Tests/alter_table.stable.err
        sql/test/pg_regress/Tests/drop.stable.err
        sql/test/pg_regress/Tests/inet.stable.err
        sql/test/subquery/Tests/subquery5.sql
        sql/test/subquery/Tests/subquery5.stable.err
        sql/test/subquery/Tests/subquery5.stable.out
        
sql/test/sys-schema/Tests/check_ForeignKey_referential_integrity.stable.out
        sql/test/sys-schema/Tests/systemfunctions.stable.out
        sql/test/sys-schema/Tests/systemfunctions.stable.out.int128
        tools/merovingian/client/monetdb.1
        tools/merovingian/client/monetdb.c
        tools/merovingian/daemon/controlrunner.c
        tools/merovingian/daemon/merovingian.c
        tools/merovingian/daemon/monetdbd.1.in
        tools/merovingian/daemon/snapshot.c
        tools/mserver/mserver5.1.in
        tools/mserver/mserver5.c
Branch: unlock
Log Message:

merged with default


diffs (truncated from 10683 to 300 lines):

diff --git a/ChangeLog b/ChangeLog
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
 # ChangeLog file for devel
 # This file is updated with Maddlog
 
+* Thu Apr  2 2020 Martin Kersten <m...@cwi.nl>
+- The sys.queue() has been turned into a circular buffer to allow for
+  inspection of both active, paused and recently executed queries.
+
diff --git a/NT/monetdb_config.h.in b/NT/monetdb_config.h.in
--- a/NT/monetdb_config.h.in
+++ b/NT/monetdb_config.h.in
@@ -808,6 +808,10 @@
 /* #undef size_t */
 
 #if defined(_MSC_VER) && _MSC_VER < 1900
+/* the Visual Studio 2015 version of snprintf is C99 standard
+ * compliant and different from _snprintf, in older versions, the
+ * functions are the same and return -1 when the buffer is too
+ * small */
 #define snprintf c99_snprintf
 #define vsnprintf c99_vsnprintf
 
diff --git a/clients/Tests/All b/clients/Tests/All
--- a/clients/Tests/All
+++ b/clients/Tests/All
@@ -1,4 +1,4 @@
 exports
-HAVE_FITS&HAVE_GEOM&HAVE_LIBR&HAVE_LIDAR&HAVE_NETCDF&HAVE_SHP?MAL-signatures
+HAVE_FITS&HAVE_GEOM&HAVE_LIBR&HAVE_LIBPY3&HAVE_LIDAR&HAVE_NETCDF&HAVE_SHP&NOT_WIN32?MAL-signatures
 MERCURIAL?malcheck
 mclient-uri
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
@@ -64,7 +64,7 @@ stdout of test 'MAL-signatures` in direc
 % .%1, .%1,    .%1,    .%1,    .%1 # table_name
 % module,      function,       signature,      address,        comment # name
 % clob,        clob,   clob,   clob,   clob # type
-% 10,  28,     364,    38,     874 # length
+% 12,  28,     364,    38,     874 # length
 [ "aggr",      "allnotequal",  "command aggr.allnotequal(l:bat[:any_1], 
r:bat[:any_1]):bit ",  "SQLallnotequal;",      "if all values in r are not 
equal to l return true, else if r has nil nil else false"   ]
 [ "aggr",      "anyequal",     "pattern aggr.anyequal(l:any_1, r:any_1):bit ", 
"CMDvarEQ;",    ""      ]
 [ "aggr",      "anyequal",     "command aggr.anyequal(l:bat[:any_1], 
r:bat[:any_1]):bit ",     "SQLanyequal;", "if any value in r is equal to l 
return true, else if r has nil nil else false" ]
@@ -11242,6 +11242,14 @@ stdout of test 'MAL-signatures` in direc
 [ "batmtime",  "year", "command batmtime.year(d:bat[:date]):bat[:int] ",       
"MTIMEdate_extract_year_bulk;", ""      ]
 [ "batpcre",   "replace",      "command batpcre.replace(orig:bat[:str], 
pat:str, repl:str, flag:str):bat[:str] ",      "PCREreplace_bat_wrap;",        
""      ]
 [ "batpcre",   "replace_first",        "command 
batpcre.replace_first(orig:bat[:str], pat:str, repl:str, flag:str):bat[:str] ", 
       "PCREreplacefirst_bat_wrap;",   ""      ]
+[ "batpyapi3", "eval", "unsafe pattern batpyapi3.eval(fptr:ptr, expr:str, 
arg:any...):any... ",        "PYAPI3PyAPIevalStd;",  "Execute a simple Python 
script value"  ]
+[ "batpyapi3", "eval_aggr",    "unsafe pattern batpyapi3.eval_aggr(fptr:ptr, 
expr:str, arg:any...):any... ",   "PYAPI3PyAPIevalAggr;", "grouped aggregates 
through Python"     ]
+[ "batpyapi3", "eval_loader",  "unsafe pattern batpyapi3.eval_loader(fptr:ptr, 
expr:str):any... ",     "PYAPI3PyAPIevalLoader;",       "loader functions 
through Python"       ]
+[ "batpyapi3", "eval_loader",  "unsafe pattern batpyapi3.eval_loader(fptr:ptr, 
expr:str, arg:any...):any... ", "PYAPI3PyAPIevalLoader;",       "loader 
functions through Python"       ]
+[ "batpyapi3", "subeval_aggr", "unsafe pattern 
batpyapi3.subeval_aggr(fptr:ptr, expr:str, arg:any...):any... ",        
"PYAPI3PyAPIevalAggr;", "grouped aggregates through Python"     ]
+[ "batpyapi3map",      "eval", "pattern batpyapi3map.eval(fptr:ptr, expr:str, 
arg:any...):any... ",    "PYAPI3PyAPIevalStdMap;",       "Execute a simple 
Python script value"  ]
+[ "batpyapi3map",      "eval_aggr",    "pattern 
batpyapi3map.eval_aggr(fptr:ptr, expr:str, arg:any...):any... ",       
"PYAPI3PyAPIevalAggrMap;",      "grouped aggregates through Python"     ]
+[ "batpyapi3map",      "subeval_aggr", "pattern 
batpyapi3map.subeval_aggr(fptr:ptr, expr:str, arg:any...):any... ",    
"PYAPI3PyAPIevalAggrMap;",      "grouped aggregates through Python"     ]
 [ "batrapi",   "eval", "pattern batrapi.eval(fptr:ptr, expr:str, 
arg:any...):any... ", "RAPIevalStd;", "Execute a simple R script value"       ]
 [ "batrapi",   "eval_aggr",    "pattern batrapi.eval_aggr(fptr:ptr, expr:str, 
arg:any...):any... ",    "RAPIevalAggr;",        "grouped aggregates through R" 
 ]
 [ "batrapi",   "subeval_aggr", "pattern batrapi.subeval_aggr(fptr:ptr, 
expr:str, arg:any...):any... ", "RAPIevalAggr;",        "grouped aggregates 
through R"  ]
@@ -13949,6 +13957,17 @@ stdout of test 'MAL-signatures` in direc
 [ "profiler",  "starttrace",   "pattern profiler.starttrace():void ",  
"CMDstartTrace;",       "Start collecting trace information"    ]
 [ "profiler",  "stop", "pattern profiler.stop():void ",        
"CMDstopProfiler;",     "Stop offline performance profiling"    ]
 [ "profiler",  "stoptrace",    "pattern profiler.stoptrace():void ",   
"CMDstopTrace;",        "Stop collecting trace information"     ]
+[ "pyapi3",    "eval", "unsafe pattern pyapi3.eval(fptr:ptr, expr:str):any ",  
"PYAPI3PyAPIevalStd;",  "Execute a simple Python script returning a single 
value"       ]
+[ "pyapi3",    "eval", "unsafe pattern pyapi3.eval(fptr:ptr, expr:str, 
arg:any...):any... ",   "PYAPI3PyAPIevalStd;",  "Execute a simple Python script 
value"  ]
+[ "pyapi3",    "eval_aggr",    "unsafe pattern pyapi3.eval_aggr(fptr:ptr, 
expr:str, arg:any...):any... ",      "PYAPI3PyAPIevalAggr;", "grouped 
aggregates through Python"     ]
+[ "pyapi3",    "eval_loader",  "unsafe pattern pyapi3.eval_loader(fptr:ptr, 
expr:str):any... ",        "PYAPI3PyAPIevalLoader;",       "loader functions 
through Python"       ]
+[ "pyapi3",    "eval_loader",  "unsafe pattern pyapi3.eval_loader(fptr:ptr, 
expr:str, arg:any...):any... ",    "PYAPI3PyAPIevalLoader;",       "loader 
functions through Python"       ]
+[ "pyapi3",    "prelude",      "command pyapi3.prelude():void ",       
"PYAPI3PyAPIprelude;",  ""      ]
+[ "pyapi3",    "subeval_aggr", "unsafe pattern pyapi3.subeval_aggr(fptr:ptr, 
expr:str, arg:any...):any... ",   "PYAPI3PyAPIevalAggr;", "grouped aggregates 
through Python"     ]
+[ "pyapi3map", "eval", "pattern pyapi3map.eval(fptr:ptr, expr:str):any ",      
"PYAPI3PyAPIevalStdMap;",       "Execute a simple Python script returning a 
single value"       ]
+[ "pyapi3map", "eval", "pattern pyapi3map.eval(fptr:ptr, expr:str, 
arg:any...):any... ",       "PYAPI3PyAPIevalStdMap;",       "Execute a simple 
Python script value"  ]
+[ "pyapi3map", "eval_aggr",    "pattern pyapi3map.eval_aggr(fptr:ptr, 
expr:str, arg:any...):any... ",  "PYAPI3PyAPIevalAggrMap;",      "grouped 
aggregates through Python"     ]
+[ "pyapi3map", "subeval_aggr", "pattern pyapi3map.subeval_aggr(fptr:ptr, 
expr:str, arg:any...):any... ",       "PYAPI3PyAPIevalAggrMap;",      "grouped 
aggregates through Python"     ]
 [ "querylog",  "append",       "pattern querylog.append(q:str, pipe:str, 
usr:str, tick:timestamp):void ",      "QLOGappend;",  "Add a new query call to 
the query log" ]
 [ "querylog",  "call", "pattern querylog.call(tick1:timestamp, 
tick2:timestamp, arg:str, tuples:lng, xtime:lng, rtime:lng, cpu:int, 
iowait:int):void ",        "QLOGcall;",    "Add a new query call to the query 
log" ]
 [ "querylog",  "context",      "command querylog.context(release:str, 
version:str, revision:str, uri:str):void ",      "QLOGcontextNaive;",    "Noop 
operation, just marking the query"        ]
@@ -14205,7 +14224,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() (tag:bat[:lng], 
sessionid:bat[:int], user:bat[:str], started:bat[:timestamp], status:bat[:str], 
query:bat[:str], progress:bat[:int], workers:bat[:int], memory:bat[:int]) ",    
    "SYSMONqueue;", ""      ]
+[ "sql",       "sysmon_queue", "pattern sql.sysmon_queue() (tag:bat[:lng], 
sessionid:bat[:int], user:bat[:str], started:bat[:timestamp], status:bat[:str], 
query:bat[:str], finished:bat[:timestamp], workers:bat[:int], memory:bat[:int]) 
",  "SYSMONqueue;", ""      ]
 [ "sql",       "sysmon_resume",        "pattern 
sql.sysmon_resume(tag:bte):void ",     "SYSMONresume;",        ""      ]
 [ "sql",       "sysmon_resume",        "pattern 
sql.sysmon_resume(tag:int):void ",     "SYSMONresume;",        ""      ]
 [ "sql",       "sysmon_resume",        "pattern 
sql.sysmon_resume(tag:lng):void ",     "SYSMONresume;",        ""      ]
@@ -14368,7 +14387,7 @@ stdout of test 'MAL-signatures` in direc
 [ "sysmon",    "pause",        "pattern sysmon.pause(id:int):void ",   
"SYSMONpause;", "Suspend a running query"       ]
 [ "sysmon",    "pause",        "pattern sysmon.pause(id:lng):void ",   
"SYSMONpause;", "Suspend a running query"       ]
 [ "sysmon",    "pause",        "pattern sysmon.pause(id:sht):void ",   
"SYSMONpause;", "Suspend a running query"       ]
-[ "sysmon",    "queue",        "pattern sysmon.queue() (tag:bat[:lng], 
sessionid:bat[:int], user:bat[:str], started:bat[:timestamp], status:bat[:str], 
query:bat[:str], progress:bat[:int], workers:bat[:int], memory:bat[:int]) ",    
"SYSMONqueue;", ""      ]
+[ "sysmon",    "queue",        "pattern sysmon.queue() (tag:bat[:lng], 
sessionid:bat[:int], user:bat[:str], started:bat[:timestamp], status:bat[:str], 
query:bat[:str], finished:bat[:timestamp], workers:bat[:int], memory:bat[:int]) 
",      "SYSMONqueue;", ""      ]
 [ "sysmon",    "resume",       "pattern sysmon.resume(id:int):void ",  
"SYSMONresume;",        "Resume processing of a query " ]
 [ "sysmon",    "resume",       "pattern sysmon.resume(id:lng):void ",  
"SYSMONresume;",        "Resume processing of a query " ]
 [ "sysmon",    "resume",       "pattern sysmon.resume(id:sht):void ",  
"SYSMONresume;",        "Resume processing of a query " ]
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
@@ -68,7 +68,7 @@ stdout of test 'MAL-signatures` in direc
 % .%1, .%1,    .%1,    .%1,    .%1 # table_name
 % module,      function,       signature,      address,        comment # name
 % clob,        clob,   clob,   clob,   clob # type
-% 10,  28,     364,    38,     874 # length
+% 12,  28,     364,    38,     874 # length
 [ "aggr",      "allnotequal",  "command aggr.allnotequal(l:bat[:any_1], 
r:bat[:any_1]):bit ",  "SQLallnotequal;",      "if all values in r are not 
equal to l return true, else if r has nil nil else false"   ]
 [ "aggr",      "anyequal",     "pattern aggr.anyequal(l:any_1, r:any_1):bit ", 
"CMDvarEQ;",    ""      ]
 [ "aggr",      "anyequal",     "command aggr.anyequal(l:bat[:any_1], 
r:bat[:any_1]):bit ",     "SQLanyequal;", "if any value in r is equal to l 
return true, else if r has nil nil else false" ]
@@ -15997,6 +15997,14 @@ stdout of test 'MAL-signatures` in direc
 [ "batmtime",  "year", "command batmtime.year(d:bat[:date]):bat[:int] ",       
"MTIMEdate_extract_year_bulk;", ""      ]
 [ "batpcre",   "replace",      "command batpcre.replace(orig:bat[:str], 
pat:str, repl:str, flag:str):bat[:str] ",      "PCREreplace_bat_wrap;",        
""      ]
 [ "batpcre",   "replace_first",        "command 
batpcre.replace_first(orig:bat[:str], pat:str, repl:str, flag:str):bat[:str] ", 
       "PCREreplacefirst_bat_wrap;",   ""      ]
+[ "batpyapi3", "eval", "unsafe pattern batpyapi3.eval(fptr:ptr, expr:str, 
arg:any...):any... ",        "PYAPI3PyAPIevalStd;",  "Execute a simple Python 
script value"  ]
+[ "batpyapi3", "eval_aggr",    "unsafe pattern batpyapi3.eval_aggr(fptr:ptr, 
expr:str, arg:any...):any... ",   "PYAPI3PyAPIevalAggr;", "grouped aggregates 
through Python"     ]
+[ "batpyapi3", "eval_loader",  "unsafe pattern batpyapi3.eval_loader(fptr:ptr, 
expr:str):any... ",     "PYAPI3PyAPIevalLoader;",       "loader functions 
through Python"       ]
+[ "batpyapi3", "eval_loader",  "unsafe pattern batpyapi3.eval_loader(fptr:ptr, 
expr:str, arg:any...):any... ", "PYAPI3PyAPIevalLoader;",       "loader 
functions through Python"       ]
+[ "batpyapi3", "subeval_aggr", "unsafe pattern 
batpyapi3.subeval_aggr(fptr:ptr, expr:str, arg:any...):any... ",        
"PYAPI3PyAPIevalAggr;", "grouped aggregates through Python"     ]
+[ "batpyapi3map",      "eval", "pattern batpyapi3map.eval(fptr:ptr, expr:str, 
arg:any...):any... ",    "PYAPI3PyAPIevalStdMap;",       "Execute a simple 
Python script value"  ]
+[ "batpyapi3map",      "eval_aggr",    "pattern 
batpyapi3map.eval_aggr(fptr:ptr, expr:str, arg:any...):any... ",       
"PYAPI3PyAPIevalAggrMap;",      "grouped aggregates through Python"     ]
+[ "batpyapi3map",      "subeval_aggr", "pattern 
batpyapi3map.subeval_aggr(fptr:ptr, expr:str, arg:any...):any... ",    
"PYAPI3PyAPIevalAggrMap;",      "grouped aggregates through Python"     ]
 [ "batrapi",   "eval", "pattern batrapi.eval(fptr:ptr, expr:str, 
arg:any...):any... ", "RAPIevalStd;", "Execute a simple R script value"       ]
 [ "batrapi",   "eval_aggr",    "pattern batrapi.eval_aggr(fptr:ptr, expr:str, 
arg:any...):any... ",    "RAPIevalAggr;",        "grouped aggregates through R" 
 ]
 [ "batrapi",   "subeval_aggr", "pattern batrapi.subeval_aggr(fptr:ptr, 
expr:str, arg:any...):any... ", "RAPIevalAggr;",        "grouped aggregates 
through R"  ]
@@ -19401,6 +19409,17 @@ stdout of test 'MAL-signatures` in direc
 [ "profiler",  "starttrace",   "pattern profiler.starttrace():void ",  
"CMDstartTrace;",       "Start collecting trace information"    ]
 [ "profiler",  "stop", "pattern profiler.stop():void ",        
"CMDstopProfiler;",     "Stop offline performance profiling"    ]
 [ "profiler",  "stoptrace",    "pattern profiler.stoptrace():void ",   
"CMDstopTrace;",        "Stop collecting trace information"     ]
+[ "pyapi3",    "eval", "unsafe pattern pyapi3.eval(fptr:ptr, expr:str):any ",  
"PYAPI3PyAPIevalStd;",  "Execute a simple Python script returning a single 
value"       ]
+[ "pyapi3",    "eval", "unsafe pattern pyapi3.eval(fptr:ptr, expr:str, 
arg:any...):any... ",   "PYAPI3PyAPIevalStd;",  "Execute a simple Python script 
value"  ]
+[ "pyapi3",    "eval_aggr",    "unsafe pattern pyapi3.eval_aggr(fptr:ptr, 
expr:str, arg:any...):any... ",      "PYAPI3PyAPIevalAggr;", "grouped 
aggregates through Python"     ]
+[ "pyapi3",    "eval_loader",  "unsafe pattern pyapi3.eval_loader(fptr:ptr, 
expr:str):any... ",        "PYAPI3PyAPIevalLoader;",       "loader functions 
through Python"       ]
+[ "pyapi3",    "eval_loader",  "unsafe pattern pyapi3.eval_loader(fptr:ptr, 
expr:str, arg:any...):any... ",    "PYAPI3PyAPIevalLoader;",       "loader 
functions through Python"       ]
+[ "pyapi3",    "prelude",      "command pyapi3.prelude():void ",       
"PYAPI3PyAPIprelude;",  ""      ]
+[ "pyapi3",    "subeval_aggr", "unsafe pattern pyapi3.subeval_aggr(fptr:ptr, 
expr:str, arg:any...):any... ",   "PYAPI3PyAPIevalAggr;", "grouped aggregates 
through Python"     ]
+[ "pyapi3map", "eval", "pattern pyapi3map.eval(fptr:ptr, expr:str):any ",      
"PYAPI3PyAPIevalStdMap;",       "Execute a simple Python script returning a 
single value"       ]
+[ "pyapi3map", "eval", "pattern pyapi3map.eval(fptr:ptr, expr:str, 
arg:any...):any... ",       "PYAPI3PyAPIevalStdMap;",       "Execute a simple 
Python script value"  ]
+[ "pyapi3map", "eval_aggr",    "pattern pyapi3map.eval_aggr(fptr:ptr, 
expr:str, arg:any...):any... ",  "PYAPI3PyAPIevalAggrMap;",      "grouped 
aggregates through Python"     ]
+[ "pyapi3map", "subeval_aggr", "pattern pyapi3map.subeval_aggr(fptr:ptr, 
expr:str, arg:any...):any... ",       "PYAPI3PyAPIevalAggrMap;",      "grouped 
aggregates through Python"     ]
 [ "querylog",  "append",       "pattern querylog.append(q:str, pipe:str, 
usr:str, tick:timestamp):void ",      "QLOGappend;",  "Add a new query call to 
the query log" ]
 [ "querylog",  "call", "pattern querylog.call(tick1:timestamp, 
tick2:timestamp, arg:str, tuples:lng, xtime:lng, rtime:lng, cpu:int, 
iowait:int):void ",        "QLOGcall;",    "Add a new query call to the query 
log" ]
 [ "querylog",  "context",      "command querylog.context(release:str, 
version:str, revision:str, uri:str):void ",      "QLOGcontextNaive;",    "Noop 
operation, just marking the query"        ]
@@ -19675,7 +19694,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() (tag:bat[:lng], 
sessionid:bat[:int], user:bat[:str], started:bat[:timestamp], status:bat[:str], 
query:bat[:str], progress:bat[:int], workers:bat[:int], memory:bat[:int]) ",    
    "SYSMONqueue;", ""      ]
+[ "sql",       "sysmon_queue", "pattern sql.sysmon_queue() (tag:bat[:lng], 
sessionid:bat[:int], user:bat[:str], started:bat[:timestamp], status:bat[:str], 
query:bat[:str], finished:bat[:timestamp], workers:bat[:int], memory:bat[:int]) 
",  "SYSMONqueue;", ""      ]
 [ "sql",       "sysmon_resume",        "pattern 
sql.sysmon_resume(tag:bte):void ",     "SYSMONresume;",        ""      ]
 [ "sql",       "sysmon_resume",        "pattern 
sql.sysmon_resume(tag:int):void ",     "SYSMONresume;",        ""      ]
 [ "sql",       "sysmon_resume",        "pattern 
sql.sysmon_resume(tag:lng):void ",     "SYSMONresume;",        ""      ]
@@ -19842,7 +19861,7 @@ stdout of test 'MAL-signatures` in direc
 [ "sysmon",    "pause",        "pattern sysmon.pause(id:int):void ",   
"SYSMONpause;", "Suspend a running query"       ]
 [ "sysmon",    "pause",        "pattern sysmon.pause(id:lng):void ",   
"SYSMONpause;", "Suspend a running query"       ]
 [ "sysmon",    "pause",        "pattern sysmon.pause(id:sht):void ",   
"SYSMONpause;", "Suspend a running query"       ]
-[ "sysmon",    "queue",        "pattern sysmon.queue() (tag:bat[:lng], 
sessionid:bat[:int], user:bat[:str], started:bat[:timestamp], status:bat[:str], 
query:bat[:str], progress:bat[:int], workers:bat[:int], memory:bat[:int]) ",    
"SYSMONqueue;", ""      ]
+[ "sysmon",    "queue",        "pattern sysmon.queue() (tag:bat[:lng], 
sessionid:bat[:int], user:bat[:str], started:bat[:timestamp], status:bat[:str], 
query:bat[:str], finished:bat[:timestamp], workers:bat[:int], memory:bat[:int]) 
",      "SYSMONqueue;", ""      ]
 [ "sysmon",    "resume",       "pattern sysmon.resume(id:int):void ",  
"SYSMONresume;",        "Resume processing of a query " ]
 [ "sysmon",    "resume",       "pattern sysmon.resume(id:lng):void ",  
"SYSMONresume;",        "Resume processing of a query " ]
 [ "sysmon",    "resume",       "pattern sysmon.resume(id:sht):void ",  
"SYSMONresume;",        "Resume processing of a query " ]
diff --git a/clients/Tests/SingleServer b/clients/Tests/SingleServer
--- a/clients/Tests/SingleServer
+++ b/clients/Tests/SingleServer
@@ -1,2 +1,3 @@
---set embedded_py=2
+--set embedded_py=3
 --set embedded_r=true
+--set embedded_c=true
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
@@ -253,7 +253,6 @@ gdk_return GDKcopyenv(BAT **key, BAT **v
 gdk_return GDKcreatedir(const char *nme);
 gdk_return GDKcreatesem(int id, int count, int *semid);
 int GDKdebug;
-void GDKerror(_In_z_ _Printf_format_string_ const char *format, ...) 
__attribute__((__format__(__printf__, 1, 2)));
 _Noreturn void GDKexit(int status);
 void GDKexit(int status);
 bool GDKexiting(void);
@@ -301,10 +300,9 @@ void GDKsetverbose(int verbosity);
 ssize_t GDKstrFromStr(unsigned char *restrict dst, const unsigned char 
*restrict src, ssize_t len);
 str GDKstrdup(const char *s) __attribute__((__warn_unused_result__));
 str GDKstrndup(const char *s, size_t n) 
__attribute__((__warn_unused_result__));
-void GDKsyserror(_In_z_ _Printf_format_string_ const char *format, ...) 
__attribute__((__format__(__printf__, 1, 2)));
 gdk_return GDKtracer_fill_comp_info(BAT *id, BAT *component, BAT *log_level);
 gdk_return GDKtracer_flush_buffer(void);
-gdk_return GDKtracer_log(const char *file, const char *func, int lineno, 
log_level_t lvl, component_t comp, const char *format, ...) 
__attribute__((__format__(__printf__, 6, 7)));
+void GDKtracer_log(const char *file, const char *func, int lineno, log_level_t 
lvl, component_t comp, const char *syserr, _In_z_ _Printf_format_string_ const 
char *format, ...) __attribute__((__format__(__printf__, 7, 8)));
 void GDKtracer_reinit_basic(int sig);
 gdk_return GDKtracer_reset_adapter(void);
 gdk_return GDKtracer_reset_component_level(const char *comp);
@@ -2153,7 +2151,6 @@ Symbol findSymbolInModule(Module v, str 
 int findVariable(MalBlkPtr mb, const char *name);
 int findVariableLength(MalBlkPtr mb, str name, int len);
 str finishRef;
-void finishSessionProfiler(Client cntxt);
 str first_valueRef;
 str firstnRef;
 Module fixModule(str nme);
@@ -2490,7 +2487,7 @@ str putNameLen(const char *nme, size_t l
 str putRef;
 str pyapi3Ref;
 str pyapi3mapRef;
-lng qtop;
+lng qhead, qtail, qsize;
 str queryRef;
 str querylogRef;
 str raiseRef;
diff --git a/clients/examples/C/smack00.c b/clients/examples/C/smack00.c
--- a/clients/examples/C/smack00.c
+++ b/clients/examples/C/smack00.c
@@ -16,10 +16,6 @@
 #include <string.h>
 #include <mapi.h>
 
-#ifdef _MSC_VER
-#define snprintf _snprintf
-#endif
-
 #define die(dbh,hdl)   do {                                            \
                                if (hdl)                                \
                                        mapi_explain_result(hdl,stderr); \
diff --git a/clients/examples/C/smack01.c b/clients/examples/C/smack01.c
--- a/clients/examples/C/smack01.c
+++ b/clients/examples/C/smack01.c
@@ -16,10 +16,6 @@
 #include <string.h>
 #include <mapi.h>
 
-#ifdef _MSC_VER
-#define snprintf _snprintf
-#endif
-
 #define die(dbh,hdl)   do {                                            \
                                if (hdl)                                \
                                        mapi_explain_result(hdl,stderr); \
diff --git a/clients/mapiclient/mclient.1 b/clients/mapiclient/mclient.1
--- a/clients/mapiclient/mclient.1
+++ b/clients/mapiclient/mclient.1
@@ -169,8 +169,12 @@ All timings are reported on stderr.
 .br
 \fBNote\fP that the client-measured wall-clock time is reported per query
 \fBonly\fP when options \fB\-\-interactive\fP or \fB\-\-echo\fP are used,
-because only then does mclient send individual lines (statements) of the SQL
-script to the server. Otherwise, when mclient sends the SQL script in
+because only then does
+.I mclient
+send individual lines (statements) of the SQL
+script to the server. Otherwise, when
+.I mclient
+sends the SQL script in
 large(r) batch(es), only the total wall-clock time per batch is measured and
 reported. The server-measured detailed performance timings are always
 measured and reported per query.
@@ -454,7 +458,9 @@ is the name of the database.
 mclient \-d $db \-s \(dqCOPY INTO $table FROM '$file' USING DELIMITERS 
',',E'\e\en','\e\(dq'\(dq
 .PP
 Efficiently import data from a CSV file into a table when the file is
-to be read by mclient (e.g. the server has no access to the file).
+to be read by
+.I mclient
+(e.g. the server has no access to the file).
 .I $file
 is the (absolute or relative) path name of the file,
 .I $table
diff --git a/clients/mapiclient/mclient.c b/clients/mapiclient/mclient.c
--- a/clients/mapiclient/mclient.c
+++ b/clients/mapiclient/mclient.c
@@ -1957,7 +1957,7 @@ format_result(Mapi mid, MapiHdl hdl, boo
        return rc;
 }
 
-static int
+static bool
 doRequest(Mapi mid, const char *buf)
 {
        MapiHdl hdl;
@@ -1974,26 +1974,25 @@ doRequest(Mapi mid, const char *buf)
                }
                mapi_explain(mid, stderr);
                errseen = true;
-               return 1;
+               return true;
        }
 
        if (mapi_needmore(hdl) == MMORE)
-               return 0;
+               return false;
 
        format_result(mid, hdl, false);
 
        if (mapi_get_active(mid) == NULL)
                mapi_close_handle(hdl);
-       return 0;
+       return errseen;
 }
 
-#define CHECK_RESULT(mid, hdl, break_or_continue, buf, fp)     \
+#define CHECK_RESULT(mid, hdl, buf, fp)                                \
        switch (mapi_error(mid)) {                              \
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to