]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Discard the pager-cache when the page-size is changed. (CVS 3719)
authordanielk1977 <danielk1977@noemail.net>
Mon, 26 Mar 2007 15:46:00 +0000 (15:46 +0000)
committerdanielk1977 <danielk1977@noemail.net>
Mon, 26 Mar 2007 15:46:00 +0000 (15:46 +0000)
FossilOrigin-Name: e4209f7193d160709b0d8b5cd358df5649a97dc0

manifest
manifest.uuid
src/pager.c

index 3b43726a66df964e7a48055c9d081608225187bc..a5e49f37217e5a0df973e76483e9c0f10dd4ad54 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Avoid\sunnecessary\scalls\sto\spager_unwritelock()\swhen\sin\sexclusive-access\smode.\nAdd\sthe\sspeed2.test\sscript\sto\sthe\stest\ssuite.\s(CVS\s3718)
-D 2007-03-26T13:48:13
+C Discard\sthe\spager-cache\swhen\sthe\spage-size\sis\schanged.\s(CVS\s3719)
+D 2007-03-26T15:46:01
 F Makefile.in 1fe3d0b46e40fd684e1e61f8e8056cefed16de9f
 F Makefile.linux-gcc 2d8574d1ba75f129aba2019f0b959db380a90935
 F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
@@ -86,7 +86,7 @@ F src/os_unix.c 4642f23ed0c1ae0f1440db1d2b4231348af69360
 F src/os_unix.h 5768d56d28240d3fe4537fac08cc85e4fb52279e
 F src/os_win.c 1d1d0989b0f235751504292c2f28e81044be0d70
 F src/os_win.h 41a946bea10f61c158ce8645e7646b29d44f122b
-F src/pager.c d9b188cbe6bc502c328115181ae9426256c49058
+F src/pager.c d5fc7caffe5db2e82296a9f888b3bc8bbd11e25d
 F src/pager.h 3c16500c25051536e43fb19e246e58fc7cb51d9f
 F src/parse.y bcfe366c1fd61cfc40e5344eb69a31997a821af0
 F src/pragma.c 9cb8b94e7d38ba35a86037bd517d07ba9870b4b2
@@ -440,7 +440,7 @@ F www/tclsqlite.tcl bb0d1357328a42b1993d78573e587c6dcbc964b9
 F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
 F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
 F www/whentouse.tcl 97e2b5cd296f7d8057e11f44427dea8a4c2db513
-P 127454903764daff17390941a002f527ee2ffc87
-R f8f17a5fd0fcfb4206d3e1d9fe29a001
-U drh
-Z 58bc375fdd0e58a8cbf0d31d7e7ab70d
+P ab53f5086334ea2f6c20c8f9d043baff39fae8d7
+R ab0471b994821d6f6d3d3075747999b9
+U danielk1977
+Z 1aa32bb75b01dd94bb830b6ed37ad984
index 25e6d55da4e93c3640e14b8b5ac1dafbb3536923..d524de6ce2e9c2627bd36a3183c37a9f42ce0738 100644 (file)
@@ -1 +1 @@
-ab53f5086334ea2f6c20c8f9d043baff39fae8d7
\ No newline at end of file
+e4209f7193d160709b0d8b5cd358df5649a97dc0
\ No newline at end of file
index 0c815dfb5eb238f3442ae0afc0611e9cfff2f4f4..82622bf73eef12aa8b0f0b4e57ad2ec4e010c103 100644 (file)
@@ -18,7 +18,7 @@
 ** file simultaneously, or one process from reading the database while
 ** another is writing.
 **
-** @(#) $Id: pager.c,v 1.298 2007/03/26 13:48:13 drh Exp $
+** @(#) $Id: pager.c,v 1.299 2007/03/26 15:46:01 danielk1977 Exp $
 */
 #ifndef SQLITE_OMIT_DISKIO
 #include "sqliteInt.h"
@@ -1825,7 +1825,8 @@ void sqlite3PagerSetReiniter(Pager *pPager, void (*xReinit)(DbPage*,int)){
 */
 int sqlite3PagerSetPagesize(Pager *pPager, int pageSize){
   assert( pageSize>=512 && pageSize<=SQLITE_MAX_PAGE_SIZE );
-  if( !pPager->memDb ){
+  if( !pPager->memDb && pPager->nRef==0 ){
+    pager_reset(pPager);
     pPager->pageSize = pageSize;
     sqlite3ReallocOrFree((void **)&pPager->pTmpSpace, pageSize);
   }