Changeset: 0040e243144c for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=0040e243144c
Modified Files:
monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out
monetdb5/optimizer/Tests/dataflow3.stable.out
monetdb5/optimizer/Tests/inline02.stable.out
monetdb5/optimizer/Tests/inline03.stable.out
monetdb5/optimizer/Tests/inline04.stable.out
monetdb5/optimizer/Tests/inline06.stable.out
monetdb5/optimizer/opt_aliases.c
monetdb5/optimizer/opt_candidates.c
monetdb5/optimizer/opt_coercion.c
monetdb5/optimizer/opt_commonTerms.c
monetdb5/optimizer/opt_constants.c
monetdb5/optimizer/opt_costModel.c
monetdb5/optimizer/opt_dataflow.c
monetdb5/optimizer/opt_deadcode.c
monetdb5/optimizer/opt_evaluate.c
monetdb5/optimizer/opt_factorize.c
monetdb5/optimizer/opt_garbageCollector.c
monetdb5/optimizer/opt_generator.c
monetdb5/optimizer/opt_inline.c
monetdb5/optimizer/opt_json.c
monetdb5/optimizer/opt_matpack.c
monetdb5/optimizer/opt_mergetable.c
monetdb5/optimizer/opt_mitosis.c
monetdb5/optimizer/opt_multiplex.c
monetdb5/optimizer/opt_profiler.c
monetdb5/optimizer/opt_projectionpath.c
monetdb5/optimizer/opt_pushselect.c
monetdb5/optimizer/opt_querylog.c
monetdb5/optimizer/opt_recycler.c
monetdb5/optimizer/opt_reduce.c
monetdb5/optimizer/opt_remap.c
monetdb5/optimizer/opt_remoteQueries.c
monetdb5/optimizer/opt_reorder.c
monetdb5/optimizer/opt_volcano.c
monetdb5/optimizer/opt_wrapper.c
sql/test/BugTracker-2013/Tests/between.Bug-3259.stable.out.int128
sql/test/BugTracker-2014/Tests/nil_2dec_lng.Bug-3592.stable.out
sql/test/BugTracker-2014/Tests/nil_2dec_lng.Bug-3592.stable.out.single
sql/test/BugTracker-2014/Tests/querylog.Bug-3607.stable.out
sql/test/BugTracker/Tests/explain.SF-1739353.stable.out
sql/test/BugTracker/Tests/jdbc_no_debug.SF-1739356.stable.out
sql/test/mergetables/Tests/mergequery.stable.out
sql/test/remote/Tests/partition_elim.stable.out
Branch: default
Log Message:
Move optimizer check to optimizers
Preparation for futher reduction of overhead.
diffs (truncated from 1737 to 300 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.
% 118 # length
function user.s4_1():void;
X_24:void := querylog.define("explain copy into ttt from
\\'/tmp/xyz\\';","default_pipe",12);
-barrier X_53 := language.dataflow();
+barrier X_51 := language.dataflow();
X_1 := sql.mvc();
(X_11:bat[:int],X_12:bat[:int],X_13:bat[:int]) :=
sql.copy_from(nil,"|","\\n",nil:str,"null","/tmp/xyz",-1,0,0,0);
-exit X_53;
+exit X_51;
X_14 := sql.append(X_1,"sys","ttt","a",X_11);
X_18 := sql.append(X_14,"sys","ttt","b",X_12);
X_20 := sql.append(X_18,"sys","ttt","c",X_13);
@@ -98,10 +98,10 @@ end user.s4_1;
% 118 # length
function user.s12_1():void;
X_24:void := querylog.define("explain copy into ttt from
\\'/tmp/xyz\\';","user_1",12);
-barrier X_54 := language.dataflow();
+barrier X_52 := language.dataflow();
X_1 := sql.mvc();
(X_11:bat[:int],X_12:bat[:int],X_13:bat[:int]) :=
sql.copy_from(nil,"|","\\n",nil:str,"null","/tmp/xyz",-1,0,0,0);
-exit X_54;
+exit X_52;
X_14 := sql.append(X_1,"sys","ttt","a",X_11);
X_18 := sql.append(X_14,"sys","ttt","b",X_12);
X_22 := aggr.count(X_13);
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_54 := language.dataflow();
+barrier X_53 := language.dataflow();
X17 := bat.new(nil:oid,nil:lng);
X54 := bat.new(nil:oid,nil:lng);
X55 := bat.new(nil:oid,nil:lng);
X56 := bat.new(nil:oid,nil:lng);
X57 := bat.new(nil:oid,nil:lng);
-exit X_54;
+exit X_53;
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/Tests/inline02.stable.out
b/monetdb5/optimizer/Tests/inline02.stable.out
--- a/monetdb5/optimizer/Tests/inline02.stable.out
+++ b/monetdb5/optimizer/Tests/inline02.stable.out
@@ -37,8 +37,8 @@ function user.qry():void;
# base line test for inlining
X_21:bat[:int] := batcalc.+(b:bat[:int],b:bat[:int]); #[6] (0)
CMDbatADDsignal 21 <- 1 1
z:bat[:int] := X_21:bat[:int]; #[7] (0) 9 <- 21
- X_25:bat[:int] := batcalc.+(b:bat[:int],2:int); #[8] (0)
CMDbatADDsignal 25 <- 1 7
- z:bat[:int] := X_25:bat[:int]; #[9] (0) 9 <- 25
+ X_27:bat[:int] := batcalc.+(b:bat[:int],2:int); #[8] (0)
CMDbatADDsignal 27 <- 1 7
+ z:bat[:int] := X_27:bat[:int]; #[9] (0) 9 <- 27
end user.qry; #[10] (0)
# 18:00:43 >
diff --git a/monetdb5/optimizer/Tests/inline03.stable.out
b/monetdb5/optimizer/Tests/inline03.stable.out
--- a/monetdb5/optimizer/Tests/inline03.stable.out
+++ b/monetdb5/optimizer/Tests/inline03.stable.out
@@ -36,10 +36,10 @@ function user.qry():void;
X_16:bat[:int] := batcalc.+(b:bat[:int],b:bat[:int]); #[4] (0)
CMDbatADDsignal 16 <- 1 1
X_16:bat[:int] := batcalc.*(X_16:bat[:int],X_15:int); #[5] (0)
CMDbatMULsignal 16 <- 16 15
z:bat[:int] := X_16:bat[:int]; #[6] (0) 6 <- 16
- X_20:int := 1:int; #[7] (0) 20 <- 5
- X_21:bat[:int] := batcalc.+(b:bat[:int],2:int); #[8] (0)
CMDbatADDsignal 21 <- 1 10
- X_21:bat[:int] := batcalc.*(X_21:bat[:int],X_20:int); #[9] (0)
CMDbatMULsignal 21 <- 21 20
- z:bat[:int] := X_21:bat[:int]; #[10] (0) 6 <- 21
+ X_22:int := 1:int; #[7] (0) 22 <- 5
+ X_23:bat[:int] := batcalc.+(b:bat[:int],2:int); #[8] (0)
CMDbatADDsignal 23 <- 1 10
+ X_23:bat[:int] := batcalc.*(X_23:bat[:int],X_22:int); #[9] (0)
CMDbatMULsignal 23 <- 23 22
+ z:bat[:int] := X_23:bat[:int]; #[10] (0) 6 <- 23
end user.qry; #[11] (0)
# 18:00:43 >
diff --git a/monetdb5/optimizer/Tests/inline04.stable.out
b/monetdb5/optimizer/Tests/inline04.stable.out
--- a/monetdb5/optimizer/Tests/inline04.stable.out
+++ b/monetdb5/optimizer/Tests/inline04.stable.out
@@ -40,14 +40,14 @@ barrier X_17:bit := true:bit;
redo X_17:bit := calc.<(X_16:int,3:int); #[8] (0) CMDvarLT 17 <- 16 19
exit X_17:bit; #[9] (0) 17
z:bat[:int] := X_15:bat[:int]; #[10] (0) 6 <- 15
- X_23:bat[:int] := batcalc.+(b:bat[:int],2:int); #[11] (0)
CMDbatADDsignal 23 <- 1 10
- X_24:int := 1:int; #[12] (0) 24 <- 5
-barrier X_25:bit := true:bit; #[13] (0) 25 <- 18
- X_23:bat[:int] := batcalc.*(X_23:bat[:int],X_23:bat[:int]); #[14]
(0) CMDbatMULsignal 23 <- 23 23
- X_24:int := calc.+(X_24:int,1:int); #[15] (0) CMDvarADDsignal 24 <-
24 5
- redo X_25:bit := calc.<(X_24:int,3:int); #[16] (0) CMDvarLT 25 <- 24 19
-exit X_25:bit; #[17] (0) 25
- z:bat[:int] := X_23:bat[:int]; #[18] (0) 6 <- 23
+ X_25:bat[:int] := batcalc.+(b:bat[:int],2:int); #[11] (0)
CMDbatADDsignal 25 <- 1 10
+ X_26:int := 1:int; #[12] (0) 26 <- 5
+barrier X_27:bit := true:bit; #[13] (0) 27 <- 18
+ X_25:bat[:int] := batcalc.*(X_25:bat[:int],X_25:bat[:int]); #[14]
(0) CMDbatMULsignal 25 <- 25 25
+ X_26:int := calc.+(X_26:int,1:int); #[15] (0) CMDvarADDsignal 26 <-
26 5
+ redo X_27:bit := calc.<(X_26:int,3:int); #[16] (0) CMDvarLT 27 <- 26 19
+exit X_27:bit; #[17] (0) 27
+ z:bat[:int] := X_25:bat[:int]; #[18] (0) 6 <- 25
end user.qry; #[19] (0)
# 18:00:43 >
diff --git a/monetdb5/optimizer/Tests/inline06.stable.out
b/monetdb5/optimizer/Tests/inline06.stable.out
--- a/monetdb5/optimizer/Tests/inline06.stable.out
+++ b/monetdb5/optimizer/Tests/inline06.stable.out
@@ -37,11 +37,11 @@ function user.qry():void;
#
X_15:bat[:int] := batcalc.*(X_15:bat[:int],X_16:int); #[6] (0)
CMDbatMULsignal 15 <- 15 16
z:bat[:int] := X_15:bat[:int]; #[7] (0) 6 <- 15
- X_21:bat[:int] := batcalc.+(b:bat[:int],2:int); #[8] (0)
CMDbatADDsignal 21 <- 1 10
- X_22:int := mmath.rand(); #[9] (0) MATHrandint 22
+ X_23:bat[:int] := batcalc.+(b:bat[:int],2:int); #[8] (0)
CMDbatADDsignal 23 <- 1 10
+ X_24:int := mmath.rand(); #[9] (0) MATHrandint 24
#
- X_21:bat[:int] := batcalc.*(X_21:bat[:int],X_22:int); #[11] (0)
CMDbatMULsignal 21 <- 21 22
- z:bat[:int] := X_21:bat[:int]; #[12] (0) 6 <- 21
+ X_23:bat[:int] := batcalc.*(X_23:bat[:int],X_24:int); #[11] (0)
CMDbatMULsignal 23 <- 23 24
+ z:bat[:int] := X_23:bat[:int]; #[12] (0) 6 <- 23
end user.qry; #[13] (0)
# 18:00:44 >
diff --git a/monetdb5/optimizer/opt_aliases.c b/monetdb5/optimizer/opt_aliases.c
--- a/monetdb5/optimizer/opt_aliases.c
+++ b/monetdb5/optimizer/opt_aliases.c
@@ -31,6 +31,8 @@ OPTaliasesImplementation(Client cntxt, M
int i,k=1, limit, actions=0;
int *alias;
Lifespan span;
+ char buf[256];
+ lng usec = GDKusec();
(void) stk;
(void) cntxt;
@@ -62,13 +64,26 @@ OPTaliasesImplementation(Client cntxt, M
} else
OPTaliasRemap(p,alias);
}
+
for(i=k; i<limit; i++)
mb->stmt[i]= NULL;
+
mb->stop= k;
/*
* The second phase is constant alias replacement should be implemented.
*/
GDKfree(span);
GDKfree(alias);
+
+ /* Defense line against incorrect plans */
+ if( actions > 0){
+ chkTypes(cntxt->fdout, cntxt->nspace, mb, FALSE);
+ chkFlow(cntxt->fdout, mb);
+ chkDeclarations(cntxt->fdout, mb);
+ }
+ /* keep all actions taken as a post block comment */
+ snprintf(buf,256,"%-20s actions=%2d time=" LLFMT "
usec","aliases",actions,GDKusec()-usec);
+ newComment(mb,buf);
+
return actions;
}
diff --git a/monetdb5/optimizer/opt_candidates.c
b/monetdb5/optimizer/opt_candidates.c
--- a/monetdb5/optimizer/opt_candidates.c
+++ b/monetdb5/optimizer/opt_candidates.c
@@ -19,6 +19,8 @@ OPTcandidatesImplementation(Client cntxt
{
int i;
InstrPtr p;
+ char buf[256];
+ lng usec = GDKusec();
(void) pci;
(void) cntxt;
@@ -60,5 +62,16 @@ OPTcandidatesImplementation(Client cntxt
setVarCList(mb,getArg(p,0));
}
}
+
+ /* Defense line against incorrect plans */
+ if( 1){
+ chkTypes(cntxt->fdout, cntxt->nspace, mb, FALSE);
+ chkFlow(cntxt->fdout, mb);
+ chkDeclarations(cntxt->fdout, mb);
+ }
+ /* keep all actions taken as a post block comment */
+ snprintf(buf,256,"%-20s actions=%2d time=" LLFMT "
usec","candidates",1,GDKusec() -usec);
+ newComment(mb,buf);
+
return 1;
}
diff --git a/monetdb5/optimizer/opt_coercion.c
b/monetdb5/optimizer/opt_coercion.c
--- a/monetdb5/optimizer/opt_coercion.c
+++ b/monetdb5/optimizer/opt_coercion.c
@@ -125,6 +125,8 @@ OPTcoercionImplementation(Client cntxt,M
int actions = 0;
str calcRef= putName("calc");
Coercion *coerce = GDKzalloc(sizeof(Coercion) * mb->vtop);
+ char buf[256];
+ lng usec = GDKusec();
if( coerce == NULL)
return 0;
@@ -186,5 +188,16 @@ OPTcoercionImplementation(Client cntxt,M
* structure. A cheaper optimizer is sufficient.
*/
GDKfree(coerce);
+
+ /* Defense line against incorrect plans */
+ if( actions > 0){
+ chkTypes(cntxt->fdout, cntxt->nspace, mb, FALSE);
+ chkFlow(cntxt->fdout, mb);
+ chkDeclarations(cntxt->fdout, mb);
+ }
+ /* keep all actions taken as a post block comment */
+ snprintf(buf,256,"%-20s actions=%2d time=" LLFMT "
usec","coercion",actions,GDKusec() - usec);
+ newComment(mb,buf);
+
return actions;
}
diff --git a/monetdb5/optimizer/opt_commonTerms.c
b/monetdb5/optimizer/opt_commonTerms.c
--- a/monetdb5/optimizer/opt_commonTerms.c
+++ b/monetdb5/optimizer/opt_commonTerms.c
@@ -28,6 +28,8 @@ OPTcommonTermsImplementation(Client cntx
/* link all final constant expressions in a list */
/* it will help to find duplicate sql.bind calls */
int *vars;
+ char buf[256];
+ lng usec = GDKusec();
(void) cntxt;
(void) stk;
@@ -180,5 +182,15 @@ OPTcommonTermsImplementation(Client cntx
GDKfree(vars);
GDKfree(old);
GDKfree(alias);
+ /* Defense line against incorrect plans */
+ if( actions > 0){
+ chkTypes(cntxt->fdout, cntxt->nspace, mb, FALSE);
+ chkFlow(cntxt->fdout, mb);
+ chkDeclarations(cntxt->fdout, mb);
+ }
+ /* keep all actions taken as a post block comment */
+ snprintf(buf,256,"%-20s actions=%2d time=" LLFMT "
usec","commonTerms",actions,GDKusec() - usec);
+ newComment(mb,buf);
+
return actions;
}
diff --git a/monetdb5/optimizer/opt_constants.c
b/monetdb5/optimizer/opt_constants.c
--- a/monetdb5/optimizer/opt_constants.c
+++ b/monetdb5/optimizer/opt_constants.c
@@ -28,6 +28,8 @@ OPTconstantsImplementation(Client cntxt,
int i,k=1, n=0, fnd=0, actions=0;
int *alias, *index;
VarPtr x,y, *cst;
+ char buf[256];
+ lng usec = GDKusec();
OPTDEBUGconstants mnstr_printf(cntxt->fdout,"#OPT_CONSTANTS: MATCHING
CONSTANTS ELEMENTS\n");
@@ -87,5 +89,15 @@ OPTconstantsImplementation(Client cntxt,
GDKfree(alias);
GDKfree(cst);
GDKfree(index);
+ /* Defense line against incorrect plans */
+ if( actions > 0){
+ chkTypes(cntxt->fdout, cntxt->nspace, mb, FALSE);
+ chkFlow(cntxt->fdout, mb);
+ chkDeclarations(cntxt->fdout, mb);
+ }
+ /* keep all actions taken as a post block comment */
+ snprintf(buf,256,"%-20s actions=%2d time=" LLFMT "
usec","constants",actions,GDKusec() - usec);
+ newComment(mb,buf);
+
return actions;
}
diff --git a/monetdb5/optimizer/opt_costModel.c
b/monetdb5/optimizer/opt_costModel.c
--- a/monetdb5/optimizer/opt_costModel.c
+++ b/monetdb5/optimizer/opt_costModel.c
@@ -38,6 +38,8 @@ OPTcostModelImplementation(Client cntxt,
int i;
BUN c1, c2;
InstrPtr p;
+ char buf[256];
+ lng usec = GDKusec();
(void) cntxt;
(void) stk;
@@ -141,5 +143,15 @@ OPTcostModelImplementation(Client cntxt,
setRowCnt(mb, getArg(p,0), c1);
}
}
+ /* Defense line against incorrect plans */
+ if( 1){
+ chkTypes(cntxt->fdout, cntxt->nspace, mb, FALSE);
+ chkFlow(cntxt->fdout, mb);
+ chkDeclarations(cntxt->fdout, mb);
+ }
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list