summaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2022-03-03 22:17:44 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2022-03-03 23:55:36 +0000
commit7c7ab8fbb3645a613c13c95ccacbd0600f463465 (patch)
tree4be65678358a09dd1c8b87656330db0c35bfd1ca /searchlib
parent688816d53e31cb463e20a9507952983dfc9baff6 (diff)
Reduce use of Identifiable for document::DatatType
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/tests/aggregator/perdocexpr.cpp2
-rw-r--r--searchlib/src/tests/index/doctypebuilder/doctypebuilder_test.cpp1
-rw-r--r--searchlib/src/vespa/searchlib/index/docbuilder.cpp25
-rw-r--r--searchlib/src/vespa/searchlib/index/docbuilder.h20
-rw-r--r--searchlib/src/vespa/searchlib/index/doctypebuilder.cpp2
-rw-r--r--searchlib/src/vespa/searchlib/index/doctypebuilder.h1
-rw-r--r--searchlib/src/vespa/searchlib/memoryindex/field_inverter.h2
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 {