Changeset: bcf39e917224 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=bcf39e917224 Modified Files: monetdb5/optimizer/opt_multiplex.c Branch: default Log Message:
Move algebra.reverse() call outside the loop. diffs (31 lines): 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 @@ -87,6 +87,13 @@ OPTexpandMultiplex(Client cntxt, MalBlkP /* resB := new(refBat) */ if (isAnyExpression(getArgType(mb, pci, 0))) return createException(MAL, "optimizer.multiplex", "Target type is missing"); + /* x := bat.reverse(A1); */ + x = newTmpVariable(mb, newBatType(getTailType(getVarType(mb,iter)), + getHeadType(getVarType(mb,iter)))); + q = newFcnCall(mb, batRef, reverseRef); + getArg(q, 0) = x; + q = pushArgument(mb, q, iter); + q = newFcnCall(mb, batRef, newRef); resB = getArg(q, 0); @@ -131,12 +138,7 @@ OPTexpandMultiplex(Client cntxt, MalBlkP q = pushArgument(mb, q, getArg(pci, i)); } - /* x := bat.reverse(A1); y := algebra.fetch(x,h); */ - x = newTmpVariable(mb, newBatType(getTailType(getVarType(mb,iter)), - getHeadType(getVarType(mb,iter)))); - q = newFcnCall(mb, batRef, reverseRef); - getArg(q, 0) = x; - q = pushArgument(mb, q, iter); + /* y := algebra.fetch(x,h); */ y = newTmpVariable(mb, getHeadType(getVarType(mb,iter))); q = newFcnCall(mb, algebraRef, "fetch"); getArg(q, 0) = y; _______________________________________________ Checkin-list mailing list Checkin-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/checkin-list