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