summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2023-03-25 00:39:58 +0100
committerGitHub <noreply@github.com>2023-03-25 00:39:58 +0100
commit9afdac16096d84e0f8ef96b8be5bad6e0c4e218f (patch)
treeb1406a4f83fddb321530041987795e6fd22bde40
parentb07ffbf085e06dc307f63ed341b1dbc350183a39 (diff)
parent45ebdd329b1015ffff59f9e2e6640a2e979d1d14 (diff)
Merge pull request #26582 from vespa-engine/toregge/use-explicit-instantiations-of-multi-value-numeric-posting-attribute-and-multi-value-string-posting-attribute
Use explicit instantiations of MultiValueNumericPostingAttribute and
-rw-r--r--searchlib/src/vespa/searchlib/attribute/createarrayfastsearch.cpp5
-rw-r--r--searchlib/src/vespa/searchlib/attribute/createsetfastsearch.cpp5
-rw-r--r--searchlib/src/vespa/searchlib/attribute/multinumericenumattribute.cpp16
-rw-r--r--searchlib/src/vespa/searchlib/attribute/multinumericenumattribute.hpp1
-rw-r--r--searchlib/src/vespa/searchlib/attribute/multinumericpostattribute.cpp16
-rw-r--r--searchlib/src/vespa/searchlib/attribute/multinumericpostattribute.hpp1
-rw-r--r--searchlib/src/vespa/searchlib/attribute/multistringpostattribute.cpp3
7 files changed, 41 insertions, 6 deletions
diff --git a/searchlib/src/vespa/searchlib/attribute/createarrayfastsearch.cpp b/searchlib/src/vespa/searchlib/attribute/createarrayfastsearch.cpp
index 2a1ddee19f3..ba8cf763c6e 100644
--- a/searchlib/src/vespa/searchlib/attribute/createarrayfastsearch.cpp
+++ b/searchlib/src/vespa/searchlib/attribute/createarrayfastsearch.cpp
@@ -13,9 +13,8 @@ LOG_SETUP(".createarrayfastsearch");
#include "attributevector.hpp"
#include "enumstore.hpp"
#include "enumattribute.hpp"
-#include "multinumericenumattribute.hpp"
-#include "multinumericpostattribute.hpp"
-#include "multistringpostattribute.hpp"
+#include "multinumericpostattribute.h"
+#include "multistringpostattribute.h"
namespace search {
diff --git a/searchlib/src/vespa/searchlib/attribute/createsetfastsearch.cpp b/searchlib/src/vespa/searchlib/attribute/createsetfastsearch.cpp
index d706a9c207c..457aeb4c31f 100644
--- a/searchlib/src/vespa/searchlib/attribute/createsetfastsearch.cpp
+++ b/searchlib/src/vespa/searchlib/attribute/createsetfastsearch.cpp
@@ -11,9 +11,8 @@ LOG_SETUP(".createsetfastsearch");
#include "attributevector.hpp"
#include "enumstore.hpp"
#include "enumattribute.hpp"
-#include "multinumericenumattribute.hpp"
-#include "multinumericpostattribute.hpp"
-#include "multistringpostattribute.hpp"
+#include "multinumericpostattribute.h"
+#include "multistringpostattribute.h"
namespace search {
diff --git a/searchlib/src/vespa/searchlib/attribute/multinumericenumattribute.cpp b/searchlib/src/vespa/searchlib/attribute/multinumericenumattribute.cpp
index 3626fcd4bd3..2a1a96d15a9 100644
--- a/searchlib/src/vespa/searchlib/attribute/multinumericenumattribute.cpp
+++ b/searchlib/src/vespa/searchlib/attribute/multinumericenumattribute.cpp
@@ -1,11 +1,27 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#include "multinumericenumattribute.hpp"
+#include "enumattribute.h"
+#include "floatbase.h"
+#include "integerbase.h"
#include <vespa/log/log.h>
LOG_SETUP(".searchlib.attribute.multi_numeric_enum_attribute");
namespace search {
+template class MultiValueNumericEnumAttribute<EnumAttribute<IntegerAttributeTemplate<int8_t>>, vespalib::datastore::AtomicEntryRef>;
+template class MultiValueNumericEnumAttribute<EnumAttribute<IntegerAttributeTemplate<int16_t>>, vespalib::datastore::AtomicEntryRef>;
+template class MultiValueNumericEnumAttribute<EnumAttribute<IntegerAttributeTemplate<int32_t>>, vespalib::datastore::AtomicEntryRef>;
+template class MultiValueNumericEnumAttribute<EnumAttribute<IntegerAttributeTemplate<int64_t>>, vespalib::datastore::AtomicEntryRef>;
+template class MultiValueNumericEnumAttribute<EnumAttribute<FloatingPointAttributeTemplate<float>>, vespalib::datastore::AtomicEntryRef>;
+template class MultiValueNumericEnumAttribute<EnumAttribute<FloatingPointAttributeTemplate<double>>, vespalib::datastore::AtomicEntryRef>;
+template class MultiValueNumericEnumAttribute<EnumAttribute<IntegerAttributeTemplate<int8_t>>, multivalue::WeightedValue<vespalib::datastore::AtomicEntryRef>>;
+template class MultiValueNumericEnumAttribute<EnumAttribute<IntegerAttributeTemplate<int16_t>>, multivalue::WeightedValue<vespalib::datastore::AtomicEntryRef>>;
+template class MultiValueNumericEnumAttribute<EnumAttribute<IntegerAttributeTemplate<int32_t>>, multivalue::WeightedValue<vespalib::datastore::AtomicEntryRef>>;
+template class MultiValueNumericEnumAttribute<EnumAttribute<IntegerAttributeTemplate<int64_t>>, multivalue::WeightedValue<vespalib::datastore::AtomicEntryRef>>;
+template class MultiValueNumericEnumAttribute<EnumAttribute<FloatingPointAttributeTemplate<float>>, multivalue::WeightedValue<vespalib::datastore::AtomicEntryRef>>;
+template class MultiValueNumericEnumAttribute<EnumAttribute<FloatingPointAttributeTemplate<double>>, multivalue::WeightedValue<vespalib::datastore::AtomicEntryRef>>;
+
} // namespace search
diff --git a/searchlib/src/vespa/searchlib/attribute/multinumericenumattribute.hpp b/searchlib/src/vespa/searchlib/attribute/multinumericenumattribute.hpp
index 9a37677801e..edfea23f48d 100644
--- a/searchlib/src/vespa/searchlib/attribute/multinumericenumattribute.hpp
+++ b/searchlib/src/vespa/searchlib/attribute/multinumericenumattribute.hpp
@@ -10,6 +10,7 @@
#include "multi_numeric_enum_search_context.h"
#include <vespa/searchlib/query/query_term_simple.h>
#include <vespa/searchlib/util/fileutil.hpp>
+#include <vespa/vespalib/util/array.hpp>
#include <vespa/vespalib/util/stash.h>
namespace search {
diff --git a/searchlib/src/vespa/searchlib/attribute/multinumericpostattribute.cpp b/searchlib/src/vespa/searchlib/attribute/multinumericpostattribute.cpp
index e60fddddac6..abae1cb6f76 100644
--- a/searchlib/src/vespa/searchlib/attribute/multinumericpostattribute.cpp
+++ b/searchlib/src/vespa/searchlib/attribute/multinumericpostattribute.cpp
@@ -1,8 +1,24 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#include "multinumericpostattribute.hpp"
+#include "enumattribute.h"
+#include "floatbase.h"
+#include "integerbase.h"
namespace search {
+template class MultiValueNumericPostingAttribute<EnumAttribute<IntegerAttributeTemplate<int8_t>>, vespalib::datastore::AtomicEntryRef>;
+template class MultiValueNumericPostingAttribute<EnumAttribute<IntegerAttributeTemplate<int16_t>>, vespalib::datastore::AtomicEntryRef>;
+template class MultiValueNumericPostingAttribute<EnumAttribute<IntegerAttributeTemplate<int32_t>>, vespalib::datastore::AtomicEntryRef>;
+template class MultiValueNumericPostingAttribute<EnumAttribute<IntegerAttributeTemplate<int64_t>>, vespalib::datastore::AtomicEntryRef>;
+template class MultiValueNumericPostingAttribute<EnumAttribute<FloatingPointAttributeTemplate<float>>, vespalib::datastore::AtomicEntryRef>;
+template class MultiValueNumericPostingAttribute<EnumAttribute<FloatingPointAttributeTemplate<double>>, vespalib::datastore::AtomicEntryRef>;
+template class MultiValueNumericPostingAttribute<EnumAttribute<IntegerAttributeTemplate<int8_t>>, multivalue::WeightedValue<vespalib::datastore::AtomicEntryRef>>;
+template class MultiValueNumericPostingAttribute<EnumAttribute<IntegerAttributeTemplate<int16_t>>, multivalue::WeightedValue<vespalib::datastore::AtomicEntryRef>>;
+template class MultiValueNumericPostingAttribute<EnumAttribute<IntegerAttributeTemplate<int32_t>>, multivalue::WeightedValue<vespalib::datastore::AtomicEntryRef>>;
+template class MultiValueNumericPostingAttribute<EnumAttribute<IntegerAttributeTemplate<int64_t>>, multivalue::WeightedValue<vespalib::datastore::AtomicEntryRef>>;
+template class MultiValueNumericPostingAttribute<EnumAttribute<FloatingPointAttributeTemplate<float>>, multivalue::WeightedValue<vespalib::datastore::AtomicEntryRef>>;
+template class MultiValueNumericPostingAttribute<EnumAttribute<FloatingPointAttributeTemplate<double>>, multivalue::WeightedValue<vespalib::datastore::AtomicEntryRef>>;
+
} // namespace search
diff --git a/searchlib/src/vespa/searchlib/attribute/multinumericpostattribute.hpp b/searchlib/src/vespa/searchlib/attribute/multinumericpostattribute.hpp
index deee72dcf39..ea449300aef 100644
--- a/searchlib/src/vespa/searchlib/attribute/multinumericpostattribute.hpp
+++ b/searchlib/src/vespa/searchlib/attribute/multinumericpostattribute.hpp
@@ -4,6 +4,7 @@
#include "multinumericpostattribute.h"
#include "multi_numeric_enum_search_context.h"
+#include <vespa/searchcommon/attribute/config.h>
#include <charconv>
namespace search {
diff --git a/searchlib/src/vespa/searchlib/attribute/multistringpostattribute.cpp b/searchlib/src/vespa/searchlib/attribute/multistringpostattribute.cpp
index 7f2621d60f3..4d2823997cd 100644
--- a/searchlib/src/vespa/searchlib/attribute/multistringpostattribute.cpp
+++ b/searchlib/src/vespa/searchlib/attribute/multistringpostattribute.cpp
@@ -13,5 +13,8 @@ StringEnumIndexMapper::map(IEnumStore::Index original) const
return _dictionary.remap_index(original);
}
+template class MultiValueStringPostingAttributeT<EnumAttribute<StringAttribute>, vespalib::datastore::AtomicEntryRef>;
+template class MultiValueStringPostingAttributeT<EnumAttribute<StringAttribute>, multivalue::WeightedValue<vespalib::datastore::AtomicEntryRef>>;
+
} // namespace search