-C Performance\soptimization\sin\smoveToRoot().\sAvoid\srepeated\svalidity\schecking\sof\nthe\sroot\spage\son\seach\scall.\sOnce\sis\senough.
-D 2016-10-24T01:01:09.853
+C Add\stest\scase\sto\sdemonstrate\sa\s"BEGIN\sEXCLUSIVE"\scommand\sreturning\nSQLITE_BUSY_SNAPSHOT.
+D 2016-10-25T15:06:11.142
F Makefile.in 6fd48ffcf7c2deea7499062d1f3747f986c19678
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
F Makefile.msc 5151cc64c4c05f3455f4f692ad11410a810d937f
F test/wal3.test 2a93004bc0fb2b5c29888964024695bade278ab2
F test/wal4.test 4744e155cd6299c6bd99d3eab1c82f77db9cdb3c
F test/wal5.test 9c11da7aeccd83a46d79a556ad11a18d3cb15aa9
-F test/wal6.test a9d6aa635b9d63607dabdc11406f5f96ca986635
+F test/wal6.test 504b24ddb3a75d4b7a6e7c09dc7563622e652fd2
F test/wal64k.test 163655ecd2cb8afef4737cac2a40fdd2eeaf20b8
F test/wal7.test 2ae8f427d240099cc4b2dfef63cff44e2a68a1bd
F test/wal8.test d9df3fba4caad5854ed69ed673c68482514203c8
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 5f3e602831ba2ecaf8ba5411efb387afcde05a33
-R 29a58bbb2dfbc1d411acf8e8bb02ca42
-U drh
-Z 723cdd59e0d6445a1b308cfb6d241f2f
+P 98795c2dd9a6d8fa8d49a9f5c36cdf824cae7246
+R e30d5f9c1b1789e2c9a0ef25079fdb1b
+U dan
+Z 8c4ba873f6fa2463459d3dd02e3529e2
catchsql { SELECT * FROM t2 } db2
} {1 {database disk image is malformed}}
+#-------------------------------------------------------------------------
+# Confirm that it is possible to get an SQLITE_BUSY_SNAPSHOT error from
+# "BEGIN EXCLUSIVE" if the connection already has an open read-transaction.
+#
+reset_db
+sqlite3 db2 test.db
+do_execsql_test 5.1 {
+ PRAGMA journal_mode = wal;
+ CREATE TABLE t1(x, y);
+ INSERT INTO t1 VALUES(1, 2);
+ INSERT INTO t1 VALUES(3, 4);
+} {wal}
+do_test 5.2 {
+ set res [list]
+ db eval {
+ SELECT * FROM t1
+ } {
+ if {$x==1} {
+ db2 eval { INSERT INTO t1 VALUES(5, 6) }
+ }
+ if {$x==3} {
+ set res [catchsql {BEGIN EXCLUSIVE}]
+ lappend res [sqlite3_extended_errcode db]
+ }
+ }
+ set res
+} {1 {database is locked} SQLITE_BUSY_SNAPSHOT}
+
+
finish_test