From 4c228ef39e83a5d323db4b35499bc48b57593de2 Mon Sep 17 00:00:00 2001 From: owl Date: Sun, 25 Jun 2023 01:31:12 +0800 Subject: [PATCH] feat(services/redb): fix code Signed-off-by: owl --- .env.example | 4 ++++ core/src/services/redb/backend.rs | 18 +++++++++++------- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/.env.example b/.env.example index 6d107e06ca58..797c7b616249 100644 --- a/.env.example +++ b/.env.example @@ -113,3 +113,7 @@ OPENDAL_WASABI_BUCKET= OPENDAL_WASABI_ENDPOINT= OPENDAL_WASABI_ACCESS_KEY_ID= OPENDAL_WASABI_SECRET_ACCESS_KEY= +# redb +OPENDAL_REDB_TEST=false +OPENDAL_REDB_DATADIR=/path/to/database +OPENDAL_REDB_TABLE=redb-table diff --git a/core/src/services/redb/backend.rs b/core/src/services/redb/backend.rs index 3acdca60c2f0..b1d032b0e211 100644 --- a/core/src/services/redb/backend.rs +++ b/core/src/services/redb/backend.rs @@ -68,6 +68,7 @@ impl Builder for RedbBuilder { let mut builder = RedbBuilder::default(); map.get("datadir").map(|v| builder.datadir(v)); + map.get("table").map(|v| builder.table(v)); map.get("root").map(|v| builder.root(v)); builder @@ -146,8 +147,9 @@ impl kv::Adapter for Adapter { return Err(Error::new(ErrorKind::Unexpected, "error from redb").set_source(e)); } }; - - let table_define: redb::TableDefinition<&str, &[u8]> = redb::TableDefinition::new(&self.table); + + let table_define: redb::TableDefinition<&str, &[u8]> = + redb::TableDefinition::new(&self.table); let table = match read_txn.open_table(table_define) { Ok(table) => table, @@ -176,7 +178,8 @@ impl kv::Adapter for Adapter { } }; - let table_define: redb::TableDefinition<&str, &[u8]> = redb::TableDefinition::new(&self.table); + let table_define: redb::TableDefinition<&str, &[u8]> = + redb::TableDefinition::new(&self.table); { let mut table = match write_txn.open_table(table_define) { @@ -185,7 +188,7 @@ impl kv::Adapter for Adapter { return Err(Error::new(ErrorKind::Unexpected, "error from redb").set_source(e)); } }; - + if let Err(e) = table.insert(path, value) { return Err(Error::new(ErrorKind::Unexpected, "error from redb").set_source(e)); }; @@ -210,7 +213,8 @@ impl kv::Adapter for Adapter { } }; - let table_define: redb::TableDefinition<&str, &[u8]> = redb::TableDefinition::new(&self.table); + let table_define: redb::TableDefinition<&str, &[u8]> = + redb::TableDefinition::new(&self.table); { let mut table = match write_txn.open_table(table_define) { @@ -219,7 +223,7 @@ impl kv::Adapter for Adapter { return Err(Error::new(ErrorKind::Unexpected, "error from redb").set_source(e)); } }; - + if let Err(e) = table.remove(path) { return Err(Error::new(ErrorKind::Unexpected, "error from redb").set_source(e)); }; @@ -231,4 +235,4 @@ impl kv::Adapter for Adapter { }; result } -} \ No newline at end of file +}