18 lines
812 B
Diff
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);
|