aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2023-01-10 08:36:30 +0100
committerGitHub <noreply@github.com>2023-01-10 08:36:30 +0100
commit288e97e863e7e6c0a52b0ed1ea2d74d69a3f30ae (patch)
tree310ccdc21f8fbc78fe64e81f62f6bfa7bb80d761 /searchlib
parentd25d85b372f5305f3c3bb996295fb97eff8a9788 (diff)
parent3081c121c2e06d50a04f31287813893574b4f310 (diff)
Merge pull request #25469 from vespa-engine/toregge/add-field-length-asserts
Add field length asserts.
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/vespa/searchlib/memoryindex/field_inverter.cpp4
-rw-r--r--searchlib/src/vespa/searchlib/memoryindex/ordered_field_index_inserter.cpp1
2 files changed, 5 insertions, 0 deletions
diff --git a/searchlib/src/vespa/searchlib/memoryindex/field_inverter.cpp b/searchlib/src/vespa/searchlib/memoryindex/field_inverter.cpp
index e8d9259ad20..a05b39a74a9 100644
--- a/searchlib/src/vespa/searchlib/memoryindex/field_inverter.cpp
+++ b/searchlib/src/vespa/searchlib/memoryindex/field_inverter.cpp
@@ -543,6 +543,7 @@ FieldInverter::pushDocuments()
uint32_t lastDocId = 0;
vespalib::stringref word;
bool emptyFeatures = true;
+ uint32_t last_field_length = 0;
_inserter.rewind();
@@ -574,12 +575,15 @@ FieldInverter::pushDocuments()
lastWordPos = NO_WORD_POS;
const ElemInfo &elem = _elems[i._elemRef];
_features.set_field_length(elem.get_field_length());
+ last_field_length = elem.get_field_length();
} else {
continue; // ignore dup remove
}
} else {
// removes must come before non-removes
assert(!i.removed());
+ const ElemInfo &elem = _elems[i._elemRef];
+ assert(last_field_length == elem.get_field_length());
}
const ElemInfo &elem = _elems[i._elemRef];
if (i._wordPos != lastWordPos || i._elemId != lastElemId) {
diff --git a/searchlib/src/vespa/searchlib/memoryindex/ordered_field_index_inserter.cpp b/searchlib/src/vespa/searchlib/memoryindex/ordered_field_index_inserter.cpp
index a6bb45620e4..1f2f660b0e6 100644
--- a/searchlib/src/vespa/searchlib/memoryindex/ordered_field_index_inserter.cpp
+++ b/searchlib/src/vespa/searchlib/memoryindex/ordered_field_index_inserter.cpp
@@ -145,6 +145,7 @@ OrderedFieldIndexInserter<interleaved_features>::add(uint32_t docId,
assert(docId != noDocId);
assert(_prevDocId == noDocId || _prevDocId < docId ||
(_prevDocId == docId && !_prevAdd));
+ assert(features.num_occs() <= features.field_length());
vespalib::datastore::EntryRef featureRef = _fieldIndex.addFeatures(features);
_adds.push_back(PostingListKeyDataType(docId, PostingListEntryType(featureRef,
cap_u16(features.num_occs()),