diff options
author | Tor Egge <Tor.Egge@online.no> | 2023-02-01 16:12:37 +0100 |
---|---|---|
committer | Tor Egge <Tor.Egge@online.no> | 2023-02-01 16:12:37 +0100 |
commit | 743234433a8fdaffe5d655c11ef258d6e1a40438 (patch) | |
tree | c3d96baafd485375428177ab3f4d18782bd8bb4d /searchlib | |
parent | 40eb5657068c2b1643b9bcf82476ad6ebe7b000d (diff) |
Throw new overflow exception with field name info in field inverter
whenever an overflow exception is caught.
Diffstat (limited to 'searchlib')
-rw-r--r-- | searchlib/src/vespa/searchlib/memoryindex/field_inverter.cpp | 17 | ||||
-rw-r--r-- | searchlib/src/vespa/searchlib/memoryindex/field_inverter.h | 2 |
2 files changed, 18 insertions, 1 deletions
diff --git a/searchlib/src/vespa/searchlib/memoryindex/field_inverter.cpp b/searchlib/src/vespa/searchlib/memoryindex/field_inverter.cpp index a05b39a74a9..25aff06b5ef 100644 --- a/searchlib/src/vespa/searchlib/memoryindex/field_inverter.cpp +++ b/searchlib/src/vespa/searchlib/memoryindex/field_inverter.cpp @@ -18,7 +18,9 @@ #include <vespa/searchlib/util/url.h> #include <vespa/vespalib/datastore/aligner.h> #include <vespa/vespalib/text/utf8.h> +#include <vespa/vespalib/util/exceptions.h> #include <vespa/vespalib/util/stringfmt.h> +#include <vespa/vespalib/stllike/asciistream.h> #include <vespa/vespalib/stllike/hash_map.hpp> #include <stdexcept> @@ -519,7 +521,7 @@ FieldInverter::applyRemoves() } void -FieldInverter::pushDocuments() +FieldInverter::push_documents_internal() { trimAbortedDocs(); @@ -605,5 +607,18 @@ FieldInverter::pushDocuments() reset(); } +void +FieldInverter::pushDocuments() +{ + try { + push_documents_internal(); + } catch (vespalib::OverflowException &e) { + const Schema::IndexField &field = _schema.getIndexField(_fieldId); + vespalib::asciistream s; + s << "FieldInverter::pushDocuments(), caught exception for field " << field.getName(); + throw vespalib::OverflowException(s.c_str(), e); + } +} + } diff --git a/searchlib/src/vespa/searchlib/memoryindex/field_inverter.h b/searchlib/src/vespa/searchlib/memoryindex/field_inverter.h index 7995dc56de8..1a582bf8099 100644 --- a/searchlib/src/vespa/searchlib/memoryindex/field_inverter.h +++ b/searchlib/src/vespa/searchlib/memoryindex/field_inverter.h @@ -248,6 +248,8 @@ public: VESPA_DLL_LOCAL void processAnnotations(const document::StringFieldValue &value); + void push_documents_internal(); + private: void processNormalDocTextField(const document::StringFieldValue &field); void processNormalDocArrayTextField(const document::ArrayFieldValue &field); |