summaryrefslogtreecommitdiff
path: root/src/mongo/db/commands/count_cmd.cpp
diff options
context:
space:
mode:
authorKaloian Manassiev <kaloian.manassiev@mongodb.com>2020-11-03 14:08:19 -0500
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2020-11-11 14:52:36 +0000
commit7950f071b21957be1ab8e5ac2db8b650695a2bd0 (patch)
treec18442fd863b1d955d8194a2ddf6759201182e08 /src/mongo/db/commands/count_cmd.cpp
parentb43f6fefe1ac3e941fd55d5452a1ee21e7ff0ae6 (diff)
downloadmongo-7950f071b21957be1ab8e5ac2db8b650695a2bd0.tar.gz
SERVER-50027 Implement an 'allowMigrations' collection property
Diffstat (limited to 'src/mongo/db/commands/count_cmd.cpp')
-rw-r--r--src/mongo/db/commands/count_cmd.cpp26
1 files changed, 18 insertions, 8 deletions
diff --git a/src/mongo/db/commands/count_cmd.cpp b/src/mongo/db/commands/count_cmd.cpp
index 2f9a844950b..b2e23e4887c 100644
--- a/src/mongo/db/commands/count_cmd.cpp
+++ b/src/mongo/db/commands/count_cmd.cpp
@@ -181,10 +181,15 @@ public:
// Prevent chunks from being cleaned up during yields - this allows us to only check the
// version on initial entry into count.
- auto rangePreserver =
- CollectionShardingState::get(opCtx, nss)
- ->getOwnershipFilter(
- opCtx, CollectionShardingState::OrphanCleanupPolicy::kDisallowOrphanCleanup);
+ auto* const css = CollectionShardingState::get(opCtx, nss);
+ boost::optional<ScopedCollectionFilter> rangePreserver;
+ if (css->getCollectionDescription(opCtx).isSharded()) {
+ rangePreserver.emplace(
+ CollectionShardingState::get(opCtx, nss)
+ ->getOwnershipFilter(
+ opCtx,
+ CollectionShardingState::OrphanCleanupPolicy::kDisallowOrphanCleanup));
+ }
auto expCtx = makeExpressionContextForGetExecutor(
opCtx, request.getCollation().value_or(BSONObj()), nss);
@@ -244,10 +249,15 @@ public:
// Prevent chunks from being cleaned up during yields - this allows us to only check the
// version on initial entry into count.
- auto rangePreserver =
- CollectionShardingState::get(opCtx, nss)
- ->getOwnershipFilter(
- opCtx, CollectionShardingState::OrphanCleanupPolicy::kDisallowOrphanCleanup);
+ auto* const css = CollectionShardingState::get(opCtx, nss);
+ boost::optional<ScopedCollectionFilter> rangePreserver;
+ if (css->getCollectionDescription(opCtx).isSharded()) {
+ rangePreserver.emplace(
+ CollectionShardingState::get(opCtx, nss)
+ ->getOwnershipFilter(
+ opCtx,
+ CollectionShardingState::OrphanCleanupPolicy::kDisallowOrphanCleanup));
+ }
auto statusWithPlanExecutor =
getExecutorCount(makeExpressionContextForGetExecutor(