Use longestCommonPrefixPartialKey in insert
This commit is contained in:
@@ -1389,10 +1389,10 @@ bool checkRangeRead(Node *n, std::span<const uint8_t> begin,
|
||||
for (;;) {
|
||||
auto &self = *self_;
|
||||
// Handle an existing partial key
|
||||
int partialKeyIndex = 0;
|
||||
for (; partialKeyIndex < self->partialKeyLen; ++partialKeyIndex) {
|
||||
if (partialKeyIndex == int(key.size()) ||
|
||||
self->partialKey[partialKeyIndex] != key[partialKeyIndex]) {
|
||||
int commonLen = std::min<int>(self->partialKeyLen, key.size());
|
||||
int partialKeyIndex =
|
||||
longestCommonPrefixPartialKey(self->partialKey, key.data(), commonLen);
|
||||
if (partialKeyIndex < self->partialKeyLen) {
|
||||
auto *old = self;
|
||||
self = allocators->node4.allocate();
|
||||
self->maxVersion = old->maxVersion;
|
||||
@@ -1409,8 +1409,6 @@ bool checkRangeRead(Node *n, std::span<const uint8_t> begin,
|
||||
memmove(old->partialKey, old->partialKey + partialKeyIndex + 1,
|
||||
old->partialKeyLen - (partialKeyIndex + 1));
|
||||
old->partialKeyLen -= partialKeyIndex + 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
key = key.subspan(partialKeyIndex, key.size() - partialKeyIndex);
|
||||
|
||||
|
Reference in New Issue
Block a user