summaryrefslogtreecommitdiff
path: root/src/mongo/db/pipeline/document_source_check_resume_token.h
diff options
context:
space:
mode:
authorBernard Gorman <bernard.gorman@gmail.com>2017-09-26 23:23:48 -0400
committerBernard Gorman <bernard.gorman@gmail.com>2017-10-04 10:14:35 +0100
commit939f2bcda18db41b774bbe3cf16e1d4928c58e5d (patch)
tree7b99539bf440a9d76030a07c79b3347792fb5f7d /src/mongo/db/pipeline/document_source_check_resume_token.h
parent284d80ba6ee928cdf3d8f23c161a7ee1bf4a8faf (diff)
downloadmongo-939f2bcda18db41b774bbe3cf16e1d4928c58e5d.tar.gz
SERVER-29141 Extend StageConstraints to allow kLocalOnly and kMongos host requirements, given pipeline split state
Diffstat (limited to 'src/mongo/db/pipeline/document_source_check_resume_token.h')
-rw-r--r--src/mongo/db/pipeline/document_source_check_resume_token.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/mongo/db/pipeline/document_source_check_resume_token.h b/src/mongo/db/pipeline/document_source_check_resume_token.h
index 09a45d8277b..2ff83bb2b35 100644
--- a/src/mongo/db/pipeline/document_source_check_resume_token.h
+++ b/src/mongo/db/pipeline/document_source_check_resume_token.h
@@ -60,7 +60,7 @@ public:
GetNextResult getNext() final;
const char* getSourceName() const final;
- StageConstraints constraints() const final {
+ StageConstraints constraints(Pipeline::SplitState pipeState) const final {
return {StreamType::kStreaming,
PositionRequirement::kNone,
HostTypeRequirement::kAnyShard,
@@ -95,10 +95,13 @@ public:
GetNextResult getNext() final;
const char* getSourceName() const final;
- StageConstraints constraints() const final {
+ StageConstraints constraints(Pipeline::SplitState pipeState) const final {
+ // This stage should never be in the shards part of a split pipeline.
+ invariant(pipeState != Pipeline::SplitState::kSplitForShards);
return {StreamType::kStreaming,
PositionRequirement::kNone,
- HostTypeRequirement::kNone,
+ (pipeState == Pipeline::SplitState::kUnsplit ? HostTypeRequirement::kNone
+ : HostTypeRequirement::kMongoS),
DiskUseRequirement::kNoDiskUse,
FacetRequirement::kNotAllowed};
}