]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Update this branch with latest changes from trunk.
authordan <Dan Kennedy>
Thu, 26 Nov 2020 11:37:54 +0000 (11:37 +0000)
committerdan <Dan Kennedy>
Thu, 26 Nov 2020 11:37:54 +0000 (11:37 +0000)
FossilOrigin-Name: ddb97eeef7598dc16dad0ad6bd512d0da22275d0c993018d258ef1bed347074e

23 files changed:
1  2 
ext/session/sqlite3session.c
ext/session/test_session.c
main.mk
manifest
manifest.uuid
src/btree.c
src/btree.h
src/btreeInt.h
src/build.c
src/func.c
src/main.c
src/os_unix.c
src/pager.c
src/parse.y
src/select.c
src/sqlite.h.in
src/sqliteInt.h
src/test1.c
src/vacuum.c
src/vdbe.c
src/vdbeaux.c
src/wal.c
test/threadtest3.c

Simple merge
Simple merge
diff --cc main.mk
Simple merge
diff --cc manifest
index 5ad2e7c9e59a339817655176d67e7a0579e47b74,289318d6a17254423e722b7cc765fb74892ac684..59f87f71fd3a61caf763cb23a809fa952fc8215e
+++ b/manifest
@@@ -1,5 -1,5 +1,5 @@@
- C Merge\srecent\strunk\senhancements\sinto\sbegin-concurrent.
- D 2020-08-10T21:16:29.302
 -C Update\sa\srequirement\smark\sin\sthe\se_expr.test\sscript.
 -D 2020-11-25T18:44:20.962
++C Update\sthis\sbranch\swith\slatest\schanges\sfrom\strunk.
++D 2020-11-26T11:37:54.006
  F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
  F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
  F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@@ -34,14 -34,14 +34,15 @@@ F autoconf/tea/win/rules.vc c511f222b80
  F config.guess 883205ddf25b46f10c181818bf42c09da9888884af96f79e1719264345053bd6
  F config.h.in 6376abec766e9a0785178b1823b5a587e9f1ccbc
  F config.sub c2d0260f17f3e4bc0b6808fccf1b291cb5e9126c14fc5890efc77b9fd0175559
- F configure a97f98dfff699495aef66ae3d9c424345778a663f583e0d6e7522670518f87c1 x
- F configure.ac 40d01e89cb325c28b33f5957e61fede0bd17da2b5e37d9b223a90c8a318e88d4
+ F configure e7df2824b6e60d482d919fb3e7d823faf08467093b096ad47a4fe2eec3f0ba99 x
+ F configure.ac 73545c21eebcef9398d85c982c7be260f07708256778221b541f83ae8c6f61eb
  F contrib/sqlitecon.tcl 210a913ad63f9f991070821e599d600bd913e0ad
  F doc/F2FS.txt c1d4a0ae9711cfe0e1d8b019d154f1c29e0d3abfe820787ba1e9ed7691160fcd
- F doc/lemon.html 1edc0f916e771212792d4d077aedc05168bf13fd65d64d41b2c13e46ac0063a8
 +F doc/begin_concurrent.md e694a2a1c623833e7de8b688e81ec30fd4439a78d6b74be61bce0b1e8f590470
+ F doc/lemon.html c5d8ba85ac1daef7be8c2d389899480eb62451ff5c09b0c28ff8157bb8770746
  F doc/pager-invariants.txt 27fed9a70ddad2088750c4a2b493b63853da2710
  F doc/trusted-schema.md 33625008620e879c7bcfbbfa079587612c434fa094d338b08242288d358c3e8a
+ F doc/vdbesort-memory.md 4da2639c14cd24a31e0af694b1a8dd37eaf277aff3867e9a8cc14046bc49df56
  F doc/vfs-shm.txt e101f27ea02a8387ce46a05be2b1a902a021d37a
  F doc/wal-lock.md 781726aaba20bafeceb7ba9f91d5c98c6731691b30c954e37cf0b49a053d461d
  F ext/README.md fd5f78013b0a2bc6f0067afb19e6ad040e89a10179b4f6f03eee58fac5f169bd
@@@ -451,18 -452,16 +455,18 @@@ F ext/session/sessioninvert.test 040755
  F ext/session/sessionrebase.test ccfa716b23bd1d3b03217ee58cfd90c78d4b99f53e6a9a2f05e82363b9142810
  F ext/session/sessionstat1.test 218d351cf9fcd6648f125a26b607b140310160184723c2666091b54450a68fb5
  F ext/session/sessionwor.test 67b5ab91d4f93ce65ff1f58240ac5ddf73f8670facc1ffa49cef56293d52818d
 -F ext/session/sqlite3session.c 2c76b8c3a5d6dab736686f8a48833b8bdac0871ecc6f447f9839d28bd4a63d6c
 -F ext/session/sqlite3session.h a2db5b72b938d12c727b4b4ec632254ca493670a9c0de597af3271a7f774fc57
 -F ext/session/test_session.c 24286d958dc6f4ca4d7e710f09bc0fa9d50956a40dd99fd8223e7488024c71fe
 +F ext/session/sqlite3changebatch.c d5553b79e012ee2cb06c0a96bdf9dfe19e66354390ea0036cc46c4953142d517
 +F ext/session/sqlite3changebatch.h e72016998c9a22d439ddfd547b69e1ebac810c24
- F ext/session/sqlite3session.c 6aa98b2158033fc9a20f789df5a7a7815284a458b18ed1c719d073be0bd635eb
++F ext/session/sqlite3session.c fe5fab3c63b734a647784596e44f4ee778e7c7b12ce7aaa2cf4ed445d6c5763a
 +F ext/session/sqlite3session.h ba1b5dc7b159a76d9300228719e1248a4cb5ba7ee6ebd4c19a32fdc23891d22a
- F ext/session/test_session.c 60e15d5db8ae7a0f521e70a7504ba1f74fc50548a25a5397808f487bc6a92b5d
++F ext/session/test_session.c 1e4790384606226f8e63a6ebebb39962721d0363c8192c230de1e4c31c410c1b
  F ext/userauth/sqlite3userauth.h 7f3ea8c4686db8e40b0a0e7a8e0b00fac13aa7a3
  F ext/userauth/user-auth.txt e6641021a9210364665fe625d067617d03f27b04
  F ext/userauth/userauth.c 7f00cded7dcaa5d47f54539b290a43d2e59f4b1eb5f447545fa865f002fc80cb
  F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 x
  F ltmain.sh 3ff0879076df340d2e23ae905484d8c15d5fdea8
  F magic.txt 8273bf49ba3b0c8559cb2774495390c31fd61c60
- F main.mk bfb659254b7af99ca95b630a6abe903f70c2d78ff39e7790c14b30a13d9fc7f9
 -F main.mk 57451ea5b3d5cd86e9c5324b10c9de184b12e8dcccc31c65d24fbcb55ccd9c53
++F main.mk 2b044fdc896a5e1f494ee5730d354cfa87007677d382824be2a4dc69b1f33e01
  F mkso.sh fd21c06b063bb16a5d25deea1752c2da6ac3ed83
  F mptest/config01.test 3c6adcbc50b991866855f1977ff172eb6d901271
  F mptest/config02.test 4415dfe36c48785f751e16e32c20b077c28ae504
@@@ -474,38 -473,38 +478,38 @@@ F spec.template 86a4a43b99ebb3e75e6b9a7
  F sqlite.pc.in 42b7bf0d02e08b9e77734a47798d1a55a9e0716b
  F sqlite3.1 fc7ad8990fc8409983309bb80de8c811a7506786
  F sqlite3.pc.in 48fed132e7cb71ab676105d2a4dc77127d8c1f3a
- F src/alter.c 4bc16666a0df99d49658ec66f00ca36e541ec6cb39673ccc51be6a981fb9b2ce
- F src/analyze.c 5cffff3d355858cd22bfc6e20ac7203510d2e1cc935086eb06f4abb2f579f628
- F src/attach.c 0b11e00c166b622c84ec176773b1d691c61ad07d247809e3e1635d4e99e71d30
+ F src/alter.c b6de60d59419e34f5b48ff2b21fe0f9bb66fc714e5545a6ac790ac7a0c46548c
+ F src/analyze.c 01c6c6765cb4d40b473b71d85535093730770bb186f2f473abac25f07fcdee5c
+ F src/attach.c 0f497c15c4cfe3bdcb214f0dbdbbb6c5ed7e8a9308ac445c7959f5e5780437a9
  F src/auth.c a3d5bfdba83d25abed1013a8c7a5f204e2e29b0c25242a56bc02bb0c07bf1e06
- F src/backup.c b1c90cd4110248c8e1273ff4578d3a84c0c34725e1b96dacd4a6294a908702de
+ F src/backup.c 3014889fa06e20e6adfa0d07b60097eec1f6e5b06671625f476a714d2356513d
 -F src/bitvec.c 17ea48eff8ba979f1f5b04cc484c7bb2be632f33
 +F src/bitvec.c 8433d9e98dd6f2ea3286e0d2fe5d65de1bfc18a706486eb2026b01be066b5806
  F src/btmutex.c 8acc2f464ee76324bf13310df5692a262b801808984c1b79defb2503bbafadb6
- F src/btree.c 869e74c2a9867f55cf48fbd67e669236b1ed0f3271047f9f0f1756d99660dd15
- F src/btree.h 7c0de202ff56db220d12abdd121ddda9a94994fda869c0ea273580cd0a653297
- F src/btreeInt.h 0fdb5107212804716ae74c1e140de46c6ad4ed2bfbbe1271a8925dbe8d12ed0e
- F src/build.c 11d915b843fa8f31c6cc8b62c7f4e68a65496effa6fbe35882ab949635b8d0bc
 -F src/btree.c ee14224322b9e4172d01e691e2f289f6c630ae39b7906f84b72dc780b9e42a76
 -F src/btree.h dcdff4037d75b3f032a5de0d922fcfaf35d48589417f634fa8627362709315f9
 -F src/btreeInt.h ffd66480520d9d70222171b3a026d78b80833b5cea49c89867949f3e023d5f43
 -F src/build.c f6449d4e85e998e14d3f537e8ea898dca2fcb83c277db3e60945af9b9177db81
++F src/btree.c 658804cedb4719330d8fc19fd600e1cd865793d9cd7cb4e79546ac0d986b9402
++F src/btree.h a2eda1ab68939ea3057bc797fd16179dfe2bcd247c022f62ceccd136186611a5
++F src/btreeInt.h 900af7149206694de988d14fbc116e482a732340a8dc5e4bfdd23b7faf7d6f14
++F src/build.c 4c44cee793d16c653986cf00c32c36cf0cbfe4932a319cc7d5c0f10a2801151c
  F src/callback.c d0b853dd413255d2e337b34545e54d888ea02f20da5ad0e63585b389624c4a6c
  F src/complete.c a3634ab1e687055cd002e11b8f43eb75c17da23e
  F src/ctime.c e98518d2d3d4029a13c805e07313fb60c877be56db76e90dd5f3af73085d0ce6
  F src/date.c dace306a10d9b02ee553d454c8e1cf8d3c9b932e137738a6b15b90253a9bfc10
  F src/dbpage.c 8a01e865bf8bc6d7b1844b4314443a6436c07c3efe1d488ed89e81719047833a
  F src/dbstat.c 3aa79fc3aed7ce906e4ea6c10e85d657299e304f6049861fe300053ac57de36c
- F src/delete.c 410c771c25afc113c273d9efad6ab6881bda28c75a1838b9d2c52ba20d1dc704
- F src/expr.c 58c06940d964c2cf455b979cf66a648499d294a5ee6dadcaeaed447257c1dc75
+ F src/delete.c 927cf8f900583e79aca8f1a321979e0a8f053babd9a690b44b38f79de2cc09fe
+ F src/expr.c 0d196ed5a2ebf96be7e8df88add4fabfad0dce16c0fed81a4b8f6a26e259797f
  F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
  F src/fkey.c 83372403298e6a7dd989a47aaacdbaa5b4307b5199dbd56e07d4896066b3de72
- F src/func.c 3796e7e269a9f23867ad3e64152399d5f850f83b9ee3ba57a931da7e46ef9c00
 -F src/func.c 574f7e5a67e4b7a7855cf3478037717c8f44686c0cd727e1d7f7773414165c03
++F src/func.c 095f359528417453a4500b5f92dfe146273148f80ad926e53239bfc928a84933
  F src/global.c 943256ac44f333039d35a9830c18d075a81fa6b6bf2af05771494a9acfb9a40b
  F src/hash.c 8d7dda241d0ebdafb6ffdeda3149a412d7df75102cecfc1021c98d6219823b19
  F src/hash.h 9d56a9079d523b648774c1784b74b89bd93fac7b365210157482e4319a468f38
  F src/hwtime.h cb1d7e3e1ed94b7aa6fde95ae2c2daccc3df826be26fc9ed7fd90d1750ae6144
  F src/in-operator.md 10cd8f4bcd225a32518407c2fb2484089112fd71
- F src/insert.c 957254a2d0542597455d0d4c640e4e3f3eea8c6d78f04582df03dfc626f07925
+ F src/insert.c 7e081d33aab4a9d761c39dccf3c3872c35501565d2ed9db66301918d23bc7901
  F src/legacy.c d7874bc885906868cd51e6c2156698f2754f02d9eee1bae2d687323c3ca8e5aa
- F src/loadext.c 436af4968c6954d304fce9efa12719367bd8f37b19b93b71d6ad607e85adbb47
- F src/main.c 2f648881aa3d90b4bc6ceb1808a73400173e4c7e1aca9778a4696434a547be69
- F src/malloc.c 22d5bdd9fe88ae4fad1b91a1b9735104b82853ffef868f1f05517d60dc1875f5
+ F src/loadext.c 8c9c8cd2bd8eecdb06d9b6e89de7e9e65bae45cc8fc33609cc74023a5c296067
 -F src/main.c 54d61d1e94f225636053c862c930d7dd7b29162b93d3f3ecb00439910ccba02a
++F src/main.c 975a31135c95ab9b33d275141e4c54171d11b1cc3d6c7060db48a72536304fb5
+ F src/malloc.c c1af4ac5a463648cd2953fd4ac679b3ba9022ce5ec794a60806150ad69dfd33a
  F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645
  F src/mem1.c c12a42539b1ba105e3707d0e628ad70e611040d8f5e38cf942cee30c867083de
  F src/mem2.c b93b8762ab999a29ae7751532dadf0a1ac78040308a5fb1d17fcc365171d67eb
@@@ -524,33 -523,33 +528,33 @@@ F src/os.c 80e4cf3e5da06be03ca641661e33
  F src/os.h 48388821692e87da174ea198bf96b1b2d9d83be5dfc908f673ee21fafbe0d432
  F src/os_common.h b2f4707a603e36811d9b1a13278bffd757857b85
  F src/os_setup.h 0dbaea40a7d36bf311613d31342e0b99e2536586
- F src/os_unix.c c79bf7138f5c760bcf167065f08ca1c23f27fe06d8a4ad57432099e966823fe9
- F src/os_win.c a2149ff0a85c1c3f9cc102a46c673ce87e992396ba3411bfb53db66813b32f1d
 -F src/os_unix.c adbbcea4c63d3b400d405f60a5da4c01433753ec4a12e2dc695beb2bbd671fe9
++F src/os_unix.c 9b8d6679300ee39b891c60a70f64c86bb89bd04862c1fd697bdf959867c74cbb
+ F src/os_win.c 77d39873836f1831a9b0b91894fec45ab0e9ca8e067dc8c549e1d1eca1566fe9
  F src/os_win.h 7b073010f1451abe501be30d12f6bc599824944a
- F src/pager.c 3a9503c697507d1fa7e4ac358711f741077575fc07a4cf0b9cb8de61ca16f71f
 -F src/pager.c c49952ac5e9cc536778eff528091d79d38b3e45cbeeed4695dc05e207dc6547d
 -F src/pager.h 4bf9b3213a4b2bebbced5eaa8b219cf25d4a82f385d093cd64b7e93e5285f66f
 -F src/parse.y 9ce4dfb772608ed5bd3c32f33e943e021e3b06cfd2c01932d4280888fdd2ebed
++F src/pager.c 095a0ac00a7b74cb5042678e478ab54dbbc67a20ee13b464eebc3f8c606d8b01
 +F src/pager.h fdc30693c403aa9b4293d0b126346db7e450f8f0e5d2c1bb8355acb1cb8da6fd
- F src/parse.y b2a9db24fee32edf26e0e4970c64394eed90f0c3608fae6f3433cc5dd3404a83
++F src/parse.y 5ba6522aba301e829917c8dd48290d357b6a9f68276d411739d01f266bafe4be
  F src/pcache.c 385ff064bca69789d199a98e2169445dc16e4291fa807babd61d4890c3b34177
  F src/pcache.h 4f87acd914cef5016fae3030343540d75f5b85a1877eed1a2a19b9f284248586
  F src/pcache1.c 6596e10baf3d8f84cc1585d226cf1ab26564a5f5caf85a15757a281ff977d51a
- F src/pragma.c bdb600be936f66b9fe69d26dfbba4528beaaf4f95c479c85b328a92484e0bf71
+ F src/pragma.c 6daaaecc26a4b09481d21722525b079ce756751a43a79cc1d8f122d686806193
  F src/pragma.h 8dc78ab7e9ec6ce3ded8332810a2066f1ef6267e2e03cd7356ee00276125c6cf
- F src/prepare.c 3d5a761d026052bc888d1b803a06dd2bfe245e8e836d4689f927003549148b0f
- F src/printf.c 9efcd4e984f22bcccb1ded37a1178cac98f6e3a0534e1e0629f64899971f8838
+ F src/prepare.c 270170a239c0f66bd3c228f373afe24447c2614a6829ae22080babc64f241931
+ F src/printf.c 30e92b638fac71dcd85cdea1d12ecfae354c9adee2c71e8e1ae4727cde7c91ed
 -F src/random.c 80f5d666f23feb3e6665a6ce04c7197212a88384
 +F src/random.c c984d8426d76752dbd9ff7983e770731ae5e8f4ede84a203df9878d5e8798f11
- F src/resolve.c d74715aceed2a8f493ba244d535646fa93132042a4400a29dfd26ec841514048
+ F src/resolve.c 1948a92ca9eab776632816b97e57c61d933474a78aad4f4ef835c916a83dbb1c
  F src/rowset.c ba9515a922af32abe1f7d39406b9d35730ed65efab9443dc5702693b60854c92
- F src/select.c 02c5b12ca8dc6c7c1a5fec01f0eb09867692962263ddcaf47d6d7264eebdc55d
- F src/shell.c.in b9b819feede7b85585ab0826490a352e04e2ee46e8132c92597d29972b2be1d7
- F src/sqlite.h.in 48dcf94e19ff17024767f549b966f5889c6cc46060d0d5f386b67289c02ec522
 -F src/select.c 31387e56f5e6d1adc798dfa04b946001289a61e65acf4615f7b7130f121f3b9c
++F src/select.c fe64564a9437fde31824b85b02d51a2806468e3c70666528087a1cb0730caee8
+ F src/shell.c.in 55113760ae91a05c6ce4558714a1c8fc7a44bf266f735de6e71ea40f79e69830
 -F src/sqlite.h.in 457c991c9d2ff483e17e5b5eb1a83c6793516d478cc63a78e1ea7b362e27e678
++F src/sqlite.h.in a3452ff4026c01484ed9291388d538c3de7da4118e359c6972de66060317eca8
  F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
- F src/sqlite3ext.h 2d1af80082edffd71c6f96f70ad1ce6a4fb46615ad10291fc77fe0dea9ff0197
- F src/sqliteInt.h 7909ae035b72cb220c38c25b1ec015f38366156f11451f30dcf403dcd07bab42
- F src/sqliteLimit.h 95cb8479ca459496d9c1c6a9f76b38aee12203a56ce1092fe13e50ae2454c032
+ F src/sqlite3ext.h 61b38c073d5e1e96a3d45271b257aef27d0d13da2bea5347692ae579475cd95e
 -F src/sqliteInt.h c01115c8dd967f7d334a98ba37ac821eafb04144c8085a795daaf2185743d27a
++F src/sqliteInt.h 1ce4c76643e6dc130fd3744732f37267de33ad8e4a625f4552c0d68695962138
+ F src/sqliteLimit.h d7323ffea5208c6af2734574bae933ca8ed2ab728083caa117c9738581a31657
  F src/status.c 4b8bc2a6905163a38b739854a35b826c737333fab5b1f8e03fa7eb9a4799c4c1
  F src/table.c 0f141b58a16de7e2fbe81c308379e7279f4c6b50eb08efeec5892794a0ba30d1
  F src/tclsqlite.c 986b6391f02cd9b53c1d688be55899f6ffddeb8e8014cd83c1b73ff912579a71
- F src/test1.c 944a8b090e11921c5aa0bf82dfa99f6d3b782b54775ee1f00017bcfd721fc61b
 -F src/test1.c 465b7a35b7e231bf2833e47c1371b5dfc99bd803ebe73783862399d479d696a5
++F src/test1.c 67aa729f37c2d8066bf0c44536c5ab8646b5dc84d5f84bde6f7397147a4513cc
  F src/test2.c 3efb99ab7f1fc8d154933e02ae1378bac9637da5
  F src/test3.c 61798bb0d38b915067a8c8e03f5a534b431181f802659a6616f9b4ff7d872644
  F src/test4.c 7c4420e01c577b5c4add2cb03119743b1a357543d347773b9e717195ea967159
@@@ -565,13 -564,13 +569,13 @@@ F src/test_backup.c bf5da90c9926df0a4b9
  F src/test_bestindex.c 78809f11026f18a93fcfd798d9479cba37e1201c830260bf1edc674b2fa9b857
  F src/test_blob.c ae4a0620b478548afb67963095a7417cd06a4ec0a56adb453542203bfdcb31ce
  F src/test_btree.c 8b2dc8b8848cf3a4db93f11578f075e82252a274
 -F src/test_config.c 5ea19bf0972a9d91728518b4d30e91477acce80496003ecbef3a7fb18d0bd081
 +F src/test_config.c 2882bb5dfb6429a79736029766fd12f4fcf25a721dd9e48e71eeca3ccf2c94df
  F src/test_delete.c e2fe07646dff6300b48d49b2fee2fe192ed389e834dd635e3b3bac0ce0bf9f8f
  F src/test_demovfs.c 86142ba864d4297d54c5b2e972e74f3141ae4b30f05b3a95824184ed2d3d7f91
- F src/test_devsym.c 6109b45c3db3ef7b002320947ed448c027356ab8b885156ff535fd8684d4a571
+ F src/test_devsym.c aff2255ea290d7718da08af30cdf18e470ff7325a5eff63e0057b1496ed66593
  F src/test_fs.c ba1e1dc18fd3159fdba0b9c4256f14032159785320dfbd6776eb9973cb75d480
  F src/test_func.c 181f992e5495644434c4f0e3cc72362a78c295eb2cf3ff4d02498b8bde7aa276
- F src/test_hexio.c d170d0e1a6431afdeac086a250d2595078288c2257615d37949355361399bcaa
+ F src/test_hexio.c 9478e56a0f08e07841a014a93b20e4ba2709ab56d039d1ca8020e26846aa19bd
  F src/test_init.c 4413c211a94b62157ca4c145b3f27c497f03c664
  F src/test_intarray.c 39b4181662a0f33a427748d87218e7578d913e683dc27eab7098bb41617cac71
  F src/test_intarray.h d57ae92f420cda25e22790dac474d60961bd0c500cbaa3338a05152d4a669ef7
@@@ -606,31 -605,31 +610,31 @@@ F src/test_wsd.c 41cadfd9d97fe8e3e4e44f
  F src/threads.c 4ae07fa022a3dc7c5beb373cf744a85d3c5c6c3c
  F src/tokenize.c 4dc01b267593537e2a0d0efe9f80dabe24c5b6f7627bc6971c487fa6a1dacbbf
  F src/treeview.c 4b92992176fb2caefbe06ba5bd06e0e0ebcde3d5564758da672631f17aa51cda
- F src/trigger.c ef67bde309a831515dc3c2173d792574309f2f42d45f8c078743fae9f7f98c75
- F src/update.c fb15bec5b54fd098f4b84f6abc83c7103b45ba8484011fff8edf5ae31656eab6
+ F src/trigger.c 515e79206d40d1d4149129318582e79a6e9db590a7b74e226fdb5b2a6c7e1b10
+ F src/update.c 9f126204a6acb96bbe47391ae48e0fc579105d8e76a6d9c4fab3271367476580
  F src/upsert.c 2920de71b20f04fe25eb00b655d086f0ba60ea133c59d7fa3325c49838818e78
  F src/utf.c ee39565f0843775cc2c81135751ddd93eceb91a673ea2c57f61c76f288b041a0
- F src/util.c c8bf30c4356b091bcc3b624d0e24b2b4d11b8be4d6c90d8e0705971e15cc819b
- F src/vacuum.c 4f586072e58b950f31737a2f5294acf9ae077ce4dc62f991b71874c650b9e276
- F src/vdbe.c 7b7d4bdb73d0d34fa368818a4ec13eeed7166e042e46ea086c478cb4a350dc2e
+ F src/util.c c0c7977de7ef9b8cb10f6c85f2d0557889a658f817b0455909a49179ba4c8002
 -F src/vacuum.c 492422c1463c076473bae1858799c7a0a5fe87a133d1223239447c422cd26286
 -F src/vdbe.c d24a43b6b1ed2dba893636a14f5e56001444ab3fd5465e3bca8ab01799840acd
++F src/vacuum.c 9d6ac090ff36d80f0a2c5bfc63994b714c464bfc44efa5056c457a6a4163dc99
++F src/vdbe.c 85a1acd0f1327fa71ef029916d347c3437959cbbb9659e22f6f173a2d329a7fd
  F src/vdbe.h 83603854bfa5851af601fc0947671eb260f4363e62e960e8a994fb9bbcd2aaa1
- F src/vdbeInt.h 762abffb7709f19c2cb74af1bba73a900f762e64f80d69c31c9ae89ed1066b60
+ F src/vdbeInt.h 3ca5e9fd6e095a8b6cf6bc3587a46fc93499503b2fe48951e1034ba9e2ce2f6e
  F src/vdbeapi.c c5e7cb2ab89a24d7f723e87b508f21bfb1359a04db5277d8a99fd1e015c12eb9
- F src/vdbeaux.c 35730cc4c8d16bc313e3b1d4107f713dc5c5d75fbfbb4743a69047cda8bb8b75
 -F src/vdbeaux.c c76b7e96e189f5056d1de914d33d07bd03d3b88741f75375c8e18c9b11ffd379
++F src/vdbeaux.c 0aaec35c90956fb03238e9ce3981e7111a53ff99eb161ef79fa55ae14fedcf7c
  F src/vdbeblob.c 253ed82894924c362a7fa3079551d3554cd1cdace39aa833da77d3bc67e7c1b1
  F src/vdbemem.c 947f2a65910edb4014dc981d33e414a68c51f169f9df8c4c493a0ba840b6eb1f
- F src/vdbesort.c 2be76d26998ce2b3324cdcc9f6443728e54b6c7677c553ad909c7d7cfab587df
+ F src/vdbesort.c f5b5e473a7cee44e47a94817b042fd7172cf3aa2c0a7928a8339d612bcfdec5a
  F src/vdbetrace.c fa3bf238002f0bbbdfb66cc8afb0cea284ff9f148d6439bc1f6f2b4c3b7143f0
  F src/vdbevtab.c f99b275366c5fc5e2d99f734729880994ab9500bdafde7fae3b02d562b9d323c
  F src/vtab.c 5f5fc793092f53bbdfde296c50f563fb7bda58cf48e9cf6a8bdfbc5abd409845
  F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9
- F src/wal.c 5cdd43b7538a4133438a85fcc7c2d8a1cdae2cc851ce58c9f2d2f849974a9436
 -F src/wal.c 69e770e96fd56cc21608992bf2c6f1f3dc5cf2572d0495c6a643b06c3a679f14
 -F src/wal.h c3aa7825bfa2fe0d85bef2db94655f99870a285778baa36307c0a16da32b226a
++F src/wal.c c9dfe3054c82aaa8d1dea91b56afa9397b54e55d5fb1dcbac32a4a7f6231bdc9
 +F src/wal.h 7ffe787437f20a098af347011967a6d3bb8e5c3dc645e6be59eff44d2b2c5297
  F src/walker.c 3df26a33dc4f54e8771600fb7fdebe1ece0896c2ad68c30ab40b017aa4395049
- F src/where.c 2ea911238674e9baaeddf105dddabed92692a01996073c4d4983f9a7efe481f9
- F src/whereInt.h 6b874aa15f94e43a2cec1080be64d955b04deeafeac90ffb5d6975c0d511be3c
- F src/wherecode.c 8064fe5c042824853a9b1fda670054a51a49033a6c79059988c97751ccf8088e
- F src/whereexpr.c 264d58971eaf8256eb5b0917bcd7fc7a1f1109fdda183a8382308a1b18a2dce7
+ F src/where.c ad738741bf45999188a3047f6277063e3f6843304d581e3ad5875419afdeb6b2
+ F src/whereInt.h 59077fbd0b3d01bc8715e746c86a99ebf4c85bde8a57077ec04d2a23e59666ec
+ F src/wherecode.c a3a1aff30fe99a818d8e7c607980f033f40c68d890e03ed25838b9dbb7908bee
+ F src/whereexpr.c 3a463e156ea388083c501502229c2c7f4f5c6b5330ea59bdf40d6eb6e155a25f
  F src/window.c edd6f5e25a1e8f2b6f5305b7f5f7da7bb35f07f0d432b255b1d4c2fcab4205aa
  F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2
  F test/affinity2.test ce1aafc86e110685b324e9a763eab4f2a73f737842ec3b687bd965867de90627
@@@ -765,17 -764,8 +770,17 @@@ F test/collateA.test b8218ab90d1fa5c59d
  F test/collateB.test 1e68906951b846570f29f20102ed91d29e634854ee47454d725f2151ecac0b95
  F test/colmeta.test 2c765ea61ee37bc43bbe6d6047f89004e6508eb1
  F test/colname.test 87ad5458bb8709312dac0d6755fd30e8e4ca83298d0a9ef6e5c24277a3c3390e
- F test/conflict.test 58857e2533fb9f2e0358ea7cb191215657846be1dd9da3b3d6df3e750c02ae03
- F test/conflict2.test bb0b94cf7196c64a3cbd815c66d3ee98c2fecd9c
 +F test/concfault.test e5370cd686f601a01909377cac3bbf13dac56d39dd4ad6b04ccbec9eeeaccb18
 +F test/concurrent.test a0248ec6e3e79a5948453649cf86b5b359175cba55ea636b15426d6f0fa6c3da
 +F test/concurrent2.test de748c7dd749c77e2af2c4b914b9b09a28ac09608042ca498c0251dc6f46aa1a
 +F test/concurrent3.test 530671ac706f6a1d0f4992dbdd33a86408330d03cd90fb9e82ecb1b27f5fd081
 +F test/concurrent4.test e0b12cd467137e50259df3b4f837507e82aaa07c35941c88664dc8ed1d089c44
 +F test/concurrent5.test 0c16cbf7446af162a14e6def30445e94016064eb994e5aa4ebb2bebc59554176
 +F test/concurrent6.test a7860e9ca13bb5fb76bcf41c5524fbfa9c37e6e258ecf84ffb5748a272488c67
 +F test/concurrent7.test b96fa5c4cfdf8d5c0bc66b6934214500bad0260884a736f054ccc76e81aae85d
 +F test/concurrent8.test b93937e74a8efb8b84f2fea7595b53418c5f29777bbe9cbdb5dc219b3dd72a7d
+ F test/conflict.test ac0667090f66130ac77d5fb764655558ca6600dd6d88f670ca9123b61c448337
+ F test/conflict2.test 5557909ce683b1073982f5d1b61dfb1d41e369533bfdaf003180c5bc87282dd1
  F test/conflict3.test 81865d9599609aca394fb3b9cd5f561d4729ea5b176bece3644f6ecb540f88ac
  F test/contrib01.test 2a1cbc0f2f48955d7d073f725765da6fbceda6b4
  F test/corrupt.test d7cb0300e4a297147b6a05e92a1684bc8973635c3bcaa3d66e983c9cbdbf47a3
@@@ -1451,7 -1442,7 +1456,7 @@@ F test/thread2.test f35d2106452b77523b3
  F test/thread_common.tcl 334639cadcb9f912bf82aa73f49efd5282e6cadd
  F test/threadtest1.c 6029d9c5567db28e6dc908a0c63099c3ba6c383b
  F test/threadtest2.c a70a8e94bef23339d34226eb9521015ef99f4df8
- F test/threadtest3.c 4b413718ab3ef5e4f9f1ab0502b89707c5a9ccdc
 -F test/threadtest3.c e63013af10cf236c7610eb06d33bde08c861806dc64be811940ff4d9ddd34a4f
++F test/threadtest3.c cfd72c74a40de3eb7576f1ab2da28183390deadb13f2aa5c8d077aacd41eda60
  F test/threadtest4.c c1e67136ceb6c7ec8184e56ac61db28f96bd2925
  F test/time-wordcount.sh 8e0b0f8109367827ad5d58f5cc849705731e4b90
  F test/tkt-02a8e81d44.test 6c80d9c7514e2a42d4918bf87bf6bc54f379110c
@@@ -1625,9 -1616,9 +1630,10 @@@ F test/triggerG.test 2b816093c91ba73c73
  F test/triggerupfrom.test d25961fa70a99b6736193da7b49a36d8c1d28d56188f0be6406d4366315cd6e4
  F test/trustschema1.test 4e970aef0bfe0cee139703cc7209d0e0f07725d999b180ba50770f49edef1494
  F test/tt3_checkpoint.c 9e75cf7c1c364f52e1c47fd0f14c4340a9db0fe1
 +F test/tt3_core.c 8cd89ead95410f70e7fb02c79f1e040f9c5ad5cf
  F test/tt3_index.c 39eec10a35f57672225be4d182862152896dee4a
  F test/tt3_lookaside1.c 0377e202c3c2a50d688cb65ba203afeda6fafeb9
+ F test/tt3_shared.c b37d22defc944a2ac4c91c927fd06c1d48cd51e2ce9d004fe868625bd2399f93
  F test/tt3_stress.c f9a769ca8b026ecc76ee93ca8c9700a5619f8e51c581107c4053ba6ac97f616f
  F test/tt3_vacuum.c 1753f45917699c9c1f66b64c717a717c9379f776
  F test/types.test bf816ce73c7dfcfe26b700c19f97ef4050d194ff
@@@ -1894,7 -1886,7 +1901,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 eb7a9c04bdbb297938672526d8c86b5666fb0f9841b9ddc2d9002399301cf665 5bbd4bddd3b9fa64d134ed62bce3eb4a09456bf24dec2474b5d764a3a3775964
- R f7e32d0e8d7d61ef95cc68d2b17768c5
 -P 25d067c270966d9506db8bedf280883e32b69050b14bdbbeda4bb2d9a362619c
 -R 9cd6f8c162cd2c68b854e8b486ee65b1
--U drh
- Z 9e93847c62734340821e2c789eda26b4
 -Z bbc45b90468712feefc207d4cad5b088
++P ed4c742c4e7789d19a1ec56a7642389966f6334fffaac4c45b1fea3046f0b478 bb174a074b5833181900d396edda955254ea1768750a0ab3b6d714530b1fe13f
++R d9a7be00042b84666c7af97e9264e5e6
++U dan
++Z 1a742a0f300f413227e714908cd03fc5
diff --cc manifest.uuid
index 35395d19516dfe5d4ff55280aa915436170ee504,c9fb9b5e3883070fa843b4b2e0d4e63b9a80d2c8..2cb1d0a8e40eabde648bccf4c282c23ffbc99e77
@@@ -1,1 -1,1 +1,1 @@@
- ed4c742c4e7789d19a1ec56a7642389966f6334fffaac4c45b1fea3046f0b478
 -bb174a074b5833181900d396edda955254ea1768750a0ab3b6d714530b1fe13f
++ddb97eeef7598dc16dad0ad6bd512d0da22275d0c993018d258ef1bed347074e
diff --cc src/btree.c
Simple merge
diff --cc src/btree.h
index b687e56e36b3f9d69d51acafcab2dd92147e6779,7a9ed2e3c618140348e889f793f784c48b3fa268..0cd8a274731e447d47dee67060ca75d0190125b0
@@@ -331,8 -339,12 +339,14 @@@ int sqlite3BtreeCursorHasHint(BtCursor*
  int sqlite3BtreeIsReadonly(Btree *pBt);
  int sqlite3HeaderSizeBtree(void);
  
+ #ifdef SQLITE_DEBUG
+ sqlite3_uint64 sqlite3BtreeSeekCount(Btree*);
+ #else
+ # define sqlite3BtreeSeekCount(X) 0
+ #endif
 +int sqlite3BtreeExclusiveLock(Btree *pBt);
 +
  #ifndef NDEBUG
  int sqlite3BtreeCursorIsValid(BtCursor*);
  #endif
diff --cc src/btreeInt.h
Simple merge
diff --cc src/build.c
index 54031de6fdcd0b47cff6cb4a49685189f27504b9,9779e93732b6d2f50cf5ac3822df1fbe6802eaa6..d09bdb6939ee2bc842e075f05d4876506545f999
@@@ -59,10 -59,9 +59,11 @@@ void sqlite3TableLock
    TableLock *p;
    assert( iDb>=0 );
  
 +#ifdef SQLITE_OMIT_CONCURRENT
    if( iDb==1 ) return;
    if( !sqlite3BtreeSharable(pParse->db->aDb[iDb].pBt) ) return;
 +#endif
+   pToplevel = sqlite3ParseToplevel(pParse);
    for(i=0; i<pToplevel->nTableLock; i++){
      p = &pToplevel->aTableLock[i];
      if( p->iDb==iDb && p->iTab==iTab ){
@@@ -4646,9 -4655,18 +4657,18 @@@ void sqlite3BeginTransaction(Parse *pPa
    }
    v = sqlite3GetVdbe(pParse);
    if( !v ) return;
 -  if( type!=TK_DEFERRED ){
 +  if( type==TK_IMMEDIATE || type==TK_EXCLUSIVE ){
      for(i=0; i<db->nDb; i++){
-       sqlite3VdbeAddOp2(v, OP_Transaction, i, (type==TK_EXCLUSIVE)+1);
+       int eTxnType;
+       Btree *pBt = db->aDb[i].pBt;
+       if( pBt && sqlite3BtreeIsReadonly(pBt) ){
+         eTxnType = 0;  /* Read txn */
+       }else if( type==TK_EXCLUSIVE ){
+         eTxnType = 2;  /* Exclusive txn */
+       }else{
+         eTxnType = 1;  /* Write txn */
+       }
+       sqlite3VdbeAddOp2(v, OP_Transaction, i, eTxnType);
        sqlite3VdbeUsesBtree(v, i);
      }
    }
diff --cc src/func.c
Simple merge
diff --cc src/main.c
Simple merge
diff --cc src/os_unix.c
Simple merge
diff --cc src/pager.c
Simple merge
diff --cc src/parse.y
Simple merge
diff --cc src/select.c
Simple merge
diff --cc src/sqlite.h.in
Simple merge
diff --cc src/sqliteInt.h
Simple merge
diff --cc src/test1.c
Simple merge
diff --cc src/vacuum.c
Simple merge
diff --cc src/vdbe.c
Simple merge
diff --cc src/vdbeaux.c
index 04eaa43649a2a1c6b1a3cef9b114271b60757613,dfd259d7188cf5bf1f887288a58ad3fbe843ffd3..63495f35d574d58ff6c3e13e12b1d9b0bb6056f0
@@@ -2690,23 -2691,6 +2691,23 @@@ static int vdbeCommit(sqlite3 *db, Vdb
        sqlite3BtreeLeave(pBt);
      }
    }
-       if( sqlite3BtreeIsInTrans(pBt) ){
 +
 +#ifndef SQLITE_OMIT_CONCURRENT
 +  if( db->eConcurrent && (rc & 0xFF)==SQLITE_BUSY ){
 +    /* An SQLITE_BUSY or SQLITE_BUSY_SNAPSHOT was encountered while 
 +    ** attempting to take the WRITER lock on a wal file. Release the
 +    ** WRITER locks on all wal files and return early.  */
 +    for(i=0; i<db->nDb; i++){
 +      Btree *pBt = db->aDb[i].pBt;
++      if( sqlite3BtreeTxnState(pBt)==SQLITE_TXN_WRITE ){
 +        sqlite3BtreeEnter(pBt);
 +        sqlite3PagerDropExclusiveLock(sqlite3BtreePager(pBt));
 +        sqlite3BtreeLeave(pBt);
 +      }
 +    }
 +  }
 +#endif
 +
    if( rc!=SQLITE_OK ){
      return rc;
    }
diff --cc src/wal.c
Simple merge
Simple merge