Use longestCommonPrefixPartialKey in SearchStepWise
This commit is contained in:
@@ -764,16 +764,14 @@ struct SearchStepWise {
|
|||||||
bool step() {
|
bool step() {
|
||||||
if (remaining.size() == 0) {
|
if (remaining.size() == 0) {
|
||||||
return true;
|
return true;
|
||||||
} else {
|
}
|
||||||
auto *child = getChild(n, remaining[0]);
|
auto *child = getChild(n, remaining[0]);
|
||||||
if (child != nullptr) {
|
if (child == nullptr) {
|
||||||
int i = 0;
|
return true;
|
||||||
for (; i < child->partialKeyLen; ++i) {
|
|
||||||
if (!(i + 1 < int(remaining.size()) &&
|
|
||||||
remaining[i + 1] == child->partialKey[i])) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
int cl = std::min<int>(child->partialKeyLen, remaining.size() - 1);
|
||||||
|
int i = longestCommonPrefixPartialKey(child->partialKey,
|
||||||
|
remaining.data() + 1, cl);
|
||||||
if (i != child->partialKeyLen) {
|
if (i != child->partialKeyLen) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -781,10 +779,6 @@ struct SearchStepWise {
|
|||||||
remaining =
|
remaining =
|
||||||
remaining.subspan(1 + child->partialKeyLen,
|
remaining.subspan(1 + child->partialKeyLen,
|
||||||
remaining.size() - (1 + child->partialKeyLen));
|
remaining.size() - (1 + child->partialKeyLen));
|
||||||
} else {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user