diff options
author | Tor Egge <Tor.Egge@yahooinc.com> | 2023-03-22 17:00:31 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-22 17:00:31 +0100 |
commit | 03191bd6acb12a645b6e387e8e667d148d4a1fa3 (patch) | |
tree | d08a02436d08d80471c5f5cae036d244f2567223 | |
parent | 5a78d21b77d9dc70896182a83d29e855214514b3 (diff) | |
parent | 2fa1b4cfb81b4a800bcea3b79d8def76214ffecb (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.cpp | 24 | ||||
-rw-r--r-- | searchlib/src/vespa/searchlib/attribute/multivalueattribute.cpp | 31 |
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 |