aboutsummaryrefslogtreecommitdiff
path: root/src/db/lib.rs
diff options
context:
space:
mode:
authorJulien Kritter <julien.kritter@withings.com>2024-09-12 10:26:28 +0200
committerJulien Kritter <julien.kritter@withings.com>2024-09-12 10:26:28 +0200
commit51ced6036602826ff653c6fc283cbf11fc7b4865 (patch)
treed381b99333b55f58e5a05cbb197712ffd4ab1a43 /src/db/lib.rs
parent586957b4b7261b43e7820d7193516153201b4954 (diff)
downloadgarage-51ced6036602826ff653c6fc283cbf11fc7b4865.tar.gz
garage-51ced6036602826ff653c6fc283cbf11fc7b4865.zip
Don't fetch old values in cross-partition transactional inserts
Diffstat (limited to 'src/db/lib.rs')
-rw-r--r--src/db/lib.rs8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/db/lib.rs b/src/db/lib.rs
index d6057505..3485745a 100644
--- a/src/db/lib.rs
+++ b/src/db/lib.rs
@@ -274,12 +274,12 @@ impl<'a> Transaction<'a> {
tree: &Tree,
key: T,
value: U,
- ) -> TxOpResult<Option<Value>> {
+ ) -> TxOpResult<()> {
self.tx.insert(tree.1, key.as_ref(), value.as_ref())
}
/// Returns the old value if there was one
#[inline]
- pub fn remove<T: AsRef<[u8]>>(&mut self, tree: &Tree, key: T) -> TxOpResult<Option<Value>> {
+ pub fn remove<T: AsRef<[u8]>>(&mut self, tree: &Tree, key: T) -> TxOpResult<()> {
self.tx.remove(tree.1, key.as_ref())
}
/// Clears all values in a tree
@@ -362,8 +362,8 @@ pub(crate) trait ITx {
fn get(&self, tree: usize, key: &[u8]) -> TxOpResult<Option<Value>>;
fn len(&self, tree: usize) -> TxOpResult<usize>;
- fn insert(&mut self, tree: usize, key: &[u8], value: &[u8]) -> TxOpResult<Option<Value>>;
- fn remove(&mut self, tree: usize, key: &[u8]) -> TxOpResult<Option<Value>>;
+ fn insert(&mut self, tree: usize, key: &[u8], value: &[u8]) -> TxOpResult<()>;
+ fn remove(&mut self, tree: usize, key: &[u8]) -> TxOpResult<()>;
fn clear(&mut self, tree: usize) -> TxOpResult<()>;
fn iter(&self, tree: usize) -> TxOpResult<TxValueIter<'_>>;