diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2022-03-03 22:17:44 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2022-03-03 23:55:36 +0000 |
commit | 7c7ab8fbb3645a613c13c95ccacbd0600f463465 (patch) | |
tree | 4be65678358a09dd1c8b87656330db0c35bfd1ca /searchlib | |
parent | 688816d53e31cb463e20a9507952983dfc9baff6 (diff) |
Reduce use of Identifiable for document::DatatType
Diffstat (limited to 'searchlib')
7 files changed, 34 insertions, 19 deletions
diff --git a/searchlib/src/tests/aggregator/perdocexpr.cpp b/searchlib/src/tests/aggregator/perdocexpr.cpp index 291114ffa90..6e3e6bf3353 100644 --- a/searchlib/src/tests/aggregator/perdocexpr.cpp +++ b/searchlib/src/tests/aggregator/perdocexpr.cpp @@ -8,6 +8,8 @@ #include <vespa/vespalib/objects/objectdumper.h> #include <vespa/vespalib/testkit/testapp.h> #include <vespa/document/base/testdocman.h> +#include <vespa/document/fieldvalue/bytefieldvalue.h> +#include <vespa/document/fieldvalue/weightedsetfieldvalue.h> #include <vespa/vespalib/util/md5.h> #include <vespa/searchlib/expression/getdocidnamespacespecificfunctionnode.h> #include <vespa/searchlib/expression/documentfieldnode.h> diff --git a/searchlib/src/tests/index/doctypebuilder/doctypebuilder_test.cpp b/searchlib/src/tests/index/doctypebuilder/doctypebuilder_test.cpp index f8a07270292..396c7c19cc6 100644 --- a/searchlib/src/tests/index/doctypebuilder/doctypebuilder_test.cpp +++ b/searchlib/src/tests/index/doctypebuilder/doctypebuilder_test.cpp @@ -1,6 +1,7 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #include <vespa/document/repo/documenttyperepo.h> #include <vespa/searchlib/index/doctypebuilder.h> +#include <vespa/document/datatype/documenttype.h> #include <vespa/vespalib/testkit/testapp.h> using namespace document; diff --git a/searchlib/src/vespa/searchlib/index/docbuilder.cpp b/searchlib/src/vespa/searchlib/index/docbuilder.cpp index 6e7a87dc713..0792dd7be61 100644 --- a/searchlib/src/vespa/searchlib/index/docbuilder.cpp +++ b/searchlib/src/vespa/searchlib/index/docbuilder.cpp @@ -2,6 +2,7 @@ #include "docbuilder.h" #include <vespa/document/datatype/urldatatype.h> +#include <vespa/document/datatype/documenttype.h> #include <vespa/document/repo/documenttyperepo.h> #include <vespa/fastlib/text/unicodeutil.h> #include <vespa/vespalib/geo/zcurve.h> @@ -605,8 +606,7 @@ DocBuilder::SummaryFieldHandle::addRaw(const void *buf, size_t len) } } -DocBuilder::DocumentHandle::DocumentHandle(document::Document &doc, - const vespalib::string & docId) +DocBuilder::DocumentHandle::DocumentHandle(document::Document &doc, const vespalib::string & docId) : _type(&doc.getType()), _doc(&doc), _fieldHandle(), @@ -615,6 +615,27 @@ DocBuilder::DocumentHandle::DocumentHandle(document::Document &doc, (void) docId; } +DocBuilder::DocumentHandle::~DocumentHandle() = default; + +void +DocBuilder::DocumentHandle::startIndexField(const Schema::Field & sfield) { + _fieldHandle.reset(new IndexFieldHandle(_repo, _type->getField(sfield.getName()), sfield)); +} +void +DocBuilder::DocumentHandle::startAttributeField(const Schema::Field & sfield) { + _fieldHandle.reset(new AttributeFieldHandle(_type->getField(sfield.getName()), sfield)); +} +void +DocBuilder::DocumentHandle::startSummaryField(const Schema::Field & sfield) { + _fieldHandle.reset(new SummaryFieldHandle(_type->getField(sfield.getName()), sfield)); +} +void +DocBuilder::DocumentHandle::endField() { + _fieldHandle->onEndField(); + _doc->setValue(_type->getField(_fieldHandle->getField().getName()), *_fieldHandle->getValue()); + _fieldHandle.reset(); +} + DocBuilder::DocBuilder(const Schema &schema) : _schema(schema), _doctypes_config(DocTypeBuilder(schema).makeConfig()), diff --git a/searchlib/src/vespa/searchlib/index/docbuilder.h b/searchlib/src/vespa/searchlib/index/docbuilder.h index 2ee28c90827..a22096cfdbe 100644 --- a/searchlib/src/vespa/searchlib/index/docbuilder.h +++ b/searchlib/src/vespa/searchlib/index/docbuilder.h @@ -3,7 +3,6 @@ #pragma once #include "doctypebuilder.h" -#include <vespa/document/datatype/datatypes.h> #include <vespa/document/repo/fixedtyperepo.h> #include <vespa/document/fieldvalue/fieldvalues.h> #include <vespa/document/annotation/annotation.h> @@ -232,21 +231,12 @@ private: document::FixedTypeRepo _repo; public: DocumentHandle(document::Document &doc, const vespalib::string & docId); + ~DocumentHandle(); const FieldHandle::SP & getFieldHandle() const { return _fieldHandle; } - void startIndexField(const Schema::Field & sfield) { - _fieldHandle.reset(new IndexFieldHandle(_repo, _type->getField(sfield.getName()), sfield)); - } - void startAttributeField(const Schema::Field & sfield) { - _fieldHandle.reset(new AttributeFieldHandle(_type->getField(sfield.getName()), sfield)); - } - void startSummaryField(const Schema::Field & sfield) { - _fieldHandle.reset(new SummaryFieldHandle(_type->getField(sfield.getName()), sfield)); - } - void endField() { - _fieldHandle->onEndField(); - _doc->setValue(_type->getField(_fieldHandle->getField().getName()), *_fieldHandle->getValue()); - _fieldHandle.reset(); - } + void startIndexField(const Schema::Field & sfield); + void startAttributeField(const Schema::Field & sfield); + void startSummaryField(const Schema::Field & sfield); + void endField(); void endDocument(const document::Document::UP & doc) { (void) doc; } diff --git a/searchlib/src/vespa/searchlib/index/doctypebuilder.cpp b/searchlib/src/vespa/searchlib/index/doctypebuilder.cpp index 1ddfbff54a8..2b81b8c3a57 100644 --- a/searchlib/src/vespa/searchlib/index/doctypebuilder.cpp +++ b/searchlib/src/vespa/searchlib/index/doctypebuilder.cpp @@ -3,7 +3,9 @@ #include "doctypebuilder.h" #include <vespa/document/datatype/urldatatype.h> #include <vespa/document/datatype/tensor_data_type.h> +#include <vespa/document/datatype/documenttype.h> #include <vespa/document/repo/configbuilder.h> +#include <set> using namespace document; diff --git a/searchlib/src/vespa/searchlib/index/doctypebuilder.h b/searchlib/src/vespa/searchlib/index/doctypebuilder.h index c66ae66e250..4db0ba5b0e3 100644 --- a/searchlib/src/vespa/searchlib/index/doctypebuilder.h +++ b/searchlib/src/vespa/searchlib/index/doctypebuilder.h @@ -4,7 +4,6 @@ #include "schema_index_fields.h" #include <vespa/document/config/config-documenttypes.h> -#include <vespa/document/datatype/datatypes.h> #include <vespa/document/fieldvalue/fieldvalues.h> #include <vespa/vespalib/util/exception.h> #include <vespa/vespalib/util/stringfmt.h> diff --git a/searchlib/src/vespa/searchlib/memoryindex/field_inverter.h b/searchlib/src/vespa/searchlib/memoryindex/field_inverter.h index 36dd6339b54..1c1998fb423 100644 --- a/searchlib/src/vespa/searchlib/memoryindex/field_inverter.h +++ b/searchlib/src/vespa/searchlib/memoryindex/field_inverter.h @@ -4,10 +4,10 @@ #include "i_field_index_remove_listener.h" #include <vespa/document/annotation/span.h> -#include <vespa/document/datatype/datatypes.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> #include <limits> namespace search::index { |