summaryrefslogtreecommitdiff
path: root/src/mongo/db/s/shardsvr_rename_collection_command.cpp
diff options
context:
space:
mode:
authorPierlauro Sciarelli <pierlauro.sciarelli@mongodb.com>2021-04-28 18:04:24 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-04-28 18:30:32 +0000
commitfa47fcd4c4aeb16c644918886ed0337a88ad6007 (patch)
treea5727bc0ded966944159e45ea68954a02654e988 /src/mongo/db/s/shardsvr_rename_collection_command.cpp
parent75a84d831d04c13ee6d0578f2b22b01e234c9737 (diff)
downloadmongo-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.cpp12
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();