]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Merge latest trunk changes with this branch.
authordan <dan@noemail.net>
Wed, 26 Dec 2018 19:10:59 +0000 (19:10 +0000)
committerdan <dan@noemail.net>
Wed, 26 Dec 2018 19:10:59 +0000 (19:10 +0000)
FossilOrigin-Name: 404f9d99d325ddf82fde6d957860d30b2fb67f232c0878a3cf6df9596541f16e

1  2 
main.mk
manifest
manifest.uuid
src/btree.c
src/vdbe.c
src/wal.c
test/permutations.test

diff --cc main.mk
Simple merge
diff --cc manifest
index 4a2e015de63cd3e01b60407127533f37073368b5,2e71d97294c6fd12ca0525c3580805a429ce5d72..3a78a082589595b746457541156435a3c3551b31
+++ b/manifest
@@@ -1,10 -1,10 +1,10 @@@
- C Enhance\sthe\swal2\sheader\scomment\sin\swal.c\sto\sexplain\show\sthe\swal-hook\sis\ninvoked\sin\swal2\smode.
- D 2018-12-22T15:50:00.221
 -C Update\sthe\scoverage-wal\spermutation\sto\scover\sbranches\senabled\sby\nSQLITE_ENABLE_SNAPSHOT.
 -D 2018-12-26T18:34:56.085
++C Merge\slatest\strunk\schanges\swith\sthis\sbranch.
++D 2018-12-26T19:10:59.224
  F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
  F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
- F Makefile.in 68d0ba0f0b533d5bc84c78c13a6ce84ee81183a67014caa47a969e67f028fa1c
+ F Makefile.in d8b254f8bb81bab43c340d70d17dc3babab40fcc8a348c8255881f780a45fee6
  F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
- F Makefile.msc b7d4a710fa3f0b8cfc532ff195b85dc1ba2a8ad34343cb3d67639f28f0a24306
+ F Makefile.msc 3c4c7e94419ff28cb68850188c9d153b343aed4c5ebed5965426232ed67ff9d9
  F README.md 377233394b905d3b2e2b33741289e093bc93f2e7adbe00923b2c5958c9a9edee
  F VERSION 453e2f4529ca208196d5567db28d549d7151f79efd33f6e6cfe6e613e583a0be
  F aclocal.m4 a5c22d164aff7ed549d53a90fa56d56955281f50
@@@ -430,7 -432,7 +433,7 @@@ F ext/userauth/userauth.c f81aa5a3ecacf
  F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 x
  F ltmain.sh 3ff0879076df340d2e23ae905484d8c15d5fdea8
  F magic.txt 8273bf49ba3b0c8559cb2774495390c31fd61c60
- F main.mk 11ed83b2fdfb810414ebd34157e4d9ab10198337179b803d24b28668f67b08f9
 -F main.mk cca1ecdd5dfe4579ded84e5abdd38e1866bbb8b8cf58d1a24496e9b1b65580d7
++F main.mk 1d1bea633efb9c22ab014aaffbd95efbd40f93266d294e4cabead7478c569ec9
  F mkso.sh fd21c06b063bb16a5d25deea1752c2da6ac3ed83
  F mptest/config01.test 3c6adcbc50b991866855f1977ff172eb6d901271
  F mptest/config02.test 4415dfe36c48785f751e16e32c20b077c28ae504
@@@ -449,10 -451,10 +452,10 @@@ F src/auth.c 0fac71038875693a937e506bce
  F src/backup.c 78d3cecfbe28230a3a9a1793e2ead609f469be43e8f486ca996006be551857ab
  F src/bitvec.c 17ea48eff8ba979f1f5b04cc484c7bb2be632f33
  F src/btmutex.c 8acc2f464ee76324bf13310df5692a262b801808984c1b79defb2503bbafadb6
- F src/btree.c dcc6191c30882af2f621564b05c39ee7fabefc287584835f3dea98cde35f6fac
 -F src/btree.c 4429a1615440f0253d470b59f955fe84787fd6f709ae114c0a12d132ae725599
++F src/btree.c 5feb77070052b2cb9f6209e47a6a4de01b51d6fe2689bd56f6016faa22126826
  F src/btree.h febb2e817be499570b7a2e32a9bbb4b607a9234f6b84bb9ae84916d4806e96f2
  F src/btreeInt.h 620ab4c7235f43572cf3ac2ac8723cbdf68073be4d29da24897c7b77dda5fd96
- F src/build.c ef9d7dc73e40dd9d10c28848343e21e8bc1baaab92cfb75eda893fff4fbf6b55
+ F src/build.c cb86906fcc9150514024d74befa6905bce2323f51518cc5973e4be6a5b00fd16
  F src/callback.c 25dda5e1c2334a367b94a64077b1d06b2553369f616261ca6783c48bcb6bda73
  F src/complete.c a3634ab1e687055cd002e11b8f43eb75c17da23e
  F src/ctime.c 109e58d00f62e8e71ee1eb5944ac18b90171c928ab2e082e058056e1137cc20b
@@@ -500,20 -502,20 +503,20 @@@ F src/pager.h 3abf6d65199fd0680b26a047c
  F src/parse.y a3c0db595bc642c6ee1d72869842f7f5b0b6ebeb91c21d0a7cba631d27e7afbd
  F src/pcache.c 696a01f1a6370c1b50a09c15972bc3bee3333f8fcd1f2da8e9a76b1b062c59ee
  F src/pcache.h 4f87acd914cef5016fae3030343540d75f5b85a1877eed1a2a19b9f284248586
- F src/pcache1.c ad0ffc5b35b0280d045ac569d34d4b842e3e6a4a118f6396b320987a0957afcc
+ F src/pcache1.c ddc9fc7d9861cf3a1f30660264b76b1ae9e1dce5dbba085cf001d5cb6b41cf8c
 -F src/pragma.c 96ce7dce4dc9cb2b7aa0e1b2ce7536870bdc00b10becc278245e775489447ea0
 +F src/pragma.c 3b23e9eb390888a4d2c71c86be6c710c34179657f4f039fae019ba660be00ca9
  F src/pragma.h fdd03d78a7497f74a3f652909f945328480089189526841ae829ce7313d98d13
- F src/prepare.c 0e8fc0deaf36da104e08d07ce7d97bc09ab57d078b399381532fec3fa1d3f2bb
+ F src/prepare.c d0918fb8d00b1ebf19655e7f3d28464b3fc3c43c16d36dd06092de02244a5180
  F src/printf.c 0f1177cf1dd4d7827bf64d840768514ec76409abecaca9e8b577dbd065150381
  F src/random.c 80f5d666f23feb3e6665a6ce04c7197212a88384
- F src/resolve.c abd65c518c198400193c6319a70c0d722fa30a35be89dc898917ff6489edf017
+ F src/resolve.c 72fe8cae7326b979e7258ab4c531956951e1a5f3fe8644c646abaec1b2eb6d95
  F src/rowset.c d977b011993aaea002cab3e0bb2ce50cf346000dff94e944d547b989f4b1fe93
  F src/select.c 8c7317d5ee920516a56b8b4ca79fbfca70a1f8b52d67e884c808ea3a016c04e3
- F src/shell.c.in 5f38bd0e127c2cc4e506b5c3565c10879ddfae6c2d867bb5972563e40717c19c
- F src/sqlite.h.in 92fd656c26cc76de9fa8c5bf1a473066e3b5c6da345a447679f0f44de1aa4edd
+ F src/shell.c.in 207da30342db0b6fac8b2487abd60b059a5ea80cc9494bd1db76a1dd4aae7cca
+ F src/sqlite.h.in b54cd42d2f3b739a00de540cafe2dcd0de3b8e1748a2db33a68def487e9e602f
  F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
  F src/sqlite3ext.h 960f1b86c3610fa23cb6a267572a97dcf286e77aa0dd3b9b23292ffaa1ea8683
- F src/sqliteInt.h 3dda7ba0ea00f591c18405e5061d10041e0fcd5934e2542f29f8c8cffd73c242
+ F src/sqliteInt.h 031e09cf6ea600e23fb4ce6e0a81f3f0e256b990dc6a71d21324d9ab8533b6cd
  F src/sqliteLimit.h 1513bfb7b20378aa0041e7022d04acb73525de35b80b252f1b83fedb4de6a76b
  F src/status.c 46e7aec11f79dad50965a5ca5fa9de009f7d6bde08be2156f1538a0a296d4d0e
  F src/table.c b46ad567748f24a326d9de40e5b9659f96ffff34
@@@ -561,10 -563,10 +564,10 @@@ F src/test_server.c a2615049954cbb9cfb4
  F src/test_sqllog.c 11e6ce7575f489155c604ac4b439f2ac1d3d5aef
  F src/test_superlock.c 4839644b9201da822f181c5bc406c0b2385f672e
  F src/test_syscall.c 1073306ba2e9bfc886771871a13d3de281ed3939
 -F src/test_tclsh.c 06317648b0d85a85fd823f7973b55535c59a3156c1ef59394fe511f932cfa78d
 +F src/test_tclsh.c c225ebf05d8905e204580198ffaa09847256ac58af04af632fde3fd760475d90
  F src/test_tclvar.c 33ff42149494a39c5fbb0df3d25d6fafb2f668888e41c0688d07273dcb268dfc
  F src/test_thread.c 911d15fb14e19c0c542bdc8aabf981c2f10a4858
- F src/test_vfs.c 112f1f9271c33c211812e0e681830a84262dac065da58579ff49f9cefec97d4f
+ F src/test_vfs.c c6c6a58f66b26876c7b5769fb323a58b2c7120299b5084e7212c4116f902cbaa
  F src/test_vfstrace.c bab9594adc976cbe696ff3970728830b4c5ed698
  F src/test_windirent.c a895e2c068a06644eef91a7f0a32182445a893b9a0f33d0cdb4283dca2486ac1
  F src/test_windirent.h 90dfbe95442c9762357fe128dc7ae3dc199d006de93eb33ba3972e0a90484215
@@@ -579,7 -581,7 +582,7 @@@ F src/upsert.c 0dd81b40206841814d46942a
  F src/utf.c 810fbfebe12359f10bc2a011520a6e10879ab2a163bcb26c74768eab82ea62a5
  F src/util.c d9eb0a6c4aae1b00a7369eadd7ca0bbe946cb4c953b6751aa20d357c2f482157
  F src/vacuum.c 3ffe64ecfc94b7528c5d7bdb1c3a19d72fec63f2aa846e3b90f8de5dbbddf5aa
- F src/vdbe.c c173ac2c1fea836050530cfe1d268f06a47f177b6b055fb11454a371c6598bb5
 -F src/vdbe.c 1f8e6c71c68631b5c4aaa82b84b262577bd29ca3a14871ed308785ee97ef919d
++F src/vdbe.c f71d8ca9a293c99548dfcc0b93cf874bcbf877db30653be71334ac5959b63cdf
  F src/vdbe.h 8990d668a89890a33326b0a29b992c4014b72f3b6cdcd9ee0e190593c247f9b0
  F src/vdbeInt.h 73f5051923f3f29779bfc374c0c68e23b8e5e3792def2e33e51b427edb890abd
  F src/vdbeapi.c 57a2d794a8833f269b878dbc24e955369bdb379af6c4e93ebc5ce1a20fa3daf4
@@@ -590,8 -592,8 +593,8 @@@ F src/vdbesort.c 90aad5a92608f2dd771c96
  F src/vdbetrace.c 79d6dbbc479267b255a7de8080eee6e729928a0ef93ed9b0bfa5618875b48392
  F src/vtab.c 70188a745dc4e57d26e942681ff4b2912b7c8249ad5de3f60f0677b4337bcfaa
  F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9
- F src/wal.c 93dc58d21bc6e1d08edfa42ba03e07f9652cd4c17c4205c20528e84e3b26c892
 -F src/wal.c 3f4f653daf234fe713edbcbca3fec2350417d159d28801feabc702a22c4e213f
 -F src/wal.h 606292549f5a7be50b6227bd685fa76e3a4affad71bb8ac5ce4cb5c79f6a176a
++F src/wal.c 328101a4c383b0a8564b03aa9c3f79f9b3b30c1959e4a46f49dd0e62a0a61088
 +F src/wal.h d2a69695c84137f76e19a247a342cb02ab0131001b6f58153d94b71195bbd84d
  F src/walker.c fb94aadc9099ff9c6506d0a8b88d51266005bcaa265403f3d7caf732a562eb66
  F src/where.c 3818e8a736a05d2cb194e64399af707e367fbcc5c251d785804d02eaf121288e
  F src/whereInt.h f125f29fca80890768e0b2caa14f95db74b2dacd3a122a168f97aa7b64d6968f
@@@ -1182,7 -1187,7 +1188,7 @@@ F test/parser1.test 6ccdf5e459a5dc4673d
  F test/pcache.test c8acbedd3b6fd0f9a7ca887a83b11d24a007972b
  F test/pcache2.test af7f3deb1a819f77a6d0d81534e97d1cf62cd442
  F test/percentile.test 4243af26b8f3f4555abe166f723715a1f74c77ff
- F test/permutations.test c7090c0136224e2ca400f1e0a085dad13a4f40a03387881e26f1a4cd1344d557
 -F test/permutations.test 61c0f61d9b26ebb4643b2ed848e9b3f55492f74e0addab66c7dcd70b081d7b03
++F test/permutations.test 928386eb05969cc0effc7be7cfe86ea44ee3fee05a1f9ea75387732475a3fadf
  F test/pg_common.tcl 301ac19c1a52fd55166d26db929b3b89165c634d52b5f8ad76ea8cb06960db30
  F test/pragma.test c267bf02742c823a191960895b3d52933cebd7beee26757d1ed694f213fcd867
  F test/pragma2.test e5d5c176360c321344249354c0c16aec46214c9f
@@@ -1594,16 -1600,8 +1601,16 @@@ F test/vtabJ.test d7b73675708cf63cfcb9d
  F test/vtab_alter.test 736e66fb5ec7b4fee58229aa3ada2f27ec58bc58c00edae4836890c3784c6783
  F test/vtab_err.test dcc8b7b9cb67522b3fe7a272c73856829dae4ab7fdb30399aea1b6981bda2b65
  F test/vtab_shared.test 5253bff2355a9a3f014c15337da7e177ab0ef8ad
- F test/wal.test 613efec03e517e1775d86b993a54877d2e29a477
+ F test/wal.test cdf0ca6cc0447520d19ef1c83287824ebeb3e82d75af856511ba96841a79fc9b
  F test/wal2.test 155b9efa999bdb38ce1cd729b9a4fcdbffd6b88be27f039bad1d2929d287d918
 +F test/wal2big.test 0b4ec526f9ca4bbabc355042c38045ae2e253fb46eb327bb7693d0122bc6968b
 +F test/wal2lock.test 0ef98d72dc6bcf7711dedd684760488400d9a9a6eec0dc5d3822060437793552
 +F test/wal2recover.test ba8f4bc9397c838734619f9e759bd98b00e355347b3cf80a2e677610d231d5d8
 +F test/wal2recover2.test 98749381c2e61574e181a2e288295a3bf93d12f57769db50ecea7fc211d9ad5c
 +F test/wal2rewrite.test 6ca6f631ffcf871240beab5f02608913fd075c6d0d31310b026c8383c65c9f9c
 +F test/wal2savepoint.test 29725383e7eb8b78fed46333d69dc45b4ed321db43ecc81766aadea991874bef
 +F test/wal2simple.test 96206c98bf64ab20ec00a1c0f6c709e258b98b39f2149889361f31966ce5a703
 +F test/wal2snapshot.test 95a919e1c73dee0e0212d10931d03cc1116f68a0ff603163e551aaa5ac7025c1
  F test/wal3.test 2a93004bc0fb2b5c29888964024695bade278ab2
  F test/wal4.test 4744e155cd6299c6bd99d3eab1c82f77db9cdb3c
  F test/wal5.test 9c11da7aeccd83a46d79a556ad11a18d3cb15aa9
@@@ -1792,7 -1794,7 +1803,7 @@@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a9
  F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
  F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
  F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
- P 1a5aa73435b11fff0567672dc921d34aad57adf0381ad430e1389f39a6f025b7
- R ae7a76a21801add0bf32d05f9dbcc082
 -P 14a64df36efe0dc36795311d58385f9c65dc465b214059e07c2ee6b95ea99c87
 -R 7069e81188241b50db30e1f96632c72c
++P 118aa7e32a94ad971a955ab60db5bfc5b6241f93734a41ba83ab72ea71bc9aaa 6821c61f1d71be2be7f867e59fd94582a1eaf45a4d1fb88be995807a77cc22ea
++R 9446c2d66d137856eca38f10c8a3c210
  U dan
- Z e66e7dac085eccd9e1ba0c66084130c4
 -Z 80824c8929195978c7b3913db23b16cc
++Z 215adea076b7047172a8d8ead4404cfa
diff --cc manifest.uuid
index d16063f1f26ec25b0893e2fad81a3d7b163ce329,70bb66a8ea3d8a5b809b0ca2b753b0bcef81c579..b3e91ceedcd02f2a2f7dfec06ea509846e7722ff
@@@ -1,1 -1,1 +1,1 @@@
- 118aa7e32a94ad971a955ab60db5bfc5b6241f93734a41ba83ab72ea71bc9aaa
 -6821c61f1d71be2be7f867e59fd94582a1eaf45a4d1fb88be995807a77cc22ea
++404f9d99d325ddf82fde6d957860d30b2fb67f232c0878a3cf6df9596541f16e
diff --cc src/btree.c
Simple merge
diff --cc src/vdbe.c
Simple merge
diff --cc src/wal.c
index 3e9b32525bba396ffd9ce7334f777ab65b7b53d3,4088bf2ec851aeecf4cbb50a625bbecb27ed9832..44a4671a4d6d99b6ba7b2f7cc2659c814528a4db
+++ b/src/wal.c
@@@ -3572,26 -2848,21 +3572,28 @@@ int sqlite3WalFindFrame
    Pgno pgno,                      /* Database page number to read data for */
    u32 *piRead                     /* OUT: Frame number (or zero) */
  ){
 +  int bWal2 = isWalMode2(pWal);
 +  int iApp = walidxGetFile(&pWal->hdr);
 +  int rc = SQLITE_OK;
    u32 iRead = 0;                  /* If !=0, WAL frame to return data from */
 -  u32 iLast = pWal->hdr.mxFrame;  /* Last page in WAL for this reader */
 -  int iHash;                      /* Used to loop through N hash tables */
 -  int iMinHash;
 -
 -  /* This routine is only be called from within a read transaction. */
 -  assert( pWal->readLock>=0 || pWal->lockError );
 -
 -  /* If the "last page" field of the wal-index header snapshot is 0, then
 -  ** no data will be read from the wal under any circumstances. Return early
 -  ** in this case as an optimization.  Likewise, if pWal->readLock==0, 
 -  ** then the WAL is ignored by the reader so return early, as if the 
 -  ** WAL were empty.
 -  */
 -  if( iLast==0 || (pWal->readLock==0 && pWal->bShmUnreliable==0) ){
 +
-   /* This routine is only be called from within a read transaction. */
-   assert( pWal->readLock!=WAL_LOCK_NONE );
++  /* This routine is only be called from within a read transaction. Or,
++  ** sometimes, as part of a rollback that occurs after an error reaquiring
++  ** a read-lock in walRestartLog().  */
++  assert( pWal->readLock!=WAL_LOCK_NONE || pWal->writeLock );
 +
 +  /* If this is a wal2 system, the client must have a partial-wal lock 
 +  ** on wal file iApp. Or if it is a wal system, iApp==0 must be true.  */
 +  assert( bWal2==0 || iApp==1
 +       || pWal->readLock==WAL_LOCK_PART1 || pWal->readLock==WAL_LOCK_PART1_FULL2
 +  );
 +  assert( bWal2==0 || iApp==0
 +       || pWal->readLock==WAL_LOCK_PART2 || pWal->readLock==WAL_LOCK_PART2_FULL1
 +  );
 +  assert( bWal2 || iApp==0 );
 +
 +  /* Return early if read-lock 0 is held. */
 +  if( (pWal->readLock==0 && pWal->bShmUnreliable==0) ){
      *piRead = 0;
      return SQLITE_OK;
    }
index 4530baf88b73dc808f7ce026e61e6d7b1c7df63d,bb522f0b7310f0d587b839334e2c1dbcd5b50735..f75bad6c7be2aec1823c51e8185248813350c80b
@@@ -430,16 -430,18 +430,20 @@@ lappend ::testsuitelist xx
  test_suite "coverage-wal" -description {
    Coverage tests for file wal.c.
  } -files {
- wal2big.test wal2recover.test wal2rewrite.test
- wal2simple.test wal2snapshot.test wal2.test
- wal3.test wal4.test wal5.test
- wal64k.test wal6.test wal7.test wal8.test wal9.test
- walbak.test walbig.test walblock.test walcksum.test 
- walfault.test walhook.test walmode.test walnoshm.test
- waloverwrite.test walpersist.test walprotocol2.test
- walprotocol.test walro2.test walrofault.test walro.test
- walshared.test walslow.test wal.test
- wal2savepoint.test wal2lock.test wal2recover2.test
 -  wal.test wal2.test wal3.test wal4.test wal5.test
++  wal2big.test wal2recover.test wal2rewrite.test
++  wal2simple.test wal2snapshot.test wal2.test
++  wal3.test wal4.test wal5.test
+   wal64k.test wal6.test wal7.test wal8.test wal9.test
 -  walbak.test walbig.test walblock.test walcksum.test walcrash2.test
 -  walcrash3.test walcrash4.test walcrash.test walfault.test walhook.test
 -  walmode.test walnoshm.test waloverwrite.test walpersist.test 
 -  walprotocol2.test walprotocol.test walro2.test walrofault.test 
 -  walro.test walshared.test walslow.test walvfs.test
 -  walfault2.test
 -  nockpt.test
 -
++  walbak.test walbig.test walblock.test walcksum.test 
++  walfault.test walhook.test walmode.test walnoshm.test
++  waloverwrite.test walpersist.test walprotocol2.test
++  walprotocol.test walro2.test walrofault.test walro.test
++  walshared.test walslow.test wal.test
++  wal2savepoint.test wal2lock.test wal2recover2.test
++  walvfs.test walfault2.test nockpt.test
+   snapshot2.test snapshot3.test snapshot4.test
+   snapshot_fault.test snapshot.test snapshot_up.test
++  walcrash2.test walcrash3.test walcrash4.test walcrash.test
  } 
  
  test_suite "coverage-pager" -description {