From: drh Date: Thu, 1 Apr 2010 13:41:10 +0000 (+0000) Subject: Do not journal the content of freelist leaf pages. This restores an X-Git-Tag: version-3.7.2~500 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=45b355dc4fab591de246d406af2d249a3f00f92d;p=thirdparty%2Fsqlite.git Do not journal the content of freelist leaf pages. This restores an optimization that was accidently undone by check-in [12f7346c13] on [2009-01-20]. FossilOrigin-Name: b1e7a1a677e1c2a6c2ab83a67070605465a3e495 --- diff --git a/manifest b/manifest index dd16bcc003..60c195e4c3 100644 --- a/manifest +++ b/manifest @@ -1,8 +1,8 @@ -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 -C Remove\sa\sNEVER\sin\ssqlite3PagerPagecount()\sthat\scan\sin\sfact\sbe\strue. -D 2010-04-01T02:47:01 +C Do\snot\sjournal\sthe\scontent\sof\sfreelist\sleaf\spages.\s\sThis\srestores\san\noptimization\sthat\swas\saccidently\sundone\sby\scheck-in\s[12f7346c13]\son\n[2009-01-20]. +D 2010-04-01T13:41:11 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0 F Makefile.in 4f2f967b7e58a35bb74fb7ec8ae90e0f4ca7868b F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654 @@ -155,7 +155,7 @@ F src/os_common.h 240c88b163b02c21a9f21f87d49678a0aa21ff30 F src/os_os2.c 75a8c7b9a00a2cf1a65f9fa4afbc27d46634bb2f F src/os_unix.c 148d2f625db3727250c0b880481ae7630b6d0eb0 F src/os_win.c 1c7453c2df4dab26d90ff6f91272aea18bcf7053 -F src/pager.c 2e91228dc3468b283e20d72edbd44b146af3c85e +F src/pager.c 7ea0549f435e9de6d13b18ad4e4f65c512dff477 F src/pager.h ef8a2cf10084f60ab45ee2dfded8bf8b0c655ddf F src/parse.y ace5c7a125d9f2a410e431ee3209034105045f7e F src/pcache.c ace8f6a5ecd4711cc66a1b23053be7109bd437cf @@ -797,14 +797,14 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f -P 802aeb30c9baf4059fa84f4693f290f80d3a4085 -R 75e8a8ba9141278233386f2d0b38726b +P 8f00533782a0eae5613caaf86608384cb702fc51 +R 4375a6bc9c872c0b22907e8e60fe5550 U drh -Z f388f97aaea9c9c6d6b6574c7dadb3b1 +Z a9410a27ac15f88e89ced3ab243add4b -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) -iD8DBQFLtAkpoxKgR168RlERAvOwAJ0ZLP5wndkZV4iJRnK06w+Nu6PQhgCfSLmA -sYyX0hX31L1UZj/QDpJoZwA= -=Hc+r +iD8DBQFLtKJ6oxKgR168RlERAtkGAJ0QRTGSnFJlaaAourV28oxLbWQ+lwCfWFuK +Sxyy3mIBIqCmrUf8H/mwDn4= +=WOt2 -----END PGP SIGNATURE----- diff --git a/manifest.uuid b/manifest.uuid index bffce7f335..27e8746991 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -8f00533782a0eae5613caaf86608384cb702fc51 \ No newline at end of file +b1e7a1a677e1c2a6c2ab83a67070605465a3e495 \ No newline at end of file diff --git a/src/pager.c b/src/pager.c index c1b3260749..10efe02916 100644 --- a/src/pager.c +++ b/src/pager.c @@ -3832,7 +3832,7 @@ int sqlite3PagerAcquire( assert( (*ppPage)->pgno==pgno ); assert( (*ppPage)->pPager==pPager || (*ppPage)->pPager==0 ); - if( (*ppPage)->pPager ){ + if( (*ppPage)->pPager && !noContent ){ /* In this case the pcache already contains an initialized copy of ** the page. Return without further ado. */ assert( pgno<=PAGER_MAX_PGNO && pgno!=PAGER_MJ_PGNO(pPager) );