From 55ef16f6cc1d344b09798e566c2470e81928327a Mon Sep 17 00:00:00 2001 From: Cory Snyder Date: Thu, 21 Apr 2022 15:56:06 -0400 Subject: [PATCH] kv/RocksDBStore: simplify RocksDBStore::get_cf_handle(string, IteratorBounds) Adds a precondition to RocksDBStore::get_cf_handle(string, IteratorBounds) to avoid duplicating logic of the only caller (RocksDBStore::get_iterator). Assertions will fail if preconditions are not met. Signed-off-by: Cory Snyder --- src/kv/RocksDBStore.cc | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/src/kv/RocksDBStore.cc b/src/kv/RocksDBStore.cc index 065e1317901..3e8c618837c 100644 --- a/src/kv/RocksDBStore.cc +++ b/src/kv/RocksDBStore.cc @@ -671,21 +671,18 @@ rocksdb::ColumnFamilyHandle *RocksDBStore::get_cf_handle(const std::string& pref return nullptr; } auto iter = cf_handles.find(prefix); - if (iter == cf_handles.end() || iter->second.hash_l != 0) { + ceph_assert(iter != cf_handles.end()); + ceph_assert(iter->second.handles.size() != 1); + if (iter->second.hash_l != 0) { return nullptr; + } + auto lower_bound_hash_str = get_key_hash_view(iter->second, bounds.lower_bound->data(), bounds.lower_bound->size()); + auto upper_bound_hash_str = get_key_hash_view(iter->second, bounds.upper_bound->data(), bounds.upper_bound->size()); + if (lower_bound_hash_str == upper_bound_hash_str) { + auto key = *bounds.lower_bound; + return get_key_cf(iter->second, key.data(), key.size()); } else { - if (iter->second.handles.size() == 1) { - return iter->second.handles[0]; - } else { - auto lower_bound_hash_str = get_key_hash_view(iter->second, bounds.lower_bound->data(), bounds.lower_bound->size()); - auto upper_bound_hash_str = get_key_hash_view(iter->second, bounds.upper_bound->data(), bounds.upper_bound->size()); - if (lower_bound_hash_str == upper_bound_hash_str) { - auto key = *bounds.lower_bound; - return get_key_cf(iter->second, key.data(), key.size()); - } else { - return nullptr; - } - } + return nullptr; } } -- 2.39.5