From d5bc725f0bafb16bc2066200e30c145570e2ed32 Mon Sep 17 00:00:00 2001 From: drh Date: Mon, 6 Jul 2009 21:54:40 +0000 Subject: [PATCH] Fix the pager so that it remembers the name of the journal for an in-memory database as an empty string. This is important when committing a multi-database transaction that includes one or more attached memory databases. (CVS 6852) FossilOrigin-Name: 31a5e8192e164f01c5d7c2744b67cfb517251fad --- manifest | 12 ++++++------ manifest.uuid | 2 +- src/pager.c | 3 ++- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/manifest b/manifest index 22a2fc0c39..d8d3cd2e07 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Fix\sthe\sbackup\slogic\sso\sthat\sit\sdetects\sa\sfailure\sto\ssqlite3BtreeUpdateMeta()\nand\sreports\sthat\sfailure\sback\sup\sto\sthe\stop\slevel.\s(CVS\s6851) -D 2009-07-06T19:03:13 +C Fix\sthe\spager\sso\sthat\sit\sremembers\sthe\sname\sof\sthe\sjournal\sfor\san\sin-memory\ndatabase\sas\san\sempty\sstring.\s\sThis\sis\simportant\swhen\scommitting\sa\smulti-database\ntransaction\sthat\sincludes\sone\sor\smore\sattached\smemory\sdatabases.\s(CVS\s6852) +D 2009-07-06T21:54:41 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0 F Makefile.in df9359da7a726ccb67a45db905c5447d5c00c6ef F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654 @@ -147,7 +147,7 @@ F src/os_common.h 8c61457df58f1a4bd5f5adc3e90e01b37bf7afbc F src/os_os2.c bed77dc26e3a95ce4a204936b9a1ca6fe612fcc5 F src/os_unix.c cdb2a08b9ce4aa13b3f7b91d4dd60fb48be9f56a F src/os_win.c 725c38a524d168ce280446ad8761d731bc516405 -F src/pager.c 04fdbede529dc9f933637301d789dc7354df6e49 +F src/pager.c 18b9bfe88c21873f7bc10600685c74dd23b1ed30 F src/pager.h 5aec418bf99f568b92ae82816a1463400513726d F src/parse.y bcd46d43fbd23a22b8c020a3eb1806b794794ed5 F src/pcache.c 395f752a13574120bd7513a400ba02a265aaa76d @@ -740,7 +740,7 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e F tool/vdbe-compress.tcl 672f81d693a03f80f5ae60bfefacd8a349e76746 -P 30d5ec62ab6a85ee60ee4128e20959842f8c7ad1 -R f51708f39711f3df96d46a6137854687 +P 471b92f2514aedecb5773825a7ae472190375727 +R ef6e25ecc3f3fe23089721c79b7f9768 U drh -Z adb1cb8068914d918224f5f7ac9e9136 +Z 349e16f4481329396dd2c2a2c8daa3ce diff --git a/manifest.uuid b/manifest.uuid index edb763829d..3af8292094 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -471b92f2514aedecb5773825a7ae472190375727 \ No newline at end of file +31a5e8192e164f01c5d7c2744b67cfb517251fad \ No newline at end of file diff --git a/src/pager.c b/src/pager.c index d288d04f49..bdc085607d 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.603 2009/06/26 12:15:23 drh Exp $ +** @(#) $Id: pager.c,v 1.604 2009/07/06 21:54:41 drh Exp $ */ #ifndef SQLITE_OMIT_DISKIO #include "sqliteInt.h" @@ -3253,6 +3253,7 @@ int sqlite3PagerOpen( memcpy(pPager->zFilename, zPathname, nPathname); memcpy(pPager->zJournal, zPathname, nPathname); memcpy(&pPager->zJournal[nPathname], "-journal", 8); + if( pPager->zFilename[0]==0 ) pPager->zJournal[0] = 0; sqlite3_free(zPathname); } pPager->pVfs = pVfs;