Changeset: 7f7c20a99eef for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/7f7c20a99eef Modified Files: monetdb5/optimizer/opt_dataflow.c sql/test/Tests/setoptimizer.test Branch: default Log Message:
Inject the language.pass earlier in the dataflow plans. This calls for an update of Mz.py to use sorting in .explain.function_histogram. diffs (41 lines): diff --git a/monetdb5/optimizer/opt_dataflow.c b/monetdb5/optimizer/opt_dataflow.c --- a/monetdb5/optimizer/opt_dataflow.c +++ b/monetdb5/optimizer/opt_dataflow.c @@ -417,15 +417,21 @@ OPTdataflowImplementation(Client cntxt, // collect BAT variables garbage collected within the block if( !simple) for( k=q->retc; k<q->argc; k++){ - if (getState(states,q,k) & VAR2READ && getEndScope(mb,getArg(q,k)) == j && isaBatType(getVarType(mb,getArg(q,k))) ) - top = dflowGarbagesink(cntxt, mb, getArg(q,k), sink, top); + if (getState(states,q,k) & VAR2READ && getEndScope(mb,getArg(q,k)) == j && isaBatType(getVarType(mb,getArg(q,k))) ){ + InstrPtr r; + top = dflowGarbagesink(cntxt, mb, getArg(q,k), sink, top); + r = newInstruction(NULL,languageRef, passRef); + getArg(r,0) = newTmpVariable(mb,TYPE_void); + r= addArgument(mb,r, getArg(q,k)); + pushInstruction(mb,r); + } } } /* exit parallel block */ if ( ! simple){ // force the pending final garbage statements - for( j=0; j<top; j++) - pushInstruction(mb,sink[j]); + //for( j=0; j<top; j++) + //pushInstruction(mb,sink[j]); q= newAssignment(mb); q->barrier= EXITsymbol; getArg(q,0) = flowblock; diff --git a/sql/test/Tests/setoptimizer.test b/sql/test/Tests/setoptimizer.test --- a/sql/test/Tests/setoptimizer.test +++ b/sql/test/Tests/setoptimizer.test @@ -29,7 +29,7 @@ query TTT nosort select * from optimizers() ---- minimal_pipe -optimizer.inline();optimizer.remap();optimizer.bincopyfrom();optimizer.deadcode();optimizer.multiplex();optimizer.generator();optimizer.garbageCollector(); +optimizer.inline();optimizer.remap();optimizer.bincopyfrom();optimizer.deadcode();optimizer.multiplex();optimizer.generator();optimizer.profiler();optimizer.garbageCollector(); stable minimal_fast optimizer.minimalfast() _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list