Changeset: 5ed237c81ac8 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=5ed237c81ac8 Modified Files: monetdb5/optimizer/opt_garbageCollector.c monetdb5/optimizer/opt_prelude.c monetdb5/optimizer/opt_prelude.h monetdb5/optimizer/opt_profiler.c Branch: default Log Message:
Merge with Jul2017 branch. diffs (91 lines): diff --git a/monetdb5/optimizer/opt_garbageCollector.c b/monetdb5/optimizer/opt_garbageCollector.c --- a/monetdb5/optimizer/opt_garbageCollector.c +++ b/monetdb5/optimizer/opt_garbageCollector.c @@ -160,16 +160,14 @@ OPTgarbageCollectorImplementation(Client /* leave a consistent scope admin behind */ setVariableScope(mb); - /* Defense line against incorrect plans */ - if( actions > 0){ - chkTypes(cntxt->usermodule, mb, FALSE); - chkFlow(mb); - chkDeclarations(mb); - } - /* keep all actions taken as a post block comment */ + /* Defense line against incorrect plans */ + chkTypes(cntxt->usermodule, mb, FALSE); + chkFlow(mb); + chkDeclarations(mb); + /* keep all actions taken as a post block comment */ usec = GDKusec()- usec; - snprintf(buf,256,"%-20s actions=%2d time=" LLFMT " usec","garbagecollector",actions, usec); - newComment(mb,buf); + snprintf(buf,256,"%-20s actions=%2d time=" LLFMT " usec","garbagecollector",actions, usec); + newComment(mb,buf); if( actions >= 0) addtoMalBlkHistory(mb); diff --git a/monetdb5/optimizer/opt_prelude.c b/monetdb5/optimizer/opt_prelude.c --- a/monetdb5/optimizer/opt_prelude.c +++ b/monetdb5/optimizer/opt_prelude.c @@ -203,6 +203,7 @@ str optimizerRef; str parametersRef; str packRef; str pack2Ref; +str packIncrementRef; str passRef; str partitionRef; str pcreRef; @@ -489,6 +490,7 @@ void optimizerInit(void) parametersRef = putName("parameters"); packRef = putName("pack"); pack2Ref = putName("pack2"); + packIncrementRef = putName("packIncrement"); passRef = putName("pass"); partitionRef = putName("partition"); pcreRef = putName("pcre"); diff --git a/monetdb5/optimizer/opt_prelude.h b/monetdb5/optimizer/opt_prelude.h --- a/monetdb5/optimizer/opt_prelude.h +++ b/monetdb5/optimizer/opt_prelude.h @@ -197,6 +197,7 @@ mal_export str optimizerRef; mal_export str parametersRef; mal_export str packRef; mal_export str pack2Ref; +mal_export str packIncrementRef; mal_export str passRef; mal_export str partitionRef; mal_export str pcreRef; diff --git a/monetdb5/optimizer/opt_profiler.c b/monetdb5/optimizer/opt_profiler.c --- a/monetdb5/optimizer/opt_profiler.c +++ b/monetdb5/optimizer/opt_profiler.c @@ -72,7 +72,7 @@ OPTprofilerImplementation(Client cntxt, if( getModuleId(p)== sqlRef && getFunctionId(p)== tidRef){ getVarSTC(mb,getArg(p,0)) = i; } else - if( getModuleId(p)== batRef && (getFunctionId(p)== deltaRef || getFunctionId(p) == subdeltaRef)){ + if( getModuleId(p)== sqlRef && (getFunctionId(p)== deltaRef || getFunctionId(p) == subdeltaRef)){ // inherit property of first argument getVarSTC(mb,getArg(p,0)) = getVarSTC(mb,getArg(p,1)); } else @@ -82,7 +82,10 @@ OPTprofilerImplementation(Client cntxt, if( getModuleId(p)== algebraRef && getFunctionId(p)== projectionRef){ getVarSTC(mb,getArg(p,0)) = getVarSTC(mb,getArg(p,p->argc-1)); } else - if( getModuleId(p)== algebraRef && (getFunctionId(p)== selectRef || getFunctionId(p) == thetaselectRef)){ + if( getModuleId(p)== algebraRef && + (getFunctionId(p)== selectRef || + getFunctionId(p) == thetaselectRef || + getFunctionId(p) == selectNotNilRef) ){ getVarSTC(mb,getArg(p,0)) = getVarSTC(mb,getArg(p,p->retc)); } else if( getModuleId(p)== algebraRef && (getFunctionId(p)== likeselectRef || getFunctionId(p) == ilikeselectRef)){ @@ -97,6 +100,9 @@ OPTprofilerImplementation(Client cntxt, getFunctionId(p) == rangejoinRef )){ getVarSTC(mb,getArg(p,0)) = getVarSTC(mb,getArg(p,p->retc)); getVarSTC(mb,getArg(p,1)) = getVarSTC(mb,getArg(p,p->retc +1)); + } else + if( getModuleId(p)== matRef && getFunctionId(p)== packIncrementRef){ + getVarSTC(mb,getArg(p,0)) = getVarSTC(mb,getArg(p,1)); } } /* Defense line against incorrect plans */ _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list