diff options
author | Mathias Stearn <mathias@10gen.com> | 2015-02-17 18:20:42 -0500 |
---|---|---|
committer | Mathias Stearn <mathias@10gen.com> | 2015-02-19 19:55:44 -0500 |
commit | ae18bbec33db1c4bf57d328505474eb7bba517df (patch) | |
tree | d40f788493b48acc2d65e1c002ce4adf41e0313f /src/mongo/db/storage/mmap_v1/record_store_v1_base.cpp | |
parent | 30d9e17410a3dec85ca2a148c745a6b8f9a8ecd0 (diff) | |
download | mongo-ae18bbec33db1c4bf57d328505474eb7bba517df.tar.gz |
SERVER-17312 collmod command now handles parsing of all arguments
For the two currently supported engine-specific options, the collmod command
will handle parsing the arguments and tell the CollectionCatalogEntry to
update it's flags option.
This removes the ability of storage engines to have custom options that can
be changed after the collection is created. There were issues related to
argument validation and replication of changes (including for initial sync).
A correct solution will be designed as SERVER-17320.
Diffstat (limited to 'src/mongo/db/storage/mmap_v1/record_store_v1_base.cpp')
-rw-r--r-- | src/mongo/db/storage/mmap_v1/record_store_v1_base.cpp | 32 |
1 files changed, 0 insertions, 32 deletions
diff --git a/src/mongo/db/storage/mmap_v1/record_store_v1_base.cpp b/src/mongo/db/storage/mmap_v1/record_store_v1_base.cpp index 9ab9dce8dc6..785d4f45b01 100644 --- a/src/mongo/db/storage/mmap_v1/record_store_v1_base.cpp +++ b/src/mongo/db/storage/mmap_v1/record_store_v1_base.cpp @@ -968,36 +968,4 @@ namespace mongo { // extent headers. invariant(false); } - - Status RecordStoreV1Base::setCustomOption( OperationContext* txn, - const BSONElement& option, - BSONObjBuilder* info ) { - const StringData name = option.fieldNameStringData(); - const int flag = (name == "usePowerOf2Sizes") ? Flag_UsePowerOf2Sizes : - (name == "noPadding") ? Flag_NoPadding : - 0; - if (flag) { - bool oldSetting = _details->isUserFlagSet(flag); - bool newSetting = option.trueValue(); - - if ( oldSetting != newSetting ) { - // change userFlags - info->appendBool( name.toString() + "_old", oldSetting ); - - if ( newSetting ) - _details->setUserFlag( txn, flag ); - else - _details->clearUserFlag( txn, flag ); - - invariant(_details->isUserFlagSet(flag) == newSetting); - - info->appendBool( name.toString() + "_new", newSetting ); - } - - return Status::OK(); - } - - return Status( ErrorCodes::InvalidOptions, - str::stream() << "no such option: " << option.fieldName() ); - } } |