Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | When a "full", "restart" or "truncate" checkpoint is attempted, return SQLITE_BUSY if a reader prevents the checkpointer from copying any frames at all into the database file. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | ota-update |
Files: | files | file ages | folders |
SHA1: |
f270004016ef20f1963e0f1ad32e76bc |
User & Date: | dan 2015-01-28 15:30:03.968 |
Context
2015-01-28
| ||
20:37 | Add missing VdbeCoverage() macros to the sqlite3_index_writer() implementation. (check-in: 6f8cda26e9 user: drh tags: ota-update) | |
15:30 | When a "full", "restart" or "truncate" checkpoint is attempted, return SQLITE_BUSY if a reader prevents the checkpointer from copying any frames at all into the database file. (check-in: f270004016 user: dan tags: ota-update) | |
12:27 | Correctly detect errors returned by walCheckpointStart() due to OOM. (check-in: 8e878c2023 user: drh tags: ota-update) | |
Changes
Changes to src/wal.c.
︙ | ︙ | |||
1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 | #endif } /* Release the reader lock held while backfilling */ walUnlockExclusive(pWal, WAL_READ_LOCK(0), 1); walIteratorFree(p->pIter); p->pIter = 0; } return p->rc; } /* ** The following is guaranteed when this function is called: | > > | 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 | #endif } /* Release the reader lock held while backfilling */ walUnlockExclusive(pWal, WAL_READ_LOCK(0), 1); walIteratorFree(p->pIter); p->pIter = 0; }else if( p->rc==SQLITE_DONE ){ p->rc = SQLITE_OK; } return p->rc; } /* ** The following is guaranteed when this function is called: |
︙ | ︙ | |||
1905 1906 1907 1908 1909 1910 1911 | WalCkpt sC; /* EVIDENCE-OF: R-62920-47450 The busy-handler callback is never invoked ** in the SQLITE_CHECKPOINT_PASSIVE mode. */ assert( eMode!=SQLITE_CHECKPOINT_PASSIVE || xBusy==0 ); rc = walCheckpointStart(pWal, zBuf, nBuf, xBusy, pBusyArg, sync_flags, &sC); | | | 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 | WalCkpt sC; /* EVIDENCE-OF: R-62920-47450 The busy-handler callback is never invoked ** in the SQLITE_CHECKPOINT_PASSIVE mode. */ assert( eMode!=SQLITE_CHECKPOINT_PASSIVE || xBusy==0 ); rc = walCheckpointStart(pWal, zBuf, nBuf, xBusy, pBusyArg, sync_flags, &sC); if( rc!=SQLITE_OK ) goto walcheckpoint_out; /* Step the checkpoint object until it reports something other than ** SQLITE_OK. */ while( SQLITE_OK==(rc = walCheckpointStep(&sC)) ); rc = walCheckpointFinalize(&sC); /* If this is an SQLITE_CHECKPOINT_RESTART or TRUNCATE operation, and the |
︙ | ︙ |