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

Reply via email to