diff options
author | Qingyang Chen <qingyang.chen@10gen.com> | 2015-06-05 16:10:06 -0400 |
---|---|---|
committer | Jason Rassi <rassi@10gen.com> | 2015-06-16 18:41:49 -0400 |
commit | 2b4474715604697acacca70c7f7647947b2c82f1 (patch) | |
tree | 6176ac301782aaf15069ab91cc013313c6662e6d /src/mongo/db/query/planner_ixselect.cpp | |
parent | 2bf8ac5739d517df9d762e25687eec4456738d49 (diff) | |
download | mongo-2b4474715604697acacca70c7f7647947b2c82f1.tar.gz |
SERVER-18309 have {$in: [.., null, ..]} not use sparse indexes
Closes #979
Signed-off-by: Jason Rassi <rassi@10gen.com>
Diffstat (limited to 'src/mongo/db/query/planner_ixselect.cpp')
-rw-r--r-- | src/mongo/db/query/planner_ixselect.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/mongo/db/query/planner_ixselect.cpp b/src/mongo/db/query/planner_ixselect.cpp index c99743b4ca4..f883b5468be 100644 --- a/src/mongo/db/query/planner_ixselect.cpp +++ b/src/mongo/db/query/planner_ixselect.cpp @@ -154,6 +154,14 @@ namespace mongo { } } + // Can't check for $in w/ null element w/a sparse index. + if (exprtype == MatchExpression::MATCH_IN && index.sparse) { + const InMatchExpression* expr = static_cast<const InMatchExpression*>(node); + if (expr->getData().hasNull()) { + return false; + } + } + // We can't use a btree-indexed field for geo expressions. if (exprtype == MatchExpression::GEO || exprtype == MatchExpression::GEO_NEAR) { return false; |