diff options
Diffstat (limited to 'src/mongo/db/query/query_solution.cpp')
-rw-r--r-- | src/mongo/db/query/query_solution.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/mongo/db/query/query_solution.cpp b/src/mongo/db/query/query_solution.cpp index da1fa79c034..e2168669187 100644 --- a/src/mongo/db/query/query_solution.cpp +++ b/src/mongo/db/query/query_solution.cpp @@ -501,6 +501,16 @@ void IndexScanNode::computeProperties() { } equalityFields.insert(oil.name); } + } else { + BSONObjIterator keyIter(indexKeyPattern); + BSONObjIterator startIter(bounds.startKey); + BSONObjIterator endIter(bounds.endKey); + while (keyIter.more() && startIter.more() && endIter.more()) { + BSONElement key = keyIter.next(); + if (startIter.next() == endIter.next()) { + equalityFields.insert(key.fieldName()); + } + } } if (equalityFields.empty()) { |