sqlite3/79a4a3a84f.patch

18 lines
812 B
Diff

Index: sqlite-autoconf-3071100/sqlite3.c
===================================================================
--- sqlite-autoconf-3071100.orig/sqlite3.c
+++ sqlite-autoconf-3071100/sqlite3.c
@@ -67595,8 +67595,10 @@ case OP_Savepoint: {
rc = p->rc;
}else{
u.ar.iSavepoint = db->nSavepoint - u.ar.iSavepoint - 1;
- for(u.ar.ii=0; u.ar.ii<db->nDb; u.ar.ii++){
- sqlite3BtreeTripAllCursors(db->aDb[u.ar.ii].pBt, SQLITE_ABORT);
+ if( u.ar.p1==SAVEPOINT_ROLLBACK ){
+ for(u.ar.ii=0; u.ar.ii<db->nDb; u.ar.ii++){
+ sqlite3BtreeTripAllCursors(db->aDb[u.ar.ii].pBt, SQLITE_ABORT);
+ }
}
for(u.ar.ii=0; u.ar.ii<db->nDb; u.ar.ii++){
rc = sqlite3BtreeSavepoint(db->aDb[u.ar.ii].pBt, u.ar.p1, u.ar.iSavepoint);