diff options
Diffstat (limited to 'jstests/aggregation/bugs/server6192_server6193.js')
-rw-r--r-- | jstests/aggregation/bugs/server6192_server6193.js | 49 |
1 files changed, 21 insertions, 28 deletions
diff --git a/jstests/aggregation/bugs/server6192_server6193.js b/jstests/aggregation/bugs/server6192_server6193.js index 370c55b5a1f..f453a1e7060 100644 --- a/jstests/aggregation/bugs/server6192_server6193.js +++ b/jstests/aggregation/bugs/server6192_server6193.js @@ -3,13 +3,10 @@ var t = db.jstests_aggregation_server6192; t.drop(); -t.save( {x: true} ); +t.save({x: true}); function assertOptimized(pipeline, v) { - var explained = t.runCommand("aggregate", { - pipeline: pipeline, - explain: true - }); + var explained = t.runCommand("aggregate", {pipeline: pipeline, explain: true}); printjson({input: pipeline, output: explained}); @@ -20,10 +17,7 @@ function assertOptimized(pipeline, v) { } function assertNotOptimized(pipeline) { - var explained = t.runCommand("aggregate", { - pipeline: pipeline, - explain: true - }); + var explained = t.runCommand("aggregate", {pipeline: pipeline, explain: true}); printjson({input: pipeline, output: explained}); @@ -34,28 +28,27 @@ function assertNotOptimized(pipeline) { } // short-circuiting for $and -assertOptimized([ {$project: {a: {$and: [0, '$x']}}} ], false); -assertOptimized([ {$project: {a: {$and: [0, 1, '$x']}}} ], false); -assertOptimized([ {$project: {a: {$and: [0, 1, '', '$x']}}} ], false); +assertOptimized([{$project: {a: {$and: [0, '$x']}}}], false); +assertOptimized([{$project: {a: {$and: [0, 1, '$x']}}}], false); +assertOptimized([{$project: {a: {$and: [0, 1, '', '$x']}}}], false); -assertOptimized([ {$project: {a: {$and: [1, 0, '$x']}}} ], false); -assertOptimized([ {$project: {a: {$and: [1, '', 0, '$x']}}} ], false); -assertOptimized([ {$project: {a: {$and: [1, 1, 0, 1]}}} ], false); +assertOptimized([{$project: {a: {$and: [1, 0, '$x']}}}], false); +assertOptimized([{$project: {a: {$and: [1, '', 0, '$x']}}}], false); +assertOptimized([{$project: {a: {$and: [1, 1, 0, 1]}}}], false); // short-circuiting for $or -assertOptimized([ {$project: {a: {$or: [1, '$x']}}} ], true); -assertOptimized([ {$project: {a: {$or: [1, 0, '$x']}}} ], true); -assertOptimized([ {$project: {a: {$or: [1, '', '$x']}}} ], true); +assertOptimized([{$project: {a: {$or: [1, '$x']}}}], true); +assertOptimized([{$project: {a: {$or: [1, 0, '$x']}}}], true); +assertOptimized([{$project: {a: {$or: [1, '', '$x']}}}], true); -assertOptimized([ {$project: {a: {$or: [0, 1, '$x']}}} ], true); -assertOptimized([ {$project: {a: {$or: ['', 0, 1, '$x']}}} ], true); -assertOptimized([ {$project: {a: {$or: [0, 0, 0, 1]}}} ], true); +assertOptimized([{$project: {a: {$or: [0, 1, '$x']}}}], true); +assertOptimized([{$project: {a: {$or: ['', 0, 1, '$x']}}}], true); +assertOptimized([{$project: {a: {$or: [0, 0, 0, 1]}}}], true); // examples that should not short-circuit -assertNotOptimized([ {$project: {a: {$and: [1, '$x']}}} ]); -assertNotOptimized([ {$project: {a: {$or: [0, '$x']}}} ]); -assertNotOptimized([ {$project: {a: {$and: ['$x', '$x']}}} ]); -assertNotOptimized([ {$project: {a: {$or: ['$x', '$x']}}} ]); -assertNotOptimized([ {$project: {a: {$and: ['$x']}}} ]); -assertNotOptimized([ {$project: {a: {$or: ['$x']}}} ]); - +assertNotOptimized([{$project: {a: {$and: [1, '$x']}}}]); +assertNotOptimized([{$project: {a: {$or: [0, '$x']}}}]); +assertNotOptimized([{$project: {a: {$and: ['$x', '$x']}}}]); +assertNotOptimized([{$project: {a: {$or: ['$x', '$x']}}}]); +assertNotOptimized([{$project: {a: {$and: ['$x']}}}]); +assertNotOptimized([{$project: {a: {$or: ['$x']}}}]); |