-C Add\sa\smore\srigorous\stest\scase\sfor\sthe\sbug\sfixed\sby\sthe\sprevious\scommit\son\sthis\nbranch.
-D 2017-08-12T14:06:15.050
+C Test\sBEGIN\sCONCURRENT\stransactions\sthat\sconsist\sentirely\sof\sread-only\nstatements.
+D 2017-08-24T10:10:28.736
F Makefile.in d9873c9925917cca9990ee24be17eb9613a668012c85a343aef7e5536ae266e8
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
F Makefile.msc 02b469e9dcd5b7ee63fc1fb05babc174260ee4cfa4e0ef2e48c3c6801567a016
F test/concurrent.test a801cd60c370f0ed851657c9576b102f9ab1dd846c6a88e6ae45939a8deeda7c
F test/concurrent2.test 9dfbeb0a323733fe1d13443371734bb94a674dbf777f464365475903873111f8
F test/concurrent3.test f4af1cf1220908c6dd5694923621c19e999b78cd997e2646285f08a52bcb4170
-F test/concurrent4.test 653de3066911acfb9dcf3802bf4f1981b392b86c11f75e2c38ed1abfdd162293
+F test/concurrent4.test e0b12cd467137e50259df3b4f837507e82aaa07c35941c88664dc8ed1d089c44
F test/concurrent5.test d5d7d9d404a9b4502464fc097c1fc5c3012bb4f1b063fae7ad707ca983fc86c5
F test/conflict.test 029faa2d81a0d1cafb5f88614beb663d972c01db
F test/conflict2.test bb0b94cf7196c64a3cbd815c66d3ee98c2fecd9c
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 38dd9b50fe260d853cbc2551bc1bb60ddf5752f0456e0da3afe4cbf728c891d8
-R 5ae6eec944d8695060377eb5fcb02f25
+P 4256072399f44f48ed0856aa8112226af6feaf8676923612bde6cea239ebf920
+R 03a159c270fd82b6d54f5498b523d32e
U dan
-Z be5258dc78cb84266e8cf9b3ea9ebd92
+Z fcb6179847dc0180b01d1fb922b3b8b6
COMMIT;
} {}
+#-------------------------------------------------------------------------
+# Test the effect of BEGIN CONCURRENT transactions that consist entirely
+# of read-only statements.
+#
+reset_db
+do_execsql_test 4.0 {
+ PRAGMA page_size = 1024;
+ PRAGMA journal_mode = wal;
+
+ CREATE TABLE t4(a, b);
+ INSERT INTO t4 VALUES(1, 2);
+ INSERT INTO t4 VALUES(3, 4);
+} {wal}
+
+sqlite3 db2 test.db
+do_test 4.1.1 {
+ db eval {
+ BEGIN CONCURRENT;
+ INSERT INTO t4 VALUES(5, 6);
+ }
+
+ db2 eval {
+ BEGIN CONCURRENT;
+ SELECT * FROM t4;
+ ROLLBACK;
+ }
+} {1 2 3 4}
+
+do_test 4.1.2 {
+ db eval { COMMIT }
+ db2 eval { SELECT * FROM t4 }
+} {1 2 3 4 5 6}
+
+do_test 4.2.1 {
+ db eval {
+ BEGIN CONCURRENT;
+ INSERT INTO t4 VALUES(7, 8);
+ }
+
+ db2 eval {
+ BEGIN CONCURRENT;
+ SELECT * FROM t4;
+ COMMIT;
+ }
+} {1 2 3 4 5 6}
+
+do_test 4.2.2 {
+ db eval { COMMIT }
+ db2 eval { SELECT * FROM t4 }
+} {1 2 3 4 5 6 7 8}
+
+do_test 4.3 {
+ db2 eval {
+ BEGIN CONCURRENT;
+ SELECT * FROM t4;
+ }
+
+ db eval {
+ BEGIN CONCURRENT;
+ INSERT INTO t4 VALUES(9, 10);
+ COMMIT;
+ }
+ db2 eval {
+ SELECT * FROM t4;
+ COMMIT;
+ }
+} {1 2 3 4 5 6 7 8}
+
+set sz [file size test.db-wal]
+do_test 4.4.1 {
+ db eval {
+ BEGIN CONCURRENT;
+ SELECT * FROM t4;
+ SELECT * FROM sqlite_master;
+ }
+
+ db eval COMMIT
+ file size test.db-wal
+} $sz
+do_test 4.4.2 {
+ db eval {
+ BEGIN CONCURRENT;
+ SELECT * FROM t4;
+ SELECT * FROM sqlite_master;
+ ROLLBACK;
+ }
+ file size test.db-wal
+} $sz
+
finish_test