From: dan Date: Tue, 25 Oct 2016 15:06:11 +0000 (+0000) Subject: Add test case to demonstrate a "BEGIN EXCLUSIVE" command returning X-Git-Tag: version-3.16.0~168 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=01e697b4ecefc001695caafefe3e1eb02527fa99;p=thirdparty%2Fsqlite.git Add test case to demonstrate a "BEGIN EXCLUSIVE" command returning SQLITE_BUSY_SNAPSHOT. FossilOrigin-Name: b115856408b6aa5538be67beb619d7aff0630bea --- diff --git a/manifest b/manifest index 730515d503..d4950ff1c5 100644 --- a/manifest +++ b/manifest @@ -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 diff --git a/manifest.uuid b/manifest.uuid index a7497d5dc5..9cf0539683 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -98795c2dd9a6d8fa8d49a9f5c36cdf824cae7246 \ No newline at end of file +b115856408b6aa5538be67beb619d7aff0630bea \ No newline at end of file diff --git a/test/wal6.test b/test/wal6.test index 2574a64a84..92831f1fb0 100644 --- a/test/wal6.test +++ b/test/wal6.test @@ -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