------BEGIN PGP SIGNED MESSAGE-----
-Hash: SHA1
-
-C Remove\scode\saccidently\sappended\sto\spager.c.
-D 2010-07-03T12:26:33
+C Fix\san\sassert\sin\spager.c.\sAnd\svarious\stest\scases\sthat\sfail\swith\sthe\sin-memory\sjournal\spermutation.
+D 2010-07-03T13:45:53
F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
F Makefile.in a5cad1f8f3e021356bfcc6c77dc16f6f1952bbc3
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
F src/os_os2.c 665876d5eec7585226b0a1cf5e18098de2b2da19
F src/os_unix.c d7910391a4c9fa6898f7c9abbbb821d5d7edb78f
F src/os_win.c dd4c6f238fe464e01dab5e4bc9158187ae305fe8
-F src/pager.c eee7ac31ce893ed6b7e28f907fe99144c0696953
+F src/pager.c e4470e43f0fefe5f81034efb706a2b1f4db5ca41
F src/pager.h 879fdde5a102d2f21a3135d6f647530b21c2796c
F src/parse.y ace5c7a125d9f2a410e431ee3209034105045f7e
F src/pcache.c 1e9aa2dbc0845b52e1b51cc39753b6d1e041cb07
F test/join6.test bf82cf3f979e9eade83ad0d056a66c5ed71d1901
F test/journal1.test 36f2d1bb9bf03f790f43fbdb439e44c0657fab19
F test/journal2.test a08ea6545d987385e7cbb1d4e7dc2eaacd83b00b
-F test/jrnlmode.test 76f94d61528c5ff32102a12f8cf34f4cc36f7849
+F test/jrnlmode.test 17881937be86841ad80431699222bf84aa01172a
F test/jrnlmode2.test a19e28de1a6ec898067e46a122f1b71c9323bf00
F test/jrnlmode3.test cfcdb12b90e640a23b92785a002d96c0624c8710
F test/keyword1.test a2400977a2e4fde43bf33754c2929fda34dbca05
F test/notnull.test cc7c78340328e6112a13c3e311a9ab3127114347
F test/null.test a8b09b8ed87852742343b33441a9240022108993
F test/openv2.test af02ed0a9cbc0d2a61b8f35171d4d117e588e4ec
-F test/pager1.test b345014ce33efcc28a8810c476090068b279ee30
+F test/pager1.test 1fc67606e4c2e9cef17aa0c6f6fceae0fffaa9f3
F test/pager2.test f5c757c271ce642d36a393ecbfb3aef1c240dcef
F test/pagerfault.test 17e51d1570c00df4a1902e6d500387017c87e74a
F test/pagerfault2.test 2d2d4373b1365d693ba185323d0766feeacdb4dd
F test/walcrash2.test 019d60b89d96c1937adb2b30b850ac7e86e5a142
F test/walfault.test c2b524299dede269282a0795e11396cc446ca9af
F test/walhook.test ed00a40ba7255da22d6b66433ab61fab16a63483
-F test/walmode.test b54e2f91f34179c65cab02a6916578617a33eef0
+F test/walmode.test cfca1207d725fb5bc25b3b9f9a7053c0277cad4a
F test/walslow.test d21625e2e99e11c032ce949e8a94661576548933
F test/walthread.test a25a393c068a2b42b44333fa3fdaae9072f1617c
F test/where.test de337a3fe0a459ec7c93db16a519657a90552330
F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
-P 6d7640edcd69a932556f86500aedbf14e75ba7de
-R d0b007e2ef9688923f10274954448b62
-U drh
-Z be2fc7329c7e3b5fca1a0eb4a8d0cff8
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v1.4.6 (GNU/Linux)
-
-iD8DBQFMLyx8oxKgR168RlERAkl1AJ4ohtqY31ahBbiC1mts0x8F0P605ACcC9FU
-hIo83ZyxiUs6yqlF5ffrsAg=
-=NNUf
------END PGP SIGNATURE-----
+P 7cbe175a69738499f9218ec56f1a39f040aea9dc
+R c5e0f625cc36dd57b9413db473409eda
+U dan
+Z 7660b7f8316180874f8f1a941691e23e
-7cbe175a69738499f9218ec56f1a39f040aea9dc
\ No newline at end of file
+78fc35ff4b01d4a583009ec8b8bf876738ca7b92
\ No newline at end of file
*/
#ifdef SQLITE_ENABLE_ATOMIC_WRITE
PgHdr *pPg;
- assert( isOpen(pPager->jfd) || pPager->journalMode==PAGER_JOURNALMODE_OFF );
+ assert( isOpen(pPager->jfd)
+ || pPager->journalMode==PAGER_JOURNALMODE_OFF
+ || pPager->journalMode==PAGER_JOURNALMODE_WAL
+ );
if( !zMaster && isOpen(pPager->jfd)
&& pPager->journalOff==jrnlBufferSize(pPager)
&& pPager->dbSize>=pPager->dbFileSize
}
}
+ifcapable pragma {
+ catch { db close }
+ do_test jrnlmode-7.1 {
+ foreach f [glob -nocomplain test.db*] { file delete -force $f }
+ sqlite3 db test.db
+ execsql {
+ PRAGMA journal_mode = memory;
+ PRAGMA auto_vacuum = 0;
+ PRAGMA page_size = 1024;
+ PRAGMA user_version = 5;
+ PRAGMA user_version;
+ }
+ } {memory 5}
+ do_test jrnlmode-7.2 { file size test.db } {1024}
+}
+
finish_test
o {
PRAGMA main.synchronous=OFF;
PRAGMA aux.synchronous=OFF;
+ PRAGMA journal_mode = DELETE;
}
o512 {
PRAGMA main.synchronous=OFF;
PRAGMA aux.synchronous=OFF;
PRAGMA main.page_size = 512;
PRAGMA aux.page_size = 512;
+ PRAGMA journal_mode = DELETE;
}
n {
PRAGMA main.synchronous=NORMAL;
PRAGMA aux.synchronous=NORMAL;
+ PRAGMA journal_mode = DELETE;
}
f {
PRAGMA main.synchronous=FULL;
PRAGMA aux.synchronous=FULL;
+ PRAGMA journal_mode = DELETE;
}
} {
}
faultsim_delete_and_reopen
do_execsql_test pager1.4.5.1 {
+ PRAGMA journal_mode = DELETE;
PRAGMA page_size = 1024;
CREATE TABLE t1(a, b);
CREATE TABLE t2(a, b);
INSERT INTO t1 VALUES(1, 2);
INSERT INTO t2 VALUES(3, 4);
COMMIT;
-} {}
+} {delete}
tv filter {}
# Check the transaction was committed:
do_test pager1.4.6.1 {
faultsim_delete_and_reopen
execsql {
+ PRAGMA journal_mode = DELETE;
ATTACH 'test.db2' AS two;
CREATE TABLE t1(a, b);
CREATE TABLE two.t2(a, b);
tv filter xDelete
sqlite3 db test.db2
execsql {
+ PRAGMA journal_mode = DELETE;
ATTACH 'test.db3' AS three;
CREATE TABLE three.t3(a, b);
INSERT INTO t3 VALUES(1, 't3.1');
}
faultsim_delete_and_reopen
do_execsql_test pager1.4.7.1 {
+ PRAGMA journal_mode = DELETE;
CREATE TABLE t1(x PRIMARY KEY, y);
CREATE INDEX i1 ON t1(y);
INSERT INTO t1 VALUES('I', 'one');
INSERT INTO t1 VALUES('IV', 'sixteen');
INSERT INTO t1 VALUES('V' , 'twentyfive');
COMMIT;
-} {}
+} {delete}
tv filter {}
db close
tv delete
DROP TABLE t6;
DROP TABLE t7;
}
- if {$eff==65536} breakpoint
execsql {
BEGIN;
CREATE TABLE t6(a, b);
faultsim_delete_and_reopen
db func a_string a_string
do_execsql_test pager1-11.1 {
+ PRAGMA journal_mode = DELETE;
PRAGMA cache_size = 10;
BEGIN;
CREATE TABLE zz(top PRIMARY KEY);
COMMIT;
BEGIN;
UPDATE zz SET top = a_string(345);
-} {}
+} {delete}
proc lockout {method args} { return SQLITE_IOERR }
tv script lockout
set testdir [file dirname $argv0]
source $testdir/tester.tcl
+source $testdir/malloc_common.tcl
# If the library was compiled without WAL support, check that the
# "PRAGMA journal_mode=WAL" treats "WAL" as an unrecognized mode.
}
} [list 1 2 3 4 $tempJrnlMode]
+
+#-------------------------------------------------------------------------
+# Test changing to WAL mode from journal_mode=off or journal_mode=memory
+#
+foreach {tn mode} {
+ 3 persist
+ 4 delete
+ 5 truncate
+ 2 memory
+ 1 off
+} {
+ do_test walmode-6.$tn {
+ faultsim_delete_and_reopen
+ execsql "
+ PRAGMA journal_mode = $mode;
+ PRAGMA journal_mode = wal;
+ "
+ } [list $mode wal]
+}
+
finish_test