Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Fix comment inside the pager_unlock() routine. Always close the master journal file before trying to delete it. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
f820b815c9bff368eb1ccb850966a812 |
User & Date: | drh 2010-06-21 20:19:25.000 |
Context
2010-06-21
| ||
21:45 | Minor tweaks to get the pager working for corner cases when the SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN flag is set. (check-in: 82b38fca1a user: drh tags: trunk) | |
20:19 | Fix comment inside the pager_unlock() routine. Always close the master journal file before trying to delete it. (check-in: f820b815c9 user: drh tags: trunk) | |
18:29 | Add test cases to pager1.test and pager2.test. (check-in: cc9ddae6d7 user: dan tags: trunk) | |
Changes
Changes to src/pager.c.
︙ | ︙ | |||
1217 1218 1219 1220 1221 1222 1223 | ** treated as a hot-journal and rolled back. */ static void pager_unlock(Pager *pPager){ if( !pPager->exclusiveMode ){ int rc = SQLITE_OK; /* Return code */ int iDc = isOpen(pPager->fd)?sqlite3OsDeviceCharacteristics(pPager->fd):0; | > | | | | 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 | ** treated as a hot-journal and rolled back. */ static void pager_unlock(Pager *pPager){ if( !pPager->exclusiveMode ){ int rc = SQLITE_OK; /* Return code */ int iDc = isOpen(pPager->fd)?sqlite3OsDeviceCharacteristics(pPager->fd):0; /* If the operating system support deletion of open files, then ** close the journal file when dropping the database lock. Otherwise ** another connection with journal_mode=delete might delete the file ** out from under us. */ assert( (PAGER_JOURNALMODE_MEMORY & 5)!=1 ); assert( (PAGER_JOURNALMODE_OFF & 5)!=1 ); assert( (PAGER_JOURNALMODE_WAL & 5)!=1 ); assert( (PAGER_JOURNALMODE_DELETE & 5)!=1 ); assert( (PAGER_JOURNALMODE_TRUNCATE & 5)==1 ); assert( (PAGER_JOURNALMODE_PERSIST & 5)==1 ); |
︙ | ︙ | |||
1860 1861 1862 1863 1864 1865 1866 | /* We have a match. Do not delete the master journal file. */ goto delmaster_out; } } zJournal += (sqlite3Strlen30(zJournal)+1); } } | | > < | > | 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 | /* We have a match. Do not delete the master journal file. */ goto delmaster_out; } } zJournal += (sqlite3Strlen30(zJournal)+1); } } sqlite3OsClose(pMaster); rc = sqlite3OsDelete(pVfs, zMaster, 0); delmaster_out: if( zMasterJournal ){ sqlite3_free(zMasterJournal); } if( pMaster ){ sqlite3OsClose(pMaster); assert( !isOpen(pJournal) ); sqlite3_free(pMaster); } return rc; } /* ** This function is used to change the actual size of the database ** file in the file-system. This only happens when committing a transaction, |
︙ | ︙ |