From: Cory Snyder Date: Thu, 21 Apr 2022 19:56:06 +0000 (-0400) Subject: kv/RocksDBStore: simplify RocksDBStore::get_cf_handle(string, IteratorBounds) X-Git-Tag: v18.0.0~1011^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F45904%2Fhead;p=ceph.git 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 --- diff --git a/src/kv/RocksDBStore.cc b/src/kv/RocksDBStore.cc index 065e1317901e..3e8c618837c9 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; } }