diff options
Diffstat (limited to 'jstests/sortg.js')
-rw-r--r-- | jstests/sortg.js | 64 |
1 files changed, 0 insertions, 64 deletions
diff --git a/jstests/sortg.js b/jstests/sortg.js deleted file mode 100644 index bde4ad70061..00000000000 --- a/jstests/sortg.js +++ /dev/null @@ -1,64 +0,0 @@ -// Test that a memory exception is triggered for in memory sorts, but not for indexed sorts. - -t = db.jstests_sortg; -t.drop(); - -big = new Array( 1000000 ).toString() - -for( i = 0; i < 100; ++i ) { - t.save( {b:0} ); -} - -for( i = 0; i < 40; ++i ) { - t.save( {a:0,x:big} ); -} - -function memoryException( sortSpec, querySpec ) { - querySpec = querySpec || {}; - var ex = assert.throws( function() { - t.find( querySpec ).sort( sortSpec ).batchSize( 1000 ).itcount() - } ); - assert( ex.toString().match( /sort/ ) ); - assert.throws( function() { - t.find( querySpec ).sort( sortSpec ).batchSize( 1000 ).explain( true ) - } ); - assert( ex.toString().match( /sort/ ) ); -} - -function noMemoryException( sortSpec, querySpec ) { - querySpec = querySpec || {}; - t.find( querySpec ).sort( sortSpec ).batchSize( 1000 ).itcount(); - t.find( querySpec ).sort( sortSpec ).batchSize( 1000 ).explain( true ); -} - -// Unindexed sorts. -memoryException( {a:1} ); -memoryException( {b:1} ); - -// Indexed sorts. -noMemoryException( {_id:1} ); -noMemoryException( {$natural:1} ); - -assert.eq( 1, t.getIndexes().length ); - -t.ensureIndex( {a:1} ); -t.ensureIndex( {b:1} ); -t.ensureIndex( {c:1} ); - -assert.eq( 4, t.getIndexes().length ); - -// These sorts are now indexed. -noMemoryException( {a:1} ); -noMemoryException( {b:1} ); - -// A memory exception is triggered for an unindexed sort involving multiple plans. -memoryException( {d:1}, {b:null,c:null} ); - -// With an indexed plan on _id:1 and an unindexed plan on b:1, the indexed plan -// should succeed even if the unindexed one would exhaust its memory limit. -noMemoryException( {_id:1}, {b:null} ); - -// With an unindexed plan on b:1 recorded for a query, the query should be -// retried when the unindexed plan exhausts its memory limit. -noMemoryException( {_id:1}, {b:null} ); -t.drop(); |