summaryrefslogtreecommitdiff
path: root/jstests/sorth.js
diff options
context:
space:
mode:
Diffstat (limited to 'jstests/sorth.js')
-rw-r--r--jstests/sorth.js21
1 files changed, 21 insertions, 0 deletions
diff --git a/jstests/sorth.js b/jstests/sorth.js
new file mode 100644
index 00000000000..6a5f6122b2b
--- /dev/null
+++ b/jstests/sorth.js
@@ -0,0 +1,21 @@
+// An in order index is picked over a scan and order index when the in order index has sufficient
+// matches to be picked, see discussion in SERVER-4150.
+
+t = db.jstests_sorth;
+t.drop();
+
+t.ensureIndex( {a:1} );
+t.ensureIndex( {b:1} );
+
+function checkIndex( index, n ) {
+ t.remove();
+ for( i = 0; i < n; ++i ) {
+ t.save( {a:i%2,b:i} );
+ }
+ explain = t.find( {a:0,b:{$gte:0}} ).sort( {b:1} ).explain( true );
+ assert.eq( index, explain.cursor );
+}
+
+checkIndex( "BtreeCursor a_1", 100 );
+checkIndex( "BtreeCursor b_1", 500 );
+t.drop(); \ No newline at end of file