diff options
author | Pierlauro Sciarelli <pierlauro.sciarelli@mongodb.com> | 2021-04-28 18:04:24 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2021-04-28 18:30:32 +0000 |
commit | fa47fcd4c4aeb16c644918886ed0337a88ad6007 (patch) | |
tree | a5727bc0ded966944159e45ea68954a02654e988 /src/mongo/db/s/shardsvr_rename_collection_command.cpp | |
parent | 75a84d831d04c13ee6d0578f2b22b01e234c9737 (diff) | |
download | mongo-fa47fcd4c4aeb16c644918886ed0337a88ad6007.tar.gz |
SERVER-55151 Implement rename participant primary only service
Diffstat (limited to 'src/mongo/db/s/shardsvr_rename_collection_command.cpp')
-rw-r--r-- | src/mongo/db/s/shardsvr_rename_collection_command.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/mongo/db/s/shardsvr_rename_collection_command.cpp b/src/mongo/db/s/shardsvr_rename_collection_command.cpp index f8d2c5f6471..63c315b23d4 100644 --- a/src/mongo/db/s/shardsvr_rename_collection_command.cpp +++ b/src/mongo/db/s/shardsvr_rename_collection_command.cpp @@ -38,7 +38,7 @@ #include "mongo/db/s/collection_sharding_state.h" #include "mongo/db/s/dist_lock_manager.h" #include "mongo/db/s/rename_collection_coordinator.h" -#include "mongo/db/s/rename_collection_coordinator_document_gen.h" +#include "mongo/db/s/sharded_rename_collection_gen.h" #include "mongo/db/s/sharding_ddl_50_upgrade_downgrade.h" #include "mongo/db/s/sharding_ddl_coordinator_service.h" #include "mongo/db/s/sharding_ddl_util.h" @@ -141,6 +141,16 @@ public: << opCtx->getWriteConcern().wMode, opCtx->getWriteConcern().wMode == WriteConcernOptions::kMajority); + // TODO SERVER-56296 Uniform `fromNss == toNss` behavior between RS and sharded cluster + if (fromNss == toNss) { + // Simply return the current collection version + const auto catalog = Grid::get(opCtx)->catalogCache(); + const auto cm = + uassertStatusOK(catalog->getCollectionRoutingInfoWithRefresh(opCtx, fromNss)); + return RenameCollectionResponse(cm.isSharded() ? cm.getVersion() + : ChunkVersion::UNSHARDED()); + } + validateNamespacesForRenameCollection(opCtx, fromNss, toNss); auto coordinatorDoc = RenameCollectionCoordinatorDocument(); |