diff --git a/manifest b/manifest index fde0944988..b8eeeba297 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Add\stest\scases\sto\sprove\sthat\sticket\s#3082\shas\sbeen\sfixed.\s(CVS\s5048) -D 2008-04-25T12:10:15 +C Clarify\ssome\scomments.\s\sNo\schanges\sto\scode.\s(CVS\s5049) +D 2008-04-25T12:25:42 F Makefile.arm-wince-mingw32ce-gcc ac5f7b2cef0cd850d6f755ba6ee4ab961b1fadf7 F Makefile.in 25b3282a4ac39388632c2fb0e044ff494d490952 F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654 @@ -122,7 +122,7 @@ F src/os_common.h e8b748b2f2ecc8a498e50bfe5d8721f189c19d2a F src/os_os2.c 41015b3fa91568761eb10cbf6ca27a0624ba0bda F src/os_unix.c fdec4e5ee5dd555a6ad4a69f38ab35f0788536b4 F src/os_win.c 3a60bddd07ea6f8adb2314dd5996ac97b988f403 -F src/pager.c 90df64b9c18545e3eb6d8d1dccf95dafe3373b8f +F src/pager.c 2361c00a4cf7936ef7e1463c224214c6fe6ee2cd F src/pager.h 45ec2188593afd48a25c743529646771d75e83e4 F src/parse.y fc4bd35c6088901f7c8daead26c6fb11c87d22e7 F src/pragma.c 2e4bb2e76e48a32750529fdc4bfe86ac5f54e01b @@ -169,7 +169,7 @@ F src/update.c 57282dae1ffffaf4aedc3201ed77f8ef09be4f45 F src/utf.c 8c94fa10efc78c2568d08d436acc59df4df7191b F src/util.c 943caa4071488b20ed90588f0704c6825f91836b F src/vacuum.c 3524411bfb58aac0d87eadd3e5b7cd532772af30 -F src/vdbe.c 062c597e167a2284985c0b64e2514b130abde49e +F src/vdbe.c 2d75ac15ec69721340f0320e5b2fefbbd1aa2831 F src/vdbe.h bfd84bda447f39cb599302c7ec85067dae20453c F src/vdbeInt.h 05316345da487b0cf540482576f9ae3337d133cd F src/vdbeapi.c 0e1b5a808bb0e556f2a975eb7d11fd3153e922bf @@ -630,7 +630,7 @@ F www/tclsqlite.tcl 8be95ee6dba05eabcd27a9d91331c803f2ce2130 F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0 F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b F www/whentouse.tcl fc46eae081251c3c181bd79c5faef8195d7991a5 -P f6313311ddfb1ee2d6660b9be99afe721a8a9aff -R c1be9ae2c20e9ded54c75945b051f5cb +P 776e7024101dd2eeb29484a36c7e1ac751444ec8 +R 211bc01b0b10749f82de03c7c0880d70 U drh -Z 3138e5436c93d4ce1252743b1e0e1968 +Z 5d82caa22f30cf196f067fd76ef02178 diff --git a/manifest.uuid b/manifest.uuid index 5619836476..c6ca66dd5d 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -776e7024101dd2eeb29484a36c7e1ac751444ec8 \ No newline at end of file +7f80539225b17a62e4aa09e6d514e3e9e1b22c36 \ No newline at end of file diff --git a/src/pager.c b/src/pager.c index 6c6fca4c59..bf7da6c93b 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.434 2008/04/24 12:37:40 danielk1977 Exp $ +** @(#) $Id: pager.c,v 1.435 2008/04/25 12:25:42 drh Exp $ */ #ifndef SQLITE_OMIT_DISKIO #include "sqliteInt.h" @@ -3084,6 +3084,15 @@ static PgHdr *pager_get_all_dirty_pages(Pager *pPager){ ** database with the same name. Just delete the journal. ** ** Return negative if unable to determine the status of the journal. +** +** This routine does not open the journal file to examine its +** content. Hence, the journal might contain the name of a master +** journal file that has been deleted, and hence not be hot. Or +** the header of the journal might be zeroed out. This routine +** does not discover these cases of a non-hot journal - if the +** journal file exists and is not empty this routine assumes it +** is hot. The pager_playback() routine will discover that the +** journal file is not really hot and will no-op. */ static int hasHotJournal(Pager *pPager){ sqlite3_vfs *pVfs = pPager->pVfs; diff --git a/src/vdbe.c b/src/vdbe.c index 43eab1b232..78183fcfaa 100644 --- a/src/vdbe.c +++ b/src/vdbe.c @@ -43,7 +43,7 @@ ** in this file for details. If in doubt, do not deviate from existing ** commenting and indentation practices when changing or adding code. ** -** $Id: vdbe.c,v 1.734 2008/04/24 19:15:11 shane Exp $ +** $Id: vdbe.c,v 1.735 2008/04/25 12:25:42 drh Exp $ */ #include "sqliteInt.h" #include @@ -2268,11 +2268,21 @@ case OP_MakeRecord: { /* Opcode: Statement P1 * * * * ** ** Begin an individual statement transaction which is part of a larger -** BEGIN..COMMIT transaction. This is needed so that the statement +** transaction. This is needed so that the statement ** can be rolled back after an error without having to roll back the ** entire transaction. The statement transaction will automatically ** commit when the VDBE halts. ** +** If the database connection is currently in autocommit mode (that +** is to say, if it is in between BEGIN and COMMIT) +** and if there are no other active statements on the same database +** connection, then this operation is a no-op. No statement transaction +** is needed since any error can use the normal ROLLBACK process to +** undo changes. +** +** If a statement transaction is started, then a statement journal file +** will be allocated and initialized. +** ** The statement is begun on the database file with index P1. The main ** database file has an index of 0 and the file used for temporary tables ** has an index of 1.