summaryrefslogtreecommitdiff
path: root/src/mongo/db/query/query_solution.cpp
diff options
context:
space:
mode:
authorIan Boros <ian.boros@mongodb.com>2019-09-25 00:44:40 +0000
committerevergreen <evergreen@mongodb.com>2019-09-25 00:44:40 +0000
commitdafd5d069c74b5ca92cf1ccba7a6a8386a5abe52 (patch)
treeb736c9a5579795640f8870668eba052de5075aab /src/mongo/db/query/query_solution.cpp
parente86636d7919c17047736e5dec833252a9de2b60a (diff)
downloadmongo-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.cpp17
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();
}