diff options
Diffstat (limited to 'src/mongo/db/pipeline/document_source_single_document_transformation.cpp')
-rw-r--r-- | src/mongo/db/pipeline/document_source_single_document_transformation.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/mongo/db/pipeline/document_source_single_document_transformation.cpp b/src/mongo/db/pipeline/document_source_single_document_transformation.cpp index a0dc8fbfcf5..4575e9fa02b 100644 --- a/src/mongo/db/pipeline/document_source_single_document_transformation.cpp +++ b/src/mongo/db/pipeline/document_source_single_document_transformation.cpp @@ -93,6 +93,11 @@ Value DocumentSourceSingleDocumentTransformation::serialize( Pipeline::SourceContainer::iterator DocumentSourceSingleDocumentTransformation::doOptimizeAt( Pipeline::SourceContainer::iterator itr, Pipeline::SourceContainer* container) { invariant(*itr == this); + + if (std::next(itr) == container->end()) { + return container->end(); + } + auto nextSkip = dynamic_cast<DocumentSourceSkip*>((*std::next(itr)).get()); if (nextSkip) { |