0
0
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:
Eliot Horowitz 2010-05-17 10:44:17 -04:00
parent 1ea54f26ab
commit 016af45e0b
2 changed files with 24 additions and 2 deletions

View File

@ -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
View 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" );