]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Merge the latest trunk enhancements into the bedrock branch.
authordrh <>
Tue, 7 Feb 2023 11:39:47 +0000 (11:39 +0000)
committerdrh <>
Tue, 7 Feb 2023 11:39:47 +0000 (11:39 +0000)
FossilOrigin-Name: b7d9f14d78a52f87fcc7bc1d3e9f00d6ce1d648b1b244bc3989d7308f52063a0

1  2 
Makefile.in
ext/session/test_session.c
main.mk
manifest
manifest.uuid
src/pager.c
src/wal.c
test/permutations.test

diff --cc Makefile.in
Simple merge
Simple merge
diff --cc main.mk
Simple merge
diff --cc manifest
index 0681ecddda7ae1d1ecce585b23ba2c143b4011df,540b816de61c353e68ccb2b15897ea36f38900a3..8461050c2ffa5542f8856b2c6d375d9bbb57a0fd
+++ b/manifest
@@@ -1,11 -1,11 +1,11 @@@
- C Instead\sof\sfree()ing\sthem,\sretain\sallocated\spage\sbuffers\son\san\sinternal\sper-connection\sreuse-list\swhen\sa\spage-cache\sis\sreset.
- D 2023-02-02T20:27:21.569
 -C Fix\sa\sdropped\serror\scode\sin\swal.c.
 -D 2023-02-07T11:19:20.199
++C Merge\sthe\slatest\strunk\senhancements\sinto\sthe\sbedrock\sbranch.
++D 2023-02-07T11:39:47.869
  F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
  F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
  F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
- F Makefile.in b8a7188b08e2d6b980bf608d6b4f747f412df9f7b5f7f8a350e6d74f42f22797
 -F Makefile.in 4fdd20bbd598569d615c3aa379597ab9dbc762992b24fccfbd1004f47ed6d9f5
++F Makefile.in feacf96184ea58052e204049c49a30025cc919c6ba1f3737399ebbd1e31f71a5
  F Makefile.linux-gcc f609543700659711fbd230eced1f01353117621dccae7b9fb70daa64236c5241
- F Makefile.msc ce86238eaa0a3fe1968d4e9cfbc058fb9a4e8255c5400b0ee2a75bf44971786b
+ F Makefile.msc 423d0830030df99fbf9615b9e47ee0ac36478c4bc9440fae60e1b1a2e1ce2186
  F README.md 8b8df9ca852aeac4864eb1e400002633ee6db84065bd01b78c33817f97d31f5e
  F VERSION 413ec94920a487ae32c9a2a8819544d690662d6f7c7ce025c0d0b8a1e74fa9db
  F aclocal.m4 a5c22d164aff7ed549d53a90fa56d56955281f50
@@@ -94,8 -93,8 +94,8 @@@ F ext/fts5/fts5_buffer.c 3001fbabb585d6
  F ext/fts5/fts5_config.c 501e7d3566bc92766b0e11c0109a7c5a6146bc41144195459af5422f6c2078aa
  F ext/fts5/fts5_expr.c 40174a64829d30cc86e8266306ad24980f6911edd5ca0b8c1ce7821ea1341b88
  F ext/fts5/fts5_hash.c d4fb70940359f2120ccd1de7ffe64cc3efe65de9e8995b822cd536ff64c96982
- F ext/fts5/fts5_index.c e879315306f368b5681d32cffc90770b124649814214615b88d79ddd957f6747
+ F ext/fts5/fts5_index.c 8a78d6c57a1ac1b4652e88ca994ac024a8652335431e12443f241fa61c6c6049
 -F ext/fts5/fts5_main.c fe67b6fb2ef134d9dbfa3941c63f777d755b075449be1863cb913a7f8754cb69
 +F ext/fts5/fts5_main.c fa213e1b894441b4ee5dbcc597a17a3fab8daf34b8d1c4d9691d53281d968746
  F ext/fts5/fts5_storage.c 76c6085239eb44424004c022e9da17a5ecd5aaec859fba90ad47d3b08f4c8082
  F ext/fts5/fts5_tcl.c b1445cbe69908c411df8084a10b2485500ac70a9c747cdc8cda175a3da59d8ae
  F ext/fts5/fts5_test_mi.c 08c11ec968148d4cb4119d96d819f8c1f329812c568bac3684f5464be177d3ee
@@@ -465,11 -462,9 +466,11 @@@ F ext/session/sessionrebase.test ccfa71
  F ext/session/sessionsize.test 6f644aff31c7f1e4871e9ff3542766e18da68fc7e587b83a347ea9820a002dd8
  F ext/session/sessionstat1.test 218d351cf9fcd6648f125a26b607b140310160184723c2666091b54450a68fb5
  F ext/session/sessionwor.test 6fd9a2256442cebde5b2284936ae9e0d54bde692d0f5fd009ecef8511f4cf3fc
 -F ext/session/sqlite3session.c 13bdc093416cd284d4075328dd8599eb59bcedc23a21d561a15d78805c5866bf
 -F ext/session/sqlite3session.h 0907de79bc13a2e3af30a6dc29acc60792a3eaf7d33d44cf52500d0f3c2b2171
 -F ext/session/test_session.c 2de472b4d7e62e85ca1992094612725e2450a77dbf7523db64de94197812462e
 +F ext/session/sqlite3changebatch.c d5553b79e012ee2cb06c0a96bdf9dfe19e66354390ea0036cc46c4953142d517
 +F ext/session/sqlite3changebatch.h e72016998c9a22d439ddfd547b69e1ebac810c24
 +F ext/session/sqlite3session.c 7084f9fb1c075cd0724d62d71affe5889ee514d60a02f8548e74e74f8e285df4
 +F ext/session/sqlite3session.h 01807bb8c8f531c23052032e9d531eec49af79b7394f8213cf5a49784325b6a8
- F ext/session/test_session.c 1468abeab18502a32d0d30cea5f39ada35c9807478ba87a99c4f737f9449ec13
++F ext/session/test_session.c 0597d013e68abccb4aa808549139f985130a19732c2b827609a05100d8cbfeaf
  F ext/userauth/sqlite3userauth.h 7f3ea8c4686db8e40b0a0e7a8e0b00fac13aa7a3
  F ext/userauth/user-auth.txt e6641021a9210364665fe625d067617d03f27b04
  F ext/userauth/userauth.c 7f00cded7dcaa5d47f54539b290a43d2e59f4b1eb5f447545fa865f002fc80cb
@@@ -547,7 -542,7 +548,7 @@@ F ext/wasm/wasmfs.make cf9a68162d92ca2b
  F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 x
  F ltmain.sh 3ff0879076df340d2e23ae905484d8c15d5fdea8
  F magic.txt 5ade0bc977aa135e79e3faaea894d5671b26107cc91e70783aa7dc83f22f3ba0
- F main.mk 4acf66c56878557b0e45c80915049d268f609e3a066fc03f7e0287a245d1401e
 -F main.mk ca46247ab1e6969b3261981c81dab2d41fdcb867eebe341b7b7e607a1b98b3bf
++F main.mk ba55340ebf22e6473ca88859c6f44265079982b110e109c7ffb5b962e198c024
  F mkso.sh fd21c06b063bb16a5d25deea1752c2da6ac3ed83
  F mptest/config01.test 3c6adcbc50b991866855f1977ff172eb6d901271
  F mptest/config02.test 4415dfe36c48785f751e16e32c20b077c28ae504
@@@ -565,17 -560,17 +566,17 @@@ F src/analyze.c b597c382f23b19cce563211
  F src/attach.c cc9d00d30da916ff656038211410ccf04ed784b7564639b9b61d1839ed69fd39
  F src/auth.c f4fa91b6a90bbc8e0d0f738aa284551739c9543a367071f55574681e0f24f8cf
  F src/backup.c a2891172438e385fdbe97c11c9745676bec54f518d4447090af97189fd8e52d7
 -F src/bitvec.c 7c849aac407230278445cb069bebc5f89bf2ddd87c5ed9459b070a9175707b3d
 +F src/bitvec.c 3907fcbe8a0c8c2db58d97087d15cdabbf2842adb9125df9ab9ff87d3db16775
  F src/btmutex.c 6ffb0a22c19e2f9110be0964d0731d2ef1c67b5f7fabfbaeb7b9dabc4b7740ca
 -F src/btree.c c4662a9c34db3729e74851eb9a3a58995f3a2d8af1ef0820ed0d280862af95da
 -F src/btree.h aa354b9bad4120af71e214666b35132712b8f2ec11869cb2315c52c81fad45cc
 -F src/btreeInt.h 06bb2c1a07172d5a1cd27a2a5d617b93b1e976c5873709c31964786f86365a6e
 -F src/build.c c55ab6d1b089ceef57160e840f05f692955ac90944c3d04fcf01d97fd7bfd08d
 +F src/btree.c a8fedc8ac6583a393ad88077cbb8d9bc82fd372c6d8cfa383bcb159b1b1b11db
 +F src/btree.h 77a092acf63526827e74e88d0480123212d079593a841ff1fe85507adf256ef6
 +F src/btreeInt.h c7ee54b020d7895ca7bee154c0d5e52e435587475a0a34543cd982cb190af42f
 +F src/build.c a5641434e3ae4050da833f1df9ab2b1475866112df16568e0ad196c8b6e25f7d
  F src/callback.c 4cd7225b26a97f7de5fee5ae10464bed5a78f2adefe19534cc2095b3a8ca484a
  F src/complete.c a3634ab1e687055cd002e11b8f43eb75c17da23e
- F src/ctime.c 20507cc0b0a6c19cd882fcd0eaeda32ae6a4229fb4b024cfdf3183043d9b703d
+ F src/ctime.c f439c21d439aaf4706950a2597474f1a796b557a0750666308202c0f601ef0fd
  F src/date.c 94ce83b4cd848a387680a5f920c9018c16655db778c4d36525af0a0f34679ac5
- F src/dbpage.c 254e3a228892ab6139beda795ebc9c60b876aae59eb9cd9290d11dc261c8d824
+ F src/dbpage.c d47549716549311f79dc39fe5c8fb19390a6eb2c960f8e37c89a9c4de0c1052e
  F src/dbstat.c ec92074baa61d883de58c945162d9e666c13cd7cf3a23bc38b4d1c4d0b2c2bef
  F src/delete.c 86573edae75e3d3e9a8b590d87db8e47222103029df4f3e11fa56044459b514e
  F src/expr.c 204af6a83c191f5ac19ec4af6ecc546f188cc2dd1c76fc5280982f710ec4b9c4
@@@ -612,28 -607,28 +613,28 @@@ F src/os.h 1ff5ae51d339d0e30d8a9d814f4b
  F src/os_common.h 6c0eb8dd40ef3e12fe585a13e709710267a258e2c8dd1c40b1948a1d14582e06
  F src/os_kv.c 4d39e1f1c180b11162c6dc4aa8ad34053873a639bac6baae23272fc03349986a
  F src/os_setup.h 6011ad7af5db4e05155f385eb3a9b4470688de6f65d6166b8956e58a3d872107
 -F src/os_unix.c 49b0d3d0f86fc4736d1b9a71035bbd791b892ed6908803f270d4d71f149c60ac
 +F src/os_unix.c 5c00a6d1243afeb045d8c366f7245c0b274140c7a3c48b39510746ac907cbadd
  F src/os_win.c 295fe45f18bd86f2477f4cd79f3377c6f883ceb941b1f46808665c73747f2345
  F src/os_win.h 7b073010f1451abe501be30d12f6bc599824944a
- F src/pager.c f581010040d4a339dbb43f15ed5cab2dd5b1c8b34f14f35a8e4723700162e6c2
 -F src/pager.c 586f20717c5ad77aec504447554e82584f69c1b727c61db22021fdc8bfd5890e
 -F src/pager.h c49ff262186a78bc5f27e3891edefb900afa769b9e2eaeca0322c7f3553536d4
 -F src/parse.y 8e67d820030d2655b9942ffe61c1e7e6b96cea2f2f72183533299393907d0564
++F src/pager.c 5a8e1b8dc19156a0263e12324ca6560a272415740e9b9e515bf6fd24f141a0fe
 +F src/pager.h 3ddab454e313da7c93f92fea35c842ad17ae9f4e96254871ddb0171b2bfb859a
 +F src/parse.y 17c50d262d92083badeb60b3ebe4725e19c76548f90aea898ab07d4f2940a7d8
  F src/pcache.c f4268f7f73c6a3db12ce22fd25bc68dc42315d19599414ab1207d7cf32f79197
  F src/pcache.h 4f87acd914cef5016fae3030343540d75f5b85a1877eed1a2a19b9f284248586
 -F src/pcache1.c dee95e3cd2b61e6512dc814c5ab76d5eb36f0bfc9441dbb4260fccc0d12bbddc
 +F src/pcache1.c 9f51e80b6d55bc7b62e6260cfe2c06e0a541b4138de9f889c5a55f6c1a922327
  F src/pragma.c bcd8519da83da8023fd340f71cddfca33805d332e89b55cc974285f146e42e76
 -F src/pragma.h e690a356c18e98414d2e870ea791c1be1545a714ba623719deb63f7f226d8bb7
 +F src/pragma.h 1f421360eed1a7721e8c521463df8519a7c8d0d5893ebd9dbfe0dba8de996f8c
  F src/prepare.c ce87a08cfddd45a147150db34190b1986f2d4a0e0828858cb6bd908c78fb02e3
  F src/printf.c ff4b05e38bf928ff1b80d3dda4f977b10fe39ecbfe69c018224c7e5594fb2455
 -F src/random.c 606b00941a1d7dd09c381d3279a058d771f406c5213c9932bbd93d5587be4b9c
 +F src/random.c 9bd018738ec450bf35d28050b4b33fa9a6eebf3aaefb1a1cff42dc14a7725673
- F src/resolve.c 5a98a7bf277aa60584b6bb4c5dd6a9ef2b19537910612c34f596e2901e88596d
+ F src/resolve.c d62c5665279cc7485f9d45b5e20911cc7b19c203f268321a90d05d74f4725750
  F src/rowset.c ba9515a922af32abe1f7d39406b9d35730ed65efab9443dc5702693b60854c92
 -F src/select.c c3ce1b49cca2c66c8c88fe7d9e1f3db23590deb4dd631619ad90e1e5d21bcf1f
 +F src/select.c 394c577f0634fadbeb1101d74906b21667095da6f80d6693c3ccec5a659d4da9
- F src/shell.c.in f7fd28e68269a58690c665e8a5e96ba242201267925fbd335f08695c79fc6db7
+ F src/shell.c.in 250817509dbf12e258e334fdcd87901e35a6b63dc285885fec5f577ebb67b498
 -F src/sqlite.h.in d2a5fc1f6740bd02b571d33d2eb308fa7d1b0fac5b86f6f1fe8310cd49bca97d
 +F src/sqlite.h.in d9571e2c9ba0d4d46ce09598a95d57a0b90c49a3e00ed63ffe8f1b702fc3edf7
  F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
  F src/sqlite3ext.h da473ce2b3d0ae407a6300c4a164589b9a6bfdbec9462688a8593ff16f3bb6e4
 -F src/sqliteInt.h 43eeee1ea80543a0e40444bf53643ca259a2b1158ccfe859a6a6435b7358ecdd
 +F src/sqliteInt.h 179393f8271208944603fc1ca321bd1d1fcf786557626afbc31f7ce9a61a6ebb
  F src/sqliteLimit.h d7323ffea5208c6af2734574bae933ca8ed2ab728083caa117c9738581a31657
  F src/status.c 160c445d7d28c984a0eae38c144f6419311ed3eace59b44ac6dafc20db4af749
  F src/table.c 0f141b58a16de7e2fbe81c308379e7279f4c6b50eb08efeec5892794a0ba30d1
@@@ -677,13 -671,12 +677,12 @@@ F src/test_quota.c 6cb9297115b551f433a9
  F src/test_quota.h 2a8ad1952d1d2ca9af0ce0465e56e6c023b5e15d
  F src/test_rtree.c 671f3fae50ff116ef2e32a3bf1fe21b5615b4b7b
  F src/test_schema.c f5d6067dfc2f2845c4dd56df63e66ee826fb23877855c785f75cc2ca83fd0c1b
- F src/test_server.c a2615049954cbb9cfb4a62e18e2f0616e4dc38fe
  F src/test_sqllog.c 540feaea7280cd5f926168aee9deb1065ae136d0bbbe7361e2ef3541783e187a
 -F src/test_superlock.c 4839644b9201da822f181c5bc406c0b2385f672e
 +F src/test_superlock.c f4d4cc7319a608a54b7608158e8c7135fac19b88d6179e5bf17080e89d1f0278
  F src/test_syscall.c 1073306ba2e9bfc886771871a13d3de281ed3939
- F src/test_tclsh.c 0b15685c31189b38b0a773bbbf8b231976db0f001c2aad6524488b5eb9de2007
+ F src/test_tclsh.c 01c76e2ee362cda246710c476351b105371cf4620857c8492121858744998dc9
  F src/test_tclvar.c 33ff42149494a39c5fbb0df3d25d6fafb2f668888e41c0688d07273dcb268dfc
- F src/test_thread.c 269ea9e1fa5828dba550eb26f619aa18aedbc29fd92f8a5f6b93521fbb74a61c
+ F src/test_thread.c 7ddcf0c8b79fa3c1d172f82f322302c963d923cdb503c6171f3c8081586d0b01
  F src/test_vdbecov.c f60c6f135ec42c0de013a1d5136777aa328a776d33277f92abac648930453d43
  F src/test_vfs.c 193c18da3dbf62a0e33ae7a240bbef938a50846672ee947664512b77d853fe81
  F src/test_vfstrace.c bab9594adc976cbe696ff3970728830b4c5ed698
@@@ -712,10 -705,10 +711,10 @@@ F src/vdbetrace.c fe0bc29ebd4e02c8bc5c1
  F src/vdbevtab.c aae4bd769410eb7e1d02c42613eec961d514459b1c3c1c63cfc84e92a137daac
  F src/vtab.c a39f6ed161f16a84ff445af9dba4776b2cf0898be08a33bee8e1128a66c0074b
  F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9
- F src/wal.c 1d26e49c69c8a3adf88428a679bfaaefd7e1f7d9f8dd51685e3a558db3f16f3b
 -F src/wal.c 610c58e925fb98902b6939af9c3c8b1d3ab1cfbc5dd1e19db540c4619171cd26
 -F src/wal.h d01234e828943e002040c22a7e017642962f9fd9b2dc142fa599769ae4e459e9
++F src/wal.c b3378fe90ee98d63dc2f054423b552be61ec5d73c19e4438b6bb62d4724256d4
 +F src/wal.h 7a733af13b966ecb81872ce397e862116b3575ea53245b90b139a2873ee87825
  F src/walker.c f890a3298418d7cba3b69b8803594fdc484ea241206a8dfa99db6dd36f8cbb3b
- F src/where.c f180e2fdc93d286b48f23647cc26aab5a5b7437af2d3843f6228aff8d68eb9fe
+ F src/where.c 3bbca705410258969d6d2e0c54b468de9674445d41b67714bb4fc3f1edef41d2
  F src/whereInt.h e25203e5bfee149f5f1225ae0166cfb4f1e65490c998a024249e98bb0647377c
  F src/wherecode.c 76bca3379219880d2527493b71a3be49e696f75396d3481e4de5d4ceec7886b2
  F src/whereexpr.c 7c5671a04b00c876bec5e99fd4e6f688065feb4773160fbf76fd7900d2901777
@@@ -1388,13 -1369,14 +1387,13 @@@ F test/pagerfault2.test caf4c7facb914fd
  F test/pagerfault3.test 1003fcda009bf48a8e22a516e193b6ef0dd1bbd8
  F test/pageropt.test 84e4cc5cbca285357f7906e99b21be4f2bf5abc0
  F test/pagesize.test 5769fc62d8c890a83a503f67d47508dfdc543305
 -F test/parser1.test 6ccdf5e459a5dc4673d3273dc311a7e9742ca952dd0551a6a6320d27035ce4b3
  F test/pcache.test c8acbedd3b6fd0f9a7ca887a83b11d24a007972b
  F test/pcache2.test af7f3deb1a819f77a6d0d81534e97d1cf62cd442
- F test/pendingrace.test fb997b46d6c144a508fb8025d988a1e511b53d42d24143c57b51de3a405c7490
+ F test/pendingrace.test cbdf0f74bc939fb43cebad64dda7a0b5a3941a10b7e9cc2b596ff3e423a18156
  F test/percentile.test 4243af26b8f3f4555abe166f723715a1f74c77ff
- F test/permutations.test 6ac3eb18a4097f24e27729c290f01ee65ced13a534999e8e609beb5d369dcbd9
 -F test/permutations.test 1f9b143250923886db3d5793e703a51b892e7f3fcd0e8cff5b6e30915687afe0
++F test/permutations.test afbe9e54e88b93bb9b9b55d078d6c826de33a48b784258ba74d9549d2eb000a1
  F test/pg_common.tcl 3b27542224db1e713ae387459b5d117c836a5f6e328846922993b6d2b7640d9f
- F test/pragma.test a74a9c9642e5d7e32f5a2aa77a2ed64ec5b69fecff39d52c4daf5945a2a4de65
+ F test/pragma.test aeefa47ba5ebbf4ffc6addc223568d2a95dc7ec3ba3e3c4a26b199e805f94514
  F test/pragma2.test e5d5c176360c321344249354c0c16aec46214c9f
  F test/pragma3.test 92a46bbea12322dd94a404f49edcfbfc913a2c98115f0d030a7459bb4712ef31
  F test/pragma4.test ca5e4dfc46adfe490f75d73734f70349d95a199e6510973899e502eef2c8b1f8
@@@ -2082,11 -2059,8 +2081,8 @@@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a9
  F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
  F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
  F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
- P 5a22010c35789c6d12e4dd45c81c10b203f4662f206cb636bd0c2781f1cd9571
- R fb4fbbbd32eae880a6528e7a872eacac
- T *branch * bedrock
- T *sym-bedrock *
- T -sym-begin-concurrent-pnu-wal2 *
 -P f5bf91d9bf3910ab3dcf44c138084dfc26fb123edb8934bfdfcdd5c4afb67f2d
 -R f9886324061163f3fe48f6338ffe4fff
--U dan
- Z 1a54b7b0887392f44fe5cac394c09618
 -Z 88e782989721bd110052c1e06e2b2f03
++P 754f331614f6f6e630876bf23c7da84a8408c764540983c0182271268177c00b 2537db6f6b9df00913b57e2ad0e4deef2040ce47b28f9a9939f42c0443d70ac9
++R a4310148346f618eaea8e89240915fa8
++U drh
++Z eaffc988d4d81b2ebed4b12c6d29244d
  # Remove this line to create a well-formed Fossil manifest.
diff --cc manifest.uuid
index 7ecf0b7a2064a99c735f53904e46236319b13906,59e7028c8fd331ced691087e2c83b3b5036d53e6..e765304f0253e8247383e045afecd6969b236ddb
@@@ -1,1 -1,1 +1,1 @@@
- 754f331614f6f6e630876bf23c7da84a8408c764540983c0182271268177c00b
 -2537db6f6b9df00913b57e2ad0e4deef2040ce47b28f9a9939f42c0443d70ac9
++b7d9f14d78a52f87fcc7bc1d3e9f00d6ce1d648b1b244bc3989d7308f52063a0
diff --cc src/pager.c
Simple merge
diff --cc src/wal.c
index ce09efb0a54a48a206a9ffdcd8219fab3cd67960,ee227ea3ffb5837302c1d0860a759a7133cac2b0..8b079f505585b040a5998a9a8c9464d422d857ee
+++ b/src/wal.c
@@@ -3903,25 -3888,17 +3903,25 @@@ int sqlite3WalFindFrame
    /* 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 );
+   assert( pWal->readLock!=WAL_LOCK_NONE || pWal->lockError );
  
 -  /* 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 );
 +  /* If this is a regular wal system, then iApp must be set to 0 (there is
 +  ** only one wal file, after all). Or, if this is a wal2 system and the
 +  ** write-lock is not held, the client must have a partial-wal lock on wal 
 +  ** file iApp. This is not always true if the write-lock is held and this
 +  ** function is being called after WalLockForCommit() as part of committing
 +  ** a CONCURRENT transaction.  */
 +#ifdef SQLITE_DEBUG
 +  if( bWal2 ){
 +    if( pWal->writeLock==0 ){
 +      int l = pWal->readLock;
 +      assert( iApp==1 || l==WAL_LOCK_PART1 || l==WAL_LOCK_PART1_FULL2 );
 +      assert( iApp==0 || l==WAL_LOCK_PART2 || l==WAL_LOCK_PART2_FULL1 );
 +    }
 +  }else{
 +    assert( iApp==0 );
 +  }
 +#endif
  
    /* Return early if read-lock 0 is held. */
    if( (pWal->readLock==0 && pWal->bShmUnreliable==0) ){
Simple merge