]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
kv/RocksDBStore: simplify RocksDBStore::get_cf_handle(string, IteratorBounds)
authorCory Snyder <csnyder@iland.com>
Thu, 21 Apr 2022 19:56:06 +0000 (15:56 -0400)
committerAdam Kupczyk <akupczyk@redhat.com>
Fri, 29 Apr 2022 22:37:13 +0000 (00:37 +0200)
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 <csnyder@iland.com>
(cherry picked from commit 55ef16f6cc1d344b09798e566c2470e81928327a)

src/kv/RocksDBStore.cc

index d7a5ee707047dcfad4f0bfc45dd6b4840a6170c9..4c079d3d2333ab48875a74eee86bc02378e27337 100644 (file)
@@ -675,21 +675,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;
   }
 }