summaryrefslogtreecommitdiff
path: root/src/mongo/db/query/planner_analysis.cpp
diff options
context:
space:
mode:
authorBenjamin Murphy <benjamin_murphy@me.com>2016-03-30 16:15:23 -0400
committerBenjamin Murphy <benjamin_murphy@me.com>2016-04-21 11:12:32 -0400
commit1333f35d0f6060d5b053c6868cf0b701850ac155 (patch)
tree23a4959a3e4f4a58576cd0551a093bacdd17f5e8 /src/mongo/db/query/planner_analysis.cpp
parente07aa09634005f51787a724ef1c17ecbc1d9faf1 (diff)
downloadmongo-1333f35d0f6060d5b053c6868cf0b701850ac155.tar.gz
SERVER-23436 ProjectionNode::getSort propagates sort from children.
Diffstat (limited to 'src/mongo/db/query/planner_analysis.cpp')
-rw-r--r--src/mongo/db/query/planner_analysis.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/mongo/db/query/planner_analysis.cpp b/src/mongo/db/query/planner_analysis.cpp
index 01efae6bb27..8be4d834ca9 100644
--- a/src/mongo/db/query/planner_analysis.cpp
+++ b/src/mongo/db/query/planner_analysis.cpp
@@ -726,10 +726,10 @@ QuerySolution* QueryPlannerAnalysis::analyzeDataAccess(const CanonicalQuery& que
// the fields we want to include and they're not dotted. So we want to execute the
// projection in the fast-path simple fashion. Just don't know which fast path yet.
LOG(5) << "PROJECTION: requires fields\n";
- const vector<string>& fields = query.getProj()->getRequiredFields();
+ const vector<StringData>& fields = query.getProj()->getRequiredFields();
bool covered = true;
for (size_t i = 0; i < fields.size(); ++i) {
- if (!solnRoot->hasField(fields[i])) {
+ if (!solnRoot->hasField(fields[i].toString())) {
LOG(5) << "PROJECTION: not covered due to field " << fields[i] << endl;
covered = false;
break;
@@ -805,7 +805,7 @@ QuerySolution* QueryPlannerAnalysis::analyzeDataAccess(const CanonicalQuery& que
}
// We now know we have whatever data is required for the projection.
- ProjectionNode* projNode = new ProjectionNode();
+ ProjectionNode* projNode = new ProjectionNode(*query.getProj());
projNode->children.push_back(solnRoot);
projNode->fullExpression = query.root();
projNode->projection = lpq.getProj();