summaryrefslogtreecommitdiff
path: root/src/mongo/db/exec/collection_scan.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/exec/collection_scan.cpp')
-rw-r--r--src/mongo/db/exec/collection_scan.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/mongo/db/exec/collection_scan.cpp b/src/mongo/db/exec/collection_scan.cpp
index cb8e776eaec..09ea30bbf15 100644
--- a/src/mongo/db/exec/collection_scan.cpp
+++ b/src/mongo/db/exec/collection_scan.cpp
@@ -42,6 +42,7 @@
#include "mongo/db/exec/scoped_timer.h"
#include "mongo/db/exec/working_set.h"
#include "mongo/db/exec/working_set_common.h"
+#include "mongo/db/record_id_helpers.h"
#include "mongo/db/repl/optime.h"
#include "mongo/logv2/log.h"
#include "mongo/util/fail_point.h"
@@ -202,13 +203,13 @@ PlanStage::StageState CollectionScan::doWork(WorkingSetID* out) {
if (_lastSeenId.isNull() && _params.direction == CollectionScanParams::FORWARD &&
_params.minRecord) {
// Seek to the approximate start location.
- record = _cursor->seekNear(*_params.minRecord);
+ record = _cursor->seekNear(_params.minRecord->recordId());
}
if (_lastSeenId.isNull() && _params.direction == CollectionScanParams::BACKWARD &&
_params.maxRecord) {
// Seek to the approximate start location (at the end).
- record = _cursor->seekNear(*_params.maxRecord);
+ record = _cursor->seekNear(_params.maxRecord->recordId());
}
if (!record) {
@@ -304,7 +305,7 @@ bool pastEndOfRange(const CollectionScanParams& params, const WorkingSetMember&
return false;
}
- auto endRecord = *params.maxRecord;
+ auto endRecord = params.maxRecord->recordId();
return member.recordId > endRecord ||
(member.recordId == endRecord && !shouldIncludeEndRecord(params));
} else {
@@ -312,7 +313,7 @@ bool pastEndOfRange(const CollectionScanParams& params, const WorkingSetMember&
if (!params.minRecord) {
return false;
}
- auto endRecord = *params.minRecord;
+ auto endRecord = params.minRecord->recordId();
return member.recordId < endRecord ||
(member.recordId == endRecord && !shouldIncludeEndRecord(params));
@@ -326,7 +327,7 @@ bool beforeStartOfRange(const CollectionScanParams& params, const WorkingSetMemb
return false;
}
- auto startRecord = *params.minRecord;
+ auto startRecord = params.minRecord->recordId();
return member.recordId < startRecord ||
(member.recordId == startRecord && !shouldIncludeStartRecord(params));
} else {
@@ -334,7 +335,7 @@ bool beforeStartOfRange(const CollectionScanParams& params, const WorkingSetMemb
if (!params.maxRecord) {
return false;
}
- auto startRecord = *params.maxRecord;
+ auto startRecord = params.maxRecord->recordId();
return member.recordId > startRecord ||
(member.recordId == startRecord && !shouldIncludeStartRecord(params));
}