diff options
author | Greg Studer <greg@10gen.com> | 2014-05-14 11:15:21 -0400 |
---|---|---|
committer | Greg Studer <greg@10gen.com> | 2014-05-19 18:46:06 -0400 |
commit | 65b71020e3f51467a42b13784abb63d87225bd39 (patch) | |
tree | a434b705aaec49850a2ddd2fb154f100ae1eaae5 /src/mongo/db/query/planner_ixselect.cpp | |
parent | 62d49d464c7f2a7181dec9b822e30b196107fa01 (diff) | |
download | mongo-65b71020e3f51467a42b13784abb63d87225bd39.tar.gz |
SERVER-5800 R2Region interface for 2d index covering support, minor refactor
Diffstat (limited to 'src/mongo/db/query/planner_ixselect.cpp')
-rw-r--r-- | src/mongo/db/query/planner_ixselect.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/mongo/db/query/planner_ixselect.cpp b/src/mongo/db/query/planner_ixselect.cpp index bb2a0caaf98..e8d900851b6 100644 --- a/src/mongo/db/query/planner_ixselect.cpp +++ b/src/mongo/db/query/planner_ixselect.cpp @@ -268,18 +268,20 @@ namespace mongo { const GeometryContainer& gc = gq.getGeometry(); - // 2d indices answer flat queries. - if (gc.hasFlatRegion()) { + // 2d indices require an R2 covering + if (gc.hasR2Region()) { return true; } + const CapWithCRS* cap = gc.getCapGeometryHack(); + // 2d indices can answer centerSphere queries. - if (NULL == gc._cap.get()) { + if (NULL == cap) { return false; } - verify(SPHERE == gc._cap->crs); - const Circle& circle = gc._cap->circle; + verify(SPHERE == cap->crs); + const Circle& circle = cap->circle; // No wrapping around the edge of the world is allowed in 2d centerSphere. return twoDWontWrap(circle, index); |