summaryrefslogtreecommitdiff
path: root/src/database/database.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/database/database.cpp')
-rw-r--r--src/database/database.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/database/database.cpp b/src/database/database.cpp
index ec11455b..ca92cf6b 100644
--- a/src/database/database.cpp
+++ b/src/database/database.cpp
@@ -229,13 +229,17 @@ auto Database::sizeOnDiskBytes() -> size_t {
}
auto Database::put(const std::string& key, const std::string& val) -> void {
- db_->Put(leveldb::WriteOptions{}, kKeyCustom + key, val);
+ if (val.empty()) {
+ db_->Delete(leveldb::WriteOptions{}, kKeyCustom + key);
+ } else {
+ db_->Put(leveldb::WriteOptions{}, kKeyCustom + key, val);
+ }
}
auto Database::get(const std::string& key) -> std::optional<std::string> {
std::string val;
auto res = db_->Get(leveldb::ReadOptions{}, kKeyCustom + key, &val);
- if (!res.ok()) {
+ if (!res.ok() || val.empty()) {
return {};
}
return val;