Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

fix for yield on multi-updatre SERVER-1020

  • Loading branch information...
commit 016af45e0b5cbe1711906fb75002031b0b573183 1 parent 1ea54f2
@erh erh authored
Showing with 24 additions and 2 deletions.
  1. +6 −2 db/update.cpp
  2. +18 −0 jstests/update_multi4.js
View
8 db/update.cpp
@@ -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) );
View
18 jstests/update_multi4.js
@@ -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" );
Please sign in to comment.
Something went wrong with that request. Please try again.