Markos Zaharioudakis has proposed merging lp:~zorba-coders/zorba/markos-scratch into lp:zorba.
Requested reviews: Markos Zaharioudakis (markos-za) For more details, see: https://code.launchpad.net/~zorba-coders/zorba/markos-scratch/+merge/83020 fixed a performance bug in the implementation of groupby: no node copying for non-groupby vars -- https://code.launchpad.net/~zorba-coders/zorba/markos-scratch/+merge/83020 Your team Zorba Coders is subscribed to branch lp:zorba.
=== modified file 'src/compiler/rewriter/rules/fold_rules.cpp' --- src/compiler/rewriter/rules/fold_rules.cpp 2011-09-27 10:43:46 +0000 +++ src/compiler/rewriter/rules/fold_rules.cpp 2011-11-22 13:44:35 +0000 @@ -225,7 +225,6 @@ } } - // Process the subexprs of the current expr. If any of the children is // nondiscardable, unfoldable, or contains recursive calls, then the current // expr is also nondiscardable, unfoldable, or contains recursive calls. === modified file 'src/runtime/core/flwor_iterator.cpp' --- src/runtime/core/flwor_iterator.cpp 2011-10-22 15:44:45 +0000 +++ src/runtime/core/flwor_iterator.cpp 2011-11-22 13:44:35 +0000 @@ -1291,17 +1291,17 @@ FlworState::TuplesTable& tuplesTable = iterState->theTuplesTable; - ulong numTuples = (ulong)tuplesTable.size(); + csize numTuples = tuplesTable.size(); tuplesTable.resize(numTuples + 1); - ulong numForVars = (ulong)theMaterializeClause->theInputForVars.size(); - ulong numLetVars = (ulong)theMaterializeClause->theInputLetVars.size(); + csize numForVars = theMaterializeClause->theInputForVars.size(); + csize numLetVars = theMaterializeClause->theInputLetVars.size(); StreamTuple& streamTuple = tuplesTable[numTuples]; streamTuple.theItems.resize(numForVars); streamTuple.theSequences.resize(numLetVars); - for (ulong i = 0; i < numForVars; ++i) + for (csize i = 0; i < numForVars; ++i) { store::Item_t forItem; consumeNext(forItem, @@ -1313,14 +1313,12 @@ theMaterializeClause->theInputForVars[i]->reset(planState); } - for (ulong i = 0; i < numLetVars; ++i) + for (csize i = 0; i < numLetVars; ++i) { store::TempSeq_t letTempSeq; - const PlanIter_t var_plan = theMaterializeClause->theInputLetVars[i]; - createTempSeq(letTempSeq, - var_plan, - planState, - false); + const PlanIter_t var_plan = theMaterializeClause->theInputLetVars[i]; + + createTempSeq(letTempSeq, var_plan, planState, false); streamTuple.theSequences[i].transfer(letTempSeq); @@ -1330,7 +1328,7 @@ // Create the sort tuple std::vector<OrderSpec>& orderSpecs = theMaterializeClause->theOrderSpecs; - ulong numSpecs = (ulong)orderSpecs.size(); + csize numSpecs = orderSpecs.size(); if (numSpecs == 0) return; @@ -1498,16 +1496,16 @@ std::vector<NonGroupingSpec> nongroupingSpecs = theGroupByClause->theNonGroupingSpecs; std::vector<store::TempSeq_t>* nongroupVarSequences = 0; - ulong numNonGroupingSpecs = (ulong)nongroupingSpecs.size(); + csize numNonGroupingSpecs = nongroupingSpecs.size(); if (groupMap->get(groupTuple, nongroupVarSequences)) { - for (ulong i = 0; i < numNonGroupingSpecs; ++i) + for (csize i = 0; i < numNonGroupingSpecs; ++i) { store::Iterator_t iterWrapper = new PlanIteratorWrapper(nongroupingSpecs[i].theInput, planState); - (*nongroupVarSequences)[i]->append(iterWrapper, true); + (*nongroupVarSequences)[i]->append(iterWrapper, false); nongroupingSpecs[i].reset(planState); } @@ -1518,12 +1516,12 @@ { nongroupVarSequences = new std::vector<store::TempSeq_t>(); - for (ulong i = 0; i < numNonGroupingSpecs; ++i) + for (csize i = 0; i < numNonGroupingSpecs; ++i) { store::Iterator_t iterWrapper = new PlanIteratorWrapper(nongroupingSpecs[i].theInput, planState); - store::TempSeq_t result = GENV_STORE.createTempSeq(iterWrapper, true, false); + store::TempSeq_t result = GENV_STORE.createTempSeq(iterWrapper, false, false); nongroupVarSequences->push_back(result); @@ -1547,18 +1545,18 @@ StreamTuple& streamTuple = iterState->theTuplesTable[tuplePos]; - ulong numForVarsRefs = (ulong)theMaterializeClause->theOutputForVarsRefs.size(); + csize numForVarsRefs = theMaterializeClause->theOutputForVarsRefs.size(); - for (ulong i = 0; i < numForVarsRefs; ++i) + for (csize i = 0; i < numForVarsRefs; ++i) { bindVariables(streamTuple.theItems[i], theMaterializeClause->theOutputForVarsRefs[i], planState); } - ulong numLetVarsRefs = (ulong)theMaterializeClause->theOutputLetVarsRefs.size(); + csize numLetVarsRefs = theMaterializeClause->theOutputLetVarsRefs.size(); - for (ulong i = 0; i < numLetVarsRefs; ++i) + for (csize i = 0; i < numLetVarsRefs; ++i) { bindVariables(streamTuple.theSequences[i], theMaterializeClause->theOutputLetVarsRefs[i],
-- Mailing list: https://launchpad.net/~zorba-coders Post to : zorba-coders@lists.launchpad.net Unsubscribe : https://launchpad.net/~zorba-coders More help : https://help.launchpad.net/ListHelp