Files
mongo/jstests/core/distinct3.js
Max Hirschhorn dd0c8d73aa SERVER-18868 Check the exit code of the parallel shell.
By default the await function returned by startParallelShell() asserts
that the exit code is zero.
2015-06-23 22:22:52 -04:00

36 lines
1.3 KiB
JavaScript

// Yield and delete test case for query optimizer cursor. SERVER-4401
t = db.jstests_distinct3;
t.drop();
t.ensureIndex({a:1});
t.ensureIndex({b:1});
var bulk = t.initializeUnorderedBulkOp();
for( i = 0; i < 50; ++i ) {
for( j = 0; j < 2; ++j ) {
bulk.insert({a:i,c:i,d:j});
}
}
for( i = 0; i < 100; ++i ) {
bulk.insert({b:i,c:i+50});
}
assert.writeOK(bulk.execute());
// Attempt to remove the last match for the {a:1} index scan while distinct is yielding.
p = startParallelShell( 'for( i = 0; i < 100; ++i ) { ' +
' var bulk = db.jstests_distinct3.initializeUnorderedBulkOp();' +
' bulk.find( { a:49 } ).remove(); ' +
' for( j = 0; j < 20; ++j ) { ' +
' bulk.insert( { a:49, c:49, d:j } ); ' +
' } ' +
' assert.writeOK(bulk.execute()); ' +
'} ' );
for( i = 0; i < 100; ++i ) {
count = t.distinct( 'c', {$or:[{a:{$gte:0},d:0},{b:{$gte:0}}]} ).length;
assert.gt( count, 100 );
}
p();