summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTess Avitabile <tess.avitabile@mongodb.com>2016-02-19 10:21:03 -0500
committerTess Avitabile <tess.avitabile@mongodb.com>2016-02-19 10:21:03 -0500
commit8d8c5c3e9cea3c34b48abf5cbb95b2b46d9d677b (patch)
tree65db6e82c09784e2188c54a6b169d113e4128ef5
parent015d7742f72b760ff8178aeb5c73c3776cbc738c (diff)
downloadmongo-8d8c5c3e9cea3c34b48abf5cbb95b2b46d9d677b.tar.gz
Revert "Ensure PlanRanker::scoreTree does not divide by zero"
This reverts commit 015d7742f72b760ff8178aeb5c73c3776cbc738c.
-rw-r--r--src/mongo/db/exec/cached_plan.cpp2
-rw-r--r--src/mongo/db/query/plan_ranker.cpp1
2 files changed, 1 insertions, 2 deletions
diff --git a/src/mongo/db/exec/cached_plan.cpp b/src/mongo/db/exec/cached_plan.cpp
index 7604d5ce465..8037dad1c5a 100644
--- a/src/mongo/db/exec/cached_plan.cpp
+++ b/src/mongo/db/exec/cached_plan.cpp
@@ -327,7 +327,7 @@ const SpecificStats* CachedPlanStage::getSpecificStats() const {
void CachedPlanStage::updatePlanCache() {
std::unique_ptr<PlanCacheEntryFeedback> feedback = stdx::make_unique<PlanCacheEntryFeedback>();
feedback->stats = getStats();
- feedback->score = PlanRanker::scoreTree(feedback->stats->children[0].get());
+ feedback->score = PlanRanker::scoreTree(feedback->stats.get());
PlanCache* cache = _collection->infoCache()->getPlanCache();
Status fbs = cache->feedback(*_canonicalQuery, feedback.release());
diff --git a/src/mongo/db/query/plan_ranker.cpp b/src/mongo/db/query/plan_ranker.cpp
index d4f68eb0602..ff8344da6a0 100644
--- a/src/mongo/db/query/plan_ranker.cpp
+++ b/src/mongo/db/query/plan_ranker.cpp
@@ -196,7 +196,6 @@ double PlanRanker::scoreTree(const PlanStageStats* stats) {
// How many "units of work" did the plan perform. Each call to work(...)
// counts as one unit.
size_t workUnits = stats->common.works;
- invariant(workUnits != 0);
// How much did a plan produce?
// Range: [0, 1]