diff options
author | Yuhong Zhang <yuhong.zhang@mongodb.com> | 2022-03-28 17:45:22 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2022-03-28 18:43:51 +0000 |
commit | d38f89d0438e7135e1e0ab09d032e97de0a41b36 (patch) | |
tree | d054c8c366ec2550a3fd95935afd55ba3db7cd75 | |
parent | bcec786640b9f6b82e1073d41e68c95ff1814a6a (diff) | |
download | mongo-d38f89d0438e7135e1e0ab09d032e97de0a41b36.tar.gz |
Revert "SERVER-61158 Convert a non-unique index to a unique index via the collMod command"
This reverts commit fe15f13c05c4bfa65f09f6b60931770277785117.
-rw-r--r-- | jstests/core/collmod_convert_to_unique.js | 4 | ||||
-rw-r--r-- | src/mongo/db/catalog/coll_mod.cpp | 3 | ||||
-rw-r--r-- | src/mongo/db/storage/bson_collection_catalog_entry.cpp | 6 | ||||
-rw-r--r-- | src/mongo/db/storage/bson_collection_catalog_entry.h | 2 | ||||
-rw-r--r-- | src/mongo/db/storage/durable_catalog.h | 8 | ||||
-rw-r--r-- | src/mongo/db/storage/durable_catalog_impl.cpp | 10 | ||||
-rw-r--r-- | src/mongo/db/storage/durable_catalog_impl.h | 4 |
7 files changed, 2 insertions, 35 deletions
diff --git a/jstests/core/collmod_convert_to_unique.js b/jstests/core/collmod_convert_to_unique.js index 6647c0e4345..a7b85450164 100644 --- a/jstests/core/collmod_convert_to_unique.js +++ b/jstests/core/collmod_convert_to_unique.js @@ -71,8 +71,8 @@ if (db.getMongo().isMongos()) { } // Look up index details in listIndexes output. -assert.eq(countUnique({a: 1}), 1, 'index should be unique now: ' + tojson(coll.getIndexes())); +assert.eq(countUnique({a: 1}), 0, 'index should not be unique yet: ' + tojson(coll.getIndexes())); // Test uniqueness constraint. -assert.commandFailedWithCode(coll.insert({_id: 100, a: 100}), ErrorCodes.DuplicateKey); +assert.commandWorked(coll.insert({_id: 100, a: 100})); })();
\ No newline at end of file diff --git a/src/mongo/db/catalog/coll_mod.cpp b/src/mongo/db/catalog/coll_mod.cpp index d6ddb8b9ee0..cc153539e6d 100644 --- a/src/mongo/db/catalog/coll_mod.cpp +++ b/src/mongo/db/catalog/coll_mod.cpp @@ -390,9 +390,6 @@ Status _collModInternal(OperationContext* opCtx, if (cmr.indexUnique) { if (!cmr.idx->infoObj().getField("unique").trueValue()) { newUnique = cmr.indexUnique; - // Change the value of "unique" on disk. - DurableCatalog::get(opCtx)->updateUniqueSetting( - opCtx, coll->ns(), cmr.idx->indexName()); result->appendAs(newUnique, "unique_new"); } } diff --git a/src/mongo/db/storage/bson_collection_catalog_entry.cpp b/src/mongo/db/storage/bson_collection_catalog_entry.cpp index 7b4ac9c390e..d61e0a31332 100644 --- a/src/mongo/db/storage/bson_collection_catalog_entry.cpp +++ b/src/mongo/db/storage/bson_collection_catalog_entry.cpp @@ -120,12 +120,6 @@ void BSONCollectionCatalogEntry::IndexMetaData::updateTTLSetting(long long newEx spec = b.obj(); } -void BSONCollectionCatalogEntry::IndexMetaData::updateUniqueSetting() { - BSONObjBuilder b(spec); - b.appendBool("unique", true); - spec = b.obj(); -} - // -------------------------- int BSONCollectionCatalogEntry::MetaData::findIndexOffset(StringData name) const { diff --git a/src/mongo/db/storage/bson_collection_catalog_entry.h b/src/mongo/db/storage/bson_collection_catalog_entry.h index 4fdac273732..4f71435937c 100644 --- a/src/mongo/db/storage/bson_collection_catalog_entry.h +++ b/src/mongo/db/storage/bson_collection_catalog_entry.h @@ -64,8 +64,6 @@ public: void updateTTLSetting(long long newExpireSeconds); - void updateUniqueSetting(); - std::string name() const { return spec["name"].String(); } diff --git a/src/mongo/db/storage/durable_catalog.h b/src/mongo/db/storage/durable_catalog.h index cb9204ef5e2..65970cde75a 100644 --- a/src/mongo/db/storage/durable_catalog.h +++ b/src/mongo/db/storage/durable_catalog.h @@ -131,14 +131,6 @@ public: StringData idxName, long long newExpireSeconds) = 0; - /* - * Converts the the given index to be unique. - * This is a one-way transformation - the uniqueness constraint cannot be removed. - */ - virtual void updateUniqueSetting(OperationContext* opCtx, - NamespaceString ns, - StringData idxName) = 0; - /** * Compare the UUID argument to the UUID obtained from the metadata. Return true if they * are equal, false otherwise. uuid can become a CollectionUUID once MMAPv1 is removed. diff --git a/src/mongo/db/storage/durable_catalog_impl.cpp b/src/mongo/db/storage/durable_catalog_impl.cpp index 2fd9c880e02..8e3d75c6640 100644 --- a/src/mongo/db/storage/durable_catalog_impl.cpp +++ b/src/mongo/db/storage/durable_catalog_impl.cpp @@ -908,16 +908,6 @@ void DurableCatalogImpl::updateTTLSetting(OperationContext* opCtx, putMetaData(opCtx, ns, md); } -void DurableCatalogImpl::updateUniqueSetting(OperationContext* opCtx, - NamespaceString ns, - StringData idxName) { - BSONCollectionCatalogEntry::MetaData md = getMetaData(opCtx, ns); - int offset = md.findIndexOffset(idxName); - invariant(offset >= 0); - md.indexes[offset].updateUniqueSetting(); - putMetaData(opCtx, ns, md); -} - bool DurableCatalogImpl::isEqualToMetadataUUID(OperationContext* opCtx, NamespaceString ns, OptionalCollectionUUID uuid) { diff --git a/src/mongo/db/storage/durable_catalog_impl.h b/src/mongo/db/storage/durable_catalog_impl.h index 599372132fa..5b00df9f1e0 100644 --- a/src/mongo/db/storage/durable_catalog_impl.h +++ b/src/mongo/db/storage/durable_catalog_impl.h @@ -122,10 +122,6 @@ public: StringData idxName, long long newExpireSeconds); - virtual void updateUniqueSetting(OperationContext* opCtx, - NamespaceString ns, - StringData idxName); - bool isEqualToMetadataUUID(OperationContext* opCtx, NamespaceString ns, OptionalCollectionUUID uuid); |