Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Fix a problem in test script lock.test. Fix minor issues in pager.c. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | tempfiles-lazy-open |
Files: | files | file ages | folders |
SHA1: |
84de8813c3b4007e3c7c3a286ce13020 |
User & Date: | dan 2016-04-06 16:27:50.054 |
Context
2016-04-06
| ||
18:20 | For a pager backed by a temp file, store the main journal in memory until it is at least sqlite3_config.nStmtSpill bytes in size. Prevent the backup API from being used to change the page-size of a temp file. (check-in: 84c557010c user: dan tags: tempfiles-lazy-open) | |
16:27 | Fix a problem in test script lock.test. Fix minor issues in pager.c. (check-in: 84de8813c3 user: dan tags: tempfiles-lazy-open) | |
15:39 | Add tests to this branch. Fix a problem with temporary databases in auto-vacuum mode. (check-in: afe9bd9b4b user: dan tags: tempfiles-lazy-open) | |
Changes
Changes to src/pager.c.
︙ | ︙ | |||
6851 6852 6853 6854 6855 6856 6857 | /* If the journal needs to be sync()ed before page pPg->pgno can ** be written to, store pPg->pgno in local variable needSyncPgno. ** ** If the isCommit flag is set, there is no need to remember that ** the journal needs to be sync()ed before database page pPg->pgno ** can be written to. The caller has already promised not to write to it. */ | | | 6851 6852 6853 6854 6855 6856 6857 6858 6859 6860 6861 6862 6863 6864 6865 | /* If the journal needs to be sync()ed before page pPg->pgno can ** be written to, store pPg->pgno in local variable needSyncPgno. ** ** If the isCommit flag is set, there is no need to remember that ** the journal needs to be sync()ed before database page pPg->pgno ** can be written to. The caller has already promised not to write to it. */ if( (pPg->flags&PGHDR_NEED_SYNC) && !isCommit ){ needSyncPgno = pPg->pgno; assert( pPager->journalMode==PAGER_JOURNALMODE_OFF || pageInJournal(pPager, pPg) || pPg->pgno>pPager->dbOrigSize ); assert( pPg->flags&PGHDR_DIRTY ); } /* If the cache contains a page with page-number pgno, remove it |
︙ | ︙ | |||
7138 7139 7140 7141 7142 7143 7144 | } #ifndef SQLITE_OMIT_VACUUM /* ** Unless this is an in-memory or temporary database, clear the pager cache. */ void sqlite3PagerClearCache(Pager *pPager){ | > | | 7138 7139 7140 7141 7142 7143 7144 7145 7146 7147 7148 7149 7150 7151 7152 7153 | } #ifndef SQLITE_OMIT_VACUUM /* ** Unless this is an in-memory or temporary database, clear the pager cache. */ void sqlite3PagerClearCache(Pager *pPager){ assert( MEMDB==0 || pPager->tempFile ); if( pPager->tempFile==0 ) pager_reset(pPager); } #endif #ifndef SQLITE_OMIT_WAL /* ** This function is called when the user invokes "PRAGMA wal_checkpoint", ** "PRAGMA wal_blocking_checkpoint" or calls the sqlite3_wal_checkpoint() |
︙ | ︙ |
Changes to test/lock.test.
︙ | ︙ | |||
419 420 421 422 423 424 425 | # At one point the following set of conditions would cause SQLite to # retain a RESERVED or EXCLUSIVE lock after the transaction was committed: # # * The journal-mode is set to something other than 'delete', and # * there exists one or more active read-only statements, and # * a transaction that modified zero database pages is committed. # | | | > | 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 | # At one point the following set of conditions would cause SQLite to # retain a RESERVED or EXCLUSIVE lock after the transaction was committed: # # * The journal-mode is set to something other than 'delete', and # * there exists one or more active read-only statements, and # * a transaction that modified zero database pages is committed. # #set temp_status unlocked #if {$TEMP_STORE>=2} {set temp_status unknown} set temp_status unknown do_test lock-7.1 { set STMT [sqlite3_prepare $DB "SELECT * FROM sqlite_master" -1 TAIL] sqlite3_step $STMT } {SQLITE_ROW} do_test lock-7.2 { execsql { PRAGMA lock_status } } [list main shared temp $temp_status] |
︙ | ︙ |