diff options
author | Aaron <aaron@10gen.com> | 2012-01-23 14:35:37 -0800 |
---|---|---|
committer | Aaron <aaron@10gen.com> | 2012-01-23 14:35:45 -0800 |
commit | 345863cc87bfc941b28fd1a4b7a978e390d3c8f2 (patch) | |
tree | 3926d1df05c781cf37618e47bafcedf733d52c8b /jstests/sortb.js | |
parent | 06cf3493ab99e4482f5bf0f3b780f237b96dc16d (diff) | |
download | mongo-345863cc87bfc941b28fd1a4b7a978e390d3c8f2.tar.gz |
SERVER-4716 keep track of memory usage running total in scan and order
Diffstat (limited to 'jstests/sortb.js')
-rw-r--r-- | jstests/sortb.js | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/jstests/sortb.js b/jstests/sortb.js new file mode 100644 index 00000000000..8f76a05bd47 --- /dev/null +++ b/jstests/sortb.js @@ -0,0 +1,26 @@ +// Test that the in memory sort capacity limit is checked for all "top N" sort candidates. +// SERVER-4716 + +t = db.jstests_sortb; +t.drop(); + +t.ensureIndex({b:1}); + +for( i = 0; i < 100; ++i ) { + t.save( {a:i,b:i} ); +} + +// These large documents will not be part of the initial set of "top 100" matches, and they will +// not be part of the final set of "top 100" matches returned to the client. However, they are an +// intermediate set of "top 100" matches and should trigger an in memory sort capacity exception. +big = new Array( 1024 * 1024 ).toString(); +for( i = 100; i < 200; ++i ) { + t.save( {a:i,b:i,big:big} ); +} + +for( i = 200; i < 300; ++i ) { + t.save( {a:i,b:i} ); +} + +assert.throws( function() { t.find().sort( {a:-1} ).hint( {b:1} ).limit( 100 ).itcount(); } ); +assert.throws( function() { t.find().sort( {a:-1} ).hint( {b:1} ).showDiskLoc().limit( 100 ).itcount(); } ); |