summaryrefslogtreecommitdiff
path: root/src/mongo/db/s/shard_key_index_util.cpp
diff options
context:
space:
mode:
authorPol Pinol Castuera <pol.pinol@mongodb.com>2022-11-11 11:04:57 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-11-11 11:52:04 +0000
commitdd6c21b4f7c6d32161a0c262dbd63a8c86b2a44d (patch)
treef606aac7e94a6359cf698d09bd44a64180642d38 /src/mongo/db/s/shard_key_index_util.cpp
parent29e83c1741e5a27d950576f10077cd972d6285fc (diff)
downloadmongo-dd6c21b4f7c6d32161a0c262dbd63a8c86b2a44d.tar.gz
SERVER-68769 If the shard key index cannot be dropped, it cannot be hidden.
Diffstat (limited to 'src/mongo/db/s/shard_key_index_util.cpp')
-rw-r--r--src/mongo/db/s/shard_key_index_util.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/mongo/db/s/shard_key_index_util.cpp b/src/mongo/db/s/shard_key_index_util.cpp
index 833d27d709a..4359d731dbb 100644
--- a/src/mongo/db/s/shard_key_index_util.cpp
+++ b/src/mongo/db/s/shard_key_index_util.cpp
@@ -68,6 +68,10 @@ boost::optional<ShardKeyIndex> _findShardKeyPrefixedIndex(
continue;
}
+ if (indexDescriptor->hidden()) {
+ continue;
+ }
+
if (isCompatibleWithShardKey(
opCtx, collection, indexEntry, shardKey, requireSingleKey, errMsg)) {
if (!indexEntry->isMultikey(opCtx, collection)) {
@@ -179,11 +183,11 @@ bool isCompatibleWithShardKey(OperationContext* opCtx,
return false;
}
-bool isLastShardKeyIndex(OperationContext* opCtx,
- const CollectionPtr& collection,
- const IndexCatalog* indexCatalog,
- const std::string& indexName,
- const BSONObj& shardKey) {
+bool isLastNonHiddenShardKeyIndex(OperationContext* opCtx,
+ const CollectionPtr& collection,
+ const IndexCatalog* indexCatalog,
+ const std::string& indexName,
+ const BSONObj& shardKey) {
return !_findShardKeyPrefixedIndex(
opCtx, collection, indexCatalog, indexName, shardKey, true /* requireSingleKey */)
.has_value();