summaryrefslogtreecommitdiff
path: root/jstests/core/query/or/oro.js
diff options
context:
space:
mode:
Diffstat (limited to 'jstests/core/query/or/oro.js')
-rw-r--r--jstests/core/query/or/oro.js33
1 files changed, 33 insertions, 0 deletions
diff --git a/jstests/core/query/or/oro.js b/jstests/core/query/or/oro.js
new file mode 100644
index 00000000000..5ceda73818e
--- /dev/null
+++ b/jstests/core/query/or/oro.js
@@ -0,0 +1,33 @@
+// @tags: [
+// requires_collstats,
+// requires_getmore,
+// ]
+
+// Test $or query with several clauses on separate indexes.
+
+t = db.jstests_oro;
+t.drop();
+
+orClauses = [];
+for (idxKey = 'a'; idxKey <= 'aaaaaaaaaa'; idxKey += 'a') {
+ idx = {};
+ idx[idxKey] = 1;
+ t.createIndex(idx);
+ for (i = 0; i < 200; ++i) {
+ t.insert(idx);
+ }
+ orClauses.push(idx);
+}
+
+printjson(t.find({$or: orClauses}).explain());
+c = t.find({$or: orClauses}).batchSize(100);
+count = 0;
+
+while (c.hasNext()) {
+ for (i = 0; i < 50 && c.hasNext(); ++i, c.next(), ++count)
+ ;
+ // Interleave with another operation.
+ t.stats();
+}
+
+assert.eq(10 * 200, count);