Changeset: c859aeb0e378 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c859aeb0e378
Removed Files:
        monetdb5/optimizer/opt_statistics.c
        monetdb5/optimizer/opt_statistics.h
Modified Files:
        clients/Tests/MAL-signatures.stable.out
        clients/Tests/MAL-signatures.stable.out.int128
        clients/Tests/exports.stable.out
        clients/mapiclient/eventparser.c
        clients/mapiclient/eventparser.h
        gdk/gdk.h
        gdk/gdk_align.c
        gdk/gdk_atoms.c
        gdk/gdk_bat.c
        gdk/gdk_bbp.c
        gdk/gdk_hash.c
        gdk/gdk_heap.c
        gdk/gdk_logger.c
        gdk/gdk_logger.h
        gdk/gdk_private.h
        gdk/gdk_storage.c
        gdk/gdk_tm.c
        gdk/gdk_utils.c
        gdk/gdk_utils.h
        geom/monetdb5/geom.c
        geom/monetdb5/geomBulk.c
        geom/monetdb5/geom_upgrade.c
        monetdb5/extras/mal_optimizer_template/opt_sql_append.c
        monetdb5/mal/mal.c
        monetdb5/mal/mal_authorize.c
        monetdb5/mal/mal_client.c
        monetdb5/mal/mal_dataflow.c
        monetdb5/mal/mal_factory.c
        monetdb5/mal/mal_function.c
        monetdb5/mal/mal_function.h
        monetdb5/mal/mal_instruction.c
        monetdb5/mal/mal_interpreter.c
        monetdb5/mal/mal_listing.c
        monetdb5/mal/mal_listing.h
        monetdb5/mal/mal_profiler.c
        monetdb5/mal/mal_resolve.c
        monetdb5/mal/mal_resource.c
        monetdb5/modules/atoms/color.c
        monetdb5/modules/atoms/mtime.c
        monetdb5/modules/atoms/str.c
        monetdb5/modules/atoms/uuid.c
        monetdb5/modules/kernel/aggr.c
        monetdb5/modules/kernel/bat5.c
        monetdb5/modules/mal/batExtensions.c
        monetdb5/modules/mal/batcalc.c
        monetdb5/modules/mal/bbp.c
        monetdb5/modules/mal/calc.c
        monetdb5/modules/mal/clients.c
        monetdb5/modules/mal/groupby.c
        monetdb5/modules/mal/groupby.h
        monetdb5/modules/mal/inspect.c
        monetdb5/modules/mal/json_util.h
        monetdb5/modules/mal/mal_mapi.c
        monetdb5/modules/mal/manifold.c
        monetdb5/modules/mal/mdb.c
        monetdb5/modules/mal/oltp.c
        monetdb5/modules/mal/orderidx.c
        monetdb5/modules/mal/querylog.c
        monetdb5/modules/mal/remote.c
        monetdb5/modules/mal/tablet.c
        monetdb5/optimizer/Makefile.ag
        monetdb5/optimizer/opt_aliases.c
        monetdb5/optimizer/opt_aliases.h
        monetdb5/optimizer/opt_candidates.c
        monetdb5/optimizer/opt_candidates.h
        monetdb5/optimizer/opt_coercion.c
        monetdb5/optimizer/opt_coercion.h
        monetdb5/optimizer/opt_commonTerms.c
        monetdb5/optimizer/opt_commonTerms.h
        monetdb5/optimizer/opt_constants.c
        monetdb5/optimizer/opt_constants.h
        monetdb5/optimizer/opt_costModel.c
        monetdb5/optimizer/opt_costModel.h
        monetdb5/optimizer/opt_dataflow.c
        monetdb5/optimizer/opt_dataflow.h
        monetdb5/optimizer/opt_datavaults.c
        monetdb5/optimizer/opt_datavaults.h
        monetdb5/optimizer/opt_deadcode.c
        monetdb5/optimizer/opt_deadcode.h
        monetdb5/optimizer/opt_emptybind.c
        monetdb5/optimizer/opt_emptybind.h
        monetdb5/optimizer/opt_evaluate.c
        monetdb5/optimizer/opt_evaluate.h
        monetdb5/optimizer/opt_garbageCollector.c
        monetdb5/optimizer/opt_garbageCollector.h
        monetdb5/optimizer/opt_generator.c
        monetdb5/optimizer/opt_generator.h
        monetdb5/optimizer/opt_inline.c
        monetdb5/optimizer/opt_inline.h
        monetdb5/optimizer/opt_jit.c
        monetdb5/optimizer/opt_jit.h
        monetdb5/optimizer/opt_json.c
        monetdb5/optimizer/opt_json.h
        monetdb5/optimizer/opt_macro.c
        monetdb5/optimizer/opt_macro.h
        monetdb5/optimizer/opt_matpack.c
        monetdb5/optimizer/opt_matpack.h
        monetdb5/optimizer/opt_mergetable.c
        monetdb5/optimizer/opt_mergetable.h
        monetdb5/optimizer/opt_mitosis.c
        monetdb5/optimizer/opt_mitosis.h
        monetdb5/optimizer/opt_multiplex.c
        monetdb5/optimizer/opt_multiplex.h
        monetdb5/optimizer/opt_oltp.c
        monetdb5/optimizer/opt_oltp.h
        monetdb5/optimizer/opt_profiler.c
        monetdb5/optimizer/opt_profiler.h
        monetdb5/optimizer/opt_projectionpath.c
        monetdb5/optimizer/opt_projectionpath.h
        monetdb5/optimizer/opt_pushselect.c
        monetdb5/optimizer/opt_pushselect.h
        monetdb5/optimizer/opt_querylog.c
        monetdb5/optimizer/opt_querylog.h
        monetdb5/optimizer/opt_reduce.c
        monetdb5/optimizer/opt_reduce.h
        monetdb5/optimizer/opt_remap.c
        monetdb5/optimizer/opt_remap.h
        monetdb5/optimizer/opt_remoteQueries.c
        monetdb5/optimizer/opt_remoteQueries.h
        monetdb5/optimizer/opt_reorder.c
        monetdb5/optimizer/opt_reorder.h
        monetdb5/optimizer/opt_support.c
        monetdb5/optimizer/opt_support.h
        monetdb5/optimizer/opt_volcano.c
        monetdb5/optimizer/opt_volcano.h
        monetdb5/optimizer/opt_wrapper.c
        monetdb5/optimizer/optimizer.mal
        monetdb5/scheduler/run_memo.c
        monetdb5/scheduler/run_pipeline.c
        monetdb5/scheduler/srvpool.c
        sql/backends/monet5/sql_execute.c
        sql/backends/monet5/sql_orderidx.c
        sql/backends/monet5/sql_scenario.c
        sql/backends/monet5/sql_statistics.c
        sql/backends/monet5/sql_upgrades.c
        sql/benchmarks/tpch/01.sql
        sql/benchmarks/tpch/02.sql
        sql/benchmarks/tpch/03.sql
        sql/benchmarks/tpch/04.sql
        sql/benchmarks/tpch/05.sql
        sql/benchmarks/tpch/06.sql
        sql/benchmarks/tpch/07.sql
        sql/benchmarks/tpch/08.sql
        sql/benchmarks/tpch/09.sql
        sql/benchmarks/tpch/10.sql
        sql/benchmarks/tpch/11.sql
        sql/benchmarks/tpch/12.sql
        sql/benchmarks/tpch/13.sql
        sql/benchmarks/tpch/14.sql
        sql/benchmarks/tpch/15.sql
        sql/benchmarks/tpch/16.sql
        sql/benchmarks/tpch/17.sql
        sql/benchmarks/tpch/18.sql
        sql/benchmarks/tpch/19.sql
        sql/benchmarks/tpch/20.sql
        sql/benchmarks/tpch/21.sql
        sql/benchmarks/tpch/22.sql
        sql/benchmarks/tpch/LOCKED/Tests/01-22.stable.out
        sql/benchmarks/tpch/LOCKED/Tests/01-22.stable.out.int128
        sql/benchmarks/tpch/LOCKED/Tests/01.stable.out
        sql/benchmarks/tpch/LOCKED/Tests/01.stable.out.int128
        sql/benchmarks/tpch/LOCKED/Tests/02.stable.out
        sql/benchmarks/tpch/LOCKED/Tests/03.stable.out
        sql/benchmarks/tpch/LOCKED/Tests/03.stable.out.int128
        sql/benchmarks/tpch/LOCKED/Tests/04.stable.out
        sql/benchmarks/tpch/LOCKED/Tests/05.stable.out
        sql/benchmarks/tpch/LOCKED/Tests/05.stable.out.int128
        sql/benchmarks/tpch/LOCKED/Tests/06.stable.out
        sql/benchmarks/tpch/LOCKED/Tests/06.stable.out.int128
        sql/benchmarks/tpch/LOCKED/Tests/07.stable.out
        sql/benchmarks/tpch/LOCKED/Tests/07.stable.out.int128
        sql/benchmarks/tpch/LOCKED/Tests/08.stable.out
        sql/benchmarks/tpch/LOCKED/Tests/08.stable.out.int128
        sql/benchmarks/tpch/LOCKED/Tests/09.stable.out
        sql/benchmarks/tpch/LOCKED/Tests/09.stable.out.int128
        sql/benchmarks/tpch/LOCKED/Tests/10.stable.out
        sql/benchmarks/tpch/LOCKED/Tests/10.stable.out.int128
        sql/benchmarks/tpch/LOCKED/Tests/11.stable.out
        sql/benchmarks/tpch/LOCKED/Tests/11.stable.out.int128
        sql/benchmarks/tpch/LOCKED/Tests/12.stable.out
        sql/benchmarks/tpch/LOCKED/Tests/12.stable.out.int128
        sql/benchmarks/tpch/LOCKED/Tests/13.stable.out
        sql/benchmarks/tpch/LOCKED/Tests/14.stable.out
        sql/benchmarks/tpch/LOCKED/Tests/14.stable.out.int128
        sql/benchmarks/tpch/LOCKED/Tests/15.stable.out
        sql/benchmarks/tpch/LOCKED/Tests/15.stable.out.int128
        sql/benchmarks/tpch/LOCKED/Tests/16.stable.out
        sql/benchmarks/tpch/LOCKED/Tests/17.stable.out
        sql/benchmarks/tpch/LOCKED/Tests/17.stable.out.int128
        sql/benchmarks/tpch/LOCKED/Tests/18.stable.out
        sql/benchmarks/tpch/LOCKED/Tests/18.stable.out.int128
        sql/benchmarks/tpch/LOCKED/Tests/19.stable.out
        sql/benchmarks/tpch/LOCKED/Tests/19.stable.out.int128
        sql/benchmarks/tpch/LOCKED/Tests/20.stable.out
        sql/benchmarks/tpch/LOCKED/Tests/21.stable.out
        sql/benchmarks/tpch/LOCKED/Tests/21.stable.out.int128
        sql/benchmarks/tpch/LOCKED/Tests/22.stable.out
        sql/benchmarks/tpch/LOCKED/Tests/22.stable.out.int128
        sql/benchmarks/tpch/Tests/01-22.stable.out
        sql/benchmarks/tpch/Tests/01-22.stable.out.int128
        sql/benchmarks/tpch/Tests/01.stable.out
        sql/benchmarks/tpch/Tests/01.stable.out.int128
        sql/benchmarks/tpch/Tests/02.stable.out
        sql/benchmarks/tpch/Tests/03.stable.out
        sql/benchmarks/tpch/Tests/03.stable.out.int128
        sql/benchmarks/tpch/Tests/04.stable.out
        sql/benchmarks/tpch/Tests/05.stable.out
        sql/benchmarks/tpch/Tests/05.stable.out.int128
        sql/benchmarks/tpch/Tests/06.stable.out
        sql/benchmarks/tpch/Tests/06.stable.out.int128
        sql/benchmarks/tpch/Tests/07.stable.out
        sql/benchmarks/tpch/Tests/07.stable.out.int128
        sql/benchmarks/tpch/Tests/08.stable.out
        sql/benchmarks/tpch/Tests/08.stable.out.int128
        sql/benchmarks/tpch/Tests/09.stable.out
        sql/benchmarks/tpch/Tests/09.stable.out.int128
        sql/benchmarks/tpch/Tests/10.stable.out
        sql/benchmarks/tpch/Tests/10.stable.out.int128
        sql/benchmarks/tpch/Tests/11.stable.out
        sql/benchmarks/tpch/Tests/11.stable.out.int128
        sql/benchmarks/tpch/Tests/12.stable.out
        sql/benchmarks/tpch/Tests/12.stable.out.int128
        sql/benchmarks/tpch/Tests/13.stable.out
        sql/benchmarks/tpch/Tests/14.stable.out
        sql/benchmarks/tpch/Tests/14.stable.out.int128
        sql/benchmarks/tpch/Tests/15.stable.out
        sql/benchmarks/tpch/Tests/15.stable.out.int128
        sql/benchmarks/tpch/Tests/16.stable.out
        sql/benchmarks/tpch/Tests/17.stable.out
        sql/benchmarks/tpch/Tests/17.stable.out.int128
        sql/benchmarks/tpch/Tests/18.stable.out
        sql/benchmarks/tpch/Tests/18.stable.out.int128
        sql/benchmarks/tpch/Tests/19.stable.out
        sql/benchmarks/tpch/Tests/19.stable.out.int128
        sql/benchmarks/tpch/Tests/20.stable.out
        sql/benchmarks/tpch/Tests/21.stable.out
        sql/benchmarks/tpch/Tests/22.stable.out
        sql/benchmarks/tpch/Tests/22.stable.out.int128
        sql/scripts/25_debug.sql
        sql/storage/bat/bat_logger.c
        sql/storage/bat/bat_logger.h
        sql/storage/bat/bat_storage.c
        sql/storage/bat/bat_storage.h
        sql/storage/bat/bat_table.c
        sql/storage/bat/bat_table.h
        sql/storage/sql_storage.h
        sql/storage/store.c
        sql/test/BugTracker-2010/Tests/new-readonly-db.Bug-2695.stable.err
        sql/test/BugTracker-2010/Tests/new-readonly-db.Bug-2695.stable.out
        sql/test/Dump/Tests/dump.stable.out
        sql/test/Dump/Tests/load.sql
        sql/test/Dump/Tests/load.stable.out
        sql/test/Tests/systemfunctions.stable.out
        sql/test/Tests/systemfunctions.stable.out.int128
        sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
        sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out
        sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128
        sql/test/emptydb-upgrade-hge/Tests/upgrade.stable.out.int128
        sql/test/emptydb-upgrade/Tests/upgrade.stable.out
        sql/test/emptydb-upgrade/Tests/upgrade.stable.out.int128
        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/leaks/Tests/check0.stable.out
        sql/test/leaks/Tests/check0.stable.out.int128
        sql/test/leaks/Tests/check1.stable.out
        sql/test/leaks/Tests/check2.stable.out
        sql/test/leaks/Tests/check3.stable.out
        sql/test/leaks/Tests/check4.stable.out
        sql/test/leaks/Tests/check5.stable.out
        sql/test/leaks/Tests/select1.stable.out.int128
        sql/test/leaks/Tests/select2.stable.out.int128
        sql/test/leaks/Tests/temp1.stable.out
        sql/test/leaks/Tests/temp1.stable.out.int128
        sql/test/leaks/Tests/temp2.stable.out
        sql/test/leaks/Tests/temp2.stable.out.int128
        sql/test/leaks/Tests/temp3.stable.out
        sql/test/leaks/Tests/temp3.stable.out.int128
        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.int128
        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.int128
        tools/mserver/mserver5.c
        tools/mserver/shutdowntest.c
Branch: data-vaults
Log Message:

Merge with default

The API for optimizers has changed, and some changes were needed for this to
compile.


diffs (truncated from 13810 to 300 lines):

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
@@ -7767,8 +7767,8 @@ Ready.
 [ "inspect",   "getSize",      "pattern inspect.getSize(mod:str, fcn:str):lng 
",       "INSPECTgetFunctionSize;",      "Return the storage size for a 
function (in bytes)."    ]
 [ "inspect",   "getSize",      "pattern inspect.getSize():lng ",       
"INSPECTgetSize;",      "Return the storage size for the current function (in 
bytes)."  ]
 [ "inspect",   "getSource",    "pattern inspect.getSource(mod:str, 
fcn:str):str ",     "INSPECTgetSource;",    "Return the original input for a 
function."     ]
-[ "inspect",   "getStatistics",        "command 
inspect.getStatistics(nme:str):bat[:any_2] ",  "QOTgetStatistics;",    "Get 
optimizer property statistics \nsuch as #calls, #total actions, #total time"    
   ]
 [ "inspect",   "getType",      "pattern inspect.getType(v:any_1):str ",        
"INSPECTtypeName;",     "Return the concrete type of a variable (expression)."  
]
+[ "inspect",   "optimizer_stats",      "pattern inspect.optimizer_stats() 
(X_0:bat[:str], X_1:bat[:int], X_2:bat[:lng]) ",     "OPTstatistics;",       
"Get optimizer use statistics, i.e. calls and total time"       ]
 [ "io",        "export",       "command io.export(b:bat[:any_2], 
filepath:str):void ", "IOexport;",    "Export a BAT as ASCII to a file. If the 
'filepath' is not absolute, it\n is put into the $DBPATH directory. Success of 
failure is indicated."  ]
 [ "io",        "import",       "command io.import(b:bat[:any_2], 
filepath:str):void ", "IOimport;",    "Import a BAT from an ASCII dump. The 
tuples are appended to the\n first argument. Its signature must match the 
dump,\n else parsing errors will occur as an exception."        ]
 [ "io",        "print",        "pattern io.print(val:any_1):void ",    
"IOprint_val;", "Print a MAL value."    ]
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
@@ -10123,8 +10123,8 @@ Ready.
 [ "inspect",   "getSize",      "pattern inspect.getSize(mod:str, fcn:str):lng 
",       "INSPECTgetFunctionSize;",      "Return the storage size for a 
function (in bytes)."    ]
 [ "inspect",   "getSize",      "pattern inspect.getSize():lng ",       
"INSPECTgetSize;",      "Return the storage size for the current function (in 
bytes)."  ]
 [ "inspect",   "getSource",    "pattern inspect.getSource(mod:str, 
fcn:str):str ",     "INSPECTgetSource;",    "Return the original input for a 
function."     ]
-[ "inspect",   "getStatistics",        "command 
inspect.getStatistics(nme:str):bat[:any_2] ",  "QOTgetStatistics;",    "Get 
optimizer property statistics \nsuch as #calls, #total actions, #total time"    
   ]
 [ "inspect",   "getType",      "pattern inspect.getType(v:any_1):str ",        
"INSPECTtypeName;",     "Return the concrete type of a variable (expression)."  
]
+[ "inspect",   "optimizer_stats",      "pattern inspect.optimizer_stats() 
(X_0:bat[:str], X_1:bat[:int], X_2:bat[:lng]) ",     "OPTstatistics;",       
"Get optimizer use statistics, i.e. calls and total time"       ]
 [ "io",        "export",       "command io.export(b:bat[:any_2], 
filepath:str):void ", "IOexport;",    "Export a BAT as ASCII to a file. If the 
'filepath' is not absolute, it\n is put into the $DBPATH directory. Success of 
failure is indicated."  ]
 [ "io",        "import",       "command io.import(b:bat[:any_2], 
filepath:str):void ", "IOimport;",    "Import a BAT from an ASCII dump. The 
tuples are appended to the\n first argument. Its signature must match the 
dump,\n else parsing errors will occur as an exception."        ]
 [ "io",        "print",        "pattern io.print(val:any_1):void ",    
"IOprint_val;", "Print a MAL value."    ]
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
@@ -152,7 +152,6 @@ BAT *BATmergecand(BAT *a, BAT *b);
 void *BATmin(BAT *b, void *aggr);
 gdk_return BATmode(BAT *b, int onoff);
 void BATmsync(BAT *b);
-int BATname(BAT *b, const char *nme);
 int BATordered(BAT *b);
 int BATordered_rev(BAT *b);
 gdk_return BATorderidx(BAT *b, int stable);
@@ -220,6 +219,7 @@ size_t GDKbatcopysize(BAT *bat, str coln
 size_t GDKbatread(char *src, BAT **bat, str *colname);
 gdk_return GDKchangesemval(int sem_id, int number, int change, str *msg);
 gdk_return GDKchangesemval_timeout(int sem_id, int number, int change, int 
timeout_mseconds, bool *succeed, str *msg);
+void GDKclrerr(void);
 gdk_return GDKcreatedir(const char *nme);
 gdk_return GDKcreatesem(int id, int count, int *semid, str *msg);
 int GDKdebug;
@@ -265,7 +265,7 @@ void GDKregister(MT_Id pid);
 gdk_return GDKreleasemmap(void *ptr, size_t size, size_t id, str *msg);
 gdk_return GDKreleasesem(int sem_id, str *msg);
 void GDKreset(int status, int exit);
-void GDKsetenv(str name, str value);
+gdk_return GDKsetenv(const char *name, const char *value);
 void GDKsetmallocsuccesscount(lng count);
 ssize_t GDKstrFromStr(unsigned char *dst, const unsigned char *src, ssize_t 
len);
 str GDKstrdup(const char *s) __attribute__((__warn_unused_result__));
@@ -409,27 +409,27 @@ const int int_nil;
 int lngFromStr(const char *src, int *len, lng **dst);
 int lngToStr(str *dst, int *len, const lng *src);
 const lng lng_nil;
-int log_abort(logger *lg);
-int log_bat(logger *lg, BAT *b, const char *n);
-int log_bat_clear(logger *lg, const char *n);
-int log_bat_persists(logger *lg, BAT *b, const char *n);
-int log_bat_transient(logger *lg, const char *n);
-int log_delta(logger *lg, BAT *uid, BAT *uval, const char *n);
-int log_sequence(logger *lg, int seq, lng id);
-int log_tend(logger *lg);
-int log_tstart(logger *lg);
-log_bid logger_add_bat(logger *lg, BAT *b, const char *name);
+gdk_return log_abort(logger *lg);
+gdk_return log_bat(logger *lg, BAT *b, const char *n);
+gdk_return log_bat_clear(logger *lg, const char *n);
+gdk_return log_bat_persists(logger *lg, BAT *b, const char *n);
+gdk_return log_bat_transient(logger *lg, const char *n);
+gdk_return log_delta(logger *lg, BAT *uid, BAT *uval, const char *n);
+gdk_return log_sequence(logger *lg, int seq, lng id);
+gdk_return log_tend(logger *lg);
+gdk_return log_tstart(logger *lg);
+gdk_return logger_add_bat(logger *lg, BAT *b, const char *name) 
__attribute__((__warn_unused_result__));
 lng logger_changes(logger *lg);
-int logger_cleanup(logger *lg, int keep_persisted_log_files);
+gdk_return logger_cleanup(logger *lg, int keep_persisted_log_files);
 logger *logger_create(int debug, const char *fn, const char *logdir, int 
version, preversionfix_fptr prefuncp, postversionfix_fptr postfuncp, int 
keep_persisted_log_files);
 logger *logger_create_shared(int debug, const char *fn, const char *logdir, 
const char *slave_logdir, int version, preversionfix_fptr prefuncp, 
postversionfix_fptr postfuncp);
-void logger_del_bat(logger *lg, log_bid bid);
+gdk_return logger_del_bat(logger *lg, log_bid bid) 
__attribute__((__warn_unused_result__));
 void logger_destroy(logger *lg);
-int logger_exit(logger *lg);
+gdk_return logger_exit(logger *lg);
 log_bid logger_find_bat(logger *lg, const char *name);
 lng logger_read_last_transaction_id(logger *lg, char *dir, char *logger_file, 
int role);
-int logger_reload(logger *lg);
-int logger_restart(logger *lg);
+gdk_return logger_reload(logger *lg);
+gdk_return logger_restart(logger *lg);
 int logger_sequence(logger *lg, int seq, lng *id);
 void *mdlopen(const char *library, int mode);
 int mo_add_option(opt **Set, int setlen, opt_kind kind, const char *name, 
const char *value);
@@ -1539,42 +1539,43 @@ str OLTPrelease(Client cntxt, MalBlkPtr 
 str OLTPreset(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
 str OLTPtable(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
 void OPTaliasRemap(InstrPtr p, int *alias);
-int OPTaliasesImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr p);
-int OPTcandidatesImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr p);
-int OPTcoercionImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
-int OPTcommonTermsImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
-int OPTconstantsImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr p);
-int OPTcostModelImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
-int OPTdataflowImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr p);
-int OPTdatavaultsImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
-int OPTdeadcodeImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
-int OPTemptybindImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr p);
-int OPTevaluateImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
-int OPTgarbageCollectorImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr 
stk, InstrPtr pci);
-int OPTgeneratorImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
-int OPTinlineImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr p);
+str OPTaliasesImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr p);
+str OPTcandidatesImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr p);
+str OPTcoercionImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
+str OPTcommonTermsImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
+str OPTconstantsImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr p);
+str OPTcostModelImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
+str OPTdataflowImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr p);
+str OPTdatavaultsImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
+str OPTdeadcodeImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
+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);
+str OPTgeneratorImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
+str OPTinlineImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr p);
 int OPTisAlias(InstrPtr p);
-int OPTjitImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
p);
-int OPTjsonImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci);
+str OPTjitImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
p);
+str OPTjsonImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci);
 str OPTmacro(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
-int OPTmacroImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
p);
-int OPTmatpackImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
-int OPTmergetableImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr p);
-int OPTmitosisImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr p);
-int OPTmultiplexImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
+str OPTmacroImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
p);
+str OPTmatpackImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
+str OPTmergetableImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr p);
+str OPTmitosisImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr p);
+str OPTmultiplexImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
 str OPTmultiplexSimple(Client cntxt, MalBlkPtr mb);
-int OPToltpImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci);
+str OPToltpImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci);
 str OPTorcam(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
-int OPTorcamImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
p);
-int OPTprofilerImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr p);
-int OPTprojectionpathImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr p);
-int OPTpushselectImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
-int OPTquerylogImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
-int OPTreduceImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr p);
-int OPTremapImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci);
-int OPTremoteQueriesImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
-int OPTreorderImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr p);
-int OPTvolcanoImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr p);
+str OPTorcamImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
p);
+str OPTprofilerImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr p);
+str OPTprojectionpathImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr p);
+str OPTpushselectImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
+str OPTquerylogImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
+str OPTreduceImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr p);
+str OPTremapImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci);
+str OPTremoteQueriesImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
+str OPTreorderImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr p);
+str OPTstatistics(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
+str OPTvolcanoImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr p);
 str OPTwrapper(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
 str PCREilike2(bit *ret, const str *s, const str *pat);
 str PCREilike3(bit *ret, const str *s, const str *pat, const str *esc);
@@ -1610,10 +1611,7 @@ str QLOGenable(void *ret);
 str QLOGenableThreshold(void *ret, int *threshold);
 int QLOGisset(void);
 str QLOGissetFcn(int *ret);
-str QOTgetStatistics(bat *ret, str *nme);
 str QOToptimize(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-void QOTstatisticsExit(void);
-void QOTupdateStatistics(str nme, int prop, lng val);
 QueryQueue QRYqueue;
 str RMTbatload(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
 str RMTbincopyfrom(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
@@ -2077,6 +2075,8 @@ void finishSessionProfiler(Client cntxt)
 str firstnRef;
 Module fixModule(Module scope, 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);
@@ -2345,7 +2345,6 @@ int open_block_stream(Stream *S, Stream 
 str open_block_streamwrap(Stream *S, Stream *is);
 str operatorName(int i);
 str optimizeMALBlock(Client cntxt, MalBlkPtr mb);
-str optimizerCheck(Client cntxt, MalBlkPtr mb, str name, int actions, lng 
usec);
 int optimizerIsApplied(MalBlkPtr mb, str name);
 str optimizerRef;
 str optimizer_prelude(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
diff --git a/clients/mapiclient/eventparser.c b/clients/mapiclient/eventparser.c
--- a/clients/mapiclient/eventparser.c
+++ b/clients/mapiclient/eventparser.c
@@ -27,6 +27,8 @@ extern char *strptime(const char *, cons
 #include "strptime.c"
 #endif
 
+#define DATETIME_CHAR_LENGTH 27
+
 static void
 clearArguments(void)
 {
@@ -112,6 +114,8 @@ resetEventRecord(EventRecord *ev)
        if( ev->stmt) free(ev->stmt);
        if( ev->fcn) free(ev->fcn);
        if( ev->numa) free(ev->numa);
+       if(ev->beauty) free(ev->beauty);
+       if(ev->prereq) free(ev->prereq);
        memset( (char*) ev, 0, sizeof(EventRecord));
        ev->eventnr = -1;
        clearArguments();
@@ -173,9 +177,7 @@ int
 keyvalueparser(char *txt, EventRecord *ev)
 {
        char *c, *s, *key, *val;
-       struct tm stm;
-
-       c= txt;
+       c = txt;
 
        if( strstr(c,"\"argument\":") || strstr(c,"\"result\":"))
                return parseArgument(txt,ev);
@@ -205,20 +207,35 @@ keyvalueparser(char *txt, EventRecord *e
        } else val =c;
 
        if( strstr(key,"clk")){
-               ev->clk = atol(val); 
+               ev->clk = atol(val);
                return 0;
        }
        if( strstr(key,"ctime")){
-               /* convert time to epoch in seconds*/
-               ev->time= strdup(val);
-               memset(&stm, 0, sizeof(struct tm));
-               c = strptime(val + 1, "%H:%M:%S", &stm);
-               ev->clkticks = (((lng) stm.tm_hour * 60 + stm.tm_min) * 60 + 
stm.tm_sec) * 1000000;
-               c=  strchr(val,'.');
+               time_t sec;
+               struct tm curr_time;
+
+               c = strchr(val,'.');
+               if (c != NULL) {
+                       *c = '\0';
+                       c++;
+               }
+
+               sec = atol(val);
+#ifdef HAVE_LOCALTIME_R
+               (void)localtime_r(&sec, &curr_time);
+#else
+               curr_time = *localtime(&sec);
+#endif
+               ev->time = malloc(DATETIME_CHAR_LENGTH*sizeof(char));
+               snprintf(ev->time, DATETIME_CHAR_LENGTH, "%d/%02d/%02d 
%02d:%02d:%02d.%s",
+                                curr_time.tm_year + 1900, curr_time.tm_mon, 
curr_time.tm_mday,
+                                curr_time.tm_hour, curr_time.tm_min, 
curr_time.tm_sec,
+                                c);
+               ev->clkticks = sec * 1000000;
                if (c != NULL) {
                        lng usec;
                        /* microseconds */
-                       usec = strtoll(c + 1, NULL, 10);
+                       usec = strtoll(c, NULL, 10);
                        assert(usec >= 0 && usec < 1000000);
                        ev->clkticks += usec;
                }
diff --git a/clients/mapiclient/eventparser.h b/clients/mapiclient/eventparser.h
--- a/clients/mapiclient/eventparser.h
+++ b/clients/mapiclient/eventparser.h
@@ -29,15 +29,11 @@
 #include <signal.h>
 #include <unistd.h>
 
-#ifdef TIME_WITH_SYS_TIME
-# include <sys/time.h>
-# include <time.h>
-#else
-# ifdef HAVE_SYS_TIME_H
-#  include <sys/time.h>
-# else
-#  include <time.h>
-# endif
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#ifdef HAVE_TIME_H
+#include <time.h>
 #endif
 
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to