summaryrefslogtreecommitdiff
path: root/jstests/core/nestedarr1.js
blob: b3bc9b7315617ea3579fbd1a5108cdc17f19303e (plain)
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
// make sure that we don't crash on large nested arrays but correctly do not index them
// SERVER-5127, SERVER-5036

function makeNestArr(depth){
    if(depth == 1){
        return {a : [depth]};
    }
    else{
        return {a : [makeNestArr(depth - 1)] };
    }
}

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

t.ensureIndex({a:1});

n = 1;
while ( true ) {
    var before = t.count();
    t.insert( { _id : n, a : makeNestArr(n) } );
    var after = t.count();
    if ( before == after )
        break;
    n++;
}

assert( n > 30, "not enough n: " + n );

assert.eq( t.count(), t.find( { _id : { $gt : 0 } } ).hint( { a : 1 } ).itcount() );