summaryrefslogtreecommitdiff
path: root/src/mongo/db/exec/index_scan.cpp
diff options
context:
space:
mode:
authorJason Rassi <rassi@10gen.com>2016-01-14 12:58:13 -0500
committerJason Rassi <rassi@10gen.com>2016-01-14 15:12:38 -0500
commit09b89f0986550443a13af16b76ef04d91120bb2f (patch)
tree977b1fa1965ac1cba4e6b39b430e309636832305 /src/mongo/db/exec/index_scan.cpp
parent225ac6a226bc34bdae716c17f3b49f5a1a279e4e (diff)
downloadmongo-09b89f0986550443a13af16b76ef04d91120bb2f.tar.gz
SERVER-19377 PlanStage: make work() non-virt, add virt method doWork()
Changes PlanStage::work() to be non-virtual. PlanStage::work() now updates _commonStats and calls new pure virtual method doWork().
Diffstat (limited to 'src/mongo/db/exec/index_scan.cpp')
-rw-r--r--src/mongo/db/exec/index_scan.cpp11
1 files changed, 1 insertions, 10 deletions
diff --git a/src/mongo/db/exec/index_scan.cpp b/src/mongo/db/exec/index_scan.cpp
index b9d74b21099..62058fc8d8f 100644
--- a/src/mongo/db/exec/index_scan.cpp
+++ b/src/mongo/db/exec/index_scan.cpp
@@ -121,12 +121,7 @@ boost::optional<IndexKeyEntry> IndexScan::initIndexScan() {
}
}
-PlanStage::StageState IndexScan::work(WorkingSetID* out) {
- ++_commonStats.works;
-
- // Adds the amount of time taken by work() to executionTimeMillis.
- ScopedTimer timer(&_commonStats.executionTimeMillis);
-
+PlanStage::StageState IndexScan::doWork(WorkingSetID* out) {
// Get the next kv pair from the index, if any.
boost::optional<IndexKeyEntry> kv;
try {
@@ -176,7 +171,6 @@ PlanStage::StageState IndexScan::work(WorkingSetID* out) {
case IndexBoundsChecker::MUST_ADVANCE:
_scanState = NEED_SEEK;
- _commonStats.needTime++;
return PlanStage::NEED_TIME;
}
}
@@ -195,14 +189,12 @@ PlanStage::StageState IndexScan::work(WorkingSetID* out) {
if (!_returned.insert(kv->loc).second) {
// We've seen this RecordId before. Skip it this time.
++_specificStats.dupsDropped;
- ++_commonStats.needTime;
return PlanStage::NEED_TIME;
}
}
if (_filter) {
if (!Filter::passes(kv->key, _keyPattern, _filter)) {
- ++_commonStats.needTime;
return PlanStage::NEED_TIME;
}
}
@@ -224,7 +216,6 @@ PlanStage::StageState IndexScan::work(WorkingSetID* out) {
}
*out = id;
- ++_commonStats.advanced;
return PlanStage::ADVANCED;
}