Skip to content

Commit 9b58c73

Browse files
author
Lei Jin
committed
call SanitizeDBOptionsByCFOptions() in the right place
Summary: It only covers Open() with default column family right now Test Plan: make release Reviewers: igor, yhchiang, sdong Reviewed By: sdong Subscribers: leveldb Differential Revision: https://reviews.facebook.net/D22467
1 parent a84234a commit 9b58c73

7 files changed

+15
-14
lines changed

db/db_impl.cc

+9-8
Original file line numberDiff line numberDiff line change
@@ -290,8 +290,10 @@ DBOptions SanitizeOptions(const std::string& dbname, const DBOptions& src) {
290290
return result;
291291
}
292292

293+
namespace {
294+
293295
Status SanitizeDBOptionsByCFOptions(
294-
DBOptions* db_opts,
296+
const DBOptions* db_opts,
295297
const std::vector<ColumnFamilyDescriptor>& column_families) {
296298
Status s;
297299
for (auto cf : column_families) {
@@ -303,7 +305,6 @@ Status SanitizeDBOptionsByCFOptions(
303305
return Status::OK();
304306
}
305307

306-
namespace {
307308
CompressionType GetCompressionFlush(const Options& options) {
308309
// Compressing memtable flushes might not help unless the sequential load
309310
// optimization is used for leveled compaction. Otherwise the CPU and
@@ -4802,11 +4803,7 @@ Status DB::Open(const Options& options, const std::string& dbname, DB** dbptr) {
48024803
column_families.push_back(
48034804
ColumnFamilyDescriptor(kDefaultColumnFamilyName, cf_options));
48044805
std::vector<ColumnFamilyHandle*> handles;
4805-
Status s = SanitizeDBOptionsByCFOptions(&db_options, column_families);
4806-
if (!s.ok()) {
4807-
return s;
4808-
}
4809-
s = DB::Open(db_options, dbname, column_families, &handles, dbptr);
4806+
Status s = DB::Open(db_options, dbname, column_families, &handles, dbptr);
48104807
if (s.ok()) {
48114808
assert(handles.size() == 1);
48124809
// i can delete the handle since DBImpl is always holding a reference to
@@ -4819,6 +4816,10 @@ Status DB::Open(const Options& options, const std::string& dbname, DB** dbptr) {
48194816
Status DB::Open(const DBOptions& db_options, const std::string& dbname,
48204817
const std::vector<ColumnFamilyDescriptor>& column_families,
48214818
std::vector<ColumnFamilyHandle*>* handles, DB** dbptr) {
4819+
Status s = SanitizeDBOptionsByCFOptions(&db_options, column_families);
4820+
if (!s.ok()) {
4821+
return s;
4822+
}
48224823
if (db_options.db_paths.size() > 1) {
48234824
for (auto& cfd : column_families) {
48244825
if (cfd.options.compaction_style != kCompactionStyleUniversal) {
@@ -4844,7 +4845,7 @@ Status DB::Open(const DBOptions& db_options, const std::string& dbname,
48444845
}
48454846

48464847
DBImpl* impl = new DBImpl(db_options, dbname);
4847-
Status s = impl->env_->CreateDirIfMissing(impl->options_.wal_dir);
4848+
s = impl->env_->CreateDirIfMissing(impl->options_.wal_dir);
48484849
if (s.ok()) {
48494850
for (auto db_path : impl->options_.db_paths) {
48504851
s = impl->env_->CreateDirIfMissing(db_path.path);

db/simple_table_db_test.cc

+1-1
Original file line numberDiff line numberDiff line change
@@ -556,7 +556,7 @@ class SimpleTableFactory: public TableFactory {
556556
WritableFile* file,
557557
CompressionType compression_type) const;
558558

559-
virtual Status SanitizeDBOptions(DBOptions* db_opts) const override {
559+
virtual Status SanitizeDBOptions(const DBOptions* db_opts) const override {
560560
return Status::OK();
561561
}
562562

include/rocksdb/table.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,7 @@ class TableFactory {
331331
//
332332
// If the function cannot find a way to sanitize the input DB Options,
333333
// a non-ok Status will be returned.
334-
virtual Status SanitizeDBOptions(DBOptions* db_opts) const = 0;
334+
virtual Status SanitizeDBOptions(const DBOptions* db_opts) const = 0;
335335

336336
// Return a string that contains printable format of table configurations.
337337
// RocksDB prints configurations at DB Open().

table/adaptive_table_factory.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ class AdaptiveTableFactory : public TableFactory {
4343
override;
4444

4545
// Sanitizes the specified DB Options.
46-
Status SanitizeDBOptions(DBOptions* db_opts) const override {
46+
Status SanitizeDBOptions(const DBOptions* db_opts) const override {
4747
if (db_opts->allow_mmap_reads == false) {
4848
return Status::NotSupported(
4949
"AdaptiveTable with allow_mmap_reads == false is not supported.");

table/block_based_table_factory.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ class BlockBasedTableFactory : public TableFactory {
4545
WritableFile* file, CompressionType compression_type) const override;
4646

4747
// Sanitizes the specified DB Options.
48-
Status SanitizeDBOptions(DBOptions* db_opts) const override {
48+
Status SanitizeDBOptions(const DBOptions* db_opts) const override {
4949
return Status::OK();
5050
}
5151

table/cuckoo_table_factory.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ class CuckooTableFactory : public TableFactory {
5555
CompressionType compression_type) const override;
5656

5757
// Sanitizes the specified DB Options.
58-
Status SanitizeDBOptions(DBOptions* db_opts) const override {
58+
Status SanitizeDBOptions(const DBOptions* db_opts) const override {
5959
return Status::OK();
6060
}
6161

table/plain_table_factory.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ class PlainTableFactory : public TableFactory {
169169
static const char kValueTypeSeqId0 = 0xFF;
170170

171171
// Sanitizes the specified DB Options.
172-
Status SanitizeDBOptions(DBOptions* db_opts) const override {
172+
Status SanitizeDBOptions(const DBOptions* db_opts) const override {
173173
if (db_opts->allow_mmap_reads == false) {
174174
return Status::NotSupported(
175175
"PlainTable with allow_mmap_reads == false is not supported.");

0 commit comments

Comments
 (0)