Changeset: a37e0bbef3e7 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a37e0bbef3e7
Added Files:
        gdk/gdk_tracer.c
        gdk/gdk_tracer.h
        monetdb5/mal/Tests/tracer00.malC
        monetdb5/mal/Tests/tracer00.stable.err
        monetdb5/mal/Tests/tracer00.stable.out
        monetdb5/mal/Tests/tst111.malC
        monetdb5/mal/Tests/tst111.stable.err
        monetdb5/mal/Tests/tst111.stable.out
        monetdb5/mal/Tests/tst112.malC
        monetdb5/mal/Tests/tst112.stable.err
        monetdb5/mal/Tests/tst112.stable.out
        monetdb5/mal/Tests/tst113.malC
        monetdb5/mal/Tests/tst113.stable.err
        monetdb5/mal/Tests/tst113.stable.out
        monetdb5/mal/Tests/tst114.malC
        monetdb5/mal/Tests/tst114.stable.err
        monetdb5/mal/Tests/tst114.stable.out
        monetdb5/mal/Tests/tst117.malC
        monetdb5/mal/Tests/tst117.stable.err
        monetdb5/mal/Tests/tst117.stable.out
        monetdb5/mal/Tests/tst190.malC
        monetdb5/mal/Tests/tst190.stable.err
        monetdb5/mal/Tests/tst190.stable.out
        monetdb5/mal/Tests/tst191.malC
        monetdb5/mal/Tests/tst191.stable.err
        monetdb5/mal/Tests/tst191.stable.out
        monetdb5/mal/Tests/tst192.malC
        monetdb5/mal/Tests/tst192.stable.err
        monetdb5/mal/Tests/tst192.stable.out
        monetdb5/mal/Tests/tst193.malC
        monetdb5/mal/Tests/tst193.stable.err
        monetdb5/mal/Tests/tst193.stable.out
        monetdb5/mal/Tests/tst194.malC
        monetdb5/mal/Tests/tst194.stable.err
        monetdb5/mal/Tests/tst194.stable.out
        monetdb5/mal/Tests/tst195.malC
        monetdb5/mal/Tests/tst195.stable.err
        monetdb5/mal/Tests/tst195.stable.out
        monetdb5/mal/Tests/tst196.malC
        monetdb5/mal/Tests/tst196.stable.err
        monetdb5/mal/Tests/tst196.stable.out
        monetdb5/modules/mal/tracer.c
        monetdb5/modules/mal/tracer.h
        monetdb5/modules/mal/tracer.mal
        sql/scripts/81_tracer.sql
        sql/test/wlcr/Tests/wlr110.py
        sql/test/wlcr/Tests/wlr110.stable.err
        sql/test/wlcr/Tests/wlr110.stable.out
        sql/test/wlcr/Tests/wlr35.py
        sql/test/wlcr/Tests/wlr35.stable.err
        sql/test/wlcr/Tests/wlr35.stable.out
Removed Files:
        
sql/test/BugTracker-2009/Tests/dumping_tables.SF-2776908--optimizers.options5
        sql/test/BugTracker-2009/Tests/dumping_tables.SF-2776908--optimizers.sql
        
sql/test/BugTracker-2009/Tests/dumping_tables.SF-2776908--optimizers.stable.err
        
sql/test/BugTracker-2009/Tests/dumping_tables.SF-2776908--optimizers.stable.out
Modified Files:
        NT/Makefile
        NT/monetdb_config.h.in
        clients/Tests/MAL-signatures.stable.out
        clients/Tests/MAL-signatures.stable.out.int128
        clients/Tests/exports.stable.out
        common/utils/mstring.h
        gdk/Makefile.ag
        gdk/gdk.h
        gdk/gdk_aggr.c
        gdk/gdk_align.c
        gdk/gdk_analytic_bounds.c
        gdk/gdk_analytic_func.c
        gdk/gdk_atoms.h
        gdk/gdk_bat.c
        gdk/gdk_batop.c
        gdk/gdk_calc.c
        gdk/gdk_calc_private.h
        gdk/gdk_cand.c
        gdk/gdk_cross.c
        gdk/gdk_delta.c
        gdk/gdk_delta.h
        gdk/gdk_firstn.c
        gdk/gdk_group.c
        gdk/gdk_hash.c
        gdk/gdk_hash.h
        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.h
        gdk/gdk_tm.c
        gdk/gdk_unique.c
        gdk/gdk_utils.c
        gdk/gdk_utils.h
        geom/monetdb5/geom.c
        monetdb5/extras/mal_optimizer_template/opt_sql_append.c
        monetdb5/mal/Tests/All
        monetdb5/mal/Tests/tst019.stable.err
        monetdb5/mal/Tests/tst110.malC
        monetdb5/mal/Tests/tst110.stable.err
        monetdb5/mal/Tests/tst900.stable.err
        monetdb5/mal/mal.c
        monetdb5/mal/mal.h
        monetdb5/mal/mal_atom.h
        monetdb5/mal/mal_client.c
        monetdb5/mal/mal_client.h
        monetdb5/mal/mal_dataflow.c
        monetdb5/mal/mal_debugger.c
        monetdb5/mal/mal_debugger.h
        monetdb5/mal/mal_errors.h
        monetdb5/mal/mal_exception.c
        monetdb5/mal/mal_exception.h
        monetdb5/mal/mal_factory.c
        monetdb5/mal/mal_factory.h
        monetdb5/mal/mal_function.c
        monetdb5/mal/mal_function.h
        monetdb5/mal/mal_instruction.c
        monetdb5/mal/mal_instruction.h
        monetdb5/mal/mal_interpreter.c
        monetdb5/mal/mal_listing.c
        monetdb5/mal/mal_listing.h
        monetdb5/mal/mal_module.c
        monetdb5/mal/mal_namespace.c
        monetdb5/mal/mal_parser.c
        monetdb5/mal/mal_profiler.c
        monetdb5/mal/mal_resolve.c
        monetdb5/mal/mal_resolve.h
        monetdb5/mal/mal_resource.c
        monetdb5/mal/mal_session.c
        monetdb5/modules/atoms/inet.c
        monetdb5/modules/kernel/bat5.c
        monetdb5/modules/mal/Makefile.ag
        monetdb5/modules/mal/Tests/inspect00.stable.out
        monetdb5/modules/mal/groupby.c
        monetdb5/modules/mal/inspect.c
        monetdb5/modules/mal/mal_init.mal
        monetdb5/modules/mal/mal_mapi.c
        monetdb5/modules/mal/mal_mapi.h
        monetdb5/modules/mal/manifold.c
        monetdb5/modules/mal/manifold.h
        monetdb5/modules/mal/mdb.c
        monetdb5/modules/mal/oltp.c
        monetdb5/modules/mal/oltp.h
        monetdb5/modules/mal/orderidx.c
        monetdb5/modules/mal/orderidx.h
        monetdb5/modules/mal/pcre.c
        monetdb5/modules/mal/remote.c
        monetdb5/modules/mal/remote.h
        monetdb5/modules/mal/tablet.c
        monetdb5/modules/mal/tablet.h
        monetdb5/modules/mal/wlc.c
        monetdb5/modules/mal/wlc.h
        monetdb5/optimizer/Tests/ARexample.malC
        monetdb5/optimizer/Tests/CRexample.malC
        monetdb5/optimizer/Tests/CXerror1.malC
        monetdb5/optimizer/Tests/CXexample.stable.out
        monetdb5/optimizer/Tests/FTexample.malC
        monetdb5/optimizer/Tests/cst01.stable.out
        monetdb5/optimizer/Tests/dataflow4.malC
        monetdb5/optimizer/Tests/dataflow4.stable.out
        monetdb5/optimizer/Tests/dataflow5.malC
        monetdb5/optimizer/Tests/ifthencst.malC
        monetdb5/optimizer/Tests/inline02.stable.out
        monetdb5/optimizer/Tests/inline03.stable.out
        monetdb5/optimizer/Tests/inline04.stable.out
        monetdb5/optimizer/Tests/inline07.stable.out
        monetdb5/optimizer/Tests/inline09.stable.out
        monetdb5/optimizer/Tests/inline10.stable.out
        monetdb5/optimizer/Tests/inline11.malC
        monetdb5/optimizer/Tests/inline12.stable.out
        monetdb5/optimizer/Tests/inlineCst.stable.out
        monetdb5/optimizer/Tests/inlineFunction.malC
        monetdb5/optimizer/Tests/inlineFunction.stable.out
        monetdb5/optimizer/Tests/inlineFunction1.malC
        monetdb5/optimizer/Tests/inlineFunction2.malC
        monetdb5/optimizer/Tests/inlineFunction2.stable.out
        monetdb5/optimizer/Tests/inlineFunction3.malC
        monetdb5/optimizer/Tests/inlineFunction4.malC
        monetdb5/optimizer/Tests/inlineFunction4.stable.out
        monetdb5/optimizer/Tests/joinpath.malC
        monetdb5/optimizer/Tests/leftjoinpath.malC
        monetdb5/optimizer/Tests/mat00.malC
        monetdb5/optimizer/Tests/mat01.malC
        monetdb5/optimizer/Tests/projectionchain.malC
        monetdb5/optimizer/Tests/qep02.malC
        monetdb5/optimizer/Tests/reorder00.malC
        monetdb5/optimizer/Tests/replicator00.malC
        monetdb5/optimizer/Tests/tst4000.stable.out
        monetdb5/optimizer/Tests/tst4002.malC
        monetdb5/optimizer/Tests/tst4003.stable.out
        monetdb5/optimizer/Tests/tst4004.malC
        monetdb5/optimizer/Tests/tst4005.stable.out
        monetdb5/optimizer/Tests/tst4030.malC
        monetdb5/optimizer/opt_aliases.c
        monetdb5/optimizer/opt_candidates.c
        monetdb5/optimizer/opt_coercion.c
        monetdb5/optimizer/opt_commonTerms.c
        monetdb5/optimizer/opt_constants.c
        monetdb5/optimizer/opt_costModel.c
        monetdb5/optimizer/opt_dataflow.c
        monetdb5/optimizer/opt_deadcode.c
        monetdb5/optimizer/opt_emptybind.c
        monetdb5/optimizer/opt_evaluate.c
        monetdb5/optimizer/opt_garbageCollector.c
        monetdb5/optimizer/opt_generator.c
        monetdb5/optimizer/opt_inline.c
        monetdb5/optimizer/opt_jit.c
        monetdb5/optimizer/opt_json.c
        monetdb5/optimizer/opt_macro.c
        monetdb5/optimizer/opt_matpack.c
        monetdb5/optimizer/opt_mergetable.c
        monetdb5/optimizer/opt_mitosis.c
        monetdb5/optimizer/opt_multiplex.c
        monetdb5/optimizer/opt_oltp.c
        monetdb5/optimizer/opt_pipes.c
        monetdb5/optimizer/opt_postfix.c
        monetdb5/optimizer/opt_profiler.c
        monetdb5/optimizer/opt_projectionpath.c
        monetdb5/optimizer/opt_pushselect.c
        monetdb5/optimizer/opt_querylog.c
        monetdb5/optimizer/opt_reduce.c
        monetdb5/optimizer/opt_remap.c
        monetdb5/optimizer/opt_remoteQueries.c
        monetdb5/optimizer/opt_reorder.c
        monetdb5/optimizer/opt_support.c
        monetdb5/optimizer/opt_volcano.c
        monetdb5/optimizer/opt_wlc.c
        monetdb5/optimizer/opt_wrapper.c
        monetdb5/scheduler/Tests/sched00.stable.out
        monetdb5/scheduler/run_adder.c
        monetdb5/scheduler/run_isolate.h
        monetdb5/scheduler/run_memo.c
        monetdb5/scheduler/run_pipeline.c
        monetdb5/scheduler/run_pipeline.h
        monetdb5/tools/Tests/mserver5--help.stable.err
        monetdb5/tools/Tests/mserver5--help.stable.err.Windows
        rpm.mk.in
        sql/backends/monet5/rel_bin.c
        sql/backends/monet5/sql.c
        sql/backends/monet5/sql_execute.c
        sql/backends/monet5/sql_gencode.c
        sql/backends/monet5/sql_optimizer.c
        sql/backends/monet5/sql_orderidx.c
        sql/backends/monet5/sql_orderidx.h
        sql/backends/monet5/sql_result.c
        sql/backends/monet5/sql_scenario.c
        sql/backends/monet5/sql_scenario.h
        sql/backends/monet5/sql_statement.c
        sql/backends/monet5/sql_statistics.c
        sql/backends/monet5/sql_statistics.h
        sql/backends/monet5/sql_upgrades.c
        sql/backends/monet5/sql_user.c
        sql/backends/monet5/vaults/bam/bam_db_interface.h
        sql/backends/monet5/vaults/bam/bam_globals.h
        sql/backends/monet5/vaults/bam/bam_loader.c
        sql/backends/monet5/vaults/bam/bam_wrapper.c
        sql/backends/monet5/vaults/fits/fits.c
        sql/backends/monet5/vaults/lidar/lidar.c
        sql/backends/monet5/vaults/shp/shp.c
        sql/backends/monet5/wlr.c
        sql/backends/monet5/wlr.h
        sql/backends/monet5/wlr.mal
        sql/common/sql_types.c
        sql/common/sql_types.h
        sql/include/sql_mem.h
        sql/scripts/61_wlcr.sql
        sql/scripts/Makefile.ag
        sql/server/rel_distribute.c
        sql/server/rel_optimizer.c
        sql/server/rel_partition.c
        sql/server/sql_atom.c
        sql/server/sql_mvc.c
        sql/server/sql_mvc.h
        sql/server/sql_privileges.c
        sql/server/sql_symbol.c
        sql/storage/bat/bat_table.c
        sql/storage/store.c
        sql/test/BugTracker-2009/Tests/All
        sql/test/BugTracker-2010/Tests/new-readonly-db.Bug-2695.stable.err
        
sql/test/BugTracker-2012/Tests/table_functions_fail_after_restart-0.Bug-3063.stable.out
        
sql/test/BugTracker-2012/Tests/table_functions_fail_after_restart-1.Bug-3063.stable.out
        sql/test/BugTracker-2014/Tests/querylog.Bug-3607.stable.out
        sql/test/BugTracker-2019/Tests/All
        sql/test/Dependencies/Tests/Dependencies.stable.out
        sql/test/Dependencies/Tests/Dependencies.stable.out.int128
        sql/test/Tests/session_vars.stable.out
        sql/test/Via-m/Tests/event_s03.stable.out
        sql/test/Via-m/Tests/event_s05.stable.out
        sql/test/Via-m/Tests/event_s07.stable.out
        sql/test/Via-m/Tests/event_s09.stable.out
        sql/test/Via-m/Tests/event_s11.stable.out
        sql/test/Via-m/Tests/file_s04.stable.out
        sql/test/Via-m/Tests/file_s05.stable.out
        sql/test/Via-m/Tests/file_s06.stable.out
        sql/test/Via-m/Tests/file_s08.stable.out
        sql/test/Via-m/Tests/file_s10.stable.out
        sql/test/Via-m/Tests/file_s12.stable.out
        sql/test/Via-m/Tests/file_s15.stable.out
        sql/test/Via-m/Tests/media_s04.stable.out
        sql/test/Via-m/Tests/media_s06.stable.out
        sql/test/Via-m/Tests/media_s08.stable.out
        sql/test/Via-m/Tests/media_s10.stable.out
        sql/test/Via-m/Tests/media_s12.stable.out
        sql/test/Via-m/Tests/media_s14.stable.out
        sql/test/Via-m/Tests/media_s16.stable.out
        sql/test/Via-m/Tests/media_s18.stable.out
        sql/test/Via-m/Tests/media_s19.stable.out
        sql/test/bugs/Tests/groupby_having_charlength-bug-sf-943566.stable.out
        sql/test/miscellaneous/Tests/simple_selects.sql
        sql/test/miscellaneous/Tests/simple_selects.stable.err
        sql/test/ssqq/Tests/insert_query.stable.out
        sql/test/ssqq/Tests/insert_queue.stable.out
        sql/test/ssqq/Tests/insert_quser.stable.out
        sql/test/sys-schema/Tests/systemfunctions.stable.out
        sql/test/sys-schema/Tests/systemfunctions.stable.out.int128
        sql/test/wlcr/Tests/All
        sql/test/wlcr/Tests/wlr10.py
        sql/test/wlcr/Tests/wlr100.py
        sql/test/wlcr/Tests/wlr100.stable.err
        sql/test/wlcr/Tests/wlr100.stable.out
        sql/test/wlcr/Tests/wlr20.py
        sql/test/wlcr/Tests/wlr30.py
        sql/test/wlcr/Tests/wlr40.py
        sql/test/wlcr/Tests/wlr40.stable.err
        sql/test/wlcr/Tests/wlr40.stable.out
        sql/test/wlcr/Tests/wlr50.py
        sql/test/wlcr/Tests/wlr50.stable.err
        sql/test/wlcr/Tests/wlr50.stable.out
        sql/test/wlcr/Tests/wlr70.py
        sql/test/wlcr/Tests/wlr70.stable.err
        sql/test/wlcr/Tests/wlr70.stable.out
        sql/test/wlcr/Tests/wlr80.py
        tools/mserver/mserver5.c
Branch: statistics-analytics
Log Message:

Merged with default


diffs (truncated from 18511 to 300 lines):

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
@@ -282,6 +282,7 @@
 #define HAVE_LOCALTIME_R 1
 /* there is something very similar to localtime_r on Windows: */
 #define localtime_r(tp,tm)     localtime_s(tm,tp)
+#define gmtime_r(tp,tm)                gmtime_s(tm,tp)
 
 /* Define to 1 if you have the `lockf' function. */
 /* #undef HAVE_LOCKF */
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
@@ -11244,6 +11244,16 @@ stdout of test 'MAL-signatures` in direc
 [ "lidar",     "attach",       "pattern lidar.attach(fname:str):void ",        
"LIDARattach;", "Open a LIDAR file and return catalog of the table HDUs"        
]
 [ "lidar",     "export",       "pattern lidar.export(tablename:str, fname:str, 
type:str):void ",       "LIDARexportTable;",    "Exporta LIDAR table to a 
LAS/LAZ file" ]
 [ "lidar",     "load", "pattern lidar.load(tablename:str):void ",      
"LIDARloadTable;",      "Load a LIDAR table from an attached file"      ]
+[ "logging",   "flush",        "command logging.flush():void ",        
"TRACERflush_buffer;",  "Flush the buffer"      ]
+[ "logging",   "resetadapter", "command logging.resetadapter():void ", 
"TRACERreset_adapter;", "Resets the adapter back to the default"        ]
+[ "logging",   "resetcomplevel",       "command 
logging.resetcomplevel(comp:int):void ",       "TRACERreset_component_level;", 
"Resets the log level for a specific component back to the default"     ]
+[ "logging",   "resetflushlevel",      "command logging.resetflushlevel():void 
",      "TRACERreset_flush_level;",     "Resets the flush level back to the 
default"    ]
+[ "logging",   "resetlayerlevel",      "command 
logging.resetlayerlevel(layer:int):void ",     "TRACERreset_layer_level;",     
"Resets the log level for a specific layer back to the default" ]
+[ "logging",   "setadapter",   "command logging.setadapter(adapter:int):void 
",        "TRACERset_adapter;",   "Sets the adapter"      ]
+[ "logging",   "setcomplevel", "command logging.setcomplevel(comp:int, 
lvl:int):void ",        "TRACERset_component_level;",   "Sets the log level for 
a specific component"   ]
+[ "logging",   "setflushlevel",        "command 
logging.setflushlevel(lvl:int):void ", "TRACERset_flush_level;",       "Sets 
the flush level"  ]
+[ "logging",   "setlayerlevel",        "command 
logging.setlayerlevel(layer:int, lvl:int):void ",      
"TRACERset_layer_level;",       "Sets the log level for a specific layer"       
]
+[ "logging",   "showinfo",     "command logging.showinfo():void ",     
"TRACERshow_info;",     "Dumps to the console all the available logging levels, 
layers and the components\nalong with their current logging level being set"    
]
 [ "mal",       "manifold",     "pattern mal.manifold(mod:str, fcn:str, 
a:any...):bat[:any] ",  "MANIFOLDevaluate;",    ""      ]
 [ "mal",       "multiplex",    "pattern mal.multiplex(mod:str, fcn:str, 
a:any...):any... ",    "MANIFOLDremapMultiplex;",      ""      ]
 [ "manual",    "functions",    "pattern manual.functions() (mod:bat[:str], 
fcn:bat[:str], sig:bat[:str], adr:bat[:str], com:bat[:str]) ",      
"MANUALcreateOverview;",        "Produces a table with all MAL functions known" 
]
@@ -12185,6 +12195,7 @@ stdout of test 'MAL-signatures` in direc
 [ "wlr",       "drop_user",    "pattern wlr.drop_user(sname:str, 
action:int):void ",   "WLRgeneric;",  "Catalog operation drop_user"   ]
 [ "wlr",       "drop_user",    "pattern wlr.drop_user(sname:str, auth:str, 
action:int):void ", "WLRgeneric;",  "Catalog operation drop_user"   ]
 [ "wlr",       "drop_view",    "pattern wlr.drop_view(sname:str, name:str, 
action:int, ifexists:int):void ",   "WLRgeneric;",  "Catalog operation 
drop_view"   ]
+[ "wlr",       "getMaster",    "pattern wlr.getMaster():str ", 
"WLRgetmaster;",        "What is the current master database"   ]
 [ "wlr",       "getclock",     "pattern wlr.getclock():str ",  "WLRgetclock;", 
"Timestamp of last replicated transaction."     ]
 [ "wlr",       "gettick",      "pattern wlr.gettick():lng ",   "WLRgettick;",  
"Transaction identifier of the last replicated transaction."    ]
 [ "wlr",       "grant",        "pattern wlr.grant(sname:str, tbl:str, 
grantee:str, privs:int, cname:str, gr:int, grantor:int):void ",  "WLRgeneric;", 
 "Catalog operation grant"       ]
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
@@ -15646,6 +15646,16 @@ stdout of test 'MAL-signatures` in direc
 [ "lidar",     "attach",       "pattern lidar.attach(fname:str):void ",        
"LIDARattach;", "Open a LIDAR file and return catalog of the table HDUs"        
]
 [ "lidar",     "export",       "pattern lidar.export(tablename:str, fname:str, 
type:str):void ",       "LIDARexportTable;",    "Exporta LIDAR table to a 
LAS/LAZ file" ]
 [ "lidar",     "load", "pattern lidar.load(tablename:str):void ",      
"LIDARloadTable;",      "Load a LIDAR table from an attached file"      ]
+[ "logging",   "flush",        "command logging.flush():void ",        
"TRACERflush_buffer;",  "Flush the buffer"      ]
+[ "logging",   "resetadapter", "command logging.resetadapter():void ", 
"TRACERreset_adapter;", "Resets the adapter back to the default"        ]
+[ "logging",   "resetcomplevel",       "command 
logging.resetcomplevel(comp:int):void ",       "TRACERreset_component_level;", 
"Resets the log level for a specific component back to the default"     ]
+[ "logging",   "resetflushlevel",      "command logging.resetflushlevel():void 
",      "TRACERreset_flush_level;",     "Resets the flush level back to the 
default"    ]
+[ "logging",   "resetlayerlevel",      "command 
logging.resetlayerlevel(layer:int):void ",     "TRACERreset_layer_level;",     
"Resets the log level for a specific layer back to the default" ]
+[ "logging",   "setadapter",   "command logging.setadapter(adapter:int):void 
",        "TRACERset_adapter;",   "Sets the adapter"      ]
+[ "logging",   "setcomplevel", "command logging.setcomplevel(comp:int, 
lvl:int):void ",        "TRACERset_component_level;",   "Sets the log level for 
a specific component"   ]
+[ "logging",   "setflushlevel",        "command 
logging.setflushlevel(lvl:int):void ", "TRACERset_flush_level;",       "Sets 
the flush level"  ]
+[ "logging",   "setlayerlevel",        "command 
logging.setlayerlevel(layer:int, lvl:int):void ",      
"TRACERset_layer_level;",       "Sets the log level for a specific layer"       
]
+[ "logging",   "showinfo",     "command logging.showinfo():void ",     
"TRACERshow_info;",     "Dumps to the console all the available logging levels, 
layers and the components\nalong with their current logging level being set"    
]
 [ "mal",       "manifold",     "pattern mal.manifold(mod:str, fcn:str, 
a:any...):bat[:any] ",  "MANIFOLDevaluate;",    ""      ]
 [ "mal",       "multiplex",    "pattern mal.multiplex(mod:str, fcn:str, 
a:any...):any... ",    "MANIFOLDremapMultiplex;",      ""      ]
 [ "manual",    "functions",    "pattern manual.functions() (mod:bat[:str], 
fcn:bat[:str], sig:bat[:str], adr:bat[:str], com:bat[:str]) ",      
"MANUALcreateOverview;",        "Produces a table with all MAL functions known" 
]
@@ -16605,6 +16615,7 @@ stdout of test 'MAL-signatures` in direc
 [ "wlr",       "drop_user",    "pattern wlr.drop_user(sname:str, 
action:int):void ",   "WLRgeneric;",  "Catalog operation drop_user"   ]
 [ "wlr",       "drop_user",    "pattern wlr.drop_user(sname:str, auth:str, 
action:int):void ", "WLRgeneric;",  "Catalog operation drop_user"   ]
 [ "wlr",       "drop_view",    "pattern wlr.drop_view(sname:str, name:str, 
action:int, ifexists:int):void ",   "WLRgeneric;",  "Catalog operation 
drop_view"   ]
+[ "wlr",       "getMaster",    "pattern wlr.getMaster():str ", 
"WLRgetmaster;",        "What is the current master database"   ]
 [ "wlr",       "getclock",     "pattern wlr.getclock():str ",  "WLRgetclock;", 
"Timestamp of last replicated transaction."     ]
 [ "wlr",       "gettick",      "pattern wlr.gettick():lng ",   "WLRgettick;",  
"Transaction identifier of the last replicated transaction."    ]
 [ "wlr",       "grant",        "pattern wlr.grant(sname:str, tbl:str, 
grantee:str, privs:int, cname:str, gr:int, grantor:int):void ",  "WLRgeneric;", 
 "Catalog operation grant"       ]
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
@@ -286,6 +286,20 @@ ssize_t GDKstrFromStr(unsigned char *res
 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_flush_buffer(void);
+char *GDKtracer_get_timestamp(char *fmt);
+gdk_return GDKtracer_init(void);
+gdk_return GDKtracer_log(LOG_LEVEL level, char *fmt, ...) 
__attribute__((format(printf, 2, 3)));
+gdk_return GDKtracer_reset_adapter(void);
+gdk_return GDKtracer_reset_component_level(int *comp);
+gdk_return GDKtracer_reset_flush_level(void);
+gdk_return GDKtracer_reset_layer_level(int *layer);
+gdk_return GDKtracer_set_adapter(int *adapter);
+gdk_return GDKtracer_set_component_level(int *comp, int *lvl);
+gdk_return GDKtracer_set_flush_level(int *lvl);
+gdk_return GDKtracer_set_layer_level(int *layer, int *lvl);
+gdk_return GDKtracer_show_info(void);
+gdk_return GDKtracer_stop(void);
 size_t GDKuniqueid(size_t offset);
 gdk_return GDKupgradevarheap(BAT *b, var_t v, bool copyall, bool mayshare) 
__attribute__((__warn_unused_result__));
 lng GDKusec(void);
@@ -305,6 +319,7 @@ size_t HEAPmemsize(Heap *h);
 size_t HEAPvmsize(Heap *h);
 void IMPSdestroy(BAT *b);
 lng IMPSimprintsize(BAT *b);
+LOG_LEVEL LVL_PER_COMPONENT[];
 int MT_check_nr_cores(void);
 int MT_create_thread(MT_Id *t, void (*function)(void *), void *arg, enum 
MT_thr_detach d, const char *threadname);
 void MT_exiting_thread(void);
@@ -1617,7 +1632,6 @@ str OPTconstantsImplementation(Client cn
 str OPTcostModelImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
 str OPTdataflowImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr p);
 str OPTdeadcodeImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
-lng OPTdebug;
 str OPTemptybindImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr p);
 str OPTevaluateImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
 str OPTgarbageCollectorImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr 
stk, InstrPtr pci);
@@ -1874,6 +1888,16 @@ str TKNZRgetLevel(bat *r, int *level);
 str TKNZRlocate(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
 str TKNZRopen(void *r, str *name);
 str TKNZRtakeOid(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
+str TRACERflush_buffer(void *ret);
+str TRACERreset_adapter(void *ret);
+str TRACERreset_component_level(void *ret, int *comp_id);
+str TRACERreset_flush_level(void *ret);
+str TRACERreset_layer_level(void *ret, int *layer_id);
+str TRACERset_adapter(void *ret, int *adapter_id);
+str TRACERset_component_level(void *ret, int *comp_id, int *lvl_id);
+str TRACERset_flush_level(void *ret, int *lvl_id);
+str TRACERset_layer_level(void *ret, int *layer_id, int *lvl_id);
+str TRACERshow_info(void *ret);
 int TRACEtable(Client cntxt, BAT **r);
 str TRNglobal_abort(bit *ret);
 str TRNglobal_commit(bit *ret);
@@ -2178,8 +2202,6 @@ str first_valueRef;
 str firstnRef;
 Module fixModule(str nme);
 int fndConstant(MalBlkPtr mb, const ValRecord *cst, int depth);
-void fprintFunction(FILE *fd, MalBlkPtr mb, MalStkPtr stk, int flg);
-void fprintInstruction(FILE *fd, MalBlkPtr mb, MalStkPtr stk, InstrPtr p, int 
flg);
 void freeException(str);
 void freeInstruction(InstrPtr p);
 void freeMalBlk(MalBlkPtr mb);
@@ -2656,6 +2678,8 @@ timestamp timestamp_fromusec(lng usec);
 ssize_t timestamp_precision_tostr(str *buf, size_t *len, timestamp val, int 
precision, bool external);
 ssize_t timestamp_tostr(str *buf, size_t *len, const timestamp *val, bool 
external);
 ssize_t timestamp_tz_fromstr(const char *buf, size_t *len, timestamp **ret, 
bool external);
+void traceFunction(COMPONENT comp, MalBlkPtr mb, MalStkPtr stk, int flg);
+void traceInstruction(COMPONENT comp, MalBlkPtr mb, MalStkPtr stk, InstrPtr p, 
int flg);
 str transactionRef;
 str transaction_abortRef;
 str transaction_beginRef;
@@ -2664,7 +2688,7 @@ str transaction_releaseRef;
 str transaction_rollbackRef;
 void trimMalVariables(MalBlkPtr mb, MalStkPtr stk);
 void trimMalVariables_(MalBlkPtr mb, MalStkPtr glb);
-void typeChecker(Module scope, MalBlkPtr mb, InstrPtr p, int silent);
+void typeChecker(Module scope, MalBlkPtr mb, InstrPtr p, int p_idx, int 
silent);
 str unescape_str(str *retval, str s);
 str uniqueRef;
 str unlockRef;
diff --git a/common/utils/mstring.h b/common/utils/mstring.h
--- a/common/utils/mstring.h
+++ b/common/utils/mstring.h
@@ -6,6 +6,9 @@
  * Copyright 1997 - July 2008 CWI, August 2008 - 2020 MonetDB B.V.
  */
 
+#ifndef _MSTRING_H_
+#define _MSTRING_H_
+
 #include <stdarg.h>            /* va_list etc. */
 #include <string.h>            /* strlen */
 
@@ -46,3 +49,5 @@ strconcat_len(char *restrict dst, size_t
        va_end(ap);
        return i;
 }
+
+#endif
diff --git a/gdk/Makefile.ag b/gdk/Makefile.ag
--- a/gdk/Makefile.ag
+++ b/gdk/Makefile.ag
@@ -37,6 +37,7 @@ lib_gdk = {
                gdk_firstn.c \
                gdk_analytic_bounds.c \
                gdk_analytic_func.c gdk_analytic.h \
+               gdk_tracer.c gdk_tracer.h \
                libbat.rc
        LIBS = ../common/options/libmoptions \
                ../common/utils/libmutils \
diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -1380,7 +1380,7 @@ gdk_export void OIDXdestroy(BAT *b);
  * The functions to convert BATs into ASCII. They are primarily meant for ease 
of
  * debugging and to a lesser extent for output processing.  Printing a
  * BAT is done essentially by looping through its components, printing
- * each association.  
+ * each association.
  *
  */
 gdk_export gdk_return BATprintcolumns(stream *s, int argc, BAT *argv[]);
@@ -1800,7 +1800,7 @@ bunfastapp(BAT *b, const void *v)
         GDK_FAIL :                                                     \
         ((b)->theap.free += sizeof(TYPE),                              \
          ((TYPE *) (b)->theap.base)[(b)->batCount++] = * (const TYPE *) (v), \
-         GDK_SUCCEED)) 
+         GDK_SUCCEED))
 
 static inline gdk_return tfastins_nocheckVAR(BAT *b, BUN p, const void *v, int 
s)
        __attribute__((__warn_unused_result__));
@@ -1957,6 +1957,8 @@ gdk_export str GDKstrdup(const char *s)
 gdk_export str GDKstrndup(const char *s, size_t n)
        __attribute__((__warn_unused_result__));
 
+#include "gdk_tracer.h"
+
 #if !defined(NDEBUG) && !defined(STATIC_CODE_ANALYSIS)
 /* In debugging mode, replace GDKmalloc and other functions with a
  * version that optionally prints calling information.
@@ -1970,24 +1972,16 @@ gdk_export str GDKstrndup(const char *s,
        ({                                                      \
                size_t _size = (s);                             \
                void *_res = GDKmalloc(_size);                  \
-               ALLOCDEBUG                                      \
-                       fprintf(stderr,                         \
-                               "#GDKmalloc(%zu) -> %p"         \
-                               " %s[%s:%d]\n",                 \
-                               _size, _res,                    \
-                               __func__, __FILE__, __LINE__);  \
+               TRC_DEBUG(ALLOC, "GDKmalloc(%zu) -> %p\n",      \
+                                       _size, _res);           \
                _res;                                           \
        })
 #define GDKzalloc(s)                                           \
        ({                                                      \
                size_t _size = (s);                             \
                void *_res = GDKzalloc(_size);                  \
-               ALLOCDEBUG                                      \
-                       fprintf(stderr,                         \
-                               "#GDKzalloc(%zu) -> %p"         \
-                               " %s[%s:%d]\n",                 \
-                               _size, _res,                    \
-                               __func__, __FILE__, __LINE__);  \
+               TRC_DEBUG(ALLOC, "GDKzalloc(%zu) -> %p\n",      \
+                                       _size, _res);           \
                _res;                                           \
        })
 #define GDKrealloc(p, s)                                       \
@@ -1995,50 +1989,32 @@ gdk_export str GDKstrndup(const char *s,
                void *_ptr = (p);                               \
                size_t _size = (s);                             \
                void *_res = GDKrealloc(_ptr, _size);           \
-               ALLOCDEBUG                                      \
-                       fprintf(stderr,                         \
-                               "#GDKrealloc(%p,%zu) -> %p"     \
-                               " %s[%s:%d]\n",                 \
-                               _ptr, _size, _res,              \
-                               __func__, __FILE__, __LINE__);  \
+               TRC_DEBUG(ALLOC, "GDKrealloc(%p,%zu) -> %p\n",  \
+                                       _ptr, _size, _res);     \
                _res;                                           \
         })
-#define GDKfree(p)                                             \
-       ({                                                      \
-               void *_ptr = (p);                               \
-               ALLOCDEBUG if (_ptr)                            \
-                       fprintf(stderr,                         \
-                               "#GDKfree(%p)"                  \
-                               " %s[%s:%d]\n",                 \
-                               _ptr,                           \
-                               __func__, __FILE__, __LINE__);  \
-               GDKfree(_ptr);                                  \
+#define GDKfree(p)                                                     \
+       ({                                                              \
+               void *_ptr = (p);                                       \
+               if (_ptr)                                               \
+                       TRC_DEBUG(ALLOC, "GDKfree(%p)\n", _ptr);        \
+               GDKfree(_ptr);                                          \
        })
-#define GDKstrdup(s)                                           \
-       ({                                                      \
-               const char *_str = (s);                         \
-               void *_res = GDKstrdup(_str);                   \
-               ALLOCDEBUG                                      \
-                       fprintf(stderr,                         \
-                               "#GDKstrdup(len=%zu) -> %p"     \
-                               " %s[%s:%d]\n",                 \
-                               _str ? strlen(_str) : 0,        \
-                               _res,                           \
-                               __func__, __FILE__, __LINE__);  \
-               _res;                                           \
+#define GDKstrdup(s)                                                   \
+       ({                                                              \
+               const char *_str = (s);                                 \
+               void *_res = GDKstrdup(_str);                           \
+               TRC_DEBUG(ALLOC, "GDKstrdup(len=%zu) -> %p\n",          \
+                                       _str ? strlen(_str) : 0, _res); \
+               _res;                                                   \
        })
 #define GDKstrndup(s, n)                                       \
        ({                                                      \
                const char *_str = (s);                         \
                size_t _n = (n);                                \
                void *_res = GDKstrndup(_str, _n);              \
-               ALLOCDEBUG                                      \
-                       fprintf(stderr,                         \
-                               "#GDKstrndup(len=%zu) -> %p"    \
-                               " %s[%s:%d]\n",                 \
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to