diff options
author | Benjamin Murphy <benjamin_murphy@me.com> | 2016-03-30 16:15:23 -0400 |
---|---|---|
committer | Benjamin Murphy <benjamin_murphy@me.com> | 2016-04-21 11:12:32 -0400 |
commit | 1333f35d0f6060d5b053c6868cf0b701850ac155 (patch) | |
tree | 23a4959a3e4f4a58576cd0551a093bacdd17f5e8 /src/mongo/db/query/planner_analysis.cpp | |
parent | e07aa09634005f51787a724ef1c17ecbc1d9faf1 (diff) | |
download | mongo-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.cpp | 6 |
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(); |