/ Check-in [79a4a3a8]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Do not abort pending queries on a RELEASE of a nested SAVEPOINT. This is a candidate fix for ticket [27ca74af3c083f787].
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 79a4a3a84f0b367d54da5e69e64ffca474264717
User & Date: drh 2012-03-31 17:17:26
Context
2012-03-31
17:50
Test cases for RELEASE and ROLLBACK TO of a nested savepoint while queries are pending. Ticket [27ca74af3c083] check-in: d2bf0efa user: drh tags: trunk
17:17
Do not abort pending queries on a RELEASE of a nested SAVEPOINT. This is a candidate fix for ticket [27ca74af3c083f787]. check-in: 79a4a3a8 user: drh tags: trunk
15:08
Modify selectColumnsFromExprList() to avoid ever incorrectly returning SQLITE_NOMEM. check-in: e7cb6b73 user: dan tags: trunk
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

Changes to src/vdbe.c.

  2730   2730             p->rc = rc = SQLITE_BUSY;
  2731   2731             goto vdbe_return;
  2732   2732           }
  2733   2733           db->isTransactionSavepoint = 0;
  2734   2734           rc = p->rc;
  2735   2735         }else{
  2736   2736           iSavepoint = db->nSavepoint - iSavepoint - 1;
  2737         -        for(ii=0; ii<db->nDb; ii++){
  2738         -          sqlite3BtreeTripAllCursors(db->aDb[ii].pBt, SQLITE_ABORT);
         2737  +        if( p1==SAVEPOINT_ROLLBACK ){
         2738  +          for(ii=0; ii<db->nDb; ii++){
         2739  +            sqlite3BtreeTripAllCursors(db->aDb[ii].pBt, SQLITE_ABORT);
         2740  +          }
  2739   2741           }
  2740   2742           for(ii=0; ii<db->nDb; ii++){
  2741   2743             rc = sqlite3BtreeSavepoint(db->aDb[ii].pBt, p1, iSavepoint);
  2742   2744             if( rc!=SQLITE_OK ){
  2743   2745               goto abort_due_to_error;
  2744   2746             }
  2745   2747           }