summaryrefslogtreecommitdiff
path: root/jstests/core/indexm.js
diff options
context:
space:
mode:
Diffstat (limited to 'jstests/core/indexm.js')
-rw-r--r--jstests/core/indexm.js38
1 files changed, 38 insertions, 0 deletions
diff --git a/jstests/core/indexm.js b/jstests/core/indexm.js
new file mode 100644
index 00000000000..6b31ea628cd
--- /dev/null
+++ b/jstests/core/indexm.js
@@ -0,0 +1,38 @@
+// Check proper range combinations with or clauses overlapping non or portion of query SERVER-2302
+
+t = db.jstests_indexm;
+t.drop();
+
+t.save( { a : [ { x : 1 } , { x : 2 } , { x : 3 } , { x : 4 } ] } )
+
+function test(){
+ assert.eq( 1, t.count(
+ {
+ a : { x : 1 } ,
+ "$or" : [ { a : { x : 2 } } , { a : { x : 3 } } ]
+ }
+ ) );
+}
+
+// The first find will return a result since there isn't an index.
+test();
+
+// Now create an index.
+t.ensureIndex({"a":1});
+test();
+// SERVER-3105
+//assert( !t.find(
+// {
+// a : { x : 1 } ,
+// "$or" : [ { a : { x : 2 } } , { a : { x : 3 } } ]
+// }
+// ).explain().clauses );
+
+// Now create a different index.
+t.dropIndexes();
+t.ensureIndex({"a.x":1});
+test();
+
+// Drop the indexes.
+t.dropIndexes();
+test(); \ No newline at end of file