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