diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2022-03-07 16:02:19 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-03-07 16:02:19 +0100 |
commit | 2fef7d4a9706dab136cad7edd384e289263726fd (patch) | |
tree | 6900d2191ebe73e3c9f41281bdbaa6d54f21acf7 /searchlib | |
parent | dd8ce8c64faaf340eea43e09115c462ad923746b (diff) | |
parent | 277edccb6a50928b8d39ba36e12aecfd6aa45d07 (diff) |
Merge pull request #21568 from vespa-engine/balder/gc-convenience-interfaces-for-assigning-primitive-fieldvalues
GC redundant convenience wasy of assigning primitive field values.
Diffstat (limited to 'searchlib')
8 files changed, 25 insertions, 13 deletions
diff --git a/searchlib/src/apps/tests/memoryindexstress_test.cpp b/searchlib/src/apps/tests/memoryindexstress_test.cpp index fcac0be8f85..07747a66892 100644 --- a/searchlib/src/apps/tests/memoryindexstress_test.cpp +++ b/searchlib/src/apps/tests/memoryindexstress_test.cpp @@ -137,7 +137,7 @@ setFieldValue(Document &doc, const vespalib::string &fieldName, const vespalib::string &fieldString) { std::unique_ptr<StringFieldValue> fieldValue = - std::make_unique<StringFieldValue>(fieldString); + StringFieldValue::make(fieldString); document::FixedTypeRepo repo(*doc.getRepo(), doc.getType()); tokenizeStringFieldValue(repo, *fieldValue); doc.setFieldValue(doc.getField(fieldName), std::move(fieldValue)); diff --git a/searchlib/src/tests/docstore/document_store_visitor/document_store_visitor_test.cpp b/searchlib/src/tests/docstore/document_store_visitor/document_store_visitor_test.cpp index 072efb06a07..c08aa7ce9fc 100644 --- a/searchlib/src/tests/docstore/document_store_visitor/document_store_visitor_test.cpp +++ b/searchlib/src/tests/docstore/document_store_visitor/document_store_visitor_test.cpp @@ -8,6 +8,7 @@ #include <vespa/searchlib/common/bitvector.h> #include <vespa/document/repo/documenttyperepo.h> #include <vespa/document/datatype/documenttype.h> +#include <vespa/document/fieldvalue/stringfieldvalue.h> #include <vespa/document/repo/configbuilder.h> #include <vespa/document/fieldvalue/document.h> #include <vespa/vespalib/io/fileutil.h> @@ -26,6 +27,7 @@ using document::Document; using document::DocumentId; using document::DocumentType; using document::DocumentTypeRepo; +using document::StringFieldValue; using vespalib::compression::CompressionConfig; using vespalib::asciistream; using index::DummyFileHeaderContext; @@ -66,9 +68,9 @@ makeDoc(const DocumentTypeRepo &repo, uint32_t i, bool before) mainstr << (j + i * 1000) << " "; } mainstr << " and end field"; - doc->set("main", mainstr.c_str()); + doc->setValue("main", StringFieldValue::make(mainstr.str())); if (!before) { - doc->set("extra", "foo"); + doc->setValue("extra", StringFieldValue::make("foo")); } return doc; @@ -160,7 +162,7 @@ MyRewriteVisitor::visit(uint32_t lid, const std::shared_ptr<Document> &doc) Document::UP expDoc(makeDoc(_repo, lid, _before)); EXPECT_TRUE(*expDoc == *doc); _valid->setBitAndMaintainCount(lid); - doc->set("extra", "foo"); + doc->setValue("extra", StringFieldValue::make("foo")); } diff --git a/searchlib/src/tests/docstore/logdatastore/logdatastore_test.cpp b/searchlib/src/tests/docstore/logdatastore/logdatastore_test.cpp index 378babb6ee1..bb2d0177dd9 100644 --- a/searchlib/src/tests/docstore/logdatastore/logdatastore_test.cpp +++ b/searchlib/src/tests/docstore/logdatastore/logdatastore_test.cpp @@ -4,6 +4,7 @@ #include <vespa/document/repo/configbuilder.h> #include <vespa/document/repo/documenttyperepo.h> #include <vespa/document/datatype/documenttype.h> +#include <vespa/document/fieldvalue/stringfieldvalue.h> #include <vespa/document/fieldvalue/document.h> #include <vespa/searchlib/docstore/chunkformats.h> #include <vespa/searchlib/docstore/logdocumentstore.h> @@ -19,6 +20,7 @@ #include <iomanip> using document::BucketId; +using document::StringFieldValue; using namespace search::docstore; using namespace search; using namespace vespalib::alloc; @@ -429,9 +431,9 @@ makeDoc(const DocumentTypeRepo &repo, uint32_t i, bool extra_field, size_t numRe mainstr << (j + i * 1000) << " "; } mainstr << " and end field"; - doc->set("main", mainstr.c_str()); + doc->setValue("main", StringFieldValue::make(mainstr.str())); if (extra_field) { - doc->set("extra", "foo"); + doc->setValue("extra", StringFieldValue::make("foo")); } return doc; } diff --git a/searchlib/src/tests/grouping/grouping_serialization_test.cpp b/searchlib/src/tests/grouping/grouping_serialization_test.cpp index ea96c698a02..39a5feab111 100644 --- a/searchlib/src/tests/grouping/grouping_serialization_test.cpp +++ b/searchlib/src/tests/grouping/grouping_serialization_test.cpp @@ -7,6 +7,7 @@ #include <vespa/searchlib/expression/getdocidnamespacespecificfunctionnode.h> #include <vespa/searchlib/expression/getymumchecksumfunctionnode.h> #include <vespa/searchlib/expression/documentfieldnode.h> +#include <vespa/document/base/documentid.h> #include <vespa/vespalib/testkit/test_kit.h> #include <fstream> #include <vespa/log/log.h> diff --git a/searchlib/src/vespa/searchlib/expression/documentaccessornode.h b/searchlib/src/vespa/searchlib/expression/documentaccessornode.h index 0efe7d023f6..453b8f82bf0 100644 --- a/searchlib/src/vespa/searchlib/expression/documentaccessornode.h +++ b/searchlib/src/vespa/searchlib/expression/documentaccessornode.h @@ -2,12 +2,14 @@ #pragma once #include "expressionnode.h" -#include <vespa/document/fieldvalue/document.h> #include <vespa/vespalib/objects/objectoperation.h> #include <vespa/vespalib/objects/objectpredicate.h> -namespace search { -namespace expression { +namespace document { + class DocumentType; + class Document; +} +namespace search::expression { class DocumentAccessorNode : public ExpressionNode { @@ -33,5 +35,3 @@ private: }; } -} - diff --git a/searchlib/src/vespa/searchlib/expression/documentfieldnode.h b/searchlib/src/vespa/searchlib/expression/documentfieldnode.h index b85ba0f4e9b..fd3923bd4a0 100644 --- a/searchlib/src/vespa/searchlib/expression/documentfieldnode.h +++ b/searchlib/src/vespa/searchlib/expression/documentfieldnode.h @@ -5,6 +5,7 @@ #include "resultnode.h" #include "resultvector.h" #include <vespa/document/fieldvalue/iteratorhandler.h> +#include <vespa/document/base/fieldpath.h> namespace search::expression { diff --git a/searchlib/src/vespa/searchlib/memoryindex/field_inverter.h b/searchlib/src/vespa/searchlib/memoryindex/field_inverter.h index 1c1998fb423..5a7c8d0f7bc 100644 --- a/searchlib/src/vespa/searchlib/memoryindex/field_inverter.h +++ b/searchlib/src/vespa/searchlib/memoryindex/field_inverter.h @@ -4,7 +4,6 @@ #include "i_field_index_remove_listener.h" #include <vespa/document/annotation/span.h> -#include <vespa/document/fieldvalue/document.h> #include <vespa/searchlib/index/docidandfeatures.h> #include <vespa/vespalib/stllike/allocator.h> #include <vespa/vespalib/stllike/hash_map.h> @@ -15,6 +14,12 @@ namespace search::index { class Schema; } +namespace document { + class FieldValue; + class StringFieldValue; + class ArrayFieldValue; + class WeightedSetFieldValue; +} namespace search::memoryindex { class IOrderedFieldIndexInserter; @@ -299,7 +304,7 @@ public: /** * Invert a normal text field, based on annotations. */ - void invertField(uint32_t docId, const document::FieldValue::UP &val); + void invertField(uint32_t docId, const std::unique_ptr<document::FieldValue> &val); /** * Setup remove of word in old version of document. diff --git a/searchlib/src/vespa/searchlib/memoryindex/invert_task.cpp b/searchlib/src/vespa/searchlib/memoryindex/invert_task.cpp index fb6e1328b8b..8fa9de7da74 100644 --- a/searchlib/src/vespa/searchlib/memoryindex/invert_task.cpp +++ b/searchlib/src/vespa/searchlib/memoryindex/invert_task.cpp @@ -5,6 +5,7 @@ #include "field_inverter.h" #include "invert_context.h" #include "url_field_inverter.h" +#include <vespa/document/fieldvalue/document.h> namespace search::memoryindex { |