File: distinct3.js

package info (click to toggle)
mongodb 1%3A2.4.10-5
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 82,464 kB
  • sloc: cpp: 740,225; ansic: 152,098; sh: 13,820; python: 11,864; makefile: 1,012; perl: 922; pascal: 617; java: 452; lisp: 222; asm: 174
file content (33 lines) | stat: -rw-r--r-- 1,175 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// Yield and delete test case for query optimizer cursor.  SERVER-4401

t = db.jstests_distinct3;
t.drop();

t.ensureIndex({a:1});
t.ensureIndex({b:1});

for( i = 0; i < 50; ++i ) {
    for( j = 0; j < 20; ++j ) {
        t.save({a:i,c:i,d:j});
    }
}
for( i = 0; i < 1000; ++i ) {
    t.save({b:i,c:i+50});
}
db.getLastError();

// Attempt to remove the last match for the {a:1} index scan while distinct is yielding.
p = startParallelShell( 'for( i = 0; i < 2500; ++i ) {                             ' +
                        '    db.jstests_distinct3.remove( { a:49 } );              ' +
                        '    for( j = 0; j < 20; ++j ) {                           ' +
                        '        db.jstests_distinct3.save( { a:49, c:49, d:j } ); ' +
                        '    }                                                     ' +
                        '}                                                         ' +
                        'db.getLastError();                                        ' );

for( i = 0; i < 100; ++i ) {
    count = t.distinct( 'c', {$or:[{a:{$gte:0},d:0},{b:{$gte:0}}]} ).length;
    assert.gt( count, 1000 );
}

p();