summaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@yahooinc.com>2022-10-13 10:16:09 +0200
committerTor Egge <Tor.Egge@yahooinc.com>2022-10-13 10:16:09 +0200
commit85431a267f99aa87cc26216f6c09aee595a31511 (patch)
tree63b5caf0ac5bcc4ffe28e86e9320f03dde2b03b7 /searchlib
parent9259007b603c4f5ec98597a4e1bf63e23cb660a6 (diff)
Add explicit instantiation of more classes in attribute vector code.
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/vespa/searchlib/attribute/CMakeLists.txt2
-rw-r--r--searchlib/src/vespa/searchlib/attribute/attrvector.cpp3
-rw-r--r--searchlib/src/vespa/searchlib/attribute/multi_enum_search_context.cpp15
-rw-r--r--searchlib/src/vespa/searchlib/attribute/single_enum_search_context.cpp18
4 files changed, 38 insertions, 0 deletions
diff --git a/searchlib/src/vespa/searchlib/attribute/CMakeLists.txt b/searchlib/src/vespa/searchlib/attribute/CMakeLists.txt
index 5e86c350b55..704db67aa03 100644
--- a/searchlib/src/vespa/searchlib/attribute/CMakeLists.txt
+++ b/searchlib/src/vespa/searchlib/attribute/CMakeLists.txt
@@ -73,6 +73,7 @@ vespa_add_library(searchlib_attribute OBJECT
loadedenumvalue.cpp
loadednumericvalue.cpp
loadedvalue.cpp
+ multi_enum_search_context.cpp
multi_numeric_enum_search_context.cpp
multi_numeric_flag_search_context.cpp
multi_numeric_search_context.cpp
@@ -119,6 +120,7 @@ vespa_add_library(searchlib_attribute OBJECT
singlesmallnumericattribute.cpp
singlestringattribute.cpp
singlestringpostattribute.cpp
+ single_enum_search_context.cpp
single_numeric_enum_search_context.cpp
single_numeric_search_context.cpp
single_small_numeric_search_context.cpp
diff --git a/searchlib/src/vespa/searchlib/attribute/attrvector.cpp b/searchlib/src/vespa/searchlib/attribute/attrvector.cpp
index d5ef41243e7..4a0bdafae8f 100644
--- a/searchlib/src/vespa/searchlib/attribute/attrvector.cpp
+++ b/searchlib/src/vespa/searchlib/attribute/attrvector.cpp
@@ -203,4 +203,7 @@ bool StringDirectAttribute::addDoc(DocId & doc)
return false;
}
+template class NumericDirectAttribute<IntegerAttributeTemplate<int64_t>>;
+template class NumericDirectAttribute<FloatingPointAttributeTemplate<double>>;
+
} // namespace search
diff --git a/searchlib/src/vespa/searchlib/attribute/multi_enum_search_context.cpp b/searchlib/src/vespa/searchlib/attribute/multi_enum_search_context.cpp
new file mode 100644
index 00000000000..566d8e37d89
--- /dev/null
+++ b/searchlib/src/vespa/searchlib/attribute/multi_enum_search_context.cpp
@@ -0,0 +1,15 @@
+// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+
+#include "multi_enum_search_context.hpp"
+#include "string_search_context.h"
+
+using ValueRef = vespalib::datastore::AtomicEntryRef;
+using WeightedValueRef = search::multivalue::WeightedValue<vespalib::datastore::AtomicEntryRef>;
+
+namespace search::attribute {
+
+template class MultiEnumSearchContext<const char *, StringSearchContext, ValueRef>;
+
+template class MultiEnumSearchContext<const char *, StringSearchContext, WeightedValueRef>;
+
+}
diff --git a/searchlib/src/vespa/searchlib/attribute/single_enum_search_context.cpp b/searchlib/src/vespa/searchlib/attribute/single_enum_search_context.cpp
new file mode 100644
index 00000000000..c7faeaba977
--- /dev/null
+++ b/searchlib/src/vespa/searchlib/attribute/single_enum_search_context.cpp
@@ -0,0 +1,18 @@
+// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+
+#include "single_enum_search_context.hpp"
+#include "string_search_context.h"
+#include "numeric_range_matcher.h"
+#include "numeric_search_context.h"
+
+namespace search::attribute {
+
+template class SingleEnumSearchContext<const char*, StringSearchContext>;
+template class SingleEnumSearchContext<int8_t, NumericSearchContext<NumericRangeMatcher<int8_t>>>;
+template class SingleEnumSearchContext<int16_t, NumericSearchContext<NumericRangeMatcher<int16_t>>>;
+template class SingleEnumSearchContext<int32_t, NumericSearchContext<NumericRangeMatcher<int32_t>>>;
+template class SingleEnumSearchContext<int64_t, NumericSearchContext<NumericRangeMatcher<int64_t>>>;
+template class SingleEnumSearchContext<float, NumericSearchContext<NumericRangeMatcher<float>>>;
+template class SingleEnumSearchContext<double, NumericSearchContext<NumericRangeMatcher<double>>>;
+
+}