Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Have sqlite3PagerPagecount() return -1 when the pager is in error state. Fix for #2961. (CVS 4809) |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
427e7f8b4a54eb6136174af63a467324 |
User & Date: | danielk1977 2008-02-26 06:05:31.000 |
Context
2008-02-26
| ||
14:46 | Add an assert() to verify that the dirty-page list in the pager is valid before using it. (CVS 4810) (check-in: 942daf94ef user: drh tags: trunk) | |
06:05 | Have sqlite3PagerPagecount() return -1 when the pager is in error state. Fix for #2961. (CVS 4809) (check-in: 427e7f8b4a user: danielk1977 tags: trunk) | |
03:46 | Add bitvec to build (CVS 4808) (check-in: c690dd68f2 user: mlcreech tags: trunk) | |
Changes
Changes to src/pager.c.
︙ | ︙ | |||
14 15 16 17 18 19 20 | ** The pager is used to access a database disk file. It implements ** atomic commit and rollback through the use of a journal file that ** is separate from the database file. The pager also implements file ** locking to prevent two processes from writing the same database ** file simultaneously, or one process from reading the database while ** another is writing. ** | | | 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | ** The pager is used to access a database disk file. It implements ** atomic commit and rollback through the use of a journal file that ** is separate from the database file. The pager also implements file ** locking to prevent two processes from writing the same database ** file simultaneously, or one process from reading the database while ** another is writing. ** ** @(#) $Id: pager.c,v 1.409 2008/02/26 06:05:31 danielk1977 Exp $ */ #ifndef SQLITE_OMIT_DISKIO #include "sqliteInt.h" #include <assert.h> #include <string.h> /* |
︙ | ︙ | |||
2417 2418 2419 2420 2421 2422 2423 | ** file is 4096 bytes, 5 is returned instead of 4. */ int sqlite3PagerPagecount(Pager *pPager){ i64 n = 0; int rc; assert( pPager!=0 ); if( pPager->errCode ){ | | | | 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 | ** file is 4096 bytes, 5 is returned instead of 4. */ int sqlite3PagerPagecount(Pager *pPager){ i64 n = 0; int rc; assert( pPager!=0 ); if( pPager->errCode ){ return -1; } if( pPager->dbSize>=0 ){ n = pPager->dbSize; } else { assert(pPager->fd->pMethods||pPager->tempFile); if( (pPager->fd->pMethods) && (rc = sqlite3OsFileSize(pPager->fd, &n))!=SQLITE_OK ){ pPager->nRef++; pager_error(pPager, rc); pPager->nRef--; return -1; } if( n>0 && n<pPager->pageSize ){ n = 1; }else{ n /= pPager->pageSize; } if( pPager->state!=PAGER_UNLOCK ){ |
︙ | ︙ |