From 3215967205165c50d86b90327890a8f88b43802b Mon Sep 17 00:00:00 2001 From: Stanislau Hlebik Date: Wed, 30 Jul 2014 18:21:55 -0700 Subject: [PATCH] Fix readonly db Summary: DBImplReadOnly::CompactRange wasn't override DBImpl::CompactRange; this can cause problem when using StackableDB inheritors like DbWithTtl. P. S. Thanks C++11 for override :) Test Plan: make all check Reviewers: igor, sdong Reviewed By: sdong Subscribers: yhchiang, leveldb Differential Revision: https://reviews.facebook.net/D20829 --- db/db_impl_readonly.h | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/db/db_impl_readonly.h b/db/db_impl_readonly.h index 95cdbcfae..47c8ab33d 100644 --- a/db/db_impl_readonly.h +++ b/db/db_impl_readonly.h @@ -32,60 +32,62 @@ class DBImplReadOnly : public DBImpl { using DB::Get; virtual Status Get(const ReadOptions& options, ColumnFamilyHandle* column_family, const Slice& key, - std::string* value); + std::string* value) override; // TODO: Implement ReadOnly MultiGet? using DBImpl::NewIterator; virtual Iterator* NewIterator(const ReadOptions&, - ColumnFamilyHandle* column_family); + ColumnFamilyHandle* column_family) override; virtual Status NewIterators( const ReadOptions& options, const std::vector& column_families, - std::vector* iterators); + std::vector* iterators) override; using DBImpl::Put; virtual Status Put(const WriteOptions& options, ColumnFamilyHandle* column_family, const Slice& key, - const Slice& value) { + const Slice& value) override { return Status::NotSupported("Not supported operation in read only mode."); } using DBImpl::Merge; virtual Status Merge(const WriteOptions& options, ColumnFamilyHandle* column_family, const Slice& key, - const Slice& value) { + const Slice& value) override { return Status::NotSupported("Not supported operation in read only mode."); } using DBImpl::Delete; virtual Status Delete(const WriteOptions& options, - ColumnFamilyHandle* column_family, const Slice& key) { + ColumnFamilyHandle* column_family, + const Slice& key) override { return Status::NotSupported("Not supported operation in read only mode."); } - virtual Status Write(const WriteOptions& options, WriteBatch* updates) { + virtual Status Write(const WriteOptions& options, + WriteBatch* updates) override { return Status::NotSupported("Not supported operation in read only mode."); } using DBImpl::CompactRange; virtual Status CompactRange(ColumnFamilyHandle* column_family, const Slice* begin, const Slice* end, - bool reduce_level = false, - int target_level = -1) { + bool reduce_level = false, int target_level = -1, + uint32_t target_path_id = 0) override { return Status::NotSupported("Not supported operation in read only mode."); } - virtual Status DisableFileDeletions() { + virtual Status DisableFileDeletions() override { return Status::NotSupported("Not supported operation in read only mode."); } - virtual Status EnableFileDeletions(bool force) { + virtual Status EnableFileDeletions(bool force) override { return Status::NotSupported("Not supported operation in read only mode."); } virtual Status GetLiveFiles(std::vector&, uint64_t* manifest_file_size, - bool flush_memtable = true) { + bool flush_memtable = true) override { return Status::NotSupported("Not supported operation in read only mode."); } using DBImpl::Flush; virtual Status Flush(const FlushOptions& options, - ColumnFamilyHandle* column_family) { + ColumnFamilyHandle* column_family) override { return Status::NotSupported("Not supported operation in read only mode."); }