mirror of
https://github.com/mongodb/mongo.git
synced 2024-12-01 09:32:32 +01:00
fix for yield on multi-updatre SERVER-1020
This commit is contained in:
parent
1ea54f26ab
commit
016af45e0b
@ -842,8 +842,12 @@ namespace mongo {
|
||||
|
||||
bool indexHack = multi && ( modsIsIndexed || ! mss->canApplyInPlace() );
|
||||
|
||||
if ( indexHack )
|
||||
c->noteLocation();
|
||||
if ( indexHack ){
|
||||
if ( cc.get() )
|
||||
cc->updateLocation();
|
||||
else
|
||||
c->noteLocation();
|
||||
}
|
||||
|
||||
if ( modsIsIndexed <= 0 && mss->canApplyInPlace() ){
|
||||
mss->applyModsInPlace();// const_cast<BSONObj&>(onDisk) );
|
||||
|
18
jstests/update_multi4.js
Normal file
18
jstests/update_multi4.js
Normal file
@ -0,0 +1,18 @@
|
||||
|
||||
t = db.update_mulit4;
|
||||
t.drop();
|
||||
|
||||
for(i=0;i<1000;i++){
|
||||
t.insert( { _id:i ,
|
||||
k:i%12,
|
||||
v:"v"+i%12 } );
|
||||
}
|
||||
|
||||
t.ensureIndex({k:1})
|
||||
|
||||
assert.eq( 84 , t.count({k:2,v:"v2"} ) , "A0" );
|
||||
|
||||
t.update({k:2},{$set:{v:"two v2"}},false,true)
|
||||
|
||||
assert.eq( 0 , t.count({k:2,v:"v2"} ) , "A1" );
|
||||
assert.eq( 84 , t.count({k:2,v:"two v2"} ) , "A2" );
|
Loading…
Reference in New Issue
Block a user