]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Do not allow the use of WAL mode with nolock=1 because it does not work.
authordrh <drh@noemail.net>
Fri, 11 Mar 2016 23:07:30 +0000 (23:07 +0000)
committerdrh <drh@noemail.net>
Fri, 11 Mar 2016 23:07:30 +0000 (23:07 +0000)
FossilOrigin-Name: 74f5d3b07f6e5e977858c73957c6f9337ae3ca3e

manifest
manifest.uuid
src/pager.c
test/nolock.test

index 5e5214e2d207c3103b50c02a96317da1b2b1b79f..eb0ce7dd6e0026a44a7e62e537cdb001f85aa00c 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Tweak\sthe\samalgamation\sautoconf\sfiles\sso\sthat\sthe\s--disable-static-shell\soption\sworks\sagain.
-D 2016-03-11T15:25:13.462
+C Do\snot\sallow\sthe\suse\sof\sWAL\smode\swith\snolock=1\sbecause\sit\sdoes\snot\swork.
+D 2016-03-11T23:07:30.911
 F Makefile.in f53429fb2f313c099283659d0df6f20f932c861f
 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
 F Makefile.msc df0bf9ff7f8b3f4dd9fb4cc43f92fe58f6ec5c66
@@ -336,7 +336,7 @@ F src/os_setup.h c9d4553b5aaa6f73391448b265b89bed0b890faa
 F src/os_unix.c f5bac8e74aaefc4ea520e43b4540793c3b8a9e8f
 F src/os_win.c f0d7aa603eb6262143d7169a222aea07c4fca91d
 F src/os_win.h eb7a47aa17b26b77eb97e4823f20a00b8bda12ca
-F src/pager.c 2d950142528e5d9b291a1160443d7ade0d90700d
+F src/pager.c 38718a019ca762ba4f6795425d5a54db70d1790d
 F src/pager.h e1d38a2f14849e219df0f91f8323504d134c8a56
 F src/parse.y 5ea8c81c5c41b27887f41b4a7e1c58470d7d3821
 F src/pcache.c 647bb53a86b7bbcf55ad88089b3ea5a9170b90df
@@ -915,7 +915,7 @@ F test/multiplex4.test e8ae4c4bd70606a5727743241f13b5701990abe4
 F test/mutex1.test e0a44072d98189003deae4b091106f085d94bea8
 F test/mutex2.test bfeaeac2e73095b2ac32285d2756e3a65e681660
 F test/nan.test e9648b9d007c7045242af35e11a984d4b169443a
-F test/nolock.test 0540dd96f39b8876e3ffdd8814fad0ea425efeee
+F test/nolock.test 96e922d2d3db71c2dd6557c98e8027a28277b415
 F test/notify1.test 669b2b743618efdc18ca4b02f45423d5d2304abf
 F test/notify2.test 2ecabaa1305083856b7c39cf32816b612740c161
 F test/notify3.test 10ff25cde502e72a92053a2f215d64bece4ef934
@@ -1455,7 +1455,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 df44308b862e932ff0ad25b6328d13be22047b96
-R 19b1fa38a58d00a667be85fd411c2202
-U dan
-Z bd858a2f3f6240bb0acfbf97ee308bf8
+P 83efcdebfa255cd0663ecc6b74eb99183e2f3a10
+R 95ba30529f9bfc1f4da2d6ab93334cdc
+U drh
+Z 5b477c118f77a96b5b851b408af856c1
index d06900f0e616e05818a005221efd59e0c4c96fa4..3b0b773e3ebd27d34b005cddfe218993cfca116c 100644 (file)
@@ -1 +1 @@
-83efcdebfa255cd0663ecc6b74eb99183e2f3a10
\ No newline at end of file
+74f5d3b07f6e5e977858c73957c6f9337ae3ca3e
\ No newline at end of file
index 316a5e8ec0c4c3612be41f7ce27ac324043adb07..c18b3a32f7b1fb98b3f0a2ecfe689af4e16e6927 100644 (file)
@@ -7167,6 +7167,7 @@ int sqlite3PagerWalCallback(Pager *pPager){
 */
 int sqlite3PagerWalSupported(Pager *pPager){
   const sqlite3_io_methods *pMethods = pPager->fd->pMethods;
+  if( pPager->noLock ) return 0;
   return pPager->exclusiveMode || (pMethods->iVersion>=2 && pMethods->xShmMap);
 }
 
index 331af08ad74e235a28ae8acb02ca81d32bc2f36c..fdaef6ef07c19f46c748133a121f832d4b902fbf 100644 (file)
@@ -182,4 +182,36 @@ do_test nolock-3.12 {
 db2 close
 db close
 tvfs delete
+
+# 2016-03-11:  Make sure all works when transitioning to WAL mode under nolock.
+#
+do_test nolock-4.1 {
+  forcedelete test.db
+  sqlite3 db file:test.db?nolock=1 -uri 1
+  db eval {
+     PRAGMA journal_mode=WAL;
+     CREATE TABLE t1(x);
+     INSERT INTO t1 VALUES('youngling');
+     SELECT * FROM t1;
+  }
+} {delete youngling}
+db close
+
+do_test nolock-4.2 {
+  forcedelete test.db
+  sqlite3 db test.db
+  db eval {
+    PRAGMA journal_mode=WAL;
+    CREATE TABLE t1(x);
+    INSERT INTO t1 VALUES('catbird');
+    SELECT * FROM t1;
+  }
+} {wal catbird}
+do_test nolock-4.3 {
+  db close
+  sqlite3 db file:test.db?nolock=1 -uri 1
+  set rc [catch {db eval {SELECT * FROM t1}} msg]
+  lappend rc $msg
+} {1 {unable to open database file}}
+
 finish_test