Add test case to demonstrate a "BEGIN EXCLUSIVE" command returning

SQLITE_BUSY_SNAPSHOT.

FossilOrigin-Name: b115856408b6aa5538be67beb619d7aff0630bea
This commit is contained in:
dan 2016-10-25 15:06:11 +00:00
parent 7ad3eb63cf
commit 01e697b4ec
3 changed files with 37 additions and 8 deletions

View File

@ -1,5 +1,5 @@
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
@ -1373,7 +1373,7 @@ F test/wal2.test 56b0bc95b8693a0be294f8d210c49025dd094bd7
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
@ -1527,7 +1527,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
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

View File

@ -1 +1 @@
98795c2dd9a6d8fa8d49a9f5c36cdf824cae7246
b115856408b6aa5538be67beb619d7aff0630bea

View File

@ -234,5 +234,34 @@ do_test 4.4.2 {
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