summaryrefslogtreecommitdiff
path: root/src/mongo/db/query/planner_ixselect.cpp
diff options
context:
space:
mode:
authorGreg Studer <greg@10gen.com>2014-05-14 11:15:21 -0400
committerGreg Studer <greg@10gen.com>2014-05-19 18:46:06 -0400
commit65b71020e3f51467a42b13784abb63d87225bd39 (patch)
treea434b705aaec49850a2ddd2fb154f100ae1eaae5 /src/mongo/db/query/planner_ixselect.cpp
parent62d49d464c7f2a7181dec9b822e30b196107fa01 (diff)
downloadmongo-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.cpp12
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);