diff options
Diffstat (limited to 'src/mongo/db/query/query_solution.h')
| -rw-r--r-- | src/mongo/db/query/query_solution.h | 20 |
1 files changed, 5 insertions, 15 deletions
diff --git a/src/mongo/db/query/query_solution.h b/src/mongo/db/query/query_solution.h index 8b04e9f0bf3..f318884280b 100644 --- a/src/mongo/db/query/query_solution.h +++ b/src/mongo/db/query/query_solution.h @@ -463,10 +463,6 @@ struct CollectionScanNode : public QuerySolutionNodeWithSortSet { QuerySolutionNode* clone() const; - bool doClusteredCollectionScan() const { - return (!isOplog && (minRecord || maxRecord)); - } - // Name of the namespace. std::string name; @@ -506,9 +502,6 @@ struct CollectionScanNode : public QuerySolutionNodeWithSortSet { int direction{1}; - // Tells whether the collection is an oplog. - bool isOplog = false; - // By default, includes the minRecord and maxRecord when present. CollectionScanParams::ScanBoundInclusion boundInclusion = CollectionScanParams::ScanBoundInclusion::kIncludeBothStartAndEndRecords; @@ -522,8 +515,8 @@ struct CollectionScanNode : public QuerySolutionNodeWithSortSet { struct ColumnIndexScanNode : public QuerySolutionNode { ColumnIndexScanNode(ColumnIndexEntry, - OrderedPathSet outputFields, - OrderedPathSet matchFields, + std::set<std::string> outputFields, + std::set<std::string> matchFields, StringMap<std::unique_ptr<MatchExpression>> filtersByPath, std::unique_ptr<MatchExpression> postAssemblyFilter); @@ -563,11 +556,11 @@ struct ColumnIndexScanNode : public QuerySolutionNode { ColumnIndexEntry indexEntry; // The fields we need to output. Dot separated path names. - OrderedPathSet outputFields; + std::set<std::string> outputFields; // The fields which are referenced by any and all filters - either in 'filtersByPath' or // 'postAssemblyFilter'. - OrderedPathSet matchFields; + std::set<std::string> matchFields; // A column scan can apply a filter to the columns directly while scanning, or to a document // assembled from the scanned columns. @@ -582,7 +575,7 @@ struct ColumnIndexScanNode : public QuerySolutionNode { // A cached copy of the union of the above two field sets which we expect to be frequently asked // for. - OrderedPathSet allFields; + std::set<std::string> allFields; }; /** @@ -1401,13 +1394,11 @@ struct GroupNode : public QuerySolutionNode { for (auto& groupByExprField : groupByExpression->getDependencies().fields) { requiredFields.insert(groupByExprField); } - needWholeDocument = groupByExpression->getDependencies().needWholeDocument; for (auto&& acc : accumulators) { auto argExpr = acc.expr.argument; for (auto& argExprField : argExpr->getDependencies().fields) { requiredFields.insert(argExprField); } - needWholeDocument |= argExpr->getDependencies().needWholeDocument; } } @@ -1443,7 +1434,6 @@ struct GroupNode : public QuerySolutionNode { // the fields in the 'groupByExpressions' and the fields in the input Expressions of the // 'accumulators'. StringSet requiredFields; - bool needWholeDocument = false; // If set to true, generated SBE plan will produce result as BSON object. If false, // 'sbe::Object' is produced instead. |
