diff options
author | Pol Pinol Castuera <pol.pinol@mongodb.com> | 2022-11-11 11:04:57 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2022-11-11 11:52:04 +0000 |
commit | dd6c21b4f7c6d32161a0c262dbd63a8c86b2a44d (patch) | |
tree | f606aac7e94a6359cf698d09bd44a64180642d38 /src/mongo/db/s/shard_key_index_util.cpp | |
parent | 29e83c1741e5a27d950576f10077cd972d6285fc (diff) | |
download | mongo-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.cpp | 14 |
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(); |