Changeset: 790f2ac1d95e for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=790f2ac1d95e Modified Files: clients/ChangeLog clients/Tests/MAL-signatures.stable.out clients/Tests/MAL-signatures.stable.out.int128 clients/Tests/exports.stable.out clients/mapiclient/Makefile.ag clients/mapiclient/mclient.c clients/mapiclient/mhelp.c gdk/gdk_value.c monetdb5/ChangeLog.Dec2016 monetdb5/extras/mal_optimizer_template/Tests/All monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.Windows monetdb5/mal/mal_debugger.c monetdb5/mal/mal_function.c monetdb5/mal/mal_instruction.c monetdb5/mal/mal_instruction.h monetdb5/mal/mal_interpreter.c monetdb5/mal/mal_listing.c monetdb5/mal/mal_type.c monetdb5/mal/mal_type.h monetdb5/modules/kernel/bat5.c monetdb5/modules/mal/iterator.c monetdb5/modules/mal/mdb.c monetdb5/modules/mal/mdb.h monetdb5/modules/mal/mdb.mal monetdb5/optimizer/Tests/All monetdb5/optimizer/opt_support.c monetdb5/optimizer/optimizer.c monetdb5/optimizer/optimizer.h monetdb5/optimizer/optimizer.mal sql/backends/monet5/Tests/pyapi10.stable.err sql/backends/monet5/Tests/pyapi10.stable.out sql/backends/monet5/Tests/pyapi25.stable.err sql/backends/monet5/Tests/pyapi25.stable.out sql/backends/monet5/UDF/pyapi/pytypes.c sql/backends/monet5/rel_bin.c sql/backends/monet5/sql_execute.c sql/backends/monet5/sql_gencode.c sql/benchmarks/ssbm/Tests/All sql/benchmarks/tpch/Tests/All sql/common/sql_mem.c sql/jdbc/tests/Tests/All sql/server/rel_exp.c sql/server/rel_optimizer.c sql/server/rel_select.c sql/server/rel_updates.c sql/server/sql_atom.c sql/server/sql_atom.h sql/server/sql_mvc.c sql/test/BugTracker-2009/Tests/copy_multiple_files.SF-2902320.stable.out.Windows sql/test/BugTracker-2016/Tests/All tools/merovingian/client/monetdb.c tools/merovingian/daemon/discoveryrunner.c tools/merovingian/daemon/multiplex-funnel.c tools/merovingian/utils/glob.c tools/merovingian/utils/glob.h Branch: oltp Log Message:
Merge with default diffs (truncated from 2304 to 300 lines): diff --git a/clients/ChangeLog b/clients/ChangeLog --- a/clients/ChangeLog +++ b/clients/ChangeLog @@ -2,5 +2,5 @@ # This file is updated with Maddlog * Sun Oct 30 2016 Martin Kersten <m...@cwi.nl> -- Added an more elaborate \help command for SQL expressions. +- Added a more elaborate \help command for SQL expressions. 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 @@ -5661,43 +5661,11 @@ Ready. [ "batcalc", "sign", "pattern batcalc.sign(b:bat[:sht]):bat[:bte] ", "CMDbatSIGN;", "Unary sign (-1,0,1) over the tail of the bat" ] [ "batcalc", "sign", "pattern batcalc.sign(b:bat[:sht],s:bat[:oid]):bat[:bte] ", "CMDbatSIGN;", "Unary sign (-1,0,1) over the tail of the bat with candidates list" ] [ "batcalc", "sqlblob", "command batcalc.sqlblob(v:bat[:str]):bat[:sqlblob] ", "batstr_2_sqlblob;", "cast to sqlblob" ] -[ "batcalc", "str", "pattern batcalc.str(b:bat[:bit]):bat[:str] ", "CMDconvertsignal_str;", "cast from bit to str, signal error on overflow" ] -[ "batcalc", "str", "pattern batcalc.str(b:bat[:bit],s:bat[:oid]):bat[:str] ", "CMDconvertsignal_str;", "cast from bit to str with candidates list, signal error on overflow" ] -[ "batcalc", "str", "pattern batcalc.str(b:bat[:bte]):bat[:str] ", "CMDconvertsignal_str;", "cast from bte to str, signal error on overflow" ] -[ "batcalc", "str", "pattern batcalc.str(b:bat[:bte],s:bat[:oid]):bat[:str] ", "CMDconvertsignal_str;", "cast from bte to str with candidates list, signal error on overflow" ] -[ "batcalc", "str", "pattern batcalc.str(b:bat[:dbl]):bat[:str] ", "CMDconvertsignal_str;", "cast from dbl to str, signal error on overflow" ] -[ "batcalc", "str", "pattern batcalc.str(b:bat[:dbl],s:bat[:oid]):bat[:str] ", "CMDconvertsignal_str;", "cast from dbl to str with candidates list, signal error on overflow" ] -[ "batcalc", "str", "pattern batcalc.str(b:bat[:flt]):bat[:str] ", "CMDconvertsignal_str;", "cast from flt to str, signal error on overflow" ] -[ "batcalc", "str", "pattern batcalc.str(b:bat[:flt],s:bat[:oid]):bat[:str] ", "CMDconvertsignal_str;", "cast from flt to str with candidates list, signal error on overflow" ] -[ "batcalc", "str", "pattern batcalc.str(b:bat[:int]):bat[:str] ", "CMDconvertsignal_str;", "cast from int to str, signal error on overflow" ] -[ "batcalc", "str", "pattern batcalc.str(b:bat[:int],s:bat[:oid]):bat[:str] ", "CMDconvertsignal_str;", "cast from int to str with candidates list, signal error on overflow" ] -[ "batcalc", "str", "pattern batcalc.str(b:bat[:lng]):bat[:str] ", "CMDconvertsignal_str;", "cast from lng to str, signal error on overflow" ] -[ "batcalc", "str", "pattern batcalc.str(b:bat[:lng],s:bat[:oid]):bat[:str] ", "CMDconvertsignal_str;", "cast from lng to str with candidates list, signal error on overflow" ] -[ "batcalc", "str", "pattern batcalc.str(b:bat[:oid]):bat[:str] ", "CMDconvertsignal_str;", "cast from oid to str, signal error on overflow" ] -[ "batcalc", "str", "pattern batcalc.str(b:bat[:oid],s:bat[:oid]):bat[:str] ", "CMDconvertsignal_str;", "cast from oid to str with candidates list, signal error on overflow" ] -[ "batcalc", "str", "pattern batcalc.str(b:bat[:sht]):bat[:str] ", "CMDconvertsignal_str;", "cast from sht to str, signal error on overflow" ] -[ "batcalc", "str", "pattern batcalc.str(b:bat[:sht],s:bat[:oid]):bat[:str] ", "CMDconvertsignal_str;", "cast from sht to str with candidates list, signal error on overflow" ] -[ "batcalc", "str", "pattern batcalc.str(b:bat[:str]):bat[:str] ", "CMDconvertsignal_str;", "cast from str to str, signal error on overflow" ] -[ "batcalc", "str", "pattern batcalc.str(b:bat[:str],s:bat[:oid]):bat[:str] ", "CMDconvertsignal_str;", "cast from str to str with candidates list, signal error on overflow" ] +[ "batcalc", "str", "pattern batcalc.str(b:bat[:any]):bat[:str] ", "CMDconvertsignal_str;", "cast from any to str, signal error on overflow" ] +[ "batcalc", "str", "pattern batcalc.str(b:bat[:any],s:bat[:oid]):bat[:str] ", "CMDconvertsignal_str;", "cast from any to str with candidates list, signal error on overflow" ] [ "batcalc", "str", "pattern batcalc.str(eclass:int,d1:int,s1:int,has_tz:int,v:bat[:any_1],digits:int):bat[:str] ", "SQLbatstr_cast;", "cast to string and check for overflow" ] -[ "batcalc", "str_noerror", "pattern batcalc.str_noerror(b:bat[:bit]):bat[:str] ", "CMDconvert_str;", "cast from bit to str" ] -[ "batcalc", "str_noerror", "pattern batcalc.str_noerror(b:bat[:bit],s:bat[:oid]):bat[:str] ", "CMDconvert_str;", "cast from bit to str with candidates list" ] -[ "batcalc", "str_noerror", "pattern batcalc.str_noerror(b:bat[:bte]):bat[:str] ", "CMDconvert_str;", "cast from bte to str" ] -[ "batcalc", "str_noerror", "pattern batcalc.str_noerror(b:bat[:bte],s:bat[:oid]):bat[:str] ", "CMDconvert_str;", "cast from bte to str with candidates list" ] -[ "batcalc", "str_noerror", "pattern batcalc.str_noerror(b:bat[:dbl]):bat[:str] ", "CMDconvert_str;", "cast from dbl to str" ] -[ "batcalc", "str_noerror", "pattern batcalc.str_noerror(b:bat[:dbl],s:bat[:oid]):bat[:str] ", "CMDconvert_str;", "cast from dbl to str with candidates list" ] -[ "batcalc", "str_noerror", "pattern batcalc.str_noerror(b:bat[:flt]):bat[:str] ", "CMDconvert_str;", "cast from flt to str" ] -[ "batcalc", "str_noerror", "pattern batcalc.str_noerror(b:bat[:flt],s:bat[:oid]):bat[:str] ", "CMDconvert_str;", "cast from flt to str with candidates list" ] -[ "batcalc", "str_noerror", "pattern batcalc.str_noerror(b:bat[:int]):bat[:str] ", "CMDconvert_str;", "cast from int to str" ] -[ "batcalc", "str_noerror", "pattern batcalc.str_noerror(b:bat[:int],s:bat[:oid]):bat[:str] ", "CMDconvert_str;", "cast from int to str with candidates list" ] -[ "batcalc", "str_noerror", "pattern batcalc.str_noerror(b:bat[:lng]):bat[:str] ", "CMDconvert_str;", "cast from lng to str" ] -[ "batcalc", "str_noerror", "pattern batcalc.str_noerror(b:bat[:lng],s:bat[:oid]):bat[:str] ", "CMDconvert_str;", "cast from lng to str with candidates list" ] -[ "batcalc", "str_noerror", "pattern batcalc.str_noerror(b:bat[:oid]):bat[:str] ", "CMDconvert_str;", "cast from oid to str" ] -[ "batcalc", "str_noerror", "pattern batcalc.str_noerror(b:bat[:oid],s:bat[:oid]):bat[:str] ", "CMDconvert_str;", "cast from oid to str with candidates list" ] -[ "batcalc", "str_noerror", "pattern batcalc.str_noerror(b:bat[:sht]):bat[:str] ", "CMDconvert_str;", "cast from sht to str" ] -[ "batcalc", "str_noerror", "pattern batcalc.str_noerror(b:bat[:sht],s:bat[:oid]):bat[:str] ", "CMDconvert_str;", "cast from sht to str with candidates list" ] -[ "batcalc", "str_noerror", "pattern batcalc.str_noerror(b:bat[:str]):bat[:str] ", "CMDconvert_str;", "cast from str to str" ] -[ "batcalc", "str_noerror", "pattern batcalc.str_noerror(b:bat[:str],s:bat[:oid]):bat[:str] ", "CMDconvert_str;", "cast from str to str with candidates list" ] +[ "batcalc", "str_noerror", "pattern batcalc.str_noerror(b:bat[:any]):bat[:str] ", "CMDconvert_str;", "cast from any to str" ] +[ "batcalc", "str_noerror", "pattern batcalc.str_noerror(b:bat[:any],s:bat[:oid]):bat[:str] ", "CMDconvert_str;", "cast from any to str with candidates list" ] [ "batcalc", "strings", "command batcalc.strings(v:bat[:str]):bat[:str] ", "BATSTRstrings;", "Return the strings" ] [ "batcalc", "sub_noerror", "pattern batcalc.sub_noerror(b1:bat[:bte],b2:bat[:bte]):bat[:bte] ", "CMDbatSUB;", "Return B1 - B2, overflow causes NIL value" ] [ "batcalc", "sub_noerror", "pattern batcalc.sub_noerror(b1:bat[:bte],b2:bat[:bte],s:bat[:oid]):bat[:bte] ", "CMDbatSUB;", "Return B1 - B2 with candidates list, overflow causes NIL value" ] @@ -7329,16 +7297,7 @@ Ready. [ "calc", "sqlblob", "command calc.sqlblob(b:sqlblob):sqlblob ", "BLOBblob_blob;", "" ] [ "calc", "sqlblob", "command calc.sqlblob(s:str):sqlblob ", "BLOBsqlblob_fromstr;", "" ] [ "calc", "sqlblob", "command calc.sqlblob(v:str):sqlblob ", "str_2_sqlblob;", "cast to sqlblob" ] -[ "calc", "str", "pattern calc.str(v:bit):str ", "CMDvarCONVERT;", "Cast VALUE to str" ] -[ "calc", "str", "pattern calc.str(v:bte):str ", "CMDvarCONVERT;", "Cast VALUE to str" ] -[ "calc", "str", "pattern calc.str(v:dbl):str ", "CMDvarCONVERT;", "Cast VALUE to str" ] -[ "calc", "str", "pattern calc.str(v:flt):str ", "CMDvarCONVERT;", "Cast VALUE to str" ] -[ "calc", "str", "pattern calc.str(v:int):str ", "CMDvarCONVERT;", "Cast VALUE to str" ] -[ "calc", "str", "pattern calc.str(v:lng):str ", "CMDvarCONVERT;", "Cast VALUE to str" ] -[ "calc", "str", "pattern calc.str(v:oid):str ", "CMDvarCONVERT;", "Cast VALUE to str" ] -[ "calc", "str", "pattern calc.str(v:sht):str ", "CMDvarCONVERT;", "Cast VALUE to str" ] -[ "calc", "str", "pattern calc.str(v:str):str ", "CMDvarCONVERT;", "Cast VALUE to str" ] -[ "calc", "str", "pattern calc.str(v:void):str ", "CMDvarCONVERT;", "Cast VALUE to str" ] +[ "calc", "str", "pattern calc.str(v:any):str ", "CMDvarCONVERT;", "Cast VALUE to str" ] [ "calc", "str", "command calc.str(v:date):str ", "SQLdate_2_str;", "cast date to str" ] [ "calc", "str", "command calc.str(v:sqlblob):str ", "SQLsqlblob_2_str;", "cast sqlblob to str" ] [ "calc", "str", "pattern calc.str(eclass:int,d1:int,s1:int,has_tz:int,v:any_1,digits:int):str ", "SQLstr_cast;", "cast to string and check for overflow" ] @@ -7962,7 +7921,6 @@ Ready. [ "mdb", "getStackFrame", "pattern mdb.getStackFrame() (X_0:bat[:str],X_1:bat[:str]) ", "MDBgetStackFrame;", "Collect variable binding of current (n-th) stack frame." ] [ "mdb", "getStackFrame", "pattern mdb.getStackFrame(i:int) (X_0:bat[:str],X_1:bat[:str]) ", "MDBgetStackFrameN;", "" ] [ "mdb", "getStackTrace", "pattern mdb.getStackTrace() (X_0:bat[:int],X_1:bat[:str]) ", "MDBStkTrace;", "" ] -[ "mdb", "grab", "pattern mdb.grab():void ", "mdbGrab;", "Call debugger for a suspended process." ] [ "mdb", "inspect", "pattern mdb.inspect(mod:str,fcn:str):void ", "MDBinspect;", "Run the debugger on a specific function" ] [ "mdb", "list", "pattern mdb.list(M:str,F:str):void ", "MDBlist3;", "Dump the routine M.F on standard out." ] [ "mdb", "list", "pattern mdb.list():void ", "MDBlist;", "Dump the current routine on standard out." ] @@ -7973,14 +7931,11 @@ Ready. [ "mdb", "setDebug", "command mdb.setDebug(flg:str):int ", "MDBsetDebugStr;", "Set the kernel debugging bit-set and return its previous value.\nThe recognized options are: threads, memory, properties,\nio, transactions, modules, algorithms, estimates." ] [ "mdb", "setTrace", "pattern mdb.setTrace(b:bit):void ", "MDBsetTrace;", "Turn on/off tracing of current routine" ] [ "mdb", "setTrace", "pattern mdb.setTrace(b:str):void ", "MDBsetVarTrace;", "Turn on/off tracing of a variable " ] -[ "mdb", "setTrap", "pattern mdb.setTrap(mod:str,fcn:str,b:bit):void ", "MDBtrapFunction;", "Suspend upon a call to the MAL function." ] -[ "mdb", "setTrap", "pattern mdb.setTrap(idx:int):void ", "mdbTrapClient;", "Call debugger for a specific process." ] [ "mdb", "start", "pattern mdb.start():void ", "MDBstart;", "Start interactive debugger" ] [ "mdb", "start", "pattern mdb.start(clientid:int):void ", "MDBstart;", "Start interactive debugger on a client" ] [ "mdb", "start", "pattern mdb.start(mod:str,fcn:str):void ", "MDBstartFactory;", "Start interactive debugger on a running factory" ] [ "mdb", "stop", "pattern mdb.stop():void ", "MDBstop;", "Stop the interactive debugger" ] [ "mdb", "traceOptimizer", "command mdb.traceOptimizer(flg:str):void ", "OPTsetDebugStr;", "Otherwise it is considered a request to trace the optimizers,\nwhich requires a comma separated list or pipeline name." ] -[ "mdb", "trap", "pattern mdb.trap():void ", "mdbTrap;", "A suspended process for debugging." ] [ "mdb", "var", "pattern mdb.var(M:str,F:str):void ", "MDBvar3;", "Dump the symboltable of routine M.F on standard out." ] [ "mdb", "var", "pattern mdb.var():void ", "MDBvar;", "Dump the symboltable of current routine on standard out." ] [ "mkey", "bulk_rotate_xor_hash", "command mkey.bulk_rotate_xor_hash(h:bat[:lng],nbits:int,b:bat[:any_1]):bat[:lng] ", "MKEYbulk_rotate_xor_hash;", "pre: h and b should be synced on head\n post: [:xor=]([:rotate=](h, nbits), [hash](b))" ] @@ -8241,9 +8196,6 @@ Ready. [ "optimizer", "reorder", "pattern optimizer.reorder(mod:str,fcn:str):str ", "OPTwrapper;", "Reorder by dataflow dependencies" ] [ "optimizer", "selcrack", "pattern optimizer.selcrack():str ", "OPTwrapper;", "" ] [ "optimizer", "selcrack", "pattern optimizer.selcrack(mod:str,fcn:str):str ", "OPTwrapper;", "Selection cracking" ] -[ "optimizer", "showFlowGraph", "pattern optimizer.showFlowGraph(M:str,F:str,s:str):void ", "QOTshowFlowGraph;", "Dump the data flow of the function \n\tM.F in a format recognizable by the \n\tcommand 'dot' on the file s" ] -[ "optimizer", "showPlan", "pattern optimizer.showPlan():void ", "QOTshowPlan;", "Illustrate the plan derived so far" ] -[ "optimizer", "showPlan", "pattern optimizer.showPlan(M:str,F:str,s:str):void ", "QOTshowPlan;", "" ] [ "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;", "" ] 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 @@ -10282,7 +10282,6 @@ Ready. [ "mdb", "getStackFrame", "pattern mdb.getStackFrame() (X_0:bat[:str],X_1:bat[:str]) ", "MDBgetStackFrame;", "Collect variable binding of current (n-th) stack frame." ] [ "mdb", "getStackFrame", "pattern mdb.getStackFrame(i:int) (X_0:bat[:str],X_1:bat[:str]) ", "MDBgetStackFrameN;", "" ] [ "mdb", "getStackTrace", "pattern mdb.getStackTrace() (X_0:bat[:int],X_1:bat[:str]) ", "MDBStkTrace;", "" ] -[ "mdb", "grab", "pattern mdb.grab():void ", "mdbGrab;", "Call debugger for a suspended process." ] [ "mdb", "inspect", "pattern mdb.inspect(mod:str,fcn:str):void ", "MDBinspect;", "Run the debugger on a specific function" ] [ "mdb", "list", "pattern mdb.list(M:str,F:str):void ", "MDBlist3;", "Dump the routine M.F on standard out." ] [ "mdb", "list", "pattern mdb.list():void ", "MDBlist;", "Dump the current routine on standard out." ] @@ -10293,14 +10292,11 @@ Ready. [ "mdb", "setDebug", "command mdb.setDebug(flg:str):int ", "MDBsetDebugStr;", "Set the kernel debugging bit-set and return its previous value.\nThe recognized options are: threads, memory, properties,\nio, transactions, modules, algorithms, estimates." ] [ "mdb", "setTrace", "pattern mdb.setTrace(b:bit):void ", "MDBsetTrace;", "Turn on/off tracing of current routine" ] [ "mdb", "setTrace", "pattern mdb.setTrace(b:str):void ", "MDBsetVarTrace;", "Turn on/off tracing of a variable " ] -[ "mdb", "setTrap", "pattern mdb.setTrap(mod:str,fcn:str,b:bit):void ", "MDBtrapFunction;", "Suspend upon a call to the MAL function." ] -[ "mdb", "setTrap", "pattern mdb.setTrap(idx:int):void ", "mdbTrapClient;", "Call debugger for a specific process." ] [ "mdb", "start", "pattern mdb.start():void ", "MDBstart;", "Start interactive debugger" ] [ "mdb", "start", "pattern mdb.start(clientid:int):void ", "MDBstart;", "Start interactive debugger on a client" ] [ "mdb", "start", "pattern mdb.start(mod:str,fcn:str):void ", "MDBstartFactory;", "Start interactive debugger on a running factory" ] [ "mdb", "stop", "pattern mdb.stop():void ", "MDBstop;", "Stop the interactive debugger" ] [ "mdb", "traceOptimizer", "command mdb.traceOptimizer(flg:str):void ", "OPTsetDebugStr;", "Otherwise it is considered a request to trace the optimizers,\nwhich requires a comma separated list or pipeline name." ] -[ "mdb", "trap", "pattern mdb.trap():void ", "mdbTrap;", "A suspended process for debugging." ] [ "mdb", "var", "pattern mdb.var(M:str,F:str):void ", "MDBvar3;", "Dump the symboltable of routine M.F on standard out." ] [ "mdb", "var", "pattern mdb.var():void ", "MDBvar;", "Dump the symboltable of current routine on standard out." ] [ "mkey", "bulk_rotate_xor_hash", "command mkey.bulk_rotate_xor_hash(h:bat[:lng],nbits:int,b:bat[:any_1]):bat[:lng] ", "MKEYbulk_rotate_xor_hash;", "pre: h and b should be synced on head\n post: [:xor=]([:rotate=](h, nbits), [hash](b))" ] @@ -10562,9 +10558,6 @@ Ready. [ "optimizer", "reorder", "pattern optimizer.reorder(mod:str,fcn:str):str ", "OPTwrapper;", "Reorder by dataflow dependencies" ] [ "optimizer", "selcrack", "pattern optimizer.selcrack():str ", "OPTwrapper;", "" ] [ "optimizer", "selcrack", "pattern optimizer.selcrack(mod:str,fcn:str):str ", "OPTwrapper;", "Selection cracking" ] -[ "optimizer", "showFlowGraph", "pattern optimizer.showFlowGraph(M:str,F:str,s:str):void ", "QOTshowFlowGraph;", "Dump the data flow of the function \n\tM.F in a format recognizable by the \n\tcommand 'dot' on the file s" ] -[ "optimizer", "showPlan", "pattern optimizer.showPlan():void ", "QOTshowPlan;", "Illustrate the plan derived so far" ] -[ "optimizer", "showPlan", "pattern optimizer.showPlan(M:str,F:str,s:str):void ", "QOTshowPlan;", "" ] [ "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;", "" ] 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 @@ -1373,7 +1373,6 @@ str MDBgetExceptionReason(str *ret, str str MDBgetExceptionVariable(str *ret, str *msg); str MDBgetStackFrame(Client cntxt, MalBlkPtr m, MalStkPtr s, InstrPtr p); str MDBgetStackFrameN(Client cntxt, MalBlkPtr m, MalStkPtr s, InstrPtr p); -str MDBgrapTrappedProcess(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); str MDBinspect(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p); str MDBlist(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p); str MDBlist3(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p); @@ -1389,7 +1388,6 @@ str MDBshowFlowGraph(Client cntxt, MalBl 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); -str MDBtrapFunction(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); str MDBvar(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p); str MDBvar3(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p); str MKEYbathash(bat *res, const bat *bid); @@ -1623,8 +1621,6 @@ int QLOGisset(void); str QLOGissetFcn(int *ret); str QOTgetStatistics(bat *ret, str *nme); str QOToptimize(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -str QOTshowFlowGraph(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p); -str QOTshowPlan(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p); void QOTstatisticsExit(void); void QOTupdateStatistics(str nme, int prop, lng val); QueryQueue QRYqueue; @@ -2112,7 +2108,7 @@ str generatorRef; MALfcn getAddress(stream *out, str filename, str fcnname, int silent); str getArgDefault(MalBlkPtr mb, InstrPtr p, int idx); ptr getArgReference(MalStkPtr stk, InstrPtr pci, int k); -int getAtomIndex(str nme, int len, int deftpe); +int getAtomIndex(const char *nme, int len, int deftpe); lng getBatSpace(BAT *b); int getBitConstant(MalBlkPtr mb, bit val); int getBlockBegin(MalBlkPtr mb, int pc); @@ -2344,7 +2340,7 @@ InstrPtr newStmt(MalBlkPtr mb, const cha Symbol newSymbol(str nme, int kind); int newTmpVariable(MalBlkPtr mb, malType type); int newTypeVariable(MalBlkPtr mb, malType type); -int newVariable(MalBlkPtr mb, str name, size_t len, malType type); +int newVariable(MalBlkPtr mb, const char *name, size_t len, malType type); str nextRef; str notRef; str not_ilikeRef; @@ -2394,7 +2390,7 @@ str projectionRef; str projectionpathRef; void promptInstruction(stream *fd, MalBlkPtr mb, MalStkPtr stk, InstrPtr p, int flg); InstrPtr pushArgument(MalBlkPtr mb, InstrPtr p, int varid); -InstrPtr pushArgumentId(MalBlkPtr mb, InstrPtr p, str name); +InstrPtr pushArgumentId(MalBlkPtr mb, InstrPtr p, const char *name); InstrPtr pushBit(MalBlkPtr mb, InstrPtr q, bit val); InstrPtr pushBte(MalBlkPtr mb, InstrPtr q, bte val); InstrPtr pushDbl(MalBlkPtr mb, InstrPtr q, dbl val); diff --git a/clients/mapiclient/Makefile.ag b/clients/mapiclient/Makefile.ag --- a/clients/mapiclient/Makefile.ag +++ b/clients/mapiclient/Makefile.ag @@ -13,7 +13,7 @@ lib_mcutil = { } bin_mclient = { - SOURCES = mclient.c ReadlineTools.c ReadlineTools.h + SOURCES = mclient.c ReadlineTools.c ReadlineTools.h mhelp.c mhelp.h LIBS = libmcutil ../mapilib/libmapi \ ../../common/stream/libstream \ ../../common/utils/libmutils \ diff --git a/clients/mapiclient/mclient.c b/clients/mapiclient/mclient.c --- a/clients/mapiclient/mclient.c +++ b/clients/mapiclient/mclient.c @@ -190,7 +190,7 @@ static char *nullstring = default_nullst #define my_isspace(c) ((c) == '\f' || (c) == '\n' || (c) == ' ') #include <ctype.h> -#include "mhelp.c" +#include "mhelp.h" static timertype gettime(void) @@ -2093,17 +2093,18 @@ static void showCommands(void) { /* shared control options */ - mnstr_printf(toConsole, "\\? - show this message\n"); + mnstr_printf(toConsole, "\\? - show this message\n"); if (mode == MAL) - mnstr_printf(toConsole, "?pat - MAL function help. pat=[modnme[.fcnnme][(][)]] wildcard *\n"); - mnstr_printf(toConsole, "\\<file - read input from file\n"); - mnstr_printf(toConsole, "\\>file - save response in file, or stdout if no file is given\n"); + mnstr_printf(toConsole, "?pat - MAL function help. pat=[modnme[.fcnnme][(][)]] wildcard *\n"); + mnstr_printf(toConsole, "\\<file - read input from file\n"); + mnstr_printf(toConsole, "\\>file - save response in file, or stdout if no file is given\n"); #ifdef HAVE_POPEN - mnstr_printf(toConsole, "\\|cmd - pipe result to process, or stop when no command is given\n"); + mnstr_printf(toConsole, "\\|cmd - pipe result to process, or stop when no command is given\n"); #endif #ifdef HAVE_LIBREADLINE - mnstr_printf(toConsole, "\\h - show the readline history\n"); + mnstr_printf(toConsole, "\\history - show the readline history\n"); #endif + mnstr_printf(toConsole, "\\help - synopsis of the SQL syntax\n"); #if 0 mnstr_printf(toConsole, "\\t - toggle timer\n"); #endif @@ -2719,9 +2720,9 @@ doFile(Mapi mid, stream *fp, int useinse pager = strdup(line); continue; #endif -#ifdef HAVE_LIBREADLINE case 'h': { +#ifdef HAVE_LIBREADLINE int h; char *nl; @@ -2732,10 +2733,12 @@ doFile(Mapi mid, stream *fp, int useinse mnstr_printf(toConsole, "%d %s\n", h, nl); } } else - sql_help(line); +#endif + sql_help(line, toConsole); continue; } /* for later +#ifdef HAVE_LIBREADLINE case '!': { char *nl; @@ -2749,8 +2752,8 @@ doFile(Mapi mid, stream *fp, int useinse mnstr_printf(toConsole, "Expansion needs work\n"); continue; } +#endif */ -#endif case 'e': echoquery = 1; continue; diff --git a/clients/mapiclient/mhelp.c b/clients/mapiclient/mhelp.c --- a/clients/mapiclient/mhelp.c +++ b/clients/mapiclient/mhelp.c @@ -12,7 +12,23 @@ * The SQL syntax help synopsis. */ -/* produce a synposis of the SQL syntax, inspired by a competing product */ +/* produce a synposis of the SQL syntax, inspired by a competing product. + * Use the conventional grammar constructs: + * [ A | B ] optionally token A or B or none + * { A | B } exactly one of the options should be chosen + * A [ ',' ...] a comma separate lists of A elements _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list