diff options
author | Ian Boros <ian.boros@mongodb.com> | 2019-09-25 00:44:40 +0000 |
---|---|---|
committer | evergreen <evergreen@mongodb.com> | 2019-09-25 00:44:40 +0000 |
commit | dafd5d069c74b5ca92cf1ccba7a6a8386a5abe52 (patch) | |
tree | b736c9a5579795640f8870668eba052de5075aab /src/mongo/db/query/query_solution.cpp | |
parent | e86636d7919c17047736e5dec833252a9de2b60a (diff) | |
download | mongo-dafd5d069c74b5ca92cf1ccba7a6a8386a5abe52.tar.gz |
SERVER-42422 replace ParsedProjection with ProjectionAST in the query planner
Diffstat (limited to 'src/mongo/db/query/query_solution.cpp')
-rw-r--r-- | src/mongo/db/query/query_solution.cpp | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/src/mongo/db/query/query_solution.cpp b/src/mongo/db/query/query_solution.cpp index 50a0650ee02..e09c8c82bd0 100644 --- a/src/mongo/db/query/query_solution.cpp +++ b/src/mongo/db/query/query_solution.cpp @@ -878,7 +878,7 @@ void ProjectionNode::appendToString(str::stream* ss, int indent) const { addIndent(ss, indent); *ss << "PROJ\n"; addIndent(ss, indent + 1); - *ss << "proj = " << projection.toString() << '\n'; + *ss << "proj = " << proj.getProjObj().toString() << '\n'; addIndent(ss, indent + 1); *ss << "type = " << projectionImplementationTypeToString() << '\n'; addCommon(ss, indent); @@ -900,7 +900,7 @@ void ProjectionNode::computeProperties() { for (auto&& sort : inputSorts) { bool sortCompatible = true; for (auto&& key : sort) { - if (!parsed.isFieldRetainedExactly(key.fieldNameStringData())) { + if (!proj.isFieldRetainedExactly(key.fieldNameStringData())) { sortCompatible = false; break; } @@ -921,10 +921,7 @@ void ProjectionNode::cloneProjectionData(ProjectionNode* copy) const { ProjectionNode* ProjectionNodeDefault::clone() const { auto copy = std::make_unique<ProjectionNodeDefault>( - std::unique_ptr<QuerySolutionNode>(children[0]->clone()), - fullExpression, - projection, - parsed); + std::unique_ptr<QuerySolutionNode>(children[0]->clone()), fullExpression, proj); ProjectionNode::cloneProjectionData(copy.get()); return copy.release(); } @@ -933,8 +930,7 @@ ProjectionNode* ProjectionNodeCovered::clone() const { auto copy = std::make_unique<ProjectionNodeCovered>( std::unique_ptr<QuerySolutionNode>(children[0]->clone()), fullExpression, - projection, - parsed, + proj, coveredKeyObj); ProjectionNode::cloneProjectionData(copy.get()); return copy.release(); @@ -942,10 +938,7 @@ ProjectionNode* ProjectionNodeCovered::clone() const { ProjectionNode* ProjectionNodeSimple::clone() const { auto copy = std::make_unique<ProjectionNodeSimple>( - std::unique_ptr<QuerySolutionNode>(children[0]->clone()), - fullExpression, - projection, - parsed); + std::unique_ptr<QuerySolutionNode>(children[0]->clone()), fullExpression, proj); ProjectionNode::cloneProjectionData(copy.get()); return copy.release(); } |