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

Reply via email to