]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Merge the latest trunk enhancements into the wal2 branch.
authordrh <>
Fri, 21 May 2021 16:42:05 +0000 (16:42 +0000)
committerdrh <>
Fri, 21 May 2021 16:42:05 +0000 (16:42 +0000)
FossilOrigin-Name: 95cc7783457b39bbe0866295648a86e7ee5e1660048ab133f1ccf300498ef1bf

1  2 
Makefile.in
Makefile.msc
main.mk
manifest
manifest.uuid
src/btree.c
src/pager.c
src/vdbe.c
src/wal.c
test/permutations.test

diff --cc Makefile.in
Simple merge
diff --cc Makefile.msc
Simple merge
diff --cc main.mk
Simple merge
diff --cc manifest
index 73c44306af9e75fc8b7aeba6822912425ea3a3c7,4861e18edee2fdcfb4ebfade834f45aba7808326..cc95fece473d52aebbdd018585a73235abd7efc4
+++ b/manifest
@@@ -1,13 -1,13 +1,13 @@@
- C Merge\sthe\s3.35.3\senhancements\sinto\sthe\swal2\sbranch.
- D 2021-03-26T13:58:26.056
 -C Fix\sa\sfaulty\sassert()\sstatement\sin\ssqlite3ExprListDup().\sThis\sis\sa\scontinuation\nof\sthe\sfix\sat\s[59812e7ef705226c].
 -D 2021-05-20T23:25:28.287
++C Merge\sthe\slatest\strunk\senhancements\sinto\sthe\swal2\sbranch.
++D 2021-05-21T16:42:05.867
  F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
  F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
  F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
- F Makefile.in 39bea9c761b58790b94369abfb9257baa459e74fb226c5a44176a62d265944a5
 -F Makefile.in 30c6d39386246695e951a676973e0bf57aabbd1e37024c07e657af89dd332555
++F Makefile.in 5d28a7a46c2700c518469b9c5720b22d386293ecdd44f148a9a6c69d191e7c3e
  F Makefile.linux-gcc f609543700659711fbd230eced1f01353117621dccae7b9fb70daa64236c5241
- F Makefile.msc 670a8d12f5ddf61c38217a011e63065cbb2ae4585c0b5844137e9c3d384dedb0
- F README.md 1514a365ffca3c138e00c5cc839906108a01011a6b082bad19b09781e3aa498a
- F VERSION 75575cade3e93b31a84ffcb0d40de856a49bd3e4c1028dff52432bfae9806adb
 -F Makefile.msc 6443729ba6a013a0fea4f999b22e54760f36e73c2e691554f0c4bfa1dbe4d070
++F Makefile.msc 264c5fe9c681611178d163e61d38f98cea592914e92d0b98b5538c617199243a
+ F README.md 2a71913f398ecac5f3e10945fcf438aed425c2e9ed9874de561156ba77fb7023
+ F VERSION 8c392f6d70d82e513a0eac622bdf23c43df3e084cb630288beba8cef3012c812
  F aclocal.m4 a5c22d164aff7ed549d53a90fa56d56955281f50
  F art/sqlite370.eps aa97a671332b432a54e1d74ff5e8775be34200c2
  F art/sqlite370.ico af56c1d00fee7cd4753e8631ed60703ed0fc6e90
@@@ -287,8 -286,7 +287,8 @@@ F ext/lsm1/tool/mklsm1c.tcl f31561bbee5
  F ext/misc/README.md d6dd0fe1d8af77040216798a6a2b0c46c73054d2f0ea544fbbcdccf6f238c240
  F ext/misc/amatch.c e3ad5532799cee9a97647f483f67f43b38796b84b5a8c60594fe782a4338f358
  F ext/misc/anycollseq.c 5ffdfde9829eeac52219136ad6aa7cd9a4edb3b15f4f2532de52f4a22525eddb
- F ext/misc/appendvfs.c bdc9de0a0e61c21327e975da178b4fd6f57de9c46123044aa6ee3a20798c5db2
+ F ext/misc/appendvfs.c 500fef0736caafc629ca1dbae348a121367eaa4ed8c385c291cb9ad65ea790fb
 +F ext/misc/bgckpt.c 49ae19aa03e6da393db5d17da256374d4c4d36889fdd89d6e4bc93aca2b752e6
  F ext/misc/blobio.c a867c4c4617f6ec223a307ebfe0eabb45e0992f74dd47722b96f3e631c0edb2a
  F ext/misc/btreeinfo.c d28ce349b40054eaa9473e835837bad7a71deec33ba13e39f963d50933bfa0f9
  F ext/misc/carray.c b75a0f207391038bf1540d3372f482a95c3613511c7c474db51ede1196321c7c
@@@ -466,7 -465,7 +467,7 @@@ F ext/userauth/userauth.c 7f00cded7dcaa
  F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 x
  F ltmain.sh 3ff0879076df340d2e23ae905484d8c15d5fdea8
  F magic.txt 8273bf49ba3b0c8559cb2774495390c31fd61c60
- F main.mk 5412053555664fb4ac58a691f93279d9b19822d606d4c162ec271c3cd9a7413f
 -F main.mk d1654e2923a7195603a7d6564dabe037a3a20ea5b3817002db534ffc4ad8cecf
++F main.mk dc93796a395c79ce1493b2358e8a06f04d71b138a216db20fd4d3349893a91f1
  F mkso.sh fd21c06b063bb16a5d25deea1752c2da6ac3ed83
  F mptest/config01.test 3c6adcbc50b991866855f1977ff172eb6d901271
  F mptest/config02.test 4415dfe36c48785f751e16e32c20b077c28ae504
@@@ -485,13 -484,13 +486,13 @@@ F src/auth.c 08954fdc4cc2da5264ba5b75cf
  F src/backup.c 3014889fa06e20e6adfa0d07b60097eec1f6e5b06671625f476a714d2356513d
  F src/bitvec.c 17ea48eff8ba979f1f5b04cc484c7bb2be632f33
  F src/btmutex.c 8acc2f464ee76324bf13310df5692a262b801808984c1b79defb2503bbafadb6
- F src/btree.c b1e36ac807bae2b2bed8eafaeb120dc79d7e6dd3f55e5d0a3aa5f45f044314bf
 -F src/btree.c 51ba86095316fceb3e25bc61617d673d84627e79f4ace83f8722910f33eedef3
++F src/btree.c 8e6896c17b8cac46912891ceb19b98485d4922e503eeee6bfca05654270e4109
  F src/btree.h 096cc53baa58be22b02c896d1cf933c38cfc6d65f9253c1367ece8cc88a24de5
  F src/btreeInt.h 7bc15a24a02662409ebcd6aeaa1065522d14b7fda71573a2b0568b458f514ae0
- F src/build.c 066c44421bf7b73c6fa47f6fb0c0fcf1357c10552bcf8f3f94c6ebede581cd01
+ F src/build.c daeb1beb04e3729456f095686bc26bb0cde026263fc281257d431ba22c2e7f21
  F src/callback.c d0b853dd413255d2e337b34545e54d888ea02f20da5ad0e63585b389624c4a6c
  F src/complete.c a3634ab1e687055cd002e11b8f43eb75c17da23e
- F src/ctime.c 2a322b9a3d75771fb4d99e0702851f4f68dda982507a0f798eefb0712969a410
+ F src/ctime.c 3052b6b05ed9ef547a3dd66b8e01bfa9d582e78752ad6ed327da84652641e038
  F src/date.c e0632f335952b32401482d099321bbf12716b29d6e72836b53ae49683ebae4bf
  F src/dbpage.c 8a01e865bf8bc6d7b1844b4314443a6436c07c3efe1d488ed89e81719047833a
  F src/dbstat.c 3aa79fc3aed7ce906e4ea6c10e85d657299e304f6049861fe300053ac57de36c
@@@ -528,28 -527,28 +529,28 @@@ F src/os.c 6e94cd64b134c9317e52ad534117
  F src/os.h 48388821692e87da174ea198bf96b1b2d9d83be5dfc908f673ee21fafbe0d432
  F src/os_common.h b2f4707a603e36811d9b1a13278bffd757857b85
  F src/os_setup.h 0dbaea40a7d36bf311613d31342e0b99e2536586
- F src/os_unix.c 7a9eab7b11f552ab91ead980086b312c7e3b871efdee8c0c072b682bbec6592e
+ F src/os_unix.c efa60c1cb54dba767abbba3c6dd67d3df5ef8aa26e2e499c37f055f56a374068
  F src/os_win.c 77d39873836f1831a9b0b91894fec45ab0e9ca8e067dc8c549e1d1eca1566fe9
  F src/os_win.h 7b073010f1451abe501be30d12f6bc599824944a
- F src/pager.c c1d5774fc771dcec190d0c6aa227461c075e5f00d1d4e855f94c2458777ebf22
 -F src/pager.c 95c255256b13827caf038c8f963d334784073f38ab6ef9d70371d9d04f3c43e0
 -F src/pager.h 4bf9b3213a4b2bebbced5eaa8b219cf25d4a82f385d093cd64b7e93e5285f66f
++F src/pager.c e007e483923437707b8636d7450f1656e63c8d2dc1e09a605c24b3a9a1900220
 +F src/pager.h 9d38ac4b9f0e1361f7ddb6aa0675a54f5e4f085703108d3aafe7868872113f92
- F src/parse.y 2107aff88e361bbf8388fdede3fed20fda875f23ba7585ec83b20e3e16a95670
+ F src/parse.y ac294bd2891c4310b0b23a67ea3bbca2d0bf5b7662c4444b6517c3986be4a437
  F src/pcache.c 385ff064bca69789d199a98e2169445dc16e4291fa807babd61d4890c3b34177
  F src/pcache.h 4f87acd914cef5016fae3030343540d75f5b85a1877eed1a2a19b9f284248586
  F src/pcache1.c 388304fd2d91c39591080b5e0f3c62cfba87db20370e7e0554062bfb29740e9f
 -F src/pragma.c eb42cb9bec189cf18cef5d8fcae56e13bb73ef2b019b198fb48740ced81bce95
 +F src/pragma.c 4577091a839722cd74e5492f10dc238a93751f4bcc0c8c9ee572d7592f3936be
  F src/pragma.h 8dc78ab7e9ec6ce3ded8332810a2066f1ef6267e2e03cd7356ee00276125c6cf
- F src/prepare.c e21b54489b5c73b06ada15e6fc79b5c6f64b06701924a6ca98944ae59e06256f
- F src/printf.c 2b03a80d7c11bb422115dca175a18bf430e9c9dbaa0eee63b758f0c022f8f34f
+ F src/prepare.c d778af9986f3b0107c5b255dcfe2696e8e99e00fb77c5115bbfea4e92c3302e7
+ F src/printf.c 78fabb49b9ac9a12dd1c89d744abdc9b67fd3205e62967e158f78b965a29ec4b
  F src/random.c 80f5d666f23feb3e6665a6ce04c7197212a88384
- F src/resolve.c dd47248c2c914feb0d4428c27d782e2723971d32cfa5536f49306d080df4d45a
+ F src/resolve.c 40e216d9a72e52841a9c8e0aec7d367bade8e2df17b804653b539b20c1ab5660
  F src/rowset.c ba9515a922af32abe1f7d39406b9d35730ed65efab9443dc5702693b60854c92
- F src/select.c 734cf12e42f81f2fe461e41214e6552375e55b62a802784a4f0066ac592e7f4a
- F src/shell.c.in aa28256887d049badaf93aa30ab5c76a2ec88143a674d685c0e739056702e5c3
- F src/sqlite.h.in 3426a080ea1f222a73e3bd91e7eacbd30570a0117c03d42c6dde606f33e5e318
+ F src/select.c 8f9ecc60f9ffb5954f726d2adf5722c638072260838490d0349e71d2e4a31822
+ F src/shell.c.in 1b32ba2918ede13b68df47c7b92b72ba0d06e68d384e78bb9d7456527271d400
+ F src/sqlite.h.in 5c950066775ca9efdaa49077c05d38d0bef6418f3bd07d2dce0210f1d2f3c326
  F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
  F src/sqlite3ext.h 61b38c073d5e1e96a3d45271b257aef27d0d13da2bea5347692ae579475cd95e
- F src/sqliteInt.h 0f81c7eb3a40dda0b74d0acdc8f3b134346b40be780b1fe5cc24dd294a928d1a
+ F src/sqliteInt.h 6d0c49ed218f9f6ffabfdc8bed1a5de89f61e70c96a62156aeebeb20c1be9bf0
  F src/sqliteLimit.h d7323ffea5208c6af2734574bae933ca8ed2ab728083caa117c9738581a31657
  F src/status.c 4b8bc2a6905163a38b739854a35b826c737333fab5b1f8e03fa7eb9a4799c4c1
  F src/table.c 0f141b58a16de7e2fbe81c308379e7279f4c6b50eb08efeec5892794a0ba30d1
@@@ -616,26 -615,26 +617,26 @@@ F src/upsert.c df8f1727d62b5987c4fd302c
  F src/utf.c ee39565f0843775cc2c81135751ddd93eceb91a673ea2c57f61c76f288b041a0
  F src/util.c 41c7a72da1df47864faa378a1c720b38adb288c6838cb6be5594511b6287a048
  F src/vacuum.c 492422c1463c076473bae1858799c7a0a5fe87a133d1223239447c422cd26286
- F src/vdbe.c db4a104f9b48677cc6e13e80404cfeaf4396327994843065f19e72523649575d
 -F src/vdbe.c 73e5a8b64a77359f4287d76f168e89d12ba967cbb72a3d7619650568e9c1d66c
++F src/vdbe.c d36e7d1db4f9d1f1868387de909f32879e9a3e7d98239705624c20d274ae39b2
  F src/vdbe.h 25dabb25c7e157b84e59260cfb5b466c3ac103ede9f36f4db371332c47601abe
- F src/vdbeInt.h 000d9ab1ea4cb55a80de15e28f3f595645b4fddef34bca4347fb3db8031d9041
- F src/vdbeapi.c 4a43e303ec3354c785f453e881521969378e85628278ab74ba4a9df790c0d93b
- F src/vdbeaux.c 1b3eaa3a70d9d1877266e8ade0d0c3b2b4c6cf77d393d94dbcbd522b9bfefc15
- F src/vdbeblob.c 253ed82894924c362a7fa3079551d3554cd1cdace39aa833da77d3bc67e7c1b1
- F src/vdbemem.c 947f2a65910edb4014dc981d33e414a68c51f169f9df8c4c493a0ba840b6eb1f
+ F src/vdbeInt.h 58980223a32495ad059d10581b83e133abdc77248b1bab85c080cab8a13bd819
+ F src/vdbeapi.c d9e99daf59fec928986838b3389a7337e82fec6b3b5de30206cb99fb4661b94e
+ F src/vdbeaux.c 065a10392378109f08435bd50d03dff315e384cde2831d6b8dbaec05f33b10af
+ F src/vdbeblob.c c6b8db50b227f66fb404215732068df76485b5b433e5f9d4d9ac27410b218193
+ F src/vdbemem.c 175c73ced03edbb0f6567a41c8032afaeb83372090fa7bddfc88a67e28da2b8a
  F src/vdbesort.c f5b5e473a7cee44e47a94817b042fd7172cf3aa2c0a7928a8339d612bcfdec5a
  F src/vdbetrace.c 666c6fd9f1b62be6999e072a45b913e3c2c3518bc60dfd4d54fe304130acb724
  F src/vdbevtab.c f99b275366c5fc5e2d99f734729880994ab9500bdafde7fae3b02d562b9d323c
- F src/vtab.c 032a0165c147fda16927e6a3230e90c068d4af93f887ce94e26f678fe48e5e4c
+ F src/vtab.c b928405ccb66040fc6c3a11eaa93ddb02cbf20f9ab6860b301b222b9b50dc089
  F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9
- F src/wal.c 4d548c33023f0d71dd63c327abdcae6cae69f7bfe6aa1796c674dc8f3230f1d9
 -F src/wal.c c8ec20a1ca161d5635a4f19c2a4efec2e006e19a8a61f272bf6bce1c80ab7436
 -F src/wal.h c3aa7825bfa2fe0d85bef2db94655f99870a285778baa36307c0a16da32b226a
++F src/wal.c cacabe92b75366a30bc185a74da529e9fa0b2eabdbe29b4ae5727d8335391e31
 +F src/wal.h d01234e828943e002040c22a7e017642962f9fd9b2dc142fa599769ae4e459e9
- F src/walker.c d42d6c80ea363ef689a462e65eefcfe87deab924c50de5baa37ecb6af7d7ddaa
- F src/where.c 10d06b16670a1d2a992d52a9f08e49426d38a08fb0a7ae5f7f62fd023d560e1e
- F src/whereInt.h 446e5e8018f83358ef917cf32d8e6a86dc8430113d0b17e720f1839d3faa44c4
- F src/wherecode.c e57a8690311a75d06e723e8d379f9831de04aba300e07174d236e32a7f9c7a13
- F src/whereexpr.c 53452fe2fb07be2f4cb17f55cc721416fae0092c00717f106faf289c990b6494
- F src/window.c 7e89ac4b6cd6bb9b7772234a625d19c39b530f4ac06e43688a8b7e6a1ab512a2
+ F src/walker.c 7342becedf3f8a26f9817f08436bdf8b56ad69af83705f6b9320a0ad3092c2ac
+ F src/where.c 32f41c3c93c6785e0077e3a2cdc669c3ccfe70173787847be77f294c18fc7dc3
+ F src/whereInt.h 9248161dd004f625ce5d3841ca9b99fed3fc8d61522cf76340fc5217dbe1375b
+ F src/wherecode.c 110ed13049e0f1dc27e9dd942eb870417b36480cb7819302f5804cbcf9330b0e
+ F src/whereexpr.c 5a9c9f5d2dac4bcdcaae3035034b4667523f731df228e0bb1d4efc669efa9da5
+ F src/window.c ce5e73ab88a8527d268673906bf89cbe58c61bca8d54d38ed8c33c3220a276ee
  F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2
  F test/affinity2.test ce1aafc86e110685b324e9a763eab4f2a73f737842ec3b687bd965867de90627
  F test/affinity3.test eecb0dabee4b7765a8465439d5e99429279ffba23ca74a7eae270a452799f9e7
@@@ -1265,7 -1265,7 +1267,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 dbd3721d41acc114cdafa77019efe4637fb7db0ab071aba004045b64a2b8a576
 -F test/permutations.test 9bb03106a024e9938d329a33380ea7fd91b6e45516881db68663505c444b3242
++F test/permutations.test b78ac4e6876825294501b18800b9a8bd96c7e3dfe403f8f0168ab4b85b17c370
  F test/pg_common.tcl 3b27542224db1e713ae387459b5d117c836a5f6e328846922993b6d2b7640d9f
  F test/pragma.test 50b91bedea9324d3ab48e793f908ee7d2c7dcf84bfa2281e792838be59641ec8
  F test/pragma2.test e5d5c176360c321344249354c0c16aec46214c9f
@@@ -1322,10 -1322,10 +1324,10 @@@ F test/savepoint.test ea1a6c08454e1a4ed
  F test/savepoint2.test 9b8543940572a2f01a18298c3135ad0c9f4f67d7
  F test/savepoint4.test c8f8159ade6d2acd9128be61e1230f1c1edc6cc0
  F test/savepoint5.test 0735db177e0ebbaedc39812c8d065075d563c4fd
 -F test/savepoint6.test f41279c5e137139fa5c21485773332c7adb98cd7
 +F test/savepoint6.test 48a645a7bb3a59a6fcf06a7364cfe5b655c336760de39068f7c241b0fc80d963
  F test/savepoint7.test cde525ea3075283eb950cdcdefe23ead4f700daa
  F test/savepointfault.test f044eac64b59f09746c7020ee261734de82bf9b2
- F test/scanstatus.test 874e35011779b07725a47dbf1dd6282b0ca04af7e028fb0b534ee544b571be42
+ F test/scanstatus.test 9a0ed37ab6d57b50567282788fffdf832d9b16739ecc41bff9d77a8d767cf317
  F test/schema.test 5dd11c96ba64744de955315d2e4f8992e447533690153b93377dffb2a5ef5431
  F test/schema2.test 906408621ea881fdb496d878b1822572a34e32c5
  F test/schema3.test 1bc1008e1f8cb5654b248c55f27249366eb7ed38
@@@ -1922,7 -1914,7 +1926,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 03142e5f760ef46c7837fef1b21f54baf64f4b9d99d1c9e3f4d8d6c8d1ab875f 6bb2134027a12801de8e0c73482d94682f902024800a7e426614f65a2fe4f64c
- R f9c4b78b95282bba964f03a6430a7891
 -P 179dcb6ba771f0e94e06b5e3c5534d8005d27b2c9b4601be20fd68abfbc5dfd0
 -R b65f4b641381f2377ccb77e896547360
++P a1b8d9d2131830510df291832565311803aa3e047fe07ba979fc69bb0ff329b0 240f7494bfa3e0806ae2f971e78039c62a419de647cb9e807309f90e1d2a536d
++R 45664146f52399c43838593e9298ec78
  U drh
- Z f949645e64e4e01973b43101e0af3426
 -Z 83b95a83b421e548ed773aa244b4a289
++Z c3e10b368f39e609c667c740557d8122
diff --cc manifest.uuid
index c1245a6f3fab3b26c1413cce6fd37c04011ae77b,d2cf9163e89b8fd415fad8c34921f3d3127626ef..f79d0898d28d956420ed3aa0b969008ab55eb724
@@@ -1,1 -1,1 +1,1 @@@
- a1b8d9d2131830510df291832565311803aa3e047fe07ba979fc69bb0ff329b0
 -240f7494bfa3e0806ae2f971e78039c62a419de647cb9e807309f90e1d2a536d
++95cc7783457b39bbe0866295648a86e7ee5e1660048ab133f1ccf300498ef1bf
diff --cc src/btree.c
Simple merge
diff --cc src/pager.c
Simple merge
diff --cc src/vdbe.c
Simple merge
diff --cc src/wal.c
index ca95b6942b3c81fea19469aa187967f036c6c3a3,c3f84dd2efd07e6ba38d9629240804176c7748c7..e42471d7bb7653d2ad9afd21842dca216b297825
+++ b/src/wal.c
@@@ -1312,33 -999,22 +1312,32 @@@ static void walCleanupHash(Wal *pWal)
    int iLimit = 0;                 /* Zero values greater than this */
    int nByte;                      /* Number of bytes to zero in aPgno[] */
    int i;                          /* Used to iterate through aHash[] */
-   int rc;                         /* Return code form walHashGet() */
 +  int iWal = walidxGetFile(&pWal->hdr);
 +  u32 mxFrame = walidxGetMxFrame(&pWal->hdr, iWal);
 +
 +  u32 iExternal;
 +  if( isWalMode2(pWal) ){
 +    iExternal = walExternalEncode(iWal, mxFrame);
 +  }else{
 +    assert( iWal==0 );
 +    iExternal = mxFrame;
 +  }
  
    assert( pWal->writeLock );
 -  testcase( pWal->hdr.mxFrame==HASHTABLE_NPAGE_ONE-1 );
 -  testcase( pWal->hdr.mxFrame==HASHTABLE_NPAGE_ONE );
 -  testcase( pWal->hdr.mxFrame==HASHTABLE_NPAGE_ONE+1 );
 +  testcase( mxFrame==HASHTABLE_NPAGE_ONE-1 );
 +  testcase( mxFrame==HASHTABLE_NPAGE_ONE );
 +  testcase( mxFrame==HASHTABLE_NPAGE_ONE+1 );
  
 -  if( pWal->hdr.mxFrame==0 ) return;
 +  if( mxFrame==0 ) return;
  
    /* Obtain pointers to the hash-table and page-number array containing 
    ** the entry that corresponds to frame pWal->hdr.mxFrame. It is guaranteed
    ** that the page said hash-table and array reside on is already mapped.(1)
    */
 -  assert( pWal->nWiData>walFramePage(pWal->hdr.mxFrame) );
 -  assert( pWal->apWiData[walFramePage(pWal->hdr.mxFrame)] );
 -  i = walHashGet(pWal, walFramePage(pWal->hdr.mxFrame), &sLoc);
 +  assert( pWal->nWiData>walFramePage(iExternal) );
 +  assert( pWal->apWiData[walFramePage(iExternal)] );
-   rc = walHashGet(pWal, walFramePage(iExternal), &sLoc);
-   if( NEVER(rc) ) return; /* Defense-in-depth, in case (1) above is wrong */
++  i = walHashGet(pWal, walFramePage(iExternal), &sLoc);
+   if( NEVER(i) ) return; /* Defense-in-depth, in case (1) above is wrong */
  
    /* Zero all hash-table entries that correspond to frame numbers greater
    ** than pWal->hdr.mxFrame.
Simple merge