23 lines
706 B
JavaScript
23 lines
706 B
JavaScript
(function() {
|
|
"use strict";
|
|
|
|
load("jstests/libs/optimizer_utils.js"); // For checkCascadesOptimizerEnabled.
|
|
if (!checkCascadesOptimizerEnabled(db)) {
|
|
jsTestLog("Skipping test because the optimizer is not enabled");
|
|
return;
|
|
}
|
|
|
|
const t = db.cqf_exchange;
|
|
t.drop();
|
|
|
|
assert.commandWorked(t.insert({a: {b: 1}}));
|
|
assert.commandWorked(t.insert({a: {b: 2}}));
|
|
assert.commandWorked(t.insert({a: {b: 3}}));
|
|
assert.commandWorked(t.insert({a: {b: 4}}));
|
|
assert.commandWorked(t.insert({a: {b: 5}}));
|
|
|
|
const res = t.explain("executionStats").aggregate([{$match: {'a.b': 2}}]);
|
|
assert.eq(1, res.executionStats.nReturned);
|
|
assert.eq("Exchange", res.queryPlanner.winningPlan.optimizerPlan.child.nodeType);
|
|
}());
|