aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorArne Juul <arnej@verizonmedia.com>2020-12-03 11:16:34 +0000
committerArne Juul <arnej@verizonmedia.com>2020-12-03 11:23:25 +0000
commitc3fef6299473204c6e5b0ea1e020ce9c17621b2c (patch)
treea9f284d88fc995eb83e49679048b8c6750d56f58 /searchlib
parent957237a4e2859bda5ccaf536c0553092f0edde76 (diff)
extract_dense_view can just return the cells reference
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/vespa/searchlib/tensor/dense_tensor_attribute.cpp7
-rw-r--r--searchlib/src/vespa/searchlib/tensor/dense_tensor_attribute.h4
-rw-r--r--searchlib/src/vespa/searchlib/tensor/i_tensor_attribute.h6
-rw-r--r--searchlib/src/vespa/searchlib/tensor/imported_tensor_attribute_vector_read_guard.cpp6
-rw-r--r--searchlib/src/vespa/searchlib/tensor/imported_tensor_attribute_vector_read_guard.h2
-rw-r--r--searchlib/src/vespa/searchlib/tensor/tensor_attribute.cpp10
-rw-r--r--searchlib/src/vespa/searchlib/tensor/tensor_attribute.h2
7 files changed, 14 insertions, 23 deletions
diff --git a/searchlib/src/vespa/searchlib/tensor/dense_tensor_attribute.cpp b/searchlib/src/vespa/searchlib/tensor/dense_tensor_attribute.cpp
index 8b27dcc1cd4..9754307456e 100644
--- a/searchlib/src/vespa/searchlib/tensor/dense_tensor_attribute.cpp
+++ b/searchlib/src/vespa/searchlib/tensor/dense_tensor_attribute.cpp
@@ -19,7 +19,6 @@ using search::attribute::LoadUtils;
using vespalib::eval::Value;
using vespalib::eval::ValueType;
using vespalib::slime::ObjectInserter;
-using vespalib::tensor::MutableDenseTensorView;
namespace search::tensor {
@@ -173,14 +172,14 @@ DenseTensorAttribute::getTensor(DocId docId) const
return _denseTensorStore.getTensor(ref);
}
-void
-DenseTensorAttribute::extract_dense_view(DocId docId, MutableDenseTensorView &tensor) const
+vespalib::eval::TypedCells
+DenseTensorAttribute::extract_dense_view(DocId docId) const
{
EntryRef ref;
if (docId < getCommittedDocIdLimit()) {
ref = _refVector[docId];
}
- _denseTensorStore.getTensor(ref, tensor);
+ return _denseTensorStore.get_typed_cells(ref);
}
bool
diff --git a/searchlib/src/vespa/searchlib/tensor/dense_tensor_attribute.h b/searchlib/src/vespa/searchlib/tensor/dense_tensor_attribute.h
index e06bbf331ac..1a10c887dc2 100644
--- a/searchlib/src/vespa/searchlib/tensor/dense_tensor_attribute.h
+++ b/searchlib/src/vespa/searchlib/tensor/dense_tensor_attribute.h
@@ -8,8 +8,6 @@
#include "tensor_attribute.h"
#include <memory>
-namespace vespalib::tensor { class MutableDenseTensorView; }
-
namespace search::tensor {
class NearestNeighborIndex;
@@ -37,7 +35,7 @@ public:
std::unique_ptr<PrepareResult> prepare_set_tensor(DocId docid, const vespalib::eval::Value& tensor) const override;
void complete_set_tensor(DocId docid, const vespalib::eval::Value& tensor, std::unique_ptr<PrepareResult> prepare_result) override;
std::unique_ptr<vespalib::eval::Value> getTensor(DocId docId) const override;
- void extract_dense_view(DocId docId, vespalib::tensor::MutableDenseTensorView &tensor) const override;
+ vespalib::eval::TypedCells extract_dense_view(DocId docId) const override;
bool supports_extract_dense_view() const override { return true; }
bool onLoad() override;
std::unique_ptr<AttributeSaver> onInitSave(vespalib::stringref fileName) override;
diff --git a/searchlib/src/vespa/searchlib/tensor/i_tensor_attribute.h b/searchlib/src/vespa/searchlib/tensor/i_tensor_attribute.h
index c962e919d95..dc0698a5904 100644
--- a/searchlib/src/vespa/searchlib/tensor/i_tensor_attribute.h
+++ b/searchlib/src/vespa/searchlib/tensor/i_tensor_attribute.h
@@ -3,10 +3,8 @@
#pragma once
#include <memory>
+#include <vespa/eval/eval/typed_cells.h>
-namespace vespalib::tensor {
-class MutableDenseTensorView;
-}
namespace vespalib::eval { class ValueType; struct Value; }
namespace vespalib::slime { struct Inserter; }
@@ -21,7 +19,7 @@ public:
virtual ~ITensorAttribute() {}
virtual std::unique_ptr<vespalib::eval::Value> getTensor(uint32_t docId) const = 0;
virtual std::unique_ptr<vespalib::eval::Value> getEmptyTensor() const = 0;
- virtual void extract_dense_view(uint32_t docid, vespalib::tensor::MutableDenseTensorView& tensor) const = 0;
+ virtual vespalib::eval::TypedCells extract_dense_view(uint32_t docid) const = 0;
virtual const vespalib::eval::Value& get_tensor_ref(uint32_t docid) const = 0;
virtual bool supports_extract_dense_view() const = 0;
virtual bool supports_get_tensor_ref() const = 0;
diff --git a/searchlib/src/vespa/searchlib/tensor/imported_tensor_attribute_vector_read_guard.cpp b/searchlib/src/vespa/searchlib/tensor/imported_tensor_attribute_vector_read_guard.cpp
index 6a0dbfb9f48..a9f4951fdea 100644
--- a/searchlib/src/vespa/searchlib/tensor/imported_tensor_attribute_vector_read_guard.cpp
+++ b/searchlib/src/vespa/searchlib/tensor/imported_tensor_attribute_vector_read_guard.cpp
@@ -48,10 +48,10 @@ ImportedTensorAttributeVectorReadGuard::getEmptyTensor() const
return _target_tensor_attribute.getEmptyTensor();
}
-void
-ImportedTensorAttributeVectorReadGuard::extract_dense_view(uint32_t docid, vespalib::tensor::MutableDenseTensorView& tensor) const
+vespalib::eval::TypedCells
+ImportedTensorAttributeVectorReadGuard::extract_dense_view(uint32_t docid) const
{
- _target_tensor_attribute.extract_dense_view(getTargetLid(docid), tensor);
+ return _target_tensor_attribute.extract_dense_view(getTargetLid(docid));
}
const vespalib::eval::Value&
diff --git a/searchlib/src/vespa/searchlib/tensor/imported_tensor_attribute_vector_read_guard.h b/searchlib/src/vespa/searchlib/tensor/imported_tensor_attribute_vector_read_guard.h
index a3ffc27b153..371ac72e5f3 100644
--- a/searchlib/src/vespa/searchlib/tensor/imported_tensor_attribute_vector_read_guard.h
+++ b/searchlib/src/vespa/searchlib/tensor/imported_tensor_attribute_vector_read_guard.h
@@ -32,7 +32,7 @@ public:
std::unique_ptr<vespalib::eval::Value> getTensor(uint32_t docId) const override;
std::unique_ptr<vespalib::eval::Value> getEmptyTensor() const override;
- void extract_dense_view(uint32_t docid, vespalib::tensor::MutableDenseTensorView& tensor) const override;
+ vespalib::eval::TypedCells extract_dense_view(uint32_t docid) const override;
const vespalib::eval::Value& get_tensor_ref(uint32_t docid) const override;
bool supports_extract_dense_view() const override { return _target_tensor_attribute.supports_extract_dense_view(); }
bool supports_get_tensor_ref() const override { return _target_tensor_attribute.supports_get_tensor_ref(); }
diff --git a/searchlib/src/vespa/searchlib/tensor/tensor_attribute.cpp b/searchlib/src/vespa/searchlib/tensor/tensor_attribute.cpp
index 0748329694c..0875dce23f3 100644
--- a/searchlib/src/vespa/searchlib/tensor/tensor_attribute.cpp
+++ b/searchlib/src/vespa/searchlib/tensor/tensor_attribute.cpp
@@ -186,20 +186,16 @@ TensorAttribute::getEmptyTensor() const
return EngineOrFactory::get().copy(*_emptyTensor);
}
-void
-TensorAttribute::extract_dense_view(uint32_t docid, vespalib::tensor::MutableDenseTensorView& tensor) const
+vespalib::eval::TypedCells
+TensorAttribute::extract_dense_view(uint32_t /*docid*/) const
{
- (void) docid;
- (void) tensor;
notImplemented();
}
const vespalib::eval::Value&
-TensorAttribute::get_tensor_ref(uint32_t docid) const
+TensorAttribute::get_tensor_ref(uint32_t /*docid*/) const
{
- (void) docid;
notImplemented();
- abort(); // Needed to avoid compile error
}
const vespalib::eval::ValueType &
diff --git a/searchlib/src/vespa/searchlib/tensor/tensor_attribute.h b/searchlib/src/vespa/searchlib/tensor/tensor_attribute.h
index b88ffcf0f2c..2454889a2dd 100644
--- a/searchlib/src/vespa/searchlib/tensor/tensor_attribute.h
+++ b/searchlib/src/vespa/searchlib/tensor/tensor_attribute.h
@@ -47,7 +47,7 @@ public:
void onGenerationChange(generation_t generation) override;
bool addDoc(DocId &docId) override;
std::unique_ptr<vespalib::eval::Value> getEmptyTensor() const override;
- void extract_dense_view(uint32_t docid, vespalib::tensor::MutableDenseTensorView& tensor) const override;
+ vespalib::eval::TypedCells extract_dense_view(uint32_t docid) const override;
const vespalib::eval::Value& get_tensor_ref(uint32_t docid) const override;
bool supports_extract_dense_view() const override { return false; }
bool supports_get_tensor_ref() const override { return false; }