diff options
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.h | 12 |
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 { |