aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@online.no>2022-04-20 19:30:30 +0200
committerTor Egge <Tor.Egge@online.no>2022-04-20 19:30:30 +0200
commitbc9a57b48811a406e1ec57674a954fdaf414850c (patch)
tree8ef8f80a7d5f3851e732f529caf5a50e1030e924
parent1a719f9c5f5eebdd9502a3d813d1da15453c71e1 (diff)
Handle updates to extendable attributes (used by streaming search) after
creation of multi value read view.
-rw-r--r--searchlib/src/vespa/searchlib/attribute/extendable_numeric_array_multi_value_read_view.cpp2
-rw-r--r--searchlib/src/vespa/searchlib/attribute/extendable_numeric_array_multi_value_read_view.h6
-rw-r--r--searchlib/src/vespa/searchlib/attribute/extendable_numeric_weighted_set_multi_value_read_view.cpp2
-rw-r--r--searchlib/src/vespa/searchlib/attribute/extendable_numeric_weighted_set_multi_value_read_view.h8
-rw-r--r--searchlib/src/vespa/searchlib/attribute/extendable_string_array_multi_value_read_view.cpp4
-rw-r--r--searchlib/src/vespa/searchlib/attribute/extendable_string_array_multi_value_read_view.h8
-rw-r--r--searchlib/src/vespa/searchlib/attribute/extendable_string_weighted_set_multi_value_read_view.cpp4
-rw-r--r--searchlib/src/vespa/searchlib/attribute/extendable_string_weighted_set_multi_value_read_view.h10
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;
};