]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Add test case to demonstrate a "BEGIN EXCLUSIVE" command returning
authordan <dan@noemail.net>
Tue, 25 Oct 2016 15:06:11 +0000 (15:06 +0000)
committerdan <dan@noemail.net>
Tue, 25 Oct 2016 15:06:11 +0000 (15:06 +0000)
SQLITE_BUSY_SNAPSHOT.

FossilOrigin-Name: b115856408b6aa5538be67beb619d7aff0630bea

manifest
manifest.uuid
test/wal6.test

index 730515d50353b7736bf8e8c5420bb6807aaa386e..d4950ff1c57c1972b1c00e07393873ceb3f0bda1 100644 (file)
--- 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
index a7497d5dc59129ed9093e5f3010fc1d9b117a32d..9cf0539683242ef90be91b8c59b05663f583eaec 100644 (file)
@@ -1 +1 @@
-98795c2dd9a6d8fa8d49a9f5c36cdf824cae7246
\ No newline at end of file
+b115856408b6aa5538be67beb619d7aff0630bea
\ No newline at end of file
index 2574a64a842074899e0fe9935b0fc4e038ebb443..92831f1fb00674aa1a0087e92ba49859a7efde5b 100644 (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