Changeset: 4d4439e02bbf for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=4d4439e02bbf
Added Files:
        monetdb5/mal/Tests/malids.malC
        monetdb5/mal/Tests/malids.stable.err
        monetdb5/mal/Tests/malids.stable.out
        monetdb5/modules/kernel/Tests/select.malC
        monetdb5/modules/kernel/Tests/select.stable.err
        monetdb5/modules/kernel/Tests/select.stable.out
Removed Files:
        monetdb5/optimizer/Tests/flowgraph.malC
        monetdb5/optimizer/Tests/flowgraph.stable.err
        monetdb5/optimizer/Tests/flowgraph.stable.out
Modified Files:
        clients/Tests/MAL-signatures.stable.out
        clients/Tests/MAL-signatures.stable.out.int128
        clients/Tests/exports.stable.out
        gdk/gdk_logger.c
        gdk/gdk_select.c
        monetdb5/mal/Tests/All
        monetdb5/mal/Tests/run
        monetdb5/mal/mal.h
        monetdb5/mal/mal_builder.c
        monetdb5/mal/mal_builder.h
        monetdb5/mal/mal_client.c
        monetdb5/mal/mal_dataflow.c
        monetdb5/mal/mal_debugger.c
        monetdb5/mal/mal_function.c
        monetdb5/mal/mal_function.h
        monetdb5/mal/mal_import.c
        monetdb5/mal/mal_instruction.c
        monetdb5/mal/mal_instruction.h
        monetdb5/mal/mal_parser.c
        monetdb5/mal/mal_profiler.c
        monetdb5/mal/mal_session.c
        monetdb5/modules/kernel/Tests/All
        monetdb5/modules/mal/Tests/orderidx00.malC
        monetdb5/modules/mal/Tests/orderidx01.malC
        monetdb5/modules/mal/Tests/orderidx02.malC
        monetdb5/modules/mal/Tests/orderidx04.malC
        monetdb5/modules/mal/language.mal
        monetdb5/modules/mal/manifold.c
        monetdb5/modules/mal/mdb.c
        monetdb5/modules/mal/mdb.h
        monetdb5/modules/mal/mdb.mal
        monetdb5/modules/mal/oltp.mal
        monetdb5/modules/mal/orderidx.c
        monetdb5/optimizer/Tests/All
        monetdb5/optimizer/opt_commonTerms.c
        monetdb5/optimizer/opt_dataflow.c
        monetdb5/optimizer/opt_deadcode.c
        monetdb5/optimizer/opt_garbageCollector.c
        monetdb5/optimizer/opt_macro.c
        monetdb5/optimizer/opt_prelude.c
        monetdb5/optimizer/opt_prelude.h
        monetdb5/optimizer/opt_profiler.c
        monetdb5/optimizer/opt_reorder.c
        monetdb5/optimizer/opt_support.c
        monetdb5/optimizer/opt_support.h
        monetdb5/optimizer/opt_wrapper.c
        monetdb5/optimizer/optimizer.mal
        monetdb5/scheduler/run_adder.c
        monetdb5/tools/Tests/mserver5--help.stable.err
        monetdb5/tools/Tests/mserver5--help.stable.err.Windows
        sql/backends/monet5/UDF/pyapi/convert_loops.h
        sql/backends/monet5/generator/generator.c
        sql/backends/monet5/rel_bin.c
        sql/backends/monet5/sql_execute.c
        sql/backends/monet5/sql_gencode.c
        sql/backends/monet5/sql_optimizer.c
        sql/backends/monet5/sql_statement.c
        sql/backends/monet5/sqlcatalog.mal
        sql/backends/monet5/vaults/netcdf/netcdf.c
        sql/common/sql_hash.c
        sql/common/sql_list.c
        sql/server/rel_exp.c
        sql/storage/bat/bat_storage.c
        sql/storage/bat/bat_utils.c
        sql/storage/bat/res_table.c
        sql/storage/sql_catalog.c
        
sql/test/BugTracker-2009/Tests/segfault_when_quitting_debugger.SF-2538837.stable.out
        
sql/test/BugTracker-2012/Tests/rewrite_like_into_likesubselect.Bug-3179.stable.out
        sql/test/BugTracker-2014/Tests/querylog.Bug-3607.stable.out
        sql/test/BugTracker-2016/Tests/decimal_vs_integer.Bug-3941.stable.out
        sql/test/BugTracker/Tests/explain.SF-1739353.stable.out
        sql/test/BugTracker/Tests/jdbc_no_debug.SF-1739356.stable.out
        tools/mserver/mserver5.c
Branch: data-vaults
Log Message:

Merge with default


diffs (truncated from 7041 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
@@ -7941,8 +7941,6 @@ Ready.
 [ "mcurl",     "putrequest",   "command mcurl.putrequest(s:str):str ", 
"CURLputRequest;",      "Perform a http put request"    ]
 [ "mdb",       "List", "pattern mdb.List(M:str, F:str):void ", 
"MDBlist3Detail;",      "Dump the routine M.F on standard out." ]
 [ "mdb",       "List", "pattern mdb.List():void ",     "MDBlistDetail;",       
"Dump the current routine on standard out."     ]
-[ "mdb",       "dot",  "pattern mdb.dot(M:str, F:str, s:str):void ",   
"MDBshowFlowGraph;",    "Dump the data flow of the function \n\tM.F in a format 
recognizable by the \n\tcommand 'dot' on the file s"    ]
-[ "mdb",       "dot",  "pattern mdb.dot(s:str):void ", "MDBshowFlowGraph;",    
"Dump the data flow of the current routine in a format recognizable by the 
command 'dot' to the file s" ]
 [ "mdb",       "dump", "pattern mdb.dump():void ",     "MDBdump;",     "Dump 
instruction, stacktrace, and stack"       ]
 [ "mdb",       "getContext",   "command mdb.getContext(s:str):str ",   
"MDBgetExceptionContext;",      "Extract the context string from the exception 
message" ]
 [ "mdb",       "getDebug",     "command mdb.getDebug():int ",  "MDBgetDebug;", 
"Get the kernel debugging bit-set.\nSee the MonetDB configuration file for 
details"     ]
@@ -8170,8 +8168,6 @@ Ready.
 [ "optimizer", "datavaults",   "pattern optimizer.datavaults(mod:str, 
fcn:str):str ",  "OPTwrapper;",  "Lazy load of datavaults files" ]
 [ "optimizer", "deadcode",     "pattern optimizer.deadcode():str ",    
"OPTwrapper;",  ""      ]
 [ "optimizer", "deadcode",     "pattern optimizer.deadcode(mod:str, 
fcn:str):str ",    "OPTwrapper;",  "Dead code optimizer"   ]
-[ "optimizer", "derivePath",   "pattern optimizer.derivePath():str ",  
"OPTwrapper;",  ""      ]
-[ "optimizer", "derivePath",   "pattern optimizer.derivePath(mod:str, 
fcn:str):str ",  "OPTwrapper;",  "Join path constructor" ]
 [ "optimizer", "emptybind",    "pattern optimizer.emptybind():str ",   
"OPTwrapper;",  ""      ]
 [ "optimizer", "emptybind",    "pattern optimizer.emptybind(mod:str, 
fcn:str):str ",   "OPTwrapper;",  "Evaluate empty set expressions."       ]
 [ "optimizer", "evaluate",     "pattern optimizer.evaluate():str ",    
"OPTwrapper;",  ""      ]
@@ -8184,8 +8180,6 @@ Ready.
 [ "optimizer", "inline",       "pattern optimizer.inline(mod:str, fcn:str):str 
",      "OPTwrapper;",  "Expand inline functions"       ]
 [ "optimizer", "jit",  "pattern optimizer.jit():str ", "OPTwrapper;",  ""      
]
 [ "optimizer", "jit",  "pattern optimizer.jit(mod:str, fcn:str):str ", 
"OPTwrapper;",  "Propagate candidate lists in just-in-time optimization"        
]
-[ "optimizer", "joinselect",   "pattern optimizer.joinselect():str ",  
"OPTwrapper;",  ""      ]
-[ "optimizer", "joinselect",   "pattern optimizer.joinselect(mod:str, 
fcn:str):str ",  "OPTwrapper;",  "Replace select with join select"       ]
 [ "optimizer", "json", "pattern optimizer.json():str ",        "OPTwrapper;",  
""      ]
 [ "optimizer", "json", "pattern optimizer.json(mod:str, fcn:str):str ",        
"OPTwrapper;",  "Unroll the mat.pack operation" ]
 [ "optimizer", "macro",        "pattern optimizer.macro(mod:str, fcn:str, 
targetmod:str, targetfcn:str):void ",        "OPTmacro;",    "Inline a target 
function used in a specific function." ]
@@ -8203,12 +8197,6 @@ Ready.
 [ "optimizer", "optimize",     "pattern optimizer.optimize(mod:str, 
fcn:str):void ",   "QOToptimize;", "Optimize a specific operation" ]
 [ "optimizer", "orcam",        "pattern optimizer.orcam(mod:str, fcn:str, 
targetmod:str, targetfcn:str):void ",        "OPTorcam;",    "Inverse macro, 
find pattern and replace with a function call." ]
 [ "optimizer", "orcam",        "pattern optimizer.orcam(targetmod:str, 
targetfcn:str):void ",  "OPTorcam;",    "Inverse macro processor for current 
function"  ]
-[ "optimizer", "origin",       "pattern optimizer.origin():str ",      
"OPTwrapper;",  ""      ]
-[ "optimizer", "origin",       "pattern optimizer.origin(mod:str, fcn:str):str 
",      "OPTwrapper;",  "OID origin tracker"    ]
-[ "optimizer", "partitions",   "pattern optimizer.partitions():str ",  
"OPTwrapper;",  ""      ]
-[ "optimizer", "partitions",   "pattern optimizer.partitions(mod:str, 
fcn:str):str ",  "OPTwrapper;",  "Experiment with partitioned databases" ]
-[ "optimizer", "prejoin",      "pattern optimizer.prejoin():str ",     
"OPTwrapper;",  ""      ]
-[ "optimizer", "prejoin",      "pattern optimizer.prejoin(mod:str, 
fcn:str):str ",     "OPTwrapper;",  "Dead code optimizer"   ]
 [ "optimizer", "prelude",      "pattern optimizer.prelude():void ",    
"optimizer_prelude;",   "Initialize the optimizer"      ]
 [ "optimizer", "profiler",     "pattern optimizer.profiler():str ",    
"OPTwrapper;",  ""      ]
 [ "optimizer", "profiler",     "pattern optimizer.profiler(mod:str, 
fcn:str):str ",    "OPTwrapper;",  "Collect properties for the profiler"   ]
@@ -8218,8 +8206,6 @@ Ready.
 [ "optimizer", "pushselect",   "pattern optimizer.pushselect(mod:str, 
fcn:str):str ",  "OPTwrapper;",  "Push selects down projections" ]
 [ "optimizer", "querylog",     "pattern optimizer.querylog():str ",    
"OPTwrapper;",  ""      ]
 [ "optimizer", "querylog",     "pattern optimizer.querylog(mod:str, 
fcn:str):str ",    "OPTwrapper;",  "Collect SQL query statistics"  ]
-[ "optimizer", "recycler",     "pattern optimizer.recycler():str ",    
"OPTwrapper;",  ""      ]
-[ "optimizer", "recycler",     "pattern optimizer.recycler(mod:str, 
fcn:str):str ",    "OPTwrapper;",  "Recycler marking and code injection"   ]
 [ "optimizer", "reduce",       "pattern optimizer.reduce():str ",      
"OPTwrapper;",  ""      ]
 [ "optimizer", "reduce",       "pattern optimizer.reduce(mod:str, fcn:str):str 
",      "OPTwrapper;",  "Reduce the stack space claims" ]
 [ "optimizer", "remap",        "pattern optimizer.remap():str ",       
"OPTwrapper;",  ""      ]
@@ -8230,8 +8216,6 @@ Ready.
 [ "optimizer", "reorder",      "pattern optimizer.reorder(mod:str, 
fcn:str):str ",     "OPTwrapper;",  "Reorder by dataflow dependencies"      ]
 [ "optimizer", "sql_append",   "pattern optimizer.sql_append():str ",  
"OPTsql_append;",       "Avoid extra BAT copy with sql.append() whenever 
possible."     ]
 [ "optimizer", "sql_append",   "pattern optimizer.sql_append(mod:str, 
fcn:str):str ",  "OPTsql_append;",       "Avoid extra BAT copy with 
sql.append() whenever possible."     ]
-[ "optimizer", "trace",        "pattern optimizer.trace():str ",       
"OPTwrapper;",  ""      ]
-[ "optimizer", "trace",        "pattern optimizer.trace(mod:str, fcn:str):str 
",       "OPTwrapper;",  "Collect trace of a specific operation" ]
 [ "optimizer", "volcano",      "pattern optimizer.volcano():str ",     
"OPTwrapper;",  ""      ]
 [ "optimizer", "volcano",      "pattern optimizer.volcano(mod:str, 
fcn:str):str ",     "OPTwrapper;",  "Simulate volcano style execution"      ]
 [ "pcre",      "imatch",       "command pcre.imatch(s:str, pat:str):bit ",     
"PCREimatch;",  "Caseless Perl Compatible Regular Expression pattern matching 
against a string" ]
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
@@ -10302,8 +10302,6 @@ Ready.
 [ "mcurl",     "putrequest",   "command mcurl.putrequest(s:str):str ", 
"CURLputRequest;",      "Perform a http put request"    ]
 [ "mdb",       "List", "pattern mdb.List(M:str, F:str):void ", 
"MDBlist3Detail;",      "Dump the routine M.F on standard out." ]
 [ "mdb",       "List", "pattern mdb.List():void ",     "MDBlistDetail;",       
"Dump the current routine on standard out."     ]
-[ "mdb",       "dot",  "pattern mdb.dot(M:str, F:str, s:str):void ",   
"MDBshowFlowGraph;",    "Dump the data flow of the function \n\tM.F in a format 
recognizable by the \n\tcommand 'dot' on the file s"    ]
-[ "mdb",       "dot",  "pattern mdb.dot(s:str):void ", "MDBshowFlowGraph;",    
"Dump the data flow of the current routine in a format recognizable by the 
command 'dot' to the file s" ]
 [ "mdb",       "dump", "pattern mdb.dump():void ",     "MDBdump;",     "Dump 
instruction, stacktrace, and stack"       ]
 [ "mdb",       "getContext",   "command mdb.getContext(s:str):str ",   
"MDBgetExceptionContext;",      "Extract the context string from the exception 
message" ]
 [ "mdb",       "getDebug",     "command mdb.getDebug():int ",  "MDBgetDebug;", 
"Get the kernel debugging bit-set.\nSee the MonetDB configuration file for 
details"     ]
@@ -10532,8 +10530,6 @@ Ready.
 [ "optimizer", "datavaults",   "pattern optimizer.datavaults(mod:str, 
fcn:str):str ",  "OPTwrapper;",  "Lazy load of datavaults files" ]
 [ "optimizer", "deadcode",     "pattern optimizer.deadcode():str ",    
"OPTwrapper;",  ""      ]
 [ "optimizer", "deadcode",     "pattern optimizer.deadcode(mod:str, 
fcn:str):str ",    "OPTwrapper;",  "Dead code optimizer"   ]
-[ "optimizer", "derivePath",   "pattern optimizer.derivePath():str ",  
"OPTwrapper;",  ""      ]
-[ "optimizer", "derivePath",   "pattern optimizer.derivePath(mod:str, 
fcn:str):str ",  "OPTwrapper;",  "Join path constructor" ]
 [ "optimizer", "emptybind",    "pattern optimizer.emptybind():str ",   
"OPTwrapper;",  ""      ]
 [ "optimizer", "emptybind",    "pattern optimizer.emptybind(mod:str, 
fcn:str):str ",   "OPTwrapper;",  "Evaluate empty set expressions."       ]
 [ "optimizer", "evaluate",     "pattern optimizer.evaluate():str ",    
"OPTwrapper;",  ""      ]
@@ -10546,8 +10542,6 @@ Ready.
 [ "optimizer", "inline",       "pattern optimizer.inline(mod:str, fcn:str):str 
",      "OPTwrapper;",  "Expand inline functions"       ]
 [ "optimizer", "jit",  "pattern optimizer.jit():str ", "OPTwrapper;",  ""      
]
 [ "optimizer", "jit",  "pattern optimizer.jit(mod:str, fcn:str):str ", 
"OPTwrapper;",  "Propagate candidate lists in just-in-time optimization"        
]
-[ "optimizer", "joinselect",   "pattern optimizer.joinselect():str ",  
"OPTwrapper;",  ""      ]
-[ "optimizer", "joinselect",   "pattern optimizer.joinselect(mod:str, 
fcn:str):str ",  "OPTwrapper;",  "Replace select with join select"       ]
 [ "optimizer", "json", "pattern optimizer.json():str ",        "OPTwrapper;",  
""      ]
 [ "optimizer", "json", "pattern optimizer.json(mod:str, fcn:str):str ",        
"OPTwrapper;",  "Unroll the mat.pack operation" ]
 [ "optimizer", "macro",        "pattern optimizer.macro(mod:str, fcn:str, 
targetmod:str, targetfcn:str):void ",        "OPTmacro;",    "Inline a target 
function used in a specific function." ]
@@ -10565,12 +10559,6 @@ Ready.
 [ "optimizer", "optimize",     "pattern optimizer.optimize(mod:str, 
fcn:str):void ",   "QOToptimize;", "Optimize a specific operation" ]
 [ "optimizer", "orcam",        "pattern optimizer.orcam(mod:str, fcn:str, 
targetmod:str, targetfcn:str):void ",        "OPTorcam;",    "Inverse macro, 
find pattern and replace with a function call." ]
 [ "optimizer", "orcam",        "pattern optimizer.orcam(targetmod:str, 
targetfcn:str):void ",  "OPTorcam;",    "Inverse macro processor for current 
function"  ]
-[ "optimizer", "origin",       "pattern optimizer.origin():str ",      
"OPTwrapper;",  ""      ]
-[ "optimizer", "origin",       "pattern optimizer.origin(mod:str, fcn:str):str 
",      "OPTwrapper;",  "OID origin tracker"    ]
-[ "optimizer", "partitions",   "pattern optimizer.partitions():str ",  
"OPTwrapper;",  ""      ]
-[ "optimizer", "partitions",   "pattern optimizer.partitions(mod:str, 
fcn:str):str ",  "OPTwrapper;",  "Experiment with partitioned databases" ]
-[ "optimizer", "prejoin",      "pattern optimizer.prejoin():str ",     
"OPTwrapper;",  ""      ]
-[ "optimizer", "prejoin",      "pattern optimizer.prejoin(mod:str, 
fcn:str):str ",     "OPTwrapper;",  "Dead code optimizer"   ]
 [ "optimizer", "prelude",      "pattern optimizer.prelude():void ",    
"optimizer_prelude;",   "Initialize the optimizer"      ]
 [ "optimizer", "profiler",     "pattern optimizer.profiler():str ",    
"OPTwrapper;",  ""      ]
 [ "optimizer", "profiler",     "pattern optimizer.profiler(mod:str, 
fcn:str):str ",    "OPTwrapper;",  "Collect properties for the profiler"   ]
@@ -10580,8 +10568,6 @@ Ready.
 [ "optimizer", "pushselect",   "pattern optimizer.pushselect(mod:str, 
fcn:str):str ",  "OPTwrapper;",  "Push selects down projections" ]
 [ "optimizer", "querylog",     "pattern optimizer.querylog():str ",    
"OPTwrapper;",  ""      ]
 [ "optimizer", "querylog",     "pattern optimizer.querylog(mod:str, 
fcn:str):str ",    "OPTwrapper;",  "Collect SQL query statistics"  ]
-[ "optimizer", "recycler",     "pattern optimizer.recycler():str ",    
"OPTwrapper;",  ""      ]
-[ "optimizer", "recycler",     "pattern optimizer.recycler(mod:str, 
fcn:str):str ",    "OPTwrapper;",  "Recycler marking and code injection"   ]
 [ "optimizer", "reduce",       "pattern optimizer.reduce():str ",      
"OPTwrapper;",  ""      ]
 [ "optimizer", "reduce",       "pattern optimizer.reduce(mod:str, fcn:str):str 
",      "OPTwrapper;",  "Reduce the stack space claims" ]
 [ "optimizer", "remap",        "pattern optimizer.remap():str ",       
"OPTwrapper;",  ""      ]
@@ -10592,8 +10578,6 @@ Ready.
 [ "optimizer", "reorder",      "pattern optimizer.reorder(mod:str, 
fcn:str):str ",     "OPTwrapper;",  "Reorder by dataflow dependencies"      ]
 [ "optimizer", "sql_append",   "pattern optimizer.sql_append():str ",  
"OPTsql_append;",       "Avoid extra BAT copy with sql.append() whenever 
possible."     ]
 [ "optimizer", "sql_append",   "pattern optimizer.sql_append(mod:str, 
fcn:str):str ",  "OPTsql_append;",       "Avoid extra BAT copy with 
sql.append() whenever possible."     ]
-[ "optimizer", "trace",        "pattern optimizer.trace():str ",       
"OPTwrapper;",  ""      ]
-[ "optimizer", "trace",        "pattern optimizer.trace(mod:str, fcn:str):str 
",       "OPTwrapper;",  "Collect trace of a specific operation" ]
 [ "optimizer", "volcano",      "pattern optimizer.volcano():str ",     
"OPTwrapper;",  ""      ]
 [ "optimizer", "volcano",      "pattern optimizer.volcano(mod:str, 
fcn:str):str ",     "OPTwrapper;",  "Simulate volcano style execution"      ]
 [ "pcre",      "imatch",       "command pcre.imatch(s:str, pat:str):bit ",     
"PCREimatch;",  "Caseless Perl Compatible Regular Expression pattern matching 
against a string" ]
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
@@ -1376,7 +1376,6 @@ str MDBsetDebug(int *ret, int *flg);
 str MDBsetDebugStr(int *ret, str *nme);
 str MDBsetTrace(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
 str MDBsetVarTrace(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
-str MDBshowFlowGraph(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
 str MDBstart(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
 str MDBstartFactory(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
 str MDBstop(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
@@ -1993,12 +1992,10 @@ str commitRef;
 str compileOptimizer(Client cntxt, str name);
 str compileString(Symbol *fcn, Client c, str s);
 str connectRef;
-str constraintsRef;
 str convertConstant(malType type, ValPtr vr);
 InstrPtr copyInstruction(InstrPtr p);
 MalBlkPtr copyMalBlk(MalBlkPtr mb);
 str copyRef;
-int copyVariable(MalBlkPtr dst, VarPtr v);
 str copy_fromRef;
 str countRef;
 str count_no_nilRef;
@@ -2148,7 +2145,7 @@ str groupdoneRef;
 int hasCommonResults(InstrPtr p, InstrPtr q);
 int hasSameArguments(MalBlkPtr mb, InstrPtr p, InstrPtr q);
 int hasSameSignature(MalBlkPtr mb, InstrPtr p, InstrPtr q, int stop);
-int hasSideEffects(InstrPtr p, int strict);
+int hasSideEffects(MalBlkPtr mb, InstrPtr p, int strict);
 str hashRef;
 int have_hge;
 str hgeRef;
@@ -2167,7 +2164,6 @@ int initQlog(void);
 int initTrace(void);
 int inlineMALblock(MalBlkPtr mb, int pc, MalBlkPtr mc);
 str inplaceRef;
-void insertInstruction(MalBlkPtr mb, InstrPtr p, int pc);
 void insertSymbol(Module scope, Symbol prg);
 str instruction2str(MalBlkPtr mb, MalStkPtr stl, InstrPtr p, int hidden);
 str instructionCall(MalBlkPtr mb, InstrPtr p, str s, str base, size_t len);
@@ -2178,15 +2174,12 @@ str ioRef;
 str io_stderr(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
 str io_stdin(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
 str io_stdout(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-int isAllScalar(MalBlkPtr mb, InstrPtr p);
 int isBlocking(InstrPtr p);
 int isDelta(InstrPtr q);
-int isDependent(InstrPtr p, InstrPtr q);
 int isExceptionVariable(str nme);
 int isFragmentGroup(InstrPtr q);
 int isFragmentGroup2(InstrPtr q);
 int isIdentifier(str s);
-int isInvariant(MalBlkPtr mb, int pcf, int pcl, int varid);
 int isLikeOp(InstrPtr q);
 int isLoopBarrier(MalBlkPtr mb, int pc);
 int isMapOp(InstrPtr q);
@@ -2198,7 +2191,6 @@ int isNotUsedIn(InstrPtr p, int start, i
 int isOptimizerEnabled(MalBlkPtr mb, str opt);
 int isOptimizerPipe(str name);
 int isOrderby(InstrPtr q);
-int isProcedure(MalBlkPtr mb, InstrPtr p);
 int isSample(InstrPtr q);
 int isSealedFunction(InstrPtr q);
 int isSelect(InstrPtr q);
@@ -2248,6 +2240,7 @@ MT_Lock mal_delayLock;
 void mal_exit(void);
 void mal_factory_reset(void) __attribute__((__visibility__("hidden")));
 int mal_init(void);
+void mal_instruction_reset(void);
 void mal_linker_reset(void) __attribute__((__visibility__("hidden")));
 void mal_module_reset(void) __attribute__((__visibility__("hidden")));
 void mal_namespace_reset(void) __attribute__((__visibility__("hidden")));
@@ -2326,8 +2319,8 @@ InstrPtr newFcnCall(MalBlkPtr mb, char *
 Symbol newFunction(str mod, str nme, int kind);
 MalStkPtr newGlobalStack(int size);
 InstrPtr newInstruction(MalBlkPtr mb, str modnme, str fcnnme);
-MalBlkPtr newMalBlk(int maxvars, int maxstmts);
-int newMalBlkStmt(MalBlkPtr mb, int maxstmts);
+MalBlkPtr newMalBlk(int elements);
+int newMalBlkStmt(MalBlkPtr mb, int elements);
 Module newModule(Module scope, str nme);
 Plant newPlant(MalBlkPtr mb);
 InstrPtr newRaiseStmt(MalBlkPtr mb, str nme);
@@ -2369,7 +2362,7 @@ str plusRef;
 str postludeRef;
 str preludeRef;
 MalStkPtr prepareMALstack(MalBlkPtr mb, int size);
-void prepareMalBlk(MalBlkPtr mb, str s);
+int prepareMalBlk(MalBlkPtr mb, str s);
 void printFunction(stream *fd, MalBlkPtr mb, MalStkPtr stk, int flg);
 void printInstruction(stream *fd, MalBlkPtr mb, MalStkPtr stk, InstrPtr p, int 
flg);
 str printRef;
@@ -2391,7 +2384,7 @@ InstrPtr pushBit(MalBlkPtr mb, InstrPtr 
 InstrPtr pushBte(MalBlkPtr mb, InstrPtr q, bte val);
 InstrPtr pushDbl(MalBlkPtr mb, InstrPtr q, dbl val);
 InstrPtr pushEmptyBAT(MalBlkPtr mb, InstrPtr q, int tpe);
-void pushEndInstruction(MalBlkPtr mb);
+InstrPtr pushEndInstruction(MalBlkPtr mb);
 InstrPtr pushFlt(MalBlkPtr mb, InstrPtr q, flt val);
 InstrPtr pushHge(MalBlkPtr mb, InstrPtr q, hge val);
 void pushInstruction(MalBlkPtr mb, InstrPtr p);
@@ -2435,7 +2428,7 @@ str replaceRef;
 str replicatorRef;
 void resetMalBlk(MalBlkPtr mb, int stop);
 void resetScenario(Client c);
-void resizeMalBlk(MalBlkPtr mb, int maxstmt, int maxvar);
+int resizeMalBlk(MalBlkPtr mb, int elements);
 int resolveType(int dsttype, int srctype);
 str resultSetRef;
 str reuseRef;
@@ -2471,7 +2464,6 @@ void setHeartbeat(int delay);
 void setPolymorphic(InstrPtr p, int tpe, int force);
 void setReturnArgument(InstrPtr p, int varid);
 str setScenario(Client c, str nme);
-void setVarType(MalBlkPtr mb, int i, int tpe);
 str setVariableRef;
 void setVariableScope(MalBlkPtr mb);
 str setWriteModeRef;
@@ -2482,7 +2474,6 @@ void showAllScenarios(stream *f);
 void showCurrentScenario(void);
 void showErrors(Client cntxt);
 void showException(stream *out, enum malexception, const char *, _In_z_ 
_Printf_format_string_ const char *, ...) __attribute__((__format__(__printf__, 
4, 5)));
-void showFlowGraph(MalBlkPtr mb, MalStkPtr stk, str fname);
 void showMalBlkHistory(stream *out, MalBlkPtr mb);
 void showOptimizerHistory(void);
 void showOptimizerStep(str fnme, int i, int flg);
diff --git a/gdk/gdk_logger.c b/gdk/gdk_logger.c
--- a/gdk/gdk_logger.c
+++ b/gdk/gdk_logger.c
@@ -1598,6 +1598,8 @@ logger_load(int debug, const char *fn, c
                                logger_fatal("Logger_new: inconsistent 
database, snapshots_tid does not exist", 0, 0, 0);
                } else {
                        lg->dsnapshots = logbat_new(TYPE_oid, 1, PERSISTENT);
+                       if (lg->dsnapshots == NULL)
+                               logger_fatal("Logger_new: cannot create 
dsnapshot bat", 0, 0, 0);
                        snprintf(bak, sizeof(bak), "%s_dsnapshots", fn);
                        if (BBPrename(lg->dsnapshots->batCacheid, bak) < 0)
                                logger_fatal("Logger_new: BBPrename to %s 
failed", bak, 0, 0);
@@ -2513,6 +2515,9 @@ bm_commit(logger *lg)
        BAT *n = logbat_new(TYPE_str, BATcount(lg->freed), TRANSIENT);
        gdk_return res;
 
+       if (n == NULL)
+               return LOG_ERR;
+
        /* subcommit the freed bats */
        if (BATcount(lg->freed)) {
 
diff --git a/gdk/gdk_select.c b/gdk/gdk_select.c
--- a/gdk/gdk_select.c
+++ b/gdk/gdk_select.c
@@ -1275,14 +1275,13 @@ BATselect(BAT *b, BAT *s, const void *tl
        equi = th == NULL || (lval && ATOMcmp(t, tl, th) == 0); /* point 
select? */
        if (equi) {
                assert(lval);
-               hi = li;
+               if (th == NULL)
+                       hi = li;
                th = tl;
                hval = 1;
        } else {
                hval = ATOMcmp(t, th, nil) != 0;
        }
-       if (!equi && !lval && !hval && lnil) 
-               anti = !anti;
        if (anti) {
                if (lval != hval) {
                        /* one of the end points is nil and the other
@@ -1857,7 +1856,7 @@ BATthetaselect(BAT *b, BAT *s, const voi
        nil = ATOMnilptr(b->ttype);
        if (ATOMcmp(b->ttype, val, nil) == 0)
                return newempty();
-       if (op[0] == '=' && ((op[1] == '=' && op[2] == 0) || op[2] == 0)) {
+       if (op[0] == '=' && ((op[1] == '=' && op[2] == 0) || op[1] == 0)) {
                /* "=" or "==" */
                return BATselect(b, s, val, NULL, 1, 1, 0);
        }
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to