diff options
Diffstat (limited to 'jstests/core/explain_skip.js')
| -rw-r--r-- | jstests/core/explain_skip.js | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/jstests/core/explain_skip.js b/jstests/core/explain_skip.js new file mode 100644 index 00000000000..b6e01d6a436 --- /dev/null +++ b/jstests/core/explain_skip.js @@ -0,0 +1,28 @@ +/** + * Tests that explain reports the skip stage statistics correctly. + * + * @tags: [ + * assumes_unsharded_collection, + * assumes_against_mongod_not_mongos, + * ] + */ +load("jstests/libs/analyze_plan.js"); // For getWinningPlan. + +var coll = db.explain_skip; +coll.drop(); + +assert.commandWorked(coll.insert({a: 1, b: 1})); +assert.commandWorked(coll.insert({a: 1, b: 2})); +assert.commandWorked(coll.insert({a: 1, b: 3})); +assert.commandWorked(coll.insert({a: 2, b: 1})); +assert.commandWorked(coll.insert({a: 2, b: 2})); +assert.commandWorked(coll.insert({a: 2, b: 3})); + +assert.commandWorked(coll.createIndex({a: 1})); +assert.commandWorked(coll.createIndex({b: 1})); + +var explain = coll.find({a: 1, b: 1}).sort({_id: 1}).skip(5).explain(); +var winningPlan = getWinningPlan(explain.queryPlanner); +var skipStage = getPlanStage(winningPlan, "SKIP"); +assert.neq(null, skipStage, explain); +assert.eq(5, skipStage.skipAmount, explain); |
