summaryrefslogtreecommitdiff
path: root/src/mongo/db/pipeline/pipeline.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/pipeline/pipeline.h')
-rw-r--r--src/mongo/db/pipeline/pipeline.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/mongo/db/pipeline/pipeline.h b/src/mongo/db/pipeline/pipeline.h
index 96cf6426be3..8965f493dc2 100644
--- a/src/mongo/db/pipeline/pipeline.h
+++ b/src/mongo/db/pipeline/pipeline.h
@@ -171,6 +171,16 @@ public:
static Pipeline::SourceContainer::iterator optimizeEndOfPipeline(
Pipeline::SourceContainer::iterator itr, Pipeline::SourceContainer* container);
+ /**
+ * Applies optimizeAt() to all stages in the given pipeline after the stage that 'itr' points
+ * to.
+ *
+ * Returns a valid iterator that points to the new "end of the pipeline": i.e., the stage that
+ * comes after 'itr' in the newly optimized pipeline.
+ */
+ static Pipeline::SourceContainer::iterator optimizeAtEndOfPipeline(
+ Pipeline::SourceContainer::iterator itr, Pipeline::SourceContainer* container);
+
static std::unique_ptr<Pipeline, PipelineDeleter> makePipelineFromViewDefinition(
const boost::intrusive_ptr<ExpressionContext>& subPipelineExpCtx,
ExpressionContext::ResolvedNamespace resolvedNs,