diff --git a/db/db_impl.cc b/db/db_impl.cc index a543534c7..846122f60 100644 --- a/db/db_impl.cc +++ b/db/db_impl.cc @@ -160,7 +160,7 @@ DBImpl::DBImpl(const Options& options, const std::string& dbname) stall_level0_num_files_(0), stall_leveln_slowdown_(0), started_at_(options.env->NowMicros()), - flush_on_destroy_(false), + flush_on_destroy_(true), delayed_writes_(0) { mem_->Ref(); diff --git a/db/db_impl_readonly.cc b/db/db_impl_readonly.cc index 72889215d..74809a4e7 100644 --- a/db/db_impl_readonly.cc +++ b/db/db_impl_readonly.cc @@ -65,7 +65,9 @@ Iterator* DBImplReadOnly::NewIterator(const ReadOptions& options) { NewMergingIterator(&internal_comparator_, &list[0], list.size()); return NewDBIterator( &dbname_, env_, user_comparator(), internal_iter, - reinterpret_cast(options.snapshot)->number_); + (options.snapshot != NULL + ? reinterpret_cast(options.snapshot)->number_ + : versions_->LastSequence())); } diff --git a/util/ldb_cmd.h b/util/ldb_cmd.h index aac9905af..63d22f913 100644 --- a/util/ldb_cmd.h +++ b/util/ldb_cmd.h @@ -190,9 +190,7 @@ protected: // Open the DB. leveldb::Status st; if (is_read_only_) { - //st = leveldb::DB::OpenForReadOnly(opt, db_path_, &db_); - // Could not get this to work - st = leveldb::DB::Open(opt, db_path_, &db_); + st = leveldb::DB::OpenForReadOnly(opt, db_path_, &db_); } else { st = leveldb::DB::Open(opt, db_path_, &db_); }