SQLite4
Check-in [b55b092602]
Not logged in

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

Overview
Comment:Fix a problem in compressed database mode causing pages to be incorrectly marked as dirty.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: b55b092602162474b8843807863362d6f2f97c82
User & Date: dan 2012-11-23 16:41:01
Context
2012-11-28
14:54
Fix an mmap mode bug. Improve upon multi-threaded setups in lsmtest_tdb3.c. check-in: 21db5f73f5 user: dan tags: trunk
2012-11-23
16:41
Fix a problem in compressed database mode causing pages to be incorrectly marked as dirty. check-in: b55b092602 user: dan tags: trunk
2012-11-22
16:14
Fix some "unsafe" pointer casts in lsm_config(). check-in: f58fb32e42 user: dan tags: trunk
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

Changes to src/lsm_file.c.

  1959   1959         /* Now that it has a page number, insert the page into the hash table */
  1960   1960         iHash = fsHashKey(pFS->nHash, pPg->iPg);
  1961   1961         pPg->pHashNext = pFS->apHash[iHash];
  1962   1962         pFS->apHash[iHash] = pPg;
  1963   1963   
  1964   1964         pPg->pSeg->nSize += (sizeof(aSz) * 2) + pPg->nCompress;
  1965   1965   
         1966  +      pPg->flags &= ~PAGE_DIRTY;
         1967  +      pFS->nWrite++;
  1966   1968       }else{
  1967   1969   
  1968   1970         if( pPg->iPg==0 ){
  1969   1971           /* No page number has been assigned yet. This occurs with pages used
  1970   1972           ** in the b-tree hierarchy. They were not assigned page numbers when
  1971   1973           ** they were created as doing so would cause this call to
  1972   1974           ** lsmFsPagePersist() to write an out-of-order page. Instead a page