projects
/
SXSI
/
xpathcomp.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
3fbeef4
)
improved count join for the equals case.
smaneth-devel
author
Sebastian Maneth
<seba@sophisto.(none)>
Sun, 4 Nov 2012 22:08:58 +0000
(23:08 +0100)
committer
Sebastian Maneth
<seba@sophisto.(none)>
Sun, 4 Nov 2012 22:08:58 +0000
(23:08 +0100)
src/lexindex_stub.cpp
patch
|
blob
|
history
diff --git
a/src/lexindex_stub.cpp
b/src/lexindex_stub.cpp
index
9f88afb
..
f597a41
100644
(file)
--- a/
src/lexindex_stub.cpp
+++ b/
src/lexindex_stub.cpp
@@
-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 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)
{
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
}
// else if (k<0) i1++; //advance left
else if (k<0) i1=i1+v1[i1].second; //advance left