diff options
author | Benety Goh <benety@mongodb.com> | 2014-11-25 19:30:02 -0500 |
---|---|---|
committer | Benety Goh <benety@mongodb.com> | 2014-12-03 11:55:06 -0500 |
commit | 5ebf0f69ee53cde7c5d2a1289609ee1692705c97 (patch) | |
tree | da8bfd0c27589be38c8878cebde960b5fa1fa6d2 | |
parent | 63ffe70aec1309ff679d6ba6c0272524e767ad69 (diff) | |
download | mongo-5ebf0f69ee53cde7c5d2a1289609ee1692705c97.tar.gz |
SERVER-16233 storage engine factories support index options validation
-rw-r--r-- | src/mongo/db/storage/devnull/devnull_init.cpp | 4 | ||||
-rw-r--r-- | src/mongo/db/storage/in_memory/in_memory_init.cpp | 4 | ||||
-rw-r--r-- | src/mongo/db/storage/mmap_v1/mmap_v1_init.cpp | 4 | ||||
-rw-r--r-- | src/mongo/db/storage/rocks/rocks_init.cpp | 3 | ||||
-rw-r--r-- | src/mongo/db/storage/storage_engine.h | 6 | ||||
-rw-r--r-- | src/mongo/db/storage/wiredtiger/wiredtiger_init.cpp | 7 |
6 files changed, 28 insertions, 0 deletions
diff --git a/src/mongo/db/storage/devnull/devnull_init.cpp b/src/mongo/db/storage/devnull/devnull_init.cpp index 95050ac2813..aa752c3da07 100644 --- a/src/mongo/db/storage/devnull/devnull_init.cpp +++ b/src/mongo/db/storage/devnull/devnull_init.cpp @@ -53,6 +53,10 @@ namespace mongo { { return Status::OK(); } + + virtual Status validateIndexStorageOptions(const BSONObj& options) const { + return Status::OK(); + } }; } // namespace diff --git a/src/mongo/db/storage/in_memory/in_memory_init.cpp b/src/mongo/db/storage/in_memory/in_memory_init.cpp index 321721f2009..c0dc832459f 100644 --- a/src/mongo/db/storage/in_memory/in_memory_init.cpp +++ b/src/mongo/db/storage/in_memory/in_memory_init.cpp @@ -54,6 +54,10 @@ namespace mongo { { return Status::OK(); } + + virtual Status validateIndexStorageOptions(const BSONObj& options) const { + return Status::OK(); + } }; } // namespace diff --git a/src/mongo/db/storage/mmap_v1/mmap_v1_init.cpp b/src/mongo/db/storage/mmap_v1/mmap_v1_init.cpp index 8724dff7cfb..65a1a7b3c4b 100644 --- a/src/mongo/db/storage/mmap_v1/mmap_v1_init.cpp +++ b/src/mongo/db/storage/mmap_v1/mmap_v1_init.cpp @@ -51,6 +51,10 @@ namespace mongo { { return Status::OK(); } + + virtual Status validateIndexStorageOptions(const BSONObj& options) const { + return Status::OK(); + } }; } // namespace diff --git a/src/mongo/db/storage/rocks/rocks_init.cpp b/src/mongo/db/storage/rocks/rocks_init.cpp index 48e2bc50701..ad0fe429c78 100644 --- a/src/mongo/db/storage/rocks/rocks_init.cpp +++ b/src/mongo/db/storage/rocks/rocks_init.cpp @@ -54,6 +54,9 @@ namespace mongo { return Status::OK(); } + virtual Status validateIndexStorageOptions(const BSONObj& options) const { + return Status::OK(); + } }; } // namespace diff --git a/src/mongo/db/storage/storage_engine.h b/src/mongo/db/storage/storage_engine.h index 63912c6bd0c..5e8f623c188 100644 --- a/src/mongo/db/storage/storage_engine.h +++ b/src/mongo/db/storage/storage_engine.h @@ -80,6 +80,12 @@ namespace mongo { * Returns an error if the creation options are not valid. */ virtual Status validateCollectionStorageOptions(const BSONObj& options) const = 0; + + /** + * Validates creation options for an index in the StorageEngine. + * Returns an error if the creation options are not valid. + */ + virtual Status validateIndexStorageOptions(const BSONObj& options) const = 0; }; /** diff --git a/src/mongo/db/storage/wiredtiger/wiredtiger_init.cpp b/src/mongo/db/storage/wiredtiger/wiredtiger_init.cpp index 9f8882aa70a..9578c30d284 100644 --- a/src/mongo/db/storage/wiredtiger/wiredtiger_init.cpp +++ b/src/mongo/db/storage/wiredtiger/wiredtiger_init.cpp @@ -31,6 +31,8 @@ #define MONGO_LOG_DEFAULT_COMPONENT ::mongo::logger::LogComponent::kStorage +#include "mongo/platform/basic.h" + #include "mongo/base/init.h" #include "mongo/db/catalog/collection_options.h" #include "mongo/db/global_environment_d.h" @@ -38,6 +40,7 @@ #include "mongo/db/storage/kv/kv_storage_engine.h" #include "mongo/db/storage/wiredtiger/wiredtiger_kv_engine.h" #include "mongo/db/storage/wiredtiger/wiredtiger_global_options.h" +#include "mongo/db/storage/wiredtiger/wiredtiger_index.h" #include "mongo/db/storage/wiredtiger/wiredtiger_parameters.h" #include "mongo/db/storage/wiredtiger/wiredtiger_record_store.h" #include "mongo/db/storage/wiredtiger/wiredtiger_server_status.h" @@ -75,6 +78,10 @@ namespace mongo { virtual Status validateCollectionStorageOptions(const BSONObj& options) const { return Status::OK(); } + + virtual Status validateIndexStorageOptions(const BSONObj& options) const { + return WiredTigerIndex::parseIndexOptions(options).getStatus(); + } }; } // namespace |