Changeset: c714c2ad281a for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c714c2ad281a
Modified Files:
monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out
monetdb5/optimizer/Tests/dataflow3.stable.out
monetdb5/optimizer/opt_emptybind.c
monetdb5/optimizer/opt_matpack.c
monetdb5/optimizer/opt_mergetable.c
monetdb5/optimizer/opt_mitosis.c
monetdb5/optimizer/opt_multiplex.c
monetdb5/optimizer/opt_projectionpath.c
Branch: default
Log Message:
Add more defense lines in optimizers
avoiding double calls to some
diffs (120 lines):
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
@@ -64,10 +64,10 @@ Ready.
% 126 # length
function user.s8_1():void;
X_38:void := querylog.define("explain copy into ttt from
\\'/tmp/xyz\\';","default_pipe",12);
-barrier X_58 := language.dataflow();
+barrier X_56 := language.dataflow();
X_0 := sql.mvc();
(X_21:bat[:int],X_22:bat[:int],X_23:bat[:int]) :=
sql.copy_from(nil,"|","\\n",nil:str,"null","/tmp/xyz",-1,0,0,0,nil:str);
-exit X_58;
+exit X_56;
X_25 := sql.append(X_0,"sys","ttt","a",X_21);
X_30 := sql.append(X_25,"sys","ttt","b",X_22);
X_33 := sql.append(X_30,"sys","ttt","c",X_23);
@@ -125,10 +125,10 @@ end user.s8_1;
% 126 # length
function user.s24_1():void;
X_38:void := querylog.define("explain copy into ttt from
\\'/tmp/xyz\\';","user_1",12);
-barrier X_58 := language.dataflow();
+barrier X_56 := language.dataflow();
X_0 := sql.mvc();
(X_21:bat[:int],X_22:bat[:int],X_23:bat[:int]) :=
sql.copy_from(nil,"|","\\n",nil:str,"null","/tmp/xyz",-1,0,0,0,nil:str);
-exit X_58;
+exit X_56;
X_25 := sql.append(X_0,"sys","ttt","a",X_21);
X_30 := sql.append(X_25,"sys","ttt","b",X_22);
X_35 := aggr.count(X_23);
diff --git a/monetdb5/optimizer/Tests/dataflow3.stable.out
b/monetdb5/optimizer/Tests/dataflow3.stable.out
--- a/monetdb5/optimizer/Tests/dataflow3.stable.out
+++ b/monetdb5/optimizer/Tests/dataflow3.stable.out
@@ -26,13 +26,13 @@ Ready.
#mdb.list("user","s1_0");
function user.s1_0():void;
-barrier X_31 := language.dataflow();
+barrier X_30 := language.dataflow();
X17 := bat.new(:lng);
X54 := bat.new(:lng);
X55 := bat.new(:lng);
X56 := bat.new(:lng);
X57 := bat.new(:lng);
-exit X_31;
+exit X_30;
X59 :=
remote.connect("mapi:monetdb://volund.ins.cwi.nl:50000/sn4","monetdb","monetdb","msql");
remote.register(X59,"user","s1_0map");
X66 := remote.put(X59,X54);
diff --git a/monetdb5/optimizer/opt_emptybind.c
b/monetdb5/optimizer/opt_emptybind.c
--- a/monetdb5/optimizer/opt_emptybind.c
+++ b/monetdb5/optimizer/opt_emptybind.c
@@ -45,6 +45,8 @@ OPTemptybindImplementation(Client cntxt,
str sch,tbl;
int etop= 0, esize= 256;
+ if ( optimizerIsApplied(mb,"emptybind") )
+ return 0;
// use an instruction reference table to keep
// track of where 'emptybind' results are produced
marked = (int *) GDKzalloc(mb->vsize * sizeof(int));
diff --git a/monetdb5/optimizer/opt_matpack.c b/monetdb5/optimizer/opt_matpack.c
--- a/monetdb5/optimizer/opt_matpack.c
+++ b/monetdb5/optimizer/opt_matpack.c
@@ -24,6 +24,8 @@ OPTmatpackImplementation(Client cntxt, M
char buf[256];
lng usec = GDKusec();
+ if ( !optimizerIsApplied(mb,"multiplex") )
+ return 0;
(void) pci;
(void) cntxt;
(void) stk; /* to fool compilers */
diff --git a/monetdb5/optimizer/opt_mergetable.c
b/monetdb5/optimizer/opt_mergetable.c
--- a/monetdb5/optimizer/opt_mergetable.c
+++ b/monetdb5/optimizer/opt_mergetable.c
@@ -1569,7 +1569,7 @@ OPTmergetableImplementation(Client cntxt
char buf[256];
lng usec = GDKusec();
- if( optimizerIsApplied(mb, "mergetable") ||
optimizerIsApplied(mb,"projectionpath"))
+ if( optimizerIsApplied(mb, "mergetable") ||
!optimizerIsApplied(mb,"mitosis"))
return 0;
old = mb->stmt;
oldtop= mb->stop;
diff --git a/monetdb5/optimizer/opt_mitosis.c b/monetdb5/optimizer/opt_mitosis.c
--- a/monetdb5/optimizer/opt_mitosis.c
+++ b/monetdb5/optimizer/opt_mitosis.c
@@ -43,7 +43,7 @@ OPTmitosisImplementation(Client cntxt, M
char buf[256];
lng usec = GDKusec();
- if ( optimizerIsApplied(mb,"mitosis") ||
optimizerIsApplied(mb,"projectionpath"))
+ if ( optimizerIsApplied(mb,"mitosis") )
return 0;
(void) cntxt;
(void) stk;
diff --git a/monetdb5/optimizer/opt_multiplex.c
b/monetdb5/optimizer/opt_multiplex.c
--- a/monetdb5/optimizer/opt_multiplex.c
+++ b/monetdb5/optimizer/opt_multiplex.c
@@ -41,6 +41,8 @@ OPTexpandMultiplex(Client cntxt, MalBlkP
int tt;
int bat = (getModuleId(pci) == batmalRef) ;
+ if ( optimizerIsApplied(mb,"multiplex"))
+ return 0;
(void) cntxt;
(void) stk;
for (i = 0; i < pci->retc; i++) {
diff --git a/monetdb5/optimizer/opt_projectionpath.c
b/monetdb5/optimizer/opt_projectionpath.c
--- a/monetdb5/optimizer/opt_projectionpath.c
+++ b/monetdb5/optimizer/opt_projectionpath.c
@@ -166,6 +166,8 @@ OPTprojectionpathImplementation(Client c
(void) stk;
if ( mb->inlineProp)
return 0;
+ if ( optimizerIsApplied(mb,"projectionpath") )
+ return 0;
#ifdef DEBUG_OPT_PROJECTIONPATH
mnstr_printf(cntxt->fdout,"#projectionpath optimizer start \n");
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list