improved count join for the equals case. smaneth-devel
authorSebastian Maneth <seba@sophisto.(none)>
Sun, 4 Nov 2012 22:08:58 +0000 (23:08 +0100)
committerSebastian Maneth <seba@sophisto.(none)>
Sun, 4 Nov 2012 22:08:58 +0000 (23:08 +0100)
src/lexindex_stub.cpp

index 9f88afb..f597a41 100644 (file)
@@ -156,15 +156,17 @@ void VectorCountMergeJoin::mergeJoin(vector<pair<int32_t,int32_t>> v1, vector<pa
   int comp=0;
   int i1=0;
   int i2=0;
-  int k;
+  int k,j;
   while((i1<v1.size()) && (i2<v2.size())){
     k = strcmp((const char*) tree->get_text(v1[i1].first),
               (const char*) tree->get_text(v2[i2].first));
     comp++;
     if (k==0) 
       {
-       resultVector.push_back(v1[i1]);
-       i1++; //advance left
+       for(j=0; j<v1[i1].second ; j++)
+         resultVector.push_back(v1[i1+j]);
+       i1=i1+j;
+       //      i1++; //advance left
       }
     //    else if (k<0) i1++; //advance left
     else if (k<0) i1=i1+v1[i1].second; //advance left