summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@yahooinc.com>2023-03-22 17:00:31 +0100
committerGitHub <noreply@github.com>2023-03-22 17:00:31 +0100
commit03191bd6acb12a645b6e387e8e667d148d4a1fa3 (patch)
treed08a02436d08d80471c5f5cae036d244f2567223
parent5a78d21b77d9dc70896182a83d29e855214514b3 (diff)
parent2fa1b4cfb81b4a800bcea3b79d8def76214ffecb (diff)
Merge pull request #26534 from vespa-engine/toregge/add-explicit-instantiations-of-multi-value-attribute-and-multi-value-enum-attribute
Add explicit instantiations of MultiValueEnumAttribute and MultiValue…
-rw-r--r--searchlib/src/vespa/searchlib/attribute/multienumattribute.cpp24
-rw-r--r--searchlib/src/vespa/searchlib/attribute/multivalueattribute.cpp31
2 files changed, 55 insertions, 0 deletions
diff --git a/searchlib/src/vespa/searchlib/attribute/multienumattribute.cpp b/searchlib/src/vespa/searchlib/attribute/multienumattribute.cpp
index a8006d4e3b5..96a5f3ef506 100644
--- a/searchlib/src/vespa/searchlib/attribute/multienumattribute.cpp
+++ b/searchlib/src/vespa/searchlib/attribute/multienumattribute.cpp
@@ -1,10 +1,34 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#include "multienumattribute.hpp"
+#include "enumattribute.h"
#include "enummodifier.h"
+#include "floatbase.h"
+#include "integerbase.h"
+#include "stringbase.h"
+#include <vespa/vespalib/datastore/unique_store.hpp>
#include <vespa/vespalib/datastore/unique_store_remapper.hpp>
#include <stdexcept>
+namespace search {
+
+template class MultiValueEnumAttribute<EnumAttribute<StringAttribute>, vespalib::datastore::AtomicEntryRef>;
+template class MultiValueEnumAttribute<EnumAttribute<IntegerAttributeTemplate<int8_t>>, vespalib::datastore::AtomicEntryRef>;
+template class MultiValueEnumAttribute<EnumAttribute<IntegerAttributeTemplate<int16_t>>, vespalib::datastore::AtomicEntryRef>;
+template class MultiValueEnumAttribute<EnumAttribute<IntegerAttributeTemplate<int32_t>>, vespalib::datastore::AtomicEntryRef>;
+template class MultiValueEnumAttribute<EnumAttribute<IntegerAttributeTemplate<int64_t>>, vespalib::datastore::AtomicEntryRef>;
+template class MultiValueEnumAttribute<EnumAttribute<FloatingPointAttributeTemplate<float>>, vespalib::datastore::AtomicEntryRef>;
+template class MultiValueEnumAttribute<EnumAttribute<FloatingPointAttributeTemplate<double>>, vespalib::datastore::AtomicEntryRef>;
+template class MultiValueEnumAttribute<EnumAttribute<StringAttribute>, multivalue::WeightedValue<vespalib::datastore::AtomicEntryRef>>;
+template class MultiValueEnumAttribute<EnumAttribute<IntegerAttributeTemplate<int8_t>>, multivalue::WeightedValue<vespalib::datastore::AtomicEntryRef>>;
+template class MultiValueEnumAttribute<EnumAttribute<IntegerAttributeTemplate<int16_t>>, multivalue::WeightedValue<vespalib::datastore::AtomicEntryRef>>;
+template class MultiValueEnumAttribute<EnumAttribute<IntegerAttributeTemplate<int32_t>>, multivalue::WeightedValue<vespalib::datastore::AtomicEntryRef>>;
+template class MultiValueEnumAttribute<EnumAttribute<IntegerAttributeTemplate<int64_t>>, multivalue::WeightedValue<vespalib::datastore::AtomicEntryRef>>;
+template class MultiValueEnumAttribute<EnumAttribute<FloatingPointAttributeTemplate<float>>, multivalue::WeightedValue<vespalib::datastore::AtomicEntryRef>>;
+template class MultiValueEnumAttribute<EnumAttribute<FloatingPointAttributeTemplate<double>>, multivalue::WeightedValue<vespalib::datastore::AtomicEntryRef>>;
+
+}
+
namespace search::multienumattribute {
using EnumIndex = IEnumStore::Index;
diff --git a/searchlib/src/vespa/searchlib/attribute/multivalueattribute.cpp b/searchlib/src/vespa/searchlib/attribute/multivalueattribute.cpp
index eaccd249baa..3e4089bf4d1 100644
--- a/searchlib/src/vespa/searchlib/attribute/multivalueattribute.cpp
+++ b/searchlib/src/vespa/searchlib/attribute/multivalueattribute.cpp
@@ -1,8 +1,39 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#include "multivalueattribute.hpp"
+#include "enumattribute.h"
+#include "floatbase.h"
+#include "integerbase.h"
+#include "stringbase.h"
namespace search {
+template class MultiValueAttribute<IntegerAttributeTemplate<int8_t>, int8_t>;
+template class MultiValueAttribute<IntegerAttributeTemplate<int16_t>, int16_t>;
+template class MultiValueAttribute<IntegerAttributeTemplate<int32_t>, int32_t>;
+template class MultiValueAttribute<IntegerAttributeTemplate<int64_t>, int64_t>;
+template class MultiValueAttribute<FloatingPointAttributeTemplate<float>, float>;
+template class MultiValueAttribute<FloatingPointAttributeTemplate<double>, double>;
+template class MultiValueAttribute<IntegerAttributeTemplate<int8_t>, multivalue::WeightedValue<int8_t>>;
+template class MultiValueAttribute<IntegerAttributeTemplate<int16_t>, multivalue::WeightedValue<int16_t>>;
+template class MultiValueAttribute<IntegerAttributeTemplate<int32_t>, multivalue::WeightedValue<int32_t>>;
+template class MultiValueAttribute<IntegerAttributeTemplate<int64_t>, multivalue::WeightedValue<int64_t>>;
+template class MultiValueAttribute<FloatingPointAttributeTemplate<float>, multivalue::WeightedValue<float>>;
+template class MultiValueAttribute<FloatingPointAttributeTemplate<double>, multivalue::WeightedValue<double>>;
+template class MultiValueAttribute<EnumAttribute<StringAttribute>, vespalib::datastore::AtomicEntryRef>;
+template class MultiValueAttribute<EnumAttribute<IntegerAttributeTemplate<int8_t>>, vespalib::datastore::AtomicEntryRef>;
+template class MultiValueAttribute<EnumAttribute<IntegerAttributeTemplate<int16_t>>, vespalib::datastore::AtomicEntryRef>;
+template class MultiValueAttribute<EnumAttribute<IntegerAttributeTemplate<int32_t>>, vespalib::datastore::AtomicEntryRef>;
+template class MultiValueAttribute<EnumAttribute<IntegerAttributeTemplate<int64_t>>, vespalib::datastore::AtomicEntryRef>;
+template class MultiValueAttribute<EnumAttribute<FloatingPointAttributeTemplate<float>>, vespalib::datastore::AtomicEntryRef>;
+template class MultiValueAttribute<EnumAttribute<FloatingPointAttributeTemplate<double>>, vespalib::datastore::AtomicEntryRef>;
+template class MultiValueAttribute<EnumAttribute<StringAttribute>, multivalue::WeightedValue<vespalib::datastore::AtomicEntryRef>>;
+template class MultiValueAttribute<EnumAttribute<IntegerAttributeTemplate<int8_t>>, multivalue::WeightedValue<vespalib::datastore::AtomicEntryRef>>;
+template class MultiValueAttribute<EnumAttribute<IntegerAttributeTemplate<int16_t>>, multivalue::WeightedValue<vespalib::datastore::AtomicEntryRef>>;
+template class MultiValueAttribute<EnumAttribute<IntegerAttributeTemplate<int32_t>>, multivalue::WeightedValue<vespalib::datastore::AtomicEntryRef>>;
+template class MultiValueAttribute<EnumAttribute<IntegerAttributeTemplate<int64_t>>, multivalue::WeightedValue<vespalib::datastore::AtomicEntryRef>>;
+template class MultiValueAttribute<EnumAttribute<FloatingPointAttributeTemplate<float>>, multivalue::WeightedValue<vespalib::datastore::AtomicEntryRef>>;
+template class MultiValueAttribute<EnumAttribute<FloatingPointAttributeTemplate<double>>, multivalue::WeightedValue<vespalib::datastore::AtomicEntryRef>>;
+
} // namespace search