From: danielk1977 Date: Tue, 28 Apr 2009 05:27:20 +0000 (+0000) Subject: Avoid changing the pager journal-mode once a write-transaction is open, even if no... X-Git-Tag: version-3.6.15~196 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f761f76262ecae8f9601c9ee51fe89db6596b9ec;p=thirdparty%2Fsqlite.git Avoid changing the pager journal-mode once a write-transaction is open, even if no database pages have been modified. (CVS 6554) FossilOrigin-Name: ad8aba3eff90d42b936e3644f10cbbd431eebad8 --- diff --git a/manifest b/manifest index 37d23a85d7..5644ee168e 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Add\stest\scases\sfor\ssqlite3_complete\swith\san\sEXPLAIN\sQUERY\sPLAN\son\sa\nCREATE\sTRIGGER\sstatement.\s\sTicket\s#3828.\s(CVS\s6553) -D 2009-04-28T04:51:29 +C Avoid\schanging\sthe\spager\sjournal-mode\sonce\sa\swrite-transaction\sis\sopen,\seven\sif\sno\sdatabase\spages\shave\sbeen\smodified.\s(CVS\s6554) +D 2009-04-28T05:27:20 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0 F Makefile.in 583e87706abc3026960ed759aff6371faf84c211 F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654 @@ -146,7 +146,7 @@ F src/os_common.h 8c61457df58f1a4bd5f5adc3e90e01b37bf7afbc F src/os_os2.c bed77dc26e3a95ce4a204936b9a1ca6fe612fcc5 F src/os_unix.c 9ad9f45049a3c9eb0b0713b162ff0d7024ff7259 F src/os_win.c 725c38a524d168ce280446ad8761d731bc516405 -F src/pager.c adfdf98f92bcab88246aaa5079df49f9441ebd81 +F src/pager.c 1c41ddee47a9f6c5e3431faac071ef705fb736f9 F src/pager.h 0c9f3520c00d8a3b8e792ca56c9a11b6b02b4b0f F src/parse.y b7e4341b21736a90b952aa6bb663ec98529b778e F src/pcache.c 395f752a13574120bd7513a400ba02a265aaa76d @@ -725,7 +725,7 @@ F tool/speedtest16.c c8a9c793df96db7e4933f0852abb7a03d48f2e81 F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e -P 057c7d171397e19c8f3ac2362ea45f2b4a50530c -R e9cf7dcfedeb1269850001610142cf1c -U drh -Z 6cc8d771e93fc6aa7c555d8857beb7c3 +P 6b86b40edadb9c9cbc0db5a43a8277434f9d7171 +R 36339aace1f1a9c46314399faf9cd941 +U danielk1977 +Z acedd3ee233aa3d3d3c2cd405310cc61 diff --git a/manifest.uuid b/manifest.uuid index a4f0dbc910..d4835df521 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -6b86b40edadb9c9cbc0db5a43a8277434f9d7171 \ No newline at end of file +ad8aba3eff90d42b936e3644f10cbbd431eebad8 \ No newline at end of file diff --git a/src/pager.c b/src/pager.c index aef663c958..001ed0844d 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.582 2009/04/20 17:43:03 drh Exp $ +** @(#) $Id: pager.c,v 1.583 2009/04/28 05:27:20 danielk1977 Exp $ */ #ifndef SQLITE_OMIT_DISKIO #include "sqliteInt.h" @@ -5218,6 +5218,7 @@ int sqlite3PagerJournalMode(Pager *pPager, int eMode){ && (!MEMDB || eMode==PAGER_JOURNALMODE_MEMORY || eMode==PAGER_JOURNALMODE_OFF) && !pPager->dbModified + && (!isOpen(pPager->jfd) || 0==pPager->journalOff) ){ if( isOpen(pPager->jfd) ){ sqlite3OsClose(pPager->jfd);