summaryrefslogtreecommitdiffstats
path: root/storage
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@online.no>2023-11-06 16:50:33 +0100
committerTor Egge <Tor.Egge@online.no>2023-11-06 16:50:33 +0100
commit5c4c6f9fe13163b055d1ad5ea05c5c9468fbe179 (patch)
tree2ce11e4321a15ca0603c8ea44aed762252600cee /storage
parentebd259f9bc66031921b04ca0502c2f9c0a153023 (diff)
Add removeByGidAsync() to spi.
Diffstat (limited to 'storage')
-rw-r--r--storage/src/tests/persistence/common/persistenceproviderwrapper.cpp12
-rw-r--r--storage/src/tests/persistence/common/persistenceproviderwrapper.h1
-rw-r--r--storage/src/vespa/storage/persistence/provider_error_wrapper.cpp8
-rw-r--r--storage/src/vespa/storage/persistence/provider_error_wrapper.h2
4 files changed, 23 insertions, 0 deletions
diff --git a/storage/src/tests/persistence/common/persistenceproviderwrapper.cpp b/storage/src/tests/persistence/common/persistenceproviderwrapper.cpp
index 17bfa57bed8..0740e1d6fec 100644
--- a/storage/src/tests/persistence/common/persistenceproviderwrapper.cpp
+++ b/storage/src/tests/persistence/common/persistenceproviderwrapper.cpp
@@ -3,6 +3,7 @@
#include "persistenceproviderwrapper.h"
#include <vespa/document/fieldvalue/document.h>
#include <vespa/document/update/documentupdate.h>
+#include <vespa/persistence/spi/doctype_gid_and_timestamp.h>
#include <vespa/vespalib/util/idestructorcallback.h>
#include <sstream>
@@ -117,6 +118,17 @@ PersistenceProviderWrapper::removeAsync(const spi::Bucket& bucket, std::vector<
}
void
+PersistenceProviderWrapper::removeByGidAsync(const spi::Bucket& bucket, std::vector<spi::DocTypeGidAndTimestamp> ids,
+ std::unique_ptr<spi::OperationComplete> onComplete)
+{
+ for (const auto & dt_gid_ts : ids) {
+ LOG_SPI("removeByGid(" << bucket << ", " << dt_gid_ts.timestamp << ", " << dt_gid_ts.doc_type << ", " << dt_gid_ts.gid << ")");
+ }
+ CHECK_ERROR_ASYNC(spi::RemoveResult, FAIL_REMOVE, onComplete);
+ _spi.removeByGidAsync(bucket, std::move(ids), std::move(onComplete));
+}
+
+void
PersistenceProviderWrapper::removeIfFoundAsync(const spi::Bucket& bucket, spi::Timestamp timestamp, const spi::DocumentId& id,
spi::OperationComplete::UP onComplete)
{
diff --git a/storage/src/tests/persistence/common/persistenceproviderwrapper.h b/storage/src/tests/persistence/common/persistenceproviderwrapper.h
index aad4746ea90..f1a277581d9 100644
--- a/storage/src/tests/persistence/common/persistenceproviderwrapper.h
+++ b/storage/src/tests/persistence/common/persistenceproviderwrapper.h
@@ -107,6 +107,7 @@ public:
spi::BucketInfoResult getBucketInfo(const spi::Bucket&) const override;
void putAsync(const spi::Bucket&, spi::Timestamp, spi::DocumentSP, spi::OperationComplete::UP) override;
void removeAsync(const spi::Bucket&, std::vector<spi::IdAndTimestamp> ids, spi::OperationComplete::UP) override;
+ void removeByGidAsync(const spi::Bucket&, std::vector<spi::DocTypeGidAndTimestamp> ids, std::unique_ptr<spi::OperationComplete>) override;
void removeIfFoundAsync(const spi::Bucket&, spi::Timestamp, const spi::DocumentId&, spi::OperationComplete::UP) override;
void updateAsync(const spi::Bucket&, spi::Timestamp, spi::DocumentUpdateSP, spi::OperationComplete::UP) override;
spi::GetResult get(const spi::Bucket&, const document::FieldSet&, const spi::DocumentId&, spi::Context&) const override;
diff --git a/storage/src/vespa/storage/persistence/provider_error_wrapper.cpp b/storage/src/vespa/storage/persistence/provider_error_wrapper.cpp
index 83e7dc24eb7..9a414cd295a 100644
--- a/storage/src/vespa/storage/persistence/provider_error_wrapper.cpp
+++ b/storage/src/vespa/storage/persistence/provider_error_wrapper.cpp
@@ -166,6 +166,14 @@ ProviderErrorWrapper::removeAsync(const spi::Bucket &bucket, std::vector<spi::Id
}
void
+ProviderErrorWrapper::removeByGidAsync(const spi::Bucket &bucket, std::vector<spi::DocTypeGidAndTimestamp> ids,
+ std::unique_ptr<spi::OperationComplete> onComplete)
+{
+ onComplete->addResultHandler(this);
+ _impl.removeByGidAsync(bucket, std::move(ids), std::move(onComplete));
+}
+
+void
ProviderErrorWrapper::removeIfFoundAsync(const spi::Bucket &bucket, spi::Timestamp ts, const document::DocumentId &docId,
spi::OperationComplete::UP onComplete)
{
diff --git a/storage/src/vespa/storage/persistence/provider_error_wrapper.h b/storage/src/vespa/storage/persistence/provider_error_wrapper.h
index a4748d9479b..7c4518d1db1 100644
--- a/storage/src/vespa/storage/persistence/provider_error_wrapper.h
+++ b/storage/src/vespa/storage/persistence/provider_error_wrapper.h
@@ -13,6 +13,7 @@
#pragma once
#include <vespa/persistence/spi/persistenceprovider.h>
+#include <vespa/persistence/spi/doctype_gid_and_timestamp.h>
#include <mutex>
namespace storage {
@@ -56,6 +57,7 @@ public:
void putAsync(const spi::Bucket &, spi::Timestamp, spi::DocumentSP, spi::OperationComplete::UP) override;
void removeAsync(const spi::Bucket&, std::vector<spi::IdAndTimestamp>, spi::OperationComplete::UP) override;
+ void removeByGidAsync(const spi::Bucket&, std::vector<spi::DocTypeGidAndTimestamp>, std::unique_ptr<spi::OperationComplete>) override;
void removeIfFoundAsync(const spi::Bucket&, spi::Timestamp, const document::DocumentId&, spi::OperationComplete::UP) override;
void updateAsync(const spi::Bucket &, spi::Timestamp, spi::DocumentUpdateSP, spi::OperationComplete::UP) override;
void setActiveStateAsync(const spi::Bucket& b, spi::BucketInfo::ActiveState newState, spi::OperationComplete::UP onComplete) override;