summaryrefslogtreecommitdiff
path: root/src/mongo/db/pipeline/document_source_internal_split_pipeline.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/pipeline/document_source_internal_split_pipeline.h')
-rw-r--r--src/mongo/db/pipeline/document_source_internal_split_pipeline.h12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/mongo/db/pipeline/document_source_internal_split_pipeline.h b/src/mongo/db/pipeline/document_source_internal_split_pipeline.h
index 3abcc737db4..8f0a8780dbe 100644
--- a/src/mongo/db/pipeline/document_source_internal_split_pipeline.h
+++ b/src/mongo/db/pipeline/document_source_internal_split_pipeline.h
@@ -43,7 +43,8 @@ namespace mongo {
* pipeline will be executed on mongoS if all other stages are eligible, and will be sent to a
* random participating shard otherwise.
*/
-class DocumentSourceInternalSplitPipeline final : public DocumentSource {
+class DocumentSourceInternalSplitPipeline final : public DocumentSource,
+ public NeedsMergerDocumentSource {
public:
static constexpr StringData kStageName = "$_internalSplitPipeline"_sd;
@@ -59,9 +60,12 @@ public:
return kStageName.rawData();
}
- boost::optional<MergingLogic> mergingLogic() final {
- // {shardsStage, mergingStage, sortPattern}
- return MergingLogic{nullptr, this, boost::none};
+ boost::intrusive_ptr<DocumentSource> getShardSource() final {
+ return nullptr;
+ }
+
+ MergingLogic mergingLogic() final {
+ return {this};
}
StageConstraints constraints(Pipeline::SplitState pipeState) const final {