Changeset: ae3c66e0d02c for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ae3c66e0d02c
Added Files:
        monetdb5/modules/mal/projectionpath.c
        monetdb5/modules/mal/projectionpath.h
        monetdb5/optimizer/Tests/projectionchain.malC
        monetdb5/optimizer/Tests/projectionchain.stable.err
        monetdb5/optimizer/Tests/projectionchain.stable.out
        monetdb5/optimizer/opt_projectionpath.c
        monetdb5/optimizer/opt_projectionpath.h
Removed Files:
        monetdb5/modules/mal/joinpath.c
        monetdb5/modules/mal/joinpath.h
        monetdb5/optimizer/Tests/joinchain.malC
        monetdb5/optimizer/Tests/joinchain.stable.err
        monetdb5/optimizer/Tests/joinchain.stable.out
        monetdb5/optimizer/opt_joinpath.c
        monetdb5/optimizer/opt_joinpath.h
Modified Files:
        clients/Tests/MAL-signatures.stable.out
        clients/Tests/MAL-signatures.stable.out.int128
        clients/Tests/exports.stable.err
        clients/Tests/exports.stable.out
        clients/Tests/malcheck.stable.err
        monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.err
        monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out
        
monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.single
        monetdb5/modules/mal/Makefile.ag
        monetdb5/optimizer/Makefile.ag
        monetdb5/optimizer/Tests/All
        monetdb5/optimizer/Tests/JPexample.malC
        monetdb5/optimizer/Tests/JPexample.stable.out
        monetdb5/optimizer/Tests/dataflow3.malC
        monetdb5/optimizer/Tests/joinpath.malC
        monetdb5/optimizer/Tests/leftjoinpath.malC
        monetdb5/optimizer/Tests/tst4005.malC
        monetdb5/optimizer/Tests/tst4630.malC
        monetdb5/optimizer/opt_costModel.c
        monetdb5/optimizer/opt_pipes.c
        monetdb5/optimizer/opt_prelude.c
        monetdb5/optimizer/opt_prelude.h
        monetdb5/optimizer/opt_profiler.c
        monetdb5/optimizer/opt_support.c
        monetdb5/optimizer/opt_support.h
        monetdb5/optimizer/opt_wrapper.c
        monetdb5/optimizer/optimizer.mal
        sql/backends/monet5/Tests/optimizers.sql
        sql/backends/monet5/Tests/optimizers.stable.err
        sql/benchmarks/ssbm/Tests/04-explain.stable.out.int128
        sql/benchmarks/ssbm/Tests/05-explain.stable.out.int128
        sql/benchmarks/ssbm/Tests/06-explain.stable.out.int128
        sql/benchmarks/ssbm/Tests/07-explain.stable.out.int128
        sql/benchmarks/ssbm/Tests/08-explain.stable.out.int128
        sql/benchmarks/ssbm/Tests/09-explain.stable.out.int128
        sql/benchmarks/ssbm/Tests/10-explain.stable.out.int128
        sql/benchmarks/ssbm/Tests/11-explain.stable.out.int128
        sql/benchmarks/ssbm/Tests/12-explain.stable.out
        sql/benchmarks/ssbm/Tests/12-explain.stable.out.int128
        sql/benchmarks/ssbm/Tests/13-explain.stable.out.int128
        sql/benchmarks/tpch/Tests/02-explain.stable.out
        sql/benchmarks/tpch/Tests/03-explain.stable.out.int128
        sql/benchmarks/tpch/Tests/04-explain.stable.out
        sql/benchmarks/tpch/Tests/05-explain.stable.out.int128
        sql/benchmarks/tpch/Tests/07-explain.stable.out
        sql/benchmarks/tpch/Tests/07-explain.stable.out.int128
        sql/benchmarks/tpch/Tests/08-explain.stable.out.int128
        sql/benchmarks/tpch/Tests/09-explain.stable.out.int128
        sql/benchmarks/tpch/Tests/10-explain.stable.out.int128
        sql/benchmarks/tpch/Tests/11-explain.stable.out.int128
        sql/benchmarks/tpch/Tests/13-explain.stable.out
        sql/benchmarks/tpch/Tests/13-explain.stable.out.32bit
        sql/benchmarks/tpch/Tests/15-explain.stable.out.int128
        sql/benchmarks/tpch/Tests/16-explain.stable.out
        sql/benchmarks/tpch/Tests/17-explain.stable.out.int128
        sql/benchmarks/tpch/Tests/18-explain.stable.out.int128
        sql/benchmarks/tpch/Tests/19-explain.stable.out
        sql/benchmarks/tpch/Tests/19-explain.stable.out.int128
        sql/benchmarks/tpch/Tests/20-explain.stable.out.int128
        sql/benchmarks/tpch/Tests/21-explain.stable.out
        sql/benchmarks/tpch/Tests/21-explain.stable.out.32bit
        sql/benchmarks/tpch/Tests/22-explain.stable.out
        sql/benchmarks/tpch/Tests/22-explain.stable.out.32bit
        sql/benchmarks/tpch/Tests/22-explain.stable.out.int128
        sql/test/BugTracker-2009/Tests/reorder.SF-2770608.sql
        sql/test/BugTracker-2009/Tests/table-leftovers.SF-2779462.sql
        sql/test/Tests/setoptimizer.stable.err
        sql/test/Tests/setoptimizer.stable.out
        sql/test/Tests/setoptimizer.stable.out.Windows
Branch: default
Log Message:

Using projectionpath instead of old joinpath
The projection optimizer only collects projection chains.
The old join path code is obsolete.
Most of the old cruft has been removed and we may consider
a fast implementation of the BATprojectionlist


diffs (truncated from 2957 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
@@ -1989,8 +1989,8 @@ command algebra.not_like(s:str,pat:str):
 address PCREnotlike2;
 command algebra.not_like(s:str,pat:str,esc:str):bit 
 address PCREnotlike3;
-pattern algebra.projectionPath(l:bat[:any]...):bat[:any] 
-address ALGjoinPath;
+pattern algebra.projectionpath(l:bat[:any]...):bat[:any] 
+address ALGprojectionpath;
 comment Routine to handle join paths.  The type analysis is rather tricky.
 
 command algebra.projection(left:bat[:oid],right:bat[:any_3]):bat[:any_3] 
@@ -2005,10 +2005,6 @@ command algebra.reuse(b:bat[:any_1]):bat
 address ALGreuse;
 comment Reuse a temporary BAT if you can. Otherwise,   allocate enough storage 
to accept result of an  operation (not involving the heap)
 
-pattern algebra.semijoinPath(l:bat[:any]...):bat[:any] 
-address ALGjoinPath;
-comment Routine to handle join paths.  The type analysis is rather tricky.
-
 command algebra.subslice(b:bat[:any_1],x:wrd,y:wrd):bat[:oid] 
 address ALGsubslice_wrd;
 comment Return the oids of the slice with the BUNs at position x till y.
@@ -39524,12 +39520,6 @@ comment Replace select with join select
 
 pattern optimizer.joinselect():str 
 address OPTwrapper;
-pattern optimizer.joinPath(mod:str,fcn:str):str 
-address OPTwrapper;
-comment Join path constructor
-
-pattern optimizer.joinPath():str 
-address OPTwrapper;
 pattern optimizer.matpack(mod:str,fcn:str):str 
 address OPTwrapper;
 comment Unroll the mat.pack operation
@@ -39600,6 +39590,12 @@ comment Experiment with partitioned data
 
 pattern optimizer.partitions():str 
 address OPTwrapper;
+pattern optimizer.projectionpath(mod:str,fcn:str):str 
+address OPTwrapper;
+comment Join path constructor
+
+pattern optimizer.projectionpath():str 
+address OPTwrapper;
 pattern optimizer.prelude():void 
 address optimizer_prelude;
 comment Initialize the optimizer
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
@@ -2428,8 +2428,8 @@ command algebra.not_like(s:str,pat:str):
 address PCREnotlike2;
 command algebra.not_like(s:str,pat:str,esc:str):bit 
 address PCREnotlike3;
-pattern algebra.projectionPath(l:bat[:any]...):bat[:any] 
-address ALGjoinPath;
+pattern algebra.projectionpath(l:bat[:any]...):bat[:any] 
+address ALGprojectionpath;
 comment Routine to handle join paths.  The type analysis is rather tricky.
 
 command algebra.projection(left:bat[:oid],right:bat[:any_3]):bat[:any_3] 
@@ -2444,10 +2444,6 @@ command algebra.reuse(b:bat[:any_1]):bat
 address ALGreuse;
 comment Reuse a temporary BAT if you can. Otherwise,   allocate enough storage 
to accept result of an  operation (not involving the heap)
 
-pattern algebra.semijoinPath(l:bat[:any]...):bat[:any] 
-address ALGjoinPath;
-comment Routine to handle join paths.  The type analysis is rather tricky.
-
 command algebra.subslice(b:bat[:any_1],x:wrd,y:wrd):bat[:oid] 
 address ALGsubslice_wrd;
 comment Return the oids of the slice with the BUNs at position x till y.
@@ -50383,12 +50379,6 @@ comment Replace select with join select
 
 pattern optimizer.joinselect():str 
 address OPTwrapper;
-pattern optimizer.joinPath(mod:str,fcn:str):str 
-address OPTwrapper;
-comment Join path constructor
-
-pattern optimizer.joinPath():str 
-address OPTwrapper;
 pattern optimizer.matpack(mod:str,fcn:str):str 
 address OPTwrapper;
 comment Unroll the mat.pack operation
@@ -50459,6 +50449,12 @@ comment Experiment with partitioned data
 
 pattern optimizer.partitions():str 
 address OPTwrapper;
+pattern optimizer.projectionpath(mod:str,fcn:str):str 
+address OPTwrapper;
+comment Join path constructor
+
+pattern optimizer.projectionpath():str 
+address OPTwrapper;
 pattern optimizer.prelude():void 
 address optimizer_prelude;
 comment Initialize the optimizer
diff --git a/clients/Tests/exports.stable.err b/clients/Tests/exports.stable.err
--- a/clients/Tests/exports.stable.err
+++ b/clients/Tests/exports.stable.err
@@ -6,7 +6,29 @@ stderr of test 'exports` in directory 'c
 # 15:10:42 >  
 
 
-# 15:11:17 >  
-# 15:11:17 >  "Done."
-# 15:11:17 >  
 
+
+#0  0x00007f89c01f4764 in PyEval_EvalFrameEx () from /lib64/libpython2.7.so.1.0
+#1  0x00007f89c01f7666 in PyEval_EvalFrameEx () from /lib64/libpython2.7.so.1.0
+#2  0x00007f89c01f7666 in PyEval_EvalFrameEx () from /lib64/libpython2.7.so.1.0
+#3  0x00007f89c01f86b4 in PyEval_EvalCodeEx () from /lib64/libpython2.7.so.1.0
+#4  0x00007f89c01f75c6 in PyEval_EvalFrameEx () from /lib64/libpython2.7.so.1.0
+#5  0x00007f89c01f86b4 in PyEval_EvalCodeEx () from /lib64/libpython2.7.so.1.0
+#6  0x00007f89c01f75c6 in PyEval_EvalFrameEx () from /lib64/libpython2.7.so.1.0
+#7  0x00007f89c01f86b4 in PyEval_EvalCodeEx () from /lib64/libpython2.7.so.1.0
+#8  0x00007f89c01f75c6 in PyEval_EvalFrameEx () from /lib64/libpython2.7.so.1.0
+#9  0x00007f89c01f7666 in PyEval_EvalFrameEx () from /lib64/libpython2.7.so.1.0
+#10 0x00007f89c01f7666 in PyEval_EvalFrameEx () from /lib64/libpython2.7.so.1.0
+#11 0x00007f89c01f7666 in PyEval_EvalFrameEx () from /lib64/libpython2.7.so.1.0
+#12 0x00007f89c01f86b4 in PyEval_EvalCodeEx () from /lib64/libpython2.7.so.1.0
+#13 0x00007f89c01f75c6 in PyEval_EvalFrameEx () from /lib64/libpython2.7.so.1.0
+#14 0x00007f89c01f7666 in PyEval_EvalFrameEx () from /lib64/libpython2.7.so.1.0
+#15 0x00007f89c01f86b4 in PyEval_EvalCodeEx () from /lib64/libpython2.7.so.1.0
+#16 0x00007f89c01f87d9 in PyEval_EvalCode () from /lib64/libpython2.7.so.1.0
+#17 0x00007f89c0211bdf in run_mod () from /lib64/libpython2.7.so.1.0
+#18 0x00007f89c0212db2 in PyRun_FileExFlags () from /lib64/libpython2.7.so.1.0
+#19 0x00007f89c0213fc7 in PyRun_SimpleFileExFlags () from 
/lib64/libpython2.7.so.1.0
+#20 0x00007f89c02261e1 in Py_Main () from /lib64/libpython2.7.so.1.0
+#21 0x00007f89bf44a700 in __libc_start_main () from /lib64/libc.so.6
+#22 0x0000000000400729 in _start ()
+
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
@@ -1,9 +1,9 @@
 stdout of test 'exports` in directory 'clients` itself:
 
 
-# 15:10:42 >  
-# 15:10:42 >  "/usr/bin/python" "exports.py" "exports"
-# 15:10:42 >  
+# 21:40:57 >  
+# 21:40:57 >  "/usr/bin/python2" "exports.py" "exports"
+# 21:40:57 >  
 
 # gdk
 void ALIGNsetH(BAT *b1, BAT *b2);
@@ -669,10 +669,10 @@ str ALGfetchoid(ptr ret, const bat *bid,
 str ALGfind(oid *ret, const bat *bid, ptr val);
 str ALGfirstn(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
 str ALGgroupby(bat *res, const bat *gids, const bat *cnts);
-str ALGjoinPath(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
 str ALGmaxany(ptr result, const bat *bid);
 str ALGminany(ptr result, const bat *bid);
 str ALGprojection(bat *result, const bat *lid, const bat *rid);
+str ALGprojectionpath(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
 str ALGprojecttail(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
 str ALGreuse(bat *ret, const bat *bid);
 str ALGsample(bat *result, const bat *bid, const int *param);
@@ -1516,7 +1516,6 @@ int OPTgarbageCollectorImplementation(Cl
 int OPTgeneratorImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
 int OPTinlineImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr p);
 int OPTisAlias(InstrPtr p);
-int OPTjoinPathImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr p);
 int 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);
@@ -1529,6 +1528,7 @@ str OPTmultiplexSimple(Client cntxt, Mal
 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 OPTrecyclerImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr p);
@@ -2167,7 +2167,6 @@ int isUnsafeFunction(InstrPtr q);
 int isUnsafeInstruction(InstrPtr q);
 int isUpdateInstruction(InstrPtr p);
 str iteratorRef;
-str joinPathRef;
 str jsonRef;
 str languageRef;
 str levenshtein_impl(int *result, str *s, str *t, int *insdel_cost, int 
*replace_cost, int *transpose_cost);
@@ -2338,8 +2337,8 @@ void profilerHeartbeatEvent(char *alter)
 str profilerRef;
 str projectRef;
 str projectdeltaRef;
-str projectionPathRef;
 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);
@@ -2600,7 +2599,7 @@ stream *udp_wastream(const char *hostnam
 stream *wbstream(stream *s, size_t buflen);
 
 
-# 15:25:25 >  
-# 15:25:25 >  "Done."
-# 15:25:25 >  
+# 21:41:06 >  
+# 21:41:06 >  "Done."
+# 21:41:06 >  
 
diff --git a/clients/Tests/malcheck.stable.err 
b/clients/Tests/malcheck.stable.err
--- a/clients/Tests/malcheck.stable.err
+++ b/clients/Tests/malcheck.stable.err
@@ -5,6 +5,13 @@ stderr of test 'malcheck` in directory '
 # 15:15:51 >  "./malcheck.sh" "malcheck"
 # 15:15:51 >  
 
+Traceback (most recent call last):
+  File "<string>", line 1, in <module>
+  File 
"/export/scratch1/mk/default/Linux/lib/python2.7/site-packages/MonetDBtesting/malcheck.py",
 line 200, in <module>
+    process(f)
+  File 
"/export/scratch1/mk/default/Linux/lib/python2.7/site-packages/MonetDBtesting/malcheck.py",
 line 75, in process
+    data = open(f).read()
+IOError: [Errno 2] No such file or directory: 'monetdb5/modules/mal/joinpath.h'
 
 # 15:16:26 >  
 # 15:16:26 >  "Done."
diff --git 
a/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.err 
b/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.err
--- a/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.err
+++ b/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.err
@@ -30,16 +30,16 @@ stderr of test 'opt_sql_append` in direc
 # 22:58:57 >  "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=rome" 
"--port=36275"
 # 22:58:57 >  
 
-MAPI  = (monetdb) /var/tmp/mtest-7831/.s.monetdb.38226
+MAPI  = (monetdb) /var/tmp/mtest-12681/.s.monetdb.34697
 QUERY = explain copy into ttt from '\tmp/xyz';
 ERROR = !COPY INTO: filename must have absolute path: \tmp/xyz
-MAPI  = (monetdb) /var/tmp/mtest-7831/.s.monetdb.38226
+MAPI  = (monetdb) /var/tmp/mtest-12681/.s.monetdb.34697
 QUERY = explain copy into ttt from 'a:\tmp/xyz';
 ERROR = !COPY INTO: filename must have absolute path: a:\tmp/xyz
-MAPI  = (monetdb) /var/tmp/mtest-7831/.s.monetdb.38226
+MAPI  = (monetdb) /var/tmp/mtest-12681/.s.monetdb.34697
 QUERY = explain copy into ttt from '\tmp/xyz';
 ERROR = !COPY INTO: filename must have absolute path: \tmp/xyz
-MAPI  = (monetdb) /var/tmp/mtest-7831/.s.monetdb.38226
+MAPI  = (monetdb) /var/tmp/mtest-12681/.s.monetdb.34697
 QUERY = explain copy into ttt from 'Z:/tmp/xyz';
 ERROR = !COPY INTO: filename must have absolute path: Z:/tmp/xyz
 
diff --git 
a/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out 
b/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out
--- a/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out
+++ b/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out
@@ -55,8 +55,8 @@ Ready.
 % .L # table_name
 % def # name
 % clob # type
-% 535 # length
-[ 
"optimizer.inline();optimizer.candidates();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.evaluate();optimizer.aliases();optimizer.pushselect();optimizer.mitosis();optimizer.mergetable();optimizer.deadcode();optimizer.aliases();optimizer.constants();optimizer.commonTerms();optimizer.joinPath();optimizer.reorder();optimizer.deadcode();optimizer.reduce();optimizer.matpack();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.profiler();optimizer.garbageCollector();"
    ]
+% 541 # length
+[ 
"optimizer.inline();optimizer.candidates();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.evaluate();optimizer.aliases();optimizer.pushselect();optimizer.mitosis();optimizer.mergetable();optimizer.deadcode();optimizer.aliases();optimizer.constants();optimizer.commonTerms();optimizer.projectionpath();optimizer.reorder();optimizer.deadcode();optimizer.reduce();optimizer.matpack();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.profiler();optimizer.garbageCollector();"
      ]
 #explain copy into ttt from '/tmp/xyz';
 % .explain # table_name
 % mal # name
@@ -89,8 +89,8 @@ end user.s4_1;
 % .L # table_name
 % def # name
 % clob # type
-% 558 # length
-[ 
"optimizer.inline();optimizer.candidates();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.evaluate();optimizer.aliases();optimizer.pushselect();optimizer.mitosis();optimizer.mergetable();optimizer.deadcode();optimizer.aliases();optimizer.constants();optimizer.commonTerms();optimizer.joinPath();optimizer.reorder();optimizer.deadcode();optimizer.reduce();optimizer.matpack();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.profiler();optimizer.sql_append();optimizer.garbageCollector();"
     ]
+% 564 # length
+[ 
"optimizer.inline();optimizer.candidates();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.evaluate();optimizer.aliases();optimizer.pushselect();optimizer.mitosis();optimizer.mergetable();optimizer.deadcode();optimizer.aliases();optimizer.constants();optimizer.commonTerms();optimizer.projectionpath();optimizer.reorder();optimizer.deadcode();optimizer.reduce();optimizer.matpack();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.profiler();optimizer.sql_append();optimizer.garbageCollector();"
       ]
 #explain copy into ttt from '/tmp/xyz';
 % .explain # table_name
 % mal # name
diff --git 
a/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.single 
b/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.single
--- 
a/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.single
+++ 
b/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.single
@@ -55,8 +55,8 @@ Ready.
 % .L # table_name
 % def # name
 % clob # type
-% 535 # length
-[ 
"optimizer.inline();optimizer.candidates();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.evaluate();optimizer.aliases();optimizer.pushselect();optimizer.mitosis();optimizer.mergetable();optimizer.deadcode();optimizer.aliases();optimizer.constants();optimizer.commonTerms();optimizer.joinPath();optimizer.reorder();optimizer.deadcode();optimizer.reduce();optimizer.matpack();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.profiler();optimizer.garbageCollector();"
    ]
+% 541 # length
+[ 
"optimizer.inline();optimizer.candidates();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.evaluate();optimizer.aliases();optimizer.pushselect();optimizer.mitosis();optimizer.mergetable();optimizer.deadcode();optimizer.aliases();optimizer.constants();optimizer.commonTerms();optimizer.projectionpath();optimizer.reorder();optimizer.deadcode();optimizer.reduce();optimizer.matpack();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.profiler();optimizer.garbageCollector();"
      ]
 #explain copy into ttt from '/tmp/xyz';
 % .explain # table_name
 % mal # name
@@ -87,8 +87,8 @@ end user.s4_1;
 % .L # table_name
 % def # name
 % clob # type
-% 558 # length
-[ 
"optimizer.inline();optimizer.candidates();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.evaluate();optimizer.aliases();optimizer.pushselect();optimizer.mitosis();optimizer.mergetable();optimizer.deadcode();optimizer.aliases();optimizer.constants();optimizer.commonTerms();optimizer.joinPath();optimizer.reorder();optimizer.deadcode();optimizer.reduce();optimizer.matpack();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.profiler();optimizer.sql_append();optimizer.garbageCollector();"
     ]
+% 564 # length
+[ 
"optimizer.inline();optimizer.candidates();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.evaluate();optimizer.aliases();optimizer.pushselect();optimizer.mitosis();optimizer.mergetable();optimizer.deadcode();optimizer.aliases();optimizer.constants();optimizer.commonTerms();optimizer.projectionpath();optimizer.reorder();optimizer.deadcode();optimizer.reduce();optimizer.matpack();optimizer.dataflow();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.profiler();optimizer.sql_append();optimizer.garbageCollector();"
       ]
 #explain copy into ttt from '/tmp/xyz';
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to