summaryrefslogtreecommitdiff
path: root/src/mongo/db/query/projection.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/query/projection.cpp')
-rw-r--r--src/mongo/db/query/projection.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/mongo/db/query/projection.cpp b/src/mongo/db/query/projection.cpp
index b55fc03602a..2646b39bd8c 100644
--- a/src/mongo/db/query/projection.cpp
+++ b/src/mongo/db/query/projection.cpp
@@ -227,6 +227,13 @@ void optimizeProjection(ProjectionPathASTNode* root) {
Projection::Projection(ProjectionPathASTNode root, ProjectType type)
: _root(std::move(root)), _type(type), _deps(analyzeProjection(&_root, type)) {}
+void Projection::optimize() {
+ if (!_projOptimized) {
+ optimizeProjection(&_root);
+ _deps = analyzeProjection(&_root, _type);
+ _projOptimized = true;
+ }
+}
namespace {
/**