1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-08-08 14:02:16 +03:00

Candidate fix for a pager bug associated with sqlite3PagerMovepage().

FossilOrigin-Name: 8c046eb6d16682d5e755624deb4f76f57350b9c9
This commit is contained in:
drh
2010-04-09 15:34:06 +00:00
parent 6498f0bb2e
commit 05f69dd388
3 changed files with 12 additions and 11 deletions

View File

@@ -1,8 +1,8 @@
-----BEGIN PGP SIGNED MESSAGE----- -----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1 Hash: SHA1
C Avoid\sunnecessary\scalls\sto\ssqlite3_step()\swith\snull\sprepared\sstatements\nwhile\sparsing\sthe\sschema. C Candidate\sfix\sfor\sa\spager\sbug\sassociated\swith\ssqlite3PagerMovepage().
D 2010-04-09T09:14:05 D 2010-04-09T15:34:06
F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
F Makefile.in 4f2f967b7e58a35bb74fb7ec8ae90e0f4ca7868b F Makefile.in 4f2f967b7e58a35bb74fb7ec8ae90e0f4ca7868b
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654 F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
@@ -155,7 +155,7 @@ F src/os_common.h 240c88b163b02c21a9f21f87d49678a0aa21ff30
F src/os_os2.c 75a8c7b9a00a2cf1a65f9fa4afbc27d46634bb2f F src/os_os2.c 75a8c7b9a00a2cf1a65f9fa4afbc27d46634bb2f
F src/os_unix.c 148d2f625db3727250c0b880481ae7630b6d0eb0 F src/os_unix.c 148d2f625db3727250c0b880481ae7630b6d0eb0
F src/os_win.c 1c7453c2df4dab26d90ff6f91272aea18bcf7053 F src/os_win.c 1c7453c2df4dab26d90ff6f91272aea18bcf7053
F src/pager.c 044c27315eccca1a2304bf81cbc00fa22f2e62bb F src/pager.c ab2482d819ae5c53bfcb1b8e673a00627d8fdeec
F src/pager.h ef8a2cf10084f60ab45ee2dfded8bf8b0c655ddf F src/pager.h ef8a2cf10084f60ab45ee2dfded8bf8b0c655ddf
F src/parse.y ace5c7a125d9f2a410e431ee3209034105045f7e F src/parse.y ace5c7a125d9f2a410e431ee3209034105045f7e
F src/pcache.c ace8f6a5ecd4711cc66a1b23053be7109bd437cf F src/pcache.c ace8f6a5ecd4711cc66a1b23053be7109bd437cf
@@ -799,14 +799,14 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224 F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
P 332cb55113a621456c6522830585434146c388e7 P ae04d2d15d3d96f607adb394a631d96cd4cf2c1d
R 71bb1fb313a1856d73098e2432b5cefc R 30296c0b6348ed0103a1b1f6d3985ee2
U drh U drh
Z b3b7d19f1a4ba32f7346eb0a7b487db1 Z 428cc332b0d6f67625124f7dd12c1268
-----BEGIN PGP SIGNATURE----- -----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux) Version: GnuPG v1.4.6 (GNU/Linux)
iD8DBQFLvu/goxKgR168RlERAioUAJ9TyQvJfnEhAsJp/SbbkAlrQn1rEQCgibSL iD8DBQFLv0jyoxKgR168RlERAqqVAJ9Ef7vg/KHku2LiPcS65RJ9IGhkrwCeM8nw
PoydLovfOGdwnT0LV9CvIvc= LLHbyRmzF2wBh0CK3Tp3KoA=
=FBJT =60me
-----END PGP SIGNATURE----- -----END PGP SIGNATURE-----

View File

@@ -1 +1 @@
ae04d2d15d3d96f607adb394a631d96cd4cf2c1d 8c046eb6d16682d5e755624deb4f76f57350b9c9

View File

@@ -1508,11 +1508,12 @@ static int pager_playback_one_page(
(isMainJrnl?"main-journal":"sub-journal") (isMainJrnl?"main-journal":"sub-journal")
)); ));
if( (pPager->state>=PAGER_EXCLUSIVE) if( (pPager->state>=PAGER_EXCLUSIVE)
&& (pPg==0 || 0==(pPg->flags&PGHDR_NEED_SYNC)) && (!isSavepnt || pPg==0 || 0==(pPg->flags&PGHDR_NEED_SYNC))
&& isOpen(pPager->fd) && isOpen(pPager->fd)
&& !isUnsync && !isUnsync
){ ){
i64 ofst = (pgno-1)*(i64)pPager->pageSize; i64 ofst = (pgno-1)*(i64)pPager->pageSize;
testcase( !isSavepnt && pPg!=0 && (pPg->flags&PGHDR_NEED_SYNC)!=0 );
rc = sqlite3OsWrite(pPager->fd, (u8*)aData, pPager->pageSize, ofst); rc = sqlite3OsWrite(pPager->fd, (u8*)aData, pPager->pageSize, ofst);
if( pgno>pPager->dbFileSize ){ if( pgno>pPager->dbFileSize ){
pPager->dbFileSize = pgno; pPager->dbFileSize = pgno;