From 0a3f2f692cd2ead96d69294ae987c0b032adc571 Mon Sep 17 00:00:00 2001 From: Tglman Date: Wed, 4 Aug 2021 23:10:50 +0100 Subject: [PATCH] updated to the last database integration logic of persy --- src/database/abstraction/persy.rs | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/database/abstraction/persy.rs b/src/database/abstraction/persy.rs index ba1a1ab..d594811 100644 --- a/src/database/abstraction/persy.rs +++ b/src/database/abstraction/persy.rs @@ -396,6 +396,16 @@ impl Tree for PersyTree { Ok(()) } + #[tracing::instrument(skip(self, iter))] + fn insert_batch<'a>(&self, iter: &mut dyn Iterator, Vec)>) -> Result<()> { + //TODO: evaluate if use instead a single big transaction + for (key, value) in iter { + self.insert(&key, &value)?; + } + + Ok(()) + } + fn remove(&self, key: &[u8]) -> Result<()> { self.write_cache .write() @@ -404,7 +414,7 @@ impl Tree for PersyTree { Ok(()) } - fn iter<'a>(&'a self) -> Box, Vec)> + Send + 'a> { + fn iter<'a>(&'a self) -> Box, Vec)> + 'a> { let iter = self.persy.range::(&self.name, ..); match iter { Ok(iter) => { @@ -427,7 +437,7 @@ impl Tree for PersyTree { &'a self, from: &[u8], backwards: bool, - ) -> Box, Vec)> + Send + 'a> { + ) -> Box, Vec)> + 'a> { let range = if backwards { self.persy .range::(&self.name, ..ByteVec(from.to_owned())) @@ -471,7 +481,7 @@ impl Tree for PersyTree { fn scan_prefix<'a>( &'a self, prefix: Vec, - ) -> Box, Vec)> + Send + 'a> { + ) -> Box, Vec)> + 'a> { let range_prefix = ByteVec(prefix.to_owned()); let range = self .persy