diff options
author | Hari Khalsa <hkhalsa@10gen.com> | 2013-04-03 13:59:18 -0400 |
---|---|---|
committer | Eric Milkie <milkie@10gen.com> | 2013-04-03 21:52:53 -0400 |
commit | 9a846d86881cc2a0b3a0ceca14a0248fc3c11e2b (patch) | |
tree | a20f47da233e7e72857360521fffc3203caa46fa | |
parent | 04707f7b39c2a5a4f25df05ceb9cb07cdd7fe092 (diff) | |
download | mongo-9a846d86881cc2a0b3a0ceca14a0248fc3c11e2b.tar.gz |
SERVER-9228 don't return dups when s2cursor yields, delegate to underlying btreecursor
-rw-r--r-- | src/mongo/db/geo/s2cursor.cpp | 6 | ||||
-rw-r--r-- | src/mongo/db/geo/s2cursor.h | 3 |
2 files changed, 8 insertions, 1 deletions
diff --git a/src/mongo/db/geo/s2cursor.cpp b/src/mongo/db/geo/s2cursor.cpp index f94971d8e08..56bb9230ce2 100644 --- a/src/mongo/db/geo/s2cursor.cpp +++ b/src/mongo/db/geo/s2cursor.cpp @@ -97,6 +97,12 @@ namespace mongo { BSONObj S2Cursor::currKey() const { return _btreeCursor->currKey(); } DiskLoc S2Cursor::refLoc() { return DiskLoc(); } long long S2Cursor::nscanned() { return _nscanned; } + bool S2Cursor::getsetdup(DiskLoc loc) { return _btreeCursor->getsetdup(loc); } + void S2Cursor::aboutToDeleteBucket(const DiskLoc& b) { + if (NULL != _btreeCursor) { + _btreeCursor->aboutToDeleteBucket(b); + } + } // This is the actual search. bool S2Cursor::advance() { diff --git a/src/mongo/db/geo/s2cursor.h b/src/mongo/db/geo/s2cursor.h index ec4881d40db..d3cfa9e21b1 100644 --- a/src/mongo/db/geo/s2cursor.h +++ b/src/mongo/db/geo/s2cursor.h @@ -39,7 +39,8 @@ namespace mongo { virtual bool isMultiKey() const { return true; } virtual bool autoDedup() const { return false; } virtual bool modifiedKeys() const { return true; } - virtual bool getsetdup(DiskLoc loc) { return false; } + virtual bool getsetdup(DiskLoc loc); + virtual void aboutToDeleteBucket(const DiskLoc& b); virtual string toString() { return "S2Cursor"; } BSONObj indexKeyPattern() { return _keyPattern; } virtual bool ok(); |