summaryrefslogtreecommitdiff
path: root/src/mongo/db/exec/sbe/stages/scan.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/exec/sbe/stages/scan.cpp')
-rw-r--r--src/mongo/db/exec/sbe/stages/scan.cpp18
1 files changed, 12 insertions, 6 deletions
diff --git a/src/mongo/db/exec/sbe/stages/scan.cpp b/src/mongo/db/exec/sbe/stages/scan.cpp
index 7556cd8ef4b..2b7b62240d9 100644
--- a/src/mongo/db/exec/sbe/stages/scan.cpp
+++ b/src/mongo/db/exec/sbe/stages/scan.cpp
@@ -32,6 +32,7 @@
#include "mongo/db/exec/sbe/stages/scan.h"
#include "mongo/db/exec/sbe/expressions/expression.h"
+#include "mongo/db/exec/trial_run_tracker.h"
#include "mongo/db/repl/replication_coordinator.h"
#include "mongo/util/str.h"
@@ -45,7 +46,6 @@ ScanStage::ScanStage(const NamespaceStringOrUUID& name,
boost::optional<value::SlotId> seekKeySlot,
bool forward,
PlanYieldPolicy* yieldPolicy,
- TrialRunProgressTracker* tracker,
PlanNodeId nodeId,
ScanOpenCallback openCallback)
: PlanStage(seekKeySlot ? "seek"_sd : "scan"_sd, yieldPolicy, nodeId),
@@ -56,7 +56,6 @@ ScanStage::ScanStage(const NamespaceStringOrUUID& name,
_vars(std::move(vars)),
_seekKeySlot(seekKeySlot),
_forward(forward),
- _tracker(tracker),
_openCallback(openCallback) {
invariant(_fields.size() == _vars.size());
invariant(!_seekKeySlot || _forward);
@@ -71,7 +70,6 @@ std::unique_ptr<PlanStage> ScanStage::clone() const {
_seekKeySlot,
_forward,
_yieldPolicy,
- _tracker,
_commonStats.nodeId,
_openCallback);
}
@@ -151,12 +149,20 @@ void ScanStage::doDetachFromOperationContext() {
}
}
-void ScanStage::doAttachFromOperationContext(OperationContext* opCtx) {
+void ScanStage::doAttachToOperationContext(OperationContext* opCtx) {
if (_cursor) {
_cursor->reattachToOperationContext(opCtx);
}
}
+void ScanStage::doDetachFromTrialRunTracker() {
+ _tracker = nullptr;
+}
+
+void ScanStage::doAttachToTrialRunTracker(TrialRunTracker* tracker) {
+ _tracker = tracker;
+}
+
void ScanStage::open(bool reOpen) {
_commonStats.opens++;
invariant(_opCtx);
@@ -251,7 +257,7 @@ PlanState ScanStage::getNext() {
}
}
- if (_tracker && _tracker->trackProgress<TrialRunProgressTracker::kNumReads>(1)) {
+ if (_tracker && _tracker->trackProgress<TrialRunTracker::kNumReads>(1)) {
// If we're collecting execution stats during multi-planning and reached the end of the
// trial period (trackProgress() will return 'true' in this case), then we can reset the
// tracker. Note that a trial period is executed only once per a PlanStge tree, and once
@@ -448,7 +454,7 @@ void ParallelScanStage::doDetachFromOperationContext() {
}
}
-void ParallelScanStage::doAttachFromOperationContext(OperationContext* opCtx) {
+void ParallelScanStage::doAttachToOperationContext(OperationContext* opCtx) {
if (_cursor) {
_cursor->reattachToOperationContext(opCtx);
}