From c77aab584e73bb15812f72e6f58a8730570e3cd9 Mon Sep 17 00:00:00 2001 From: Yanqin Jin Date: Fri, 19 Apr 2019 11:52:13 -0700 Subject: [PATCH] Force read existing data during db repair (#5209) Summary: Setting read_opts.total_order_seek achieves this, even with a different prefix extractor. Pull Request resolved: https://github.com/facebook/rocksdb/pull/5209 Differential Revision: D14980388 Pulled By: riversand963 fbshipit-source-id: 16527989a3d6b3e3ae8241c894d011326429d66e --- db/repair.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/db/repair.cc b/db/repair.cc index 7b9409a22..2715adcf1 100644 --- a/db/repair.cc +++ b/db/repair.cc @@ -517,8 +517,10 @@ class Repairer { } } if (status.ok()) { + ReadOptions ropts; + ropts.total_order_seek = true; InternalIterator* iter = table_cache_->NewIterator( - ReadOptions(), env_options_, cfd->internal_comparator(), t->meta, + ropts, env_options_, cfd->internal_comparator(), t->meta, nullptr /* range_del_agg */, cfd->GetLatestMutableCFOptions()->prefix_extractor.get()); bool empty = true;