diff options
author | Tor Egge <Tor.Egge@online.no> | 2022-04-20 19:30:30 +0200 |
---|---|---|
committer | Tor Egge <Tor.Egge@online.no> | 2022-04-20 19:30:30 +0200 |
commit | bc9a57b48811a406e1ec57674a954fdaf414850c (patch) | |
tree | 8ef8f80a7d5f3851e732f529caf5a50e1030e924 | |
parent | 1a719f9c5f5eebdd9502a3d813d1da15453c71e1 (diff) |
Handle updates to extendable attributes (used by streaming search) after
creation of multi value read view.
8 files changed, 22 insertions, 22 deletions
diff --git a/searchlib/src/vespa/searchlib/attribute/extendable_numeric_array_multi_value_read_view.cpp b/searchlib/src/vespa/searchlib/attribute/extendable_numeric_array_multi_value_read_view.cpp index c0b5239ca7f..94c0855c47b 100644 --- a/searchlib/src/vespa/searchlib/attribute/extendable_numeric_array_multi_value_read_view.cpp +++ b/searchlib/src/vespa/searchlib/attribute/extendable_numeric_array_multi_value_read_view.cpp @@ -5,7 +5,7 @@ namespace search::attribute { template <class MultiValueType, typename BaseType> -ExtendableNumericArrayMultiValueReadView<MultiValueType, BaseType>::ExtendableNumericArrayMultiValueReadView(vespalib::ConstArrayRef<BaseType> data, vespalib::ConstArrayRef<uint32_t> idx) +ExtendableNumericArrayMultiValueReadView<MultiValueType, BaseType>::ExtendableNumericArrayMultiValueReadView(const std::vector<BaseType>& data, const std::vector<uint32_t>& idx) : attribute::IMultiValueReadView<MultiValueType>(), _data(data), _idx(idx), diff --git a/searchlib/src/vespa/searchlib/attribute/extendable_numeric_array_multi_value_read_view.h b/searchlib/src/vespa/searchlib/attribute/extendable_numeric_array_multi_value_read_view.h index f763b7ff7b6..09c5649e385 100644 --- a/searchlib/src/vespa/searchlib/attribute/extendable_numeric_array_multi_value_read_view.h +++ b/searchlib/src/vespa/searchlib/attribute/extendable_numeric_array_multi_value_read_view.h @@ -16,11 +16,11 @@ namespace search::attribute { template <typename MultiValueType, typename BaseType> class ExtendableNumericArrayMultiValueReadView : public attribute::IMultiValueReadView<MultiValueType> { - vespalib::ConstArrayRef<BaseType> _data; - vespalib::ConstArrayRef<uint32_t> _idx; + const std::vector<BaseType>& _data; + const std::vector<uint32_t>& _idx; mutable std::vector<MultiValueType> _copy; public: - ExtendableNumericArrayMultiValueReadView(vespalib::ConstArrayRef<BaseType> data, vespalib::ConstArrayRef<uint32_t> idx); + ExtendableNumericArrayMultiValueReadView(const std::vector<BaseType>& data, const std::vector<uint32_t>& idx); ~ExtendableNumericArrayMultiValueReadView() override; vespalib::ConstArrayRef<MultiValueType> get_values(uint32_t doc_id) const override; }; diff --git a/searchlib/src/vespa/searchlib/attribute/extendable_numeric_weighted_set_multi_value_read_view.cpp b/searchlib/src/vespa/searchlib/attribute/extendable_numeric_weighted_set_multi_value_read_view.cpp index 087ef8d4549..0e8b2f62f9d 100644 --- a/searchlib/src/vespa/searchlib/attribute/extendable_numeric_weighted_set_multi_value_read_view.cpp +++ b/searchlib/src/vespa/searchlib/attribute/extendable_numeric_weighted_set_multi_value_read_view.cpp @@ -5,7 +5,7 @@ namespace search::attribute { template <class MultiValueType, typename BaseType> -ExtendableNumericWeightedSetMultiValueReadView<MultiValueType, BaseType>::ExtendableNumericWeightedSetMultiValueReadView(vespalib::ConstArrayRef<BaseType> data, vespalib::ConstArrayRef<uint32_t> idx, vespalib::ConstArrayRef<int32_t> weights) +ExtendableNumericWeightedSetMultiValueReadView<MultiValueType, BaseType>::ExtendableNumericWeightedSetMultiValueReadView(const std::vector<BaseType>& data, const std::vector<uint32_t>& idx, const std::vector<int32_t>& weights) : attribute::IMultiValueReadView<MultiValueType>(), _data(data), _idx(idx), diff --git a/searchlib/src/vespa/searchlib/attribute/extendable_numeric_weighted_set_multi_value_read_view.h b/searchlib/src/vespa/searchlib/attribute/extendable_numeric_weighted_set_multi_value_read_view.h index 6831926d84a..735bb754408 100644 --- a/searchlib/src/vespa/searchlib/attribute/extendable_numeric_weighted_set_multi_value_read_view.h +++ b/searchlib/src/vespa/searchlib/attribute/extendable_numeric_weighted_set_multi_value_read_view.h @@ -16,12 +16,12 @@ namespace search::attribute { template <typename MultiValueType, typename BaseType> class ExtendableNumericWeightedSetMultiValueReadView : public attribute::IMultiValueReadView<MultiValueType> { - vespalib::ConstArrayRef<BaseType> _data; - vespalib::ConstArrayRef<uint32_t> _idx; - vespalib::ConstArrayRef<int32_t> _weights; + const std::vector<BaseType>& _data; + const std::vector<uint32_t>& _idx; + const std::vector<int32_t>& _weights; mutable std::vector<MultiValueType> _copy; public: - ExtendableNumericWeightedSetMultiValueReadView(vespalib::ConstArrayRef<BaseType> data, vespalib::ConstArrayRef<uint32_t> idx, vespalib::ConstArrayRef<int32_t> weights); + ExtendableNumericWeightedSetMultiValueReadView(const std::vector<BaseType>& data, const std::vector<uint32_t>& idx, const std::vector<int32_t>& weights); ~ExtendableNumericWeightedSetMultiValueReadView() override; vespalib::ConstArrayRef<MultiValueType> get_values(uint32_t doc_id) const override; }; diff --git a/searchlib/src/vespa/searchlib/attribute/extendable_string_array_multi_value_read_view.cpp b/searchlib/src/vespa/searchlib/attribute/extendable_string_array_multi_value_read_view.cpp index 7994d40c480..fef05a8ce08 100644 --- a/searchlib/src/vespa/searchlib/attribute/extendable_string_array_multi_value_read_view.cpp +++ b/searchlib/src/vespa/searchlib/attribute/extendable_string_array_multi_value_read_view.cpp @@ -5,7 +5,7 @@ namespace search::attribute { template <class MultiValueType> -ExtendableStringArrayMultiValueReadView<MultiValueType>::ExtendableStringArrayMultiValueReadView(vespalib::ConstArrayRef<char> buffer, vespalib::ConstArrayRef<uint32_t> offsets, vespalib::ConstArrayRef<uint32_t> idx) +ExtendableStringArrayMultiValueReadView<MultiValueType>::ExtendableStringArrayMultiValueReadView(const std::vector<char>& buffer, const vespalib::Array<uint32_t>& offsets, const std::vector<uint32_t>& idx) : attribute::IMultiValueReadView<MultiValueType>(), _buffer(buffer), _offsets(offsets), @@ -23,7 +23,7 @@ ExtendableStringArrayMultiValueReadView<MultiValueType>::get_values(uint32_t doc { auto offset = _idx[doc_id]; auto next_offset = _idx[doc_id + 1]; - vespalib::ConstArrayRef<uint32_t> raw(_offsets.data() + offset, next_offset - offset); + vespalib::ConstArrayRef<uint32_t> raw(&_offsets[offset], next_offset - offset); if (_copy.size() < raw.size()) { _copy.resize(raw.size()); } diff --git a/searchlib/src/vespa/searchlib/attribute/extendable_string_array_multi_value_read_view.h b/searchlib/src/vespa/searchlib/attribute/extendable_string_array_multi_value_read_view.h index 1ce94370a09..6d8c64a706d 100644 --- a/searchlib/src/vespa/searchlib/attribute/extendable_string_array_multi_value_read_view.h +++ b/searchlib/src/vespa/searchlib/attribute/extendable_string_array_multi_value_read_view.h @@ -15,12 +15,12 @@ namespace search::attribute { template <typename MultiValueType> class ExtendableStringArrayMultiValueReadView : public attribute::IMultiValueReadView<MultiValueType> { - vespalib::ConstArrayRef<char> _buffer; - vespalib::ConstArrayRef<uint32_t> _offsets; - vespalib::ConstArrayRef<uint32_t> _idx; + const std::vector<char>& _buffer; + const vespalib::Array<uint32_t>& _offsets; + const std::vector<uint32_t>& _idx; mutable std::vector<MultiValueType> _copy; public: - ExtendableStringArrayMultiValueReadView(vespalib::ConstArrayRef<char> buffer, vespalib::ConstArrayRef<uint32_t> offsets, vespalib::ConstArrayRef<uint32_t> idx); + ExtendableStringArrayMultiValueReadView(const std::vector<char>& buffer, const vespalib::Array<uint32_t>& offsets, const std::vector<uint32_t>& idx); ~ExtendableStringArrayMultiValueReadView() override; vespalib::ConstArrayRef<MultiValueType> get_values(uint32_t doc_id) const override; }; diff --git a/searchlib/src/vespa/searchlib/attribute/extendable_string_weighted_set_multi_value_read_view.cpp b/searchlib/src/vespa/searchlib/attribute/extendable_string_weighted_set_multi_value_read_view.cpp index 9c515b7dccc..eda50dd7172 100644 --- a/searchlib/src/vespa/searchlib/attribute/extendable_string_weighted_set_multi_value_read_view.cpp +++ b/searchlib/src/vespa/searchlib/attribute/extendable_string_weighted_set_multi_value_read_view.cpp @@ -5,7 +5,7 @@ namespace search::attribute { template <class MultiValueType> -ExtendableStringWeightedSetMultiValueReadView<MultiValueType>::ExtendableStringWeightedSetMultiValueReadView(vespalib::ConstArrayRef<char> buffer, vespalib::ConstArrayRef<uint32_t> offsets, vespalib::ConstArrayRef<uint32_t> idx, vespalib::ConstArrayRef<int32_t> weights) +ExtendableStringWeightedSetMultiValueReadView<MultiValueType>::ExtendableStringWeightedSetMultiValueReadView(const std::vector<char>& buffer, const vespalib::Array<uint32_t>& offsets, const std::vector<uint32_t>& idx, const std::vector<int32_t>& weights) : attribute::IMultiValueReadView<MultiValueType>(), _buffer(buffer), _offsets(offsets), @@ -24,7 +24,7 @@ ExtendableStringWeightedSetMultiValueReadView<MultiValueType>::get_values(uint32 { auto offset = _idx[doc_id]; auto next_offset = _idx[doc_id + 1]; - vespalib::ConstArrayRef<uint32_t> raw(_offsets.data() + offset, next_offset - offset); + vespalib::ConstArrayRef<uint32_t> raw(&_offsets[offset], next_offset - offset); if (_copy.size() < raw.size()) { _copy.resize(raw.size()); } diff --git a/searchlib/src/vespa/searchlib/attribute/extendable_string_weighted_set_multi_value_read_view.h b/searchlib/src/vespa/searchlib/attribute/extendable_string_weighted_set_multi_value_read_view.h index 9f0ea8e9fa0..1d631b06c1c 100644 --- a/searchlib/src/vespa/searchlib/attribute/extendable_string_weighted_set_multi_value_read_view.h +++ b/searchlib/src/vespa/searchlib/attribute/extendable_string_weighted_set_multi_value_read_view.h @@ -15,13 +15,13 @@ namespace search::attribute { template <typename MultiValueType> class ExtendableStringWeightedSetMultiValueReadView : public attribute::IMultiValueReadView<MultiValueType> { - vespalib::ConstArrayRef<char> _buffer; - vespalib::ConstArrayRef<uint32_t> _offsets; - vespalib::ConstArrayRef<uint32_t> _idx; - vespalib::ConstArrayRef<int32_t> _weights; + const std::vector<char>& _buffer; + const vespalib::Array<uint32_t>& _offsets; + const std::vector<uint32_t>& _idx; + const std::vector<int32_t>& _weights; mutable std::vector<MultiValueType> _copy; public: - ExtendableStringWeightedSetMultiValueReadView(vespalib::ConstArrayRef<char> buffer, vespalib::ConstArrayRef<uint32_t> offsets, vespalib::ConstArrayRef<uint32_t> idx, vespalib::ConstArrayRef<int32_t> weights); + ExtendableStringWeightedSetMultiValueReadView(const std::vector<char>& buffer, const vespalib::Array<uint32_t>& offsets, const std::vector<uint32_t>& idx, const std::vector<int32_t>& weights); ~ExtendableStringWeightedSetMultiValueReadView() override; vespalib::ConstArrayRef<MultiValueType> get_values(uint32_t doc_id) const override; }; |