diff --git a/VERSION b/VERSION index f225a78adf..aedc15bb0c 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.5.2 +2.5.3 diff --git a/manifest b/manifest index 9a8c90f5dd..d3bb1644d0 100644 --- a/manifest +++ b/manifest @@ -1,9 +1,9 @@ -C Enhance\sthe\sINTEGRITY_CHECK\spragma\sto\stest\sthe\sauxiliary\sdatabase\sfile\sin\naddition\sto\sthe\smain\sdatabase\sfile.\s(CVS\s642) -D 2002-06-25T13:16:03 +C Bug\sfix:\sWhen\sthe\sdatabase\sfile\sgrows\sin\ssize\sduring\sa\stransaction,\smake\ssure\nthe\slast\spage\sof\sthe\sfile\sgets\swritten\sto\sdisk\seven\sif\sthat\spage\sis\son\sthe\nfree\slist\sand\scontains\sno\sdata.\s\sOtherwise\sthe\sdisk\sfile\swill\sbe\stoo\ssmall\nwhich\scan\slead\sto\sdatabase\scorruption\sin\ssubsequent\stransactions.\s(CVS\s643) +D 2002-06-25T14:43:58 F Makefile.in 6291a33b87d2a395aafd7646ee1ed562c6f2c28c F Makefile.template 4e11752e0b5c7a043ca50af4296ec562857ba495 F README a4c0ba11354ef6ba0776b400d057c59da47a4cc0 -F VERSION 2ca20d4461e9496d4ae27191e7273a12369ff17c +F VERSION 97bfa91ca72b5d914131a988ca9b75bc52c40553 F aclocal.m4 11faa843caa38fd451bc6aeb43e248d1723a269d F config.guess f38b1e93d1e0fa6f5a6913e9e7b12774b9232588 F config.sub f14b07d544ca26b5d698259045136b783e18fc7f @@ -32,7 +32,7 @@ F src/main.c 43d5f4e38108129a13cf42c59087e6e20b3596ad F src/md5.c 0ae1f3e2cac92d06fc6246d1b4b8f61a2fe66d3b F src/os.c 9cc40c5384baba4a85e160e67807645ca98ba3cc F src/os.h 4a361fccfbc4e7609b3e1557f604f94c1e96ad10 -F src/pager.c 1e41053c949cea1f09d8dafada5fe8f90785e650 +F src/pager.c 58ae9f569b3c664ea9205c6f6da432e3ae180f56 F src/pager.h 6fddfddd3b73aa8abc081b973886320e3c614f0e F src/parse.y c75ea2580de675bcb80ff8b7c10c0a15e02a21ab F src/printf.c 236ed7a79386feed4456fa728fff8be793f1547c @@ -122,7 +122,7 @@ F www/arch.fig d5f9752a4dbf242e9cfffffd3f5762b6c63b3bcf F www/arch.png 82ef36db1143828a7abc88b1e308a5f55d4336f4 F www/arch.tcl 72a0c80e9054cc7025a50928d28d9c75c02c2b8b F www/c_interface.tcl 58cf4d128dcae08d91d0011c6d4d11de323f470f -F www/changes.tcl 08de0b1b50d3651ac3bd6b0d44c9ebe0072b55b3 +F www/changes.tcl a096bde48589a4c1fae69e85d72d3c41fdd186cd F www/conflict.tcl 81dd21f9a679e60aae049e9dd8ab53d59570cda2 F www/crosscompile.tcl 3622ebbe518927a3854a12de51344673eb2dd060 F www/download.tcl 29aa6679ca29621d10613f60ebbbda18f4b91c49 @@ -137,7 +137,7 @@ F www/speed.tcl da8afcc1d3ccc5696cfb388a68982bc3d9f7f00f F www/sqlite.tcl ac64065d0c5e2de0f71238d55b2c14bb5c5c194c F www/tclsqlite.tcl 1db15abeb446aad0caf0b95b8b9579720e4ea331 F www/vdbe.tcl 2013852c27a02a091d39a766bc87cff329f21218 -P 756310cad23668785eac679ef0842d1f37c306ee -R 86bdc4dd43fde89d9869884f7454049a +P 52eba4de301121f254174b74042015bf6069ef11 +R 40d3bf2fd98ee726a822a60d13e6ec24 U drh -Z 4de554b1388a65f2a11731d055d158e3 +Z a933713559c7d8b5cd51a8205ff4246e diff --git a/manifest.uuid b/manifest.uuid index 254e41f322..9c522dba37 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -52eba4de301121f254174b74042015bf6069ef11 \ No newline at end of file +36fc0add660f9f3676783765d37280aa874caecb \ No newline at end of file diff --git a/src/pager.c b/src/pager.c index 37d458b448..ef8847ba29 100644 --- a/src/pager.c +++ b/src/pager.c @@ -18,7 +18,7 @@ ** file simultaneously, or one process from reading the database while ** another is writing. ** -** @(#) $Id: pager.c,v 1.46 2002/05/30 12:27:03 drh Exp $ +** @(#) $Id: pager.c,v 1.47 2002/06/25 14:43:58 drh Exp $ */ #include "sqliteInt.h" #include "pager.h" @@ -1195,7 +1195,18 @@ void sqlitepager_dont_write(Pager *pPager, Pgno pgno){ PgHdr *pPg; pPg = pager_lookup(pPager, pgno); if( pPg && pPg->dirty ){ - pPg->dirty = 0; + if( pPager->dbSize==(int)pPg->pgno && pPager->origDbSizedbSize ){ + /* If this pages is the last page in the file and the file has grown + ** during the current transaction, then do NOT mark the page as clean. + ** When the database file grows, we must make sure that the last page + ** gets written at least once so that the disk file will be the correct + ** size. If you do not write this page and the size of the file + ** on the disk ends up being too small, that can lead to database + ** corruption during the next transaction. + */ + }else{ + pPg->dirty = 0; + } } } diff --git a/www/changes.tcl b/www/changes.tcl index 955797a0d9..a67b96cdeb 100644 --- a/www/changes.tcl +++ b/www/changes.tcl @@ -25,6 +25,13 @@ proc chng {date desc} { puts "

" } +chng {2002 Jun 24 (2.5.3)} { +
  • Bug fix: Database corruption can occur due to the optimization + that was introduced in version 2.4.0 (checking [410]). The problem + should now be fixed. The use of versions 2.4.0 through 2.5.2 is + not recommended.
  • +} + chng {2002 Jun 24 (2.5.2)} {
  • Added the new SQLITE_TEMP_MASTER table which records the schema for temporary tables in the same way that SQLITE_MASTER does for