]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Merge the latest trunk changes into the bedrock branch through wal2
authordrh <>
Mon, 22 Jun 2026 20:51:19 +0000 (20:51 +0000)
committerdrh <>
Mon, 22 Jun 2026 20:51:19 +0000 (20:51 +0000)
FossilOrigin-Name: 2a75dcd3a8590fb575ea51ec4e6f91fb149b5b401327cc57f2b62a5331fc265b

21 files changed:
1  2 
ext/rbu/sqlite3rbu.c
main.mk
manifest
manifest.uuid
src/analyze.c
src/btree.c
src/btree.h
src/btreeInt.h
src/build.c
src/func.c
src/main.c
src/pager.c
src/pcache1.c
src/select.c
src/sqlite.h.in
src/sqliteInt.h
src/vdbe.c
src/vdbeaux.c
src/wal.c
test/permutations.test
test/walro.test

Simple merge
diff --cc main.mk
Simple merge
diff --cc manifest
index 001b065037fe5cf1043d77e59fc3a690308bccf2,646aa7b681fb91002e048aa7d18501d4ebbd4858..13520c2d6557579318fbb7bccec1ca055978b24b
+++ b/manifest
@@@ -1,5 -1,5 +1,5 @@@
- C Merge\sthe\slatest\strunk\senhancements\sand\sfixes\sinto\sthe\sbedrock\sbranch\svia\swal2.
- D 2026-05-29T18:18:03.258
 -C Merge\sthe\slatest\strunk\senhancements\sand\sfixes\sinto\sthe\swal2\sbranch.
 -D 2026-06-22T20:23:43.544
++C Merge\sthe\slatest\strunk\schanges\sinto\sthe\sbedrock\sbranch\sthrough\swal2
++D 2026-06-22T20:51:19.799
  F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
  F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
  F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@@ -474,7 -471,7 +473,7 @@@ F ext/rbu/rbuvacuum.test e3585cfda22003
  F ext/rbu/rbuvacuum2.test 1a9bd41f127be2826de2a65204df9118525a8af8d16e61e6bc63ba3ac0010a23
  F ext/rbu/rbuvacuum3.test 3ce42695fdf21aaa3499e857d7d4253bc499ad759bcd6c9362042c13cd37d8de
  F ext/rbu/rbuvacuum4.test ffccd22f67e2d0b380d2889685742159dfe0d19a3880ca3d2d1d69eefaebb205
- F ext/rbu/sqlite3rbu.c 73285ff77cb73754ea24b757928afdb3fed4f5f39e2154588c188e604cd08fe4
 -F ext/rbu/sqlite3rbu.c c84dd68888640c56aa4d713e38013a202b10bf1ef2e423f7be2167bd826e69d8
++F ext/rbu/sqlite3rbu.c 4f35725ada43656d530986f933234732141dd0c328005692c9676eaa9f63bb89
  F ext/rbu/sqlite3rbu.h e3a5bf21e09ca93ce4e8740e00d6a853e90a697968ec0ea98f40826938bdb68e
  F ext/rbu/test_rbu.c 8b6e64e486c28c41ef29f6f4ea6be7b3091958987812784904f5e903f6b56418
  F ext/recover/dbdata.c 10d3c56968a9af6853722a47280805ad1564714d79ea45ac6f7da14bb57fd137
@@@ -668,7 -661,7 +667,7 @@@ F ext/wasm/tests/opfs/sahpool/index.htm
  F ext/wasm/tests/opfs/sahpool/sahpool-pausing.js f264925cfc82155de38cecb3d204c36e0f6991460fff0cb7c15079454679a4e2
  F ext/wasm/tests/opfs/sahpool/sahpool-worker.js bd25a43fc2ab2d1bafd8f2854ad3943ef673f7c3be03e95ecf1612ff6e8e2a61
  F magic.txt 5ade0bc977aa135e79e3faaea894d5671b26107cc91e70783aa7dc83f22f3ba0
- F main.mk 696254a21fd50deb4c6b949cf641233c270458aa1bb143a3ddaa64c44fff3fc2
 -F main.mk d96e1c865d8399db867d6f0e5024ec064b2978d593b1040068ee51c92edb5ecb
++F main.mk 564939d825df9d60b627c8c824520c47b6f555088461b2089acc23acc5ee618b
  F make.bat a136fd0b1c93e89854a86d5f4edcf0386d211e5d5ec2434480f6eea436c7420c
  F mptest/config01.test 3c6adcbc50b991866855f1977ff172eb6d901271
  F mptest/config02.test 4415dfe36c48785f751e16e32c20b077c28ae504
@@@ -679,38 -672,38 +678,38 @@@ F mptest/multiwrite01.test dab5c5f8f953
  F sqlite.pc.in 42b7bf0d02e08b9e77734a47798d1a55a9e0716b
  F sqlite3.1 1b9c24374a85dfc7eb8fa7c4266ee0db4f9609cceecfc5481cd8307e5af04366
  F sqlite3.pc.in e6dee284fba59ef500092fdc1843df3be8433323a3733c91da96690a50a5b398
- F src/alter.c d7cbe4332a7a2c3a21ab58ee2609efade493f6ae78254613ada0759898629ee3
- F src/analyze.c ebfe8c9c55e44c5ca2bb885f84b133cde7a37e99ea5e3bf1c2782fb7e34b0882
+ F src/alter.c da59ac700b52ba5d0e4dd099fb1818975cf8a79a546594da586b4e1eba3ae405
 -F src/analyze.c 73162482c656187823217f4c00758c9ee13a420c8745bc542129e0279b792287
++F src/analyze.c a899899fab9f70d541eac982c8d9cfffab9f83cdd335d3e7a6586fe316f0adb4
  F src/attach.c c58278c7d2d954785591c4fde81669ec3e4d52f348c453b028a19ae8adf4f338
  F src/auth.c b5ece4e1edccad082c0332fa0087df225473bae0feea9269f824312201377185
  F src/backup.c 6ebe22ccbedfcb92423833992130e8d65824be4e6599c3a03f540ab38fc7d13c
 -F src/bitvec.c e242d4496774dfc88fa278177dd23b607dce369ccafb3f61b41638eea2c9b399
 +F src/bitvec.c 1a048c91b2fbccbbc32dcefa757f93216c0f518ed2bc0b4db39947264479ad06
  F src/btmutex.c 30dada73a819a1ef5b7583786370dce1842e12e1ad941e4d05ac29695528daea
- F src/btree.c 04d5148ccd6aae7e01018cd3a78d47d6361715775afd64141032a267767ab9a0
- F src/btree.h dcda10d5a5d29690dc2739b8d4d416d136760ab1dbe88a2dd417855e1775e37a
- F src/btreeInt.h c3b8750a8dd8bc9a38840be463e7d23899b9da08276fa442e2bb8efd1052bc48
- F src/build.c d8c5a96879d235ddc088ebe7c2aa8973b41cbd79de6def1440c5cf03a407d24f
 -F src/btree.c fb4fa3265b5f06d95407651d69ab43d47a0034ef9f6226ebd83a533c525b170a
 -F src/btree.h d19e634e0fafd63d13b198df3a6306317a88a0d3daef7af8686e24a014933837
 -F src/btreeInt.h 4f512ad31083216b6789762d4c345b73367985d3b39421c9ba7c0902d09fb38b
 -F src/build.c 09946336c3011c2ae2faccdf04e33336e1cd51fd836651be0cd7eb5814f7f6a0
 -F src/callback.c 3605bbf02bd7ed46c79cd48346db4a32fc51d67624400539c0532f4eead804ad
++F src/btree.c 6a2bbdf7d930787336d895a58ebc792c07d5e51733c895dd968761f62cdd5786
++F src/btree.h 204cc423f88a38fcff552367fd2f767b11707fcdc7ce3f87a30b62bfc21001c1
++F src/btreeInt.h 8da05bbbb58a24568883a1fd0c2918d302b482454230fd2070d3d6c114d53280
++F src/build.c 494ec6b8e8ce0d85ad46b628efdeed4a4dd67bf3e1c54fd064a5d817039b5dd8
 +F src/callback.c 6987b99f738d9f68fe95ff482cdc10a9bf3df2051319d3d418b7cd22e725825e
  F src/carray.c 3efe3982d5fb323334c29328a4e189ccaef6b95612a6084ad5fa124fd5db1179
  F src/complete.c f216b970ce99c5a657556cf1f17e7ddd494515d3beb63df426bf59ff43bd3d9a
- F src/date.c 61e92f1f7e2e88e1cd91e91dc69eb2b2854e7877254470f9fabd776bfac922b8
+ F src/date.c 86d9530729eeb5b3d833e7403de495f4d4b79f3d5f7e74bcc8abda237f5aeafb
  F src/dbpage.c c6a9de13b0a01f0bc94a41e16213ab1ecd15ccfe86df7255ced40fda9446257d
  F src/dbstat.c 73362c0df0f40ad5523a6f5501224959d0976757b511299bf892313e79d14f5c
  F src/delete.c 59eeca3fb88c29329afc41bb803ee568b120d9dd7470b5f38ab55cc38390b451
- F src/expr.c d2188a699ded4522f15cf23d4c82da0ad73dcda09cd943982906824ef019947f
+ F src/expr.c e97dd9f6ada4c448764e225d8963091bf630b3efb2c92e4d0762571cca2a14e5
  F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
  F src/fkey.c 931f74cec1dc8038a0217ef340c91ce147dd1bbed08dc40c47ee0ec6edfffb08
- F src/func.c 716afb645e15f28172ce72093fa3ee6acffc314e90823c04903f82ea7c66a0e8
- F src/global.c a19e4b1ca1335f560e9560e590fc13081e21f670643367f99cb9e8f9dc7d615b
 -F src/func.c 7e049176003271095ba560bca90995c8cb7c1e944aee539513daba015b172a18
++F src/func.c c8041843c89ee5896e58120b2713fed926f0bfec951f5162672897082db70090
+ F src/global.c 7eea537ac0c113ac55cb2dd4d8fc2a6a91ae478be34231b4efaffc46817fee85
  F src/hash.c 03c8c0f4be9e8bcb6de65aa26d34a61d48a9430747084a69f9469fbb00ea52ca
  F src/hash.h 46b92795a95bfefb210f52f0c316e9d7cdbcdd7e7fcfb0d8be796d3a5767cddf
- F src/hwtime.h 21c2cf1f736e7b97502c3674d0c386db3f06870d6f10d0cf8174e2a4b8cb726e
+ F src/hwtime.h 5cb15147c8583d0fc4748e1c12ea6f38c9deaeefa147a4d8d379fd9bc81fee9a
  F src/in-operator.md 10cd8f4bcd225a32518407c2fb2484089112fd71
- F src/insert.c 8dbc22f6ddcc5f0af3abf11daeb89b1978f00059cda15ebc61251fa7724fc7ee
- F src/json.c 83122c47ac1c86a3870398e872b1d1afa6439f46fdb92975aa435267771c7ee4
+ F src/insert.c e6e9b574b4863649e2c433f2260f226183e697df1ab73fcb8da9a85d5abcd390
+ F src/json.c f058c449acb9fdb1d3d1bb9f7e97b225ba773f5b6fdcec4310d3f49980125ed4
  F src/legacy.c d7874bc885906868cd51e6c2156698f2754f02d9eee1bae2d687323c3ca8e5aa
- F src/loadext.c 78d5b06f18996ffa1203129b28fea043f63a87a4117539678f1d761c30b4ff65
- F src/main.c 23801fa412f0d830a901f94f224337e73047fe287d257b3cbbc1bbb5409fa38b
+ F src/loadext.c 5cd4cd7ec6e1a46416806899086363fbf95eecd3bfb9a388b436c9a77243c902
 -F src/main.c efd782fadd65b8e67952f439d56d7605134582346573018a614a8e082e074bd7
++F src/main.c 0eda494d014ba05da4cb6c63b6699a8a381ecba870247e1cbd1113f88913eccc
  F src/malloc.c 422f7e0498e1c9ef967f06283b6f2c0b16db6b905d8e06f6dbc8baaa3e4e6c5a
  F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645
  F src/mem1.c 3bb59158c38e05f6270e761a9f435bf19827a264c13d1631c58b84bdc96d73b2
@@@ -726,32 -719,32 +725,32 @@@ F src/mutex_noop.c 9d4309c075ba9cc7249e
  F src/mutex_unix.c caec9862aeebad01f6c8997cf709a239abeb0715fcce1895720b87fe7e2ef42f
  F src/mutex_w32.c d44e94c064f8ab39e0318fb6fa00171cf7e5645bd4241129b07d655a8ddbd44b
  F src/notify.c 57c2d1a2805d6dee32acd5d250d928ab94e02d76369ae057dee7d445fd64e878
- F src/os.c 509452169d5ea739723e213b8e2481cf0e587f0e88579a912d200db5269f5f6d
+ F src/os.c 9566966dd14376099fe8f715e744ab4fef204f55bd89126c5ddd06eb37df9457
  F src/os.h 1ff5ae51d339d0e30d8a9d814f4b8f8e448169304d83a7ed9db66a65732f3e63
  F src/os_common.h 6c0eb8dd40ef3e12fe585a13e709710267a258e2c8dd1c40b1948a1d14582e06
- F src/os_kv.c e7d96727db5b67e39d590a68cc61c86daf4c093c36c011a09ebfb521182ec28d
+ F src/os_kv.c 26ccc36ea963d328682fa685a106d7404617a2284ecdc7a35fb38d0c9242f440
  F src/os_setup.h 8efc64eda6a6c2f221387eefc2e7e45fd5a3d5c8337a7a83519ba4fbd2957ae2
 -F src/os_unix.c 83759942d1ea8d59daed50901c123016f845fada74caf3496b8a2537c9a08838
 +F src/os_unix.c 31ca9c40498f81b3f030cf270df5fbaa3fb007dcacd005153cae7bd832feb53a
- F src/os_win.c 8df4b34ec6a08616a7ac33164999524ef773fa359d39ae9ae0e7e1ae4f167440
+ F src/os_win.c 68b1c31693a5aeeb8126f618c95f7b53fb39e254836f9a95fbf2733461a7e01d
  F src/os_win.h c06ccc3a090cf54202ea58981c298817f3309d4c9e4d52ad0a02927346493721
- F src/pager.c 7b386062c19215e0566fe5705264168ea4902360f75ab6bc13456184738380f8
 -F src/pager.c 8905b7631714a8e20c610501b4262e0615be7b3604e1fe1fa893f34bd6f04bc6
 -F src/pager.h fc0c95d27f2aefffcb39b4373b3557e89e1b4b9a36b183cc04d6f22002bf0ad2
 -F src/parse.y d5a3c5b0277a441c38b35071c05e2b61ff5fc918a63309c809f4b6706179c320
++F src/pager.c 9f84d3cc4bdd41f4726746d065955767ed8eae59ea315dc32606b9af22647d43
 +F src/pager.h dd6ade22dd303a8ca6c34f1ff0f299add7191c1bff65f0289b7fd7c3460f9551
 +F src/parse.y 7ff18f44e0ae1e71902101988621809537bccf9639ecd85ccea082b1b6643f2f
  F src/pcache.c 588cc3c5ccaaadde689ed35ce5c5c891a1f7b1f4d1f56f6cf0143b74d8ee6484
  F src/pcache.h 092b758d2c5e4dabb30eae46d8dfad77c0f70b16bf3ff1943f7a232b0fe0d4ba
- F src/pcache1.c 69b3a3e00e56dd03749af545084f4c823690400e8b12fcefba948f8fd975b84a
 -F src/pcache1.c d7ee0f95992501a65379f620b3de1430b64e52e397769938668a9fd9dd1c8145
++F src/pcache1.c a7ac8ded9a2395bfefcda7ca20583f7573ba57204e710384552f343e8717d2b7
  F src/pragma.c 06feccc280ac006b084e5a03a85466aba46aa75bdd7b3cca5a7343e46a0b8875
- F src/prepare.c 084a037fd3810cb7ffbfc001cd58c0ffac68ba36598a5084b55ea2a090014ebd
- F src/printf.c 2bc09ee91d69c709528575bbbee2199e16d6a7e68e1508ac7cf998a7289170ca
+ F src/prepare.c d055c59c23b917367ed199a52888132316aa9cb9f7653ca71f0c45bd267206fd
+ F src/printf.c 6916d50913c3271aefe96d3483701ceca8644331ec4c7b23a5aa54a9ba36230f
 -F src/random.c 606b00941a1d7dd09c381d3279a058d771f406c5213c9932bbd93d5587be4b9c
 +F src/random.c 9bd018738ec450bf35d28050b4b33fa9a6eebf3aaefb1a1cff42dc14a7725673
- F src/resolve.c 7e936a09405cb59e2b3e51a3ad23753e4803afc5269c5171a54c9bdd70f4fc50
+ F src/resolve.c d0724113da9f5c0430d2052808ce59519f51ae7c4fbb1f5ef21fe3a832956086
  F src/rowset.c 8432130e6c344b3401a8874c3cb49fefe6873fec593294de077afea2dce5ec97
- F src/select.c 6533b3358771537ec332ee5b4b741a963f352b2299e4610bfae77aad0b611fc5
- F src/shell.c.in a04d063955a69449e5bd876956ba14cf69a897eda1f5477862ab6f2bbf0d3852
- F src/sqlite.h.in c25d19eecf3be70149c04be323680da4fbde165d8c501e04e25030186cbe6b79
 -F src/select.c 80ea6935f8470b97d1212bc1b759b7fadb28351797877f493d0cf598be1fef5e
++F src/select.c 0cd976ec0d56ba801784cef696c235d8be4c1693f1c521d8aef0567ae799a29b
+ F src/shell.c.in a4e83895cfa336065ad7f7a7dea8fc2a19d050f7ce7466621c67208acaac9e44
 -F src/sqlite.h.in 8c70db561507478176b942a3f88cac396e00993eafb827ed31d48c191f327408
++F src/sqlite.h.in 51e8aa4c3f5f4914bac47869d95ce944dad05585ef4898f0c510220c9c21ff17
  F src/sqlite3.rc 015537e6ac1eec6c7050e17b616c2ffe6f70fca241835a84a4f0d5937383c479
- F src/sqlite3ext.h 9788c301f95370fa30e808861f1d2e6f022a816ddbe2a4f67486784c1b31db2e
- F src/sqliteInt.h a62e43c60bbb1e4f0bfb0f11d71d8eab8d0703bcecd78d79486e5e174db98112
+ F src/sqlite3ext.h 0efd4723bad9124ea1f581d9f1ea0254ac1c6f3e5fb29e4f3dcf36c72485a456
 -F src/sqliteInt.h 92563b8edc673513b82d87bf6a8d7aeb554b2c7b7d5e30992fbca04010db79ac
++F src/sqliteInt.h a68786b14a4b090622cb3a94e22dc192fe59a8513ee05b77b0d6c00726f6f638
  F src/sqliteLimit.h c70656b67ab5b96741a8f1c812bdd80c81f2b1c1e443d0cc3ea8c33bb1f1a092
  F src/status.c 7565d63a79aa2f326339a24a0461a60096d0bd2bce711fefb50b5c89335f3592
  F src/table.c 0f141b58a16de7e2fbe81c308379e7279f4c6b50eb08efeec5892794a0ba30d1
@@@ -807,32 -800,32 +806,32 @@@ F src/test_wsd.c 41cadfd9d97fe8e3e4e44f
  F src/threads.c 85d8b9f05f78211c61e3739ab5db761d7118766d1916ae7f2764735106bc4e13
  F src/tokenize.c e9d52d9f7374d82dadcd11726bea8a597d43709d6672704f3f0375bf1d726912
  F src/treeview.c feaa59f14db4f7b5aacca9c5ad5aeb562c1f98262c1ffd74371f4186ade91fc5
- F src/trigger.c 4bf3bfb3851d165e4404a9f9e69357345f3f7103378c07e07139fdd8aeb7bd20
+ F src/trigger.c 5028874dd1f4fd3085bacd55c30114b5ad651525508656f65af09adf227181d5
 -F src/update.c 3e5e7ff66fa19ebe4d1b113d480639a24cc1175adbefabbd1a948a07f28e37cf
 +F src/update.c e1a8b1876e6f2a1824a6b9f1999a03d5dd50ce250a1bb86ea133e5b4b359488b
- F src/upsert.c 215328c3f91623c520ec8672c44323553f12caeb4f01b1090ebdca99fdf7b4f1
+ F src/upsert.c dd9f0fcccbfb4f20e1026a21a7254ba3f2c08e9cfa92affaff5b5ec3b00ea549
  F src/utf.c 7267c3fb9e2467020507601af3354c2446c61f444387e094c779dccd5ca62165
  F src/util.c 98cf12c8ba65623a76c1eb6e6afa98ff40107c9919bf79af42f4bfc70e654232
 -F src/vacuum.c d3d35d8ae893d419ade5fa196d761a83bddcbb62137a1a157ae751ef38b26e82
 -F src/vdbe.c b9310a702ac30578eea5d236a2769e9c1834a756796b83c0d8cb40de0a2374ba
 +F src/vacuum.c 09d61b53904979f2c6acb740121fd0d1b5371f962baaaa2dbbe449b5535ff581
- F src/vdbe.c 383144666ec04dcb55375acac6635f2264f9dc7c6a5414b898cd6e92f2dafbdf
++F src/vdbe.c 6f45dbf305d61eaa0e98b61c8e17688a8c68ec36350024ff63bedb4905832175
  F src/vdbe.h 70e862ac8a11b590f8c1eaac17a0078429d42bc4ea3f757a9af0f451dd966a71
  F src/vdbeInt.h c31ba4dc8d280c2b1dc89c6fcee68f2555e3813ab34279552c20b964c0e338b1
- F src/vdbeapi.c 6cdcbe5c7afa754c998e73d2d5d2805556268362914b952811bdfb9c78a37cf1
- F src/vdbeaux.c a13a35c85809f8bbcc19364ffa54be5dadc9ddd1c76eee5482fc3e8273140c33
+ F src/vdbeapi.c 15c55a4be8edc06055502e15f60f444c8fc5cb6134e38b8486742e89670d5e8f
 -F src/vdbeaux.c 65782331dc67a7e02b8df0fffb0b2a082a29fc81c4abbde15828cf1d0654a568
++F src/vdbeaux.c f9139e8b534c81b839fb5a2acc9c5ca3461f173b5dba185161fc2de834fa5d43
  F src/vdbeblob.c b3f0640db9642fbdc88bd6ebcc83d6009514cafc98f062f675f2c8d505d82692
- F src/vdbemem.c efacb8f229422d2a4db0ed38e49b7f3897862a98d82b261aa3b43d7a2d98c6da
+ F src/vdbemem.c 6e7ad67507c9a8e625b46256a9c003929331d6a27b99bbe139b8f0dab636e1f2
  F src/vdbesort.c b69220f4ea9ffea5fdef34d968c60305444eea909252a81933b54c296d9cca70
  F src/vdbetrace.c 49e689f751505839742f4a243a1a566e57d5c9eaf0d33bbaa26e2de3febf7b41
  F src/vdbevtab.c fc46b9cbd759dc013f0b3724549cc0d71379183c667df3a5988f7e2f1bd485f3
  F src/vtab.c 5437ce986db2f70e639ce8a3fe68dcdfe64b0f1abb14eaebecdabd5e0766cc68
  F src/vxworks.h 9d18819c5235b49c2340a8a4d48195ec5d5afb637b152406de95a9436beeaeab
- F src/wal.c b770732943dc5ac0176b6b7d18a66c33f94267859deefee683e120e141eda486
 -F src/wal.c 610467d13cef79cccb9d6eddfe2d83956cc68be1f000b30cb78e42ece924e40c
 -F src/wal.h 97b8a9903387401377b59507e86b93a148ef1ad4e5ce0f23659a12dcdce56af2
++F src/wal.c bfdcaa5509509ce6c25d9ce61a45cd90cb0d2fc9138933d802e95261d75553a4
 +F src/wal.h 4f25678500c97bf59c627fa4ed8b9fc4f5bbb958b2e26cc638e42d13509848c3
  F src/walker.c d5006d6b005e4ea7302ad390957a8d41ed83faa177e412f89bc5600a7462a014
- F src/where.c 33e4a6558ee69f33d6a4e7069e3a40a55959d14e5653a9a83926e70305d471f3
+ F src/where.c e76636ee3a58a3fc84e6a0362c69dd61234c24a77cfc9219b8db8cc2278ae5b7
  F src/whereInt.h 8d94cb116c9e06205c3d5ac87af065fc044f8cf08bfdccd94b6ea1c1308e65da
- F src/wherecode.c 4d573077652f79780d6b50840ab8cbb72053dbb4eb230780dd2a146ab034475d
- F src/whereexpr.c d111a5cb6147253a54010d883474b6aecc0b3009d352c087ee5295d74697bfef
- F src/window.c c0a38cd32473e8e8e7bc435039f914a36ca42465506dc491c65870c01ddac9fb
+ F src/wherecode.c bc39ccbe3648f01157038b16cc55bdbff128590972b7185521b5526dc2815765
+ F src/whereexpr.c 00e778c829a6ac6bf2bb8899cd1e39ccc48670d665b5891e99632180a2768a15
+ F src/window.c 0d7dacdf2e84c6ee8ff498d5cc881dd245fcb2f14f6c5976e97e112ce96e90dc
  F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2
  F test/affinity2.test 4d7a34d328e58ca2a2d78fd76c27614a41ca7ddf4312ded9c68c04f430b3b47d
  F test/affinity3.test 9b7d1133e11d5edd7805573c4ab6f3ba73b0b74a1f280d5b130d4bf3506a93ff
@@@ -1190,10 -1170,10 +1189,10 @@@ F test/fts3conf.test c9cd45433b6787d48a
  F test/fts3corrupt.test 6732477c5ace050c5758a40a8b5706c8c0cccd416b9c558e0e15224805a40e57
  F test/fts3corrupt2.test e318f0676e5e78d5a4b702637e2bb25265954c08a1b1e4aaf93c7880bb0c67d0
  F test/fts3corrupt3.test 0d5b69a0998b4adf868cc301fc78f3d0707745f1d984ce044c205cdb764b491f
 -F test/fts3corrupt4.test c7f414fe29b97a478d15c90382c4ae077a2bbd2283bf8c63bf66dadaaed3edb8
 +F test/fts3corrupt4.test bf9eabf113474f0ae73c9e001aeb3fcf2150b260f2309f300379cbd46b45bdfb
  F test/fts3corrupt5.test 0549f85ec4bd22e992f645f13c59b99d652f2f5e643dac75568bfd23a6db7ed5
- F test/fts3corrupt6.test f417c910254f32c0bc9ead7affa991a1d5aec35b3b32a183ffb05eea78289525
- F test/fts3corrupt7.test 1da31776e24bb91d3c028e663456b61280b121a74496ccf2fef3fe33790ad2b0
+ F test/fts3corrupt6.test 9ea944e3cd17a36c64451059022fabff53bd338a43356d1f49264ce8aa9477ad
+ F test/fts3corrupt7.test 8564d278801a7947d1c74d8819adee7dfed18b81574d0c42f8a1acc6759fc65a
  F test/fts3cov.test 1e5ecea0e4c1394cea97adcfb9fd3d2d5998fd563dacf465f413e6c7fa5cffb3
  F test/fts3d.test 2bd8c97bcb9975f2334147173b4872505b6a41359a4f9068960a36afe07a679f
  F test/fts3defer.test f4c20e4c7153d20a98ee49ee5f3faef624fefc9a067f8d8d629db380c4d9f1de
@@@ -1529,11 -1510,12 +1529,11 @@@ F test/pagerfault2.test caf4c7facb914fd
  F test/pagerfault3.test 1003fcda009bf48a8e22a516e193b6ef0dd1bbd8
  F test/pageropt.test 84e4cc5cbca285357f7906e99b21be4f2bf5abc0
  F test/pagesize.test 5769fc62d8c890a83a503f67d47508dfdc543305
 -F test/parser1.test 131f4733472252d53d8ed681115257866f55740ab697fa05900d766049348f27
  F test/pcache.test c8acbedd3b6fd0f9a7ca887a83b11d24a007972b
- F test/pcache2.test af7f3deb1a819f77a6d0d81534e97d1cf62cd442
+ F test/pcache2.test 8a801d2b8e4b0ebb99701f026a67a9e84634c8aa24799a842c44003b93250da1
  F test/pendingrace.test e99efc5ab3584da3dfc8cd6a0ec4e5a42214820574f5ea24ee93f1d84655f463
- F test/percentile.test eaee1ff3e35d5fe933ac98d927c9a7d2f4f1a1a19ee22e7d45e97a6d9ee32077
- F test/permutations.test 965b59d667eac286a6dc74c7cc93943683834708bb6870028b6f12af8faec68f
+ F test/percentile.test fd78896fa882fa4fbf693640097859721f3629926c2ccf804af5bcb7001fd35b
 -F test/permutations.test 4be6fbed7384102c2b366101a35644cc15f9acb595d8e126b4f186155a75de16
++F test/permutations.test aa73d14d4b1120686f6d9a6dd337103613ed09a6d6c718876c2c4c5a94fabd02
  F test/pg_common.tcl 3b27542224db1e713ae387459b5d117c836a5f6e328846922993b6d2b7640d9f
  F test/pragma.test 7d07b7bb76e273215d6a20c4f83c3062cc28976c737ccb70a686025801e86c8f
  F test/pragma2.test e5d5c176360c321344249354c0c16aec46214c9f
@@@ -2057,9 -2036,9 +2057,9 @@@ F test/walpersist.test 8d78a1ec91299163
  F test/walprotocol.test 1b3f922125e341703f6e946d77fdc564d38fb3e07a9385cfdc6c99cac1ecf878
  F test/walprotocol2.test 7e4bedd5ee83607e2928ac438bf7332a396b980d3e02aa0746509ce11ad1f13c
  F test/walrestart.test 5168c0c2414d1971d8dec949c1070a0144cf15402361ba0d0e6a8054f5598a64
- F test/walro.test 78a84bc0fdae1385c06b017215c426b6845734d6a5a3ac75c918dd9b801b1b9d
 -F test/walro.test 1f011c21e00596bf7135ef1a8b781ffa96e5a22eabe2ae80ab84cf67b12c577e
++F test/walro.test 1a4d88af29f748c1eeea2c005cfc0abfe4a5e943a7b498c911532fe3911ed2ba
  F test/walro2.test 33955a6fd874dd9724005e17f77fef89d334b3171454a1256fe4941a96766cdc
 -F test/walrofault.test c70cb6e308c443867701856cce92ad8288cd99488fa52afab77cca6cfd51af68
 +F test/walrofault.test 5a25f91c16a68bae65edec7cdef4495e5c6494c8408743fe9b29045fa6665cd0
  F test/walseh1.test bae700eb99519b6d5cd3f893c04759accc5a59c391d4189fe4dd6995a533442b
  F test/walsetlk.test 9079cd8ef82570b8cf0067f31e049a72bec353fb2d5f0cc88f1736dc42ba9704
  F test/walsetlk2.test 4a67823b1e759ac5a4fe78a83c1f857c3c5761bf8d755421c8b55907957f23dd
@@@ -2245,8 -2222,8 +2245,8 @@@ F tool/warnings-clang.sh bbf6a1e685e534
  F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2
  F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
  F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c
- P ec9bab4d19caf5fc9fb9984ec444a121a525e336dc26bb25503754ad995d9d07 d8cf1a62aff38de008f9b826c4846b15e37c89dc0f8bb412b79349da4d1580b0
- R b1c14740d405d471d04e87b1600b2bf9
 -P 0c3a346d659fe041f3a8bccf357a2b435e49fbfdf34de4c55b1435b1db1e21c2 35b3ff4007fc1abd36233a6b3b75bb6a123edc062f36437247c3dfe779868b70
 -R ad8dbadc0467625c11ed3bf8b7ffe64b
++P a06796a33c5ae847172a1acf833b06245df1b63b0445c0e2f1db8e9beee10617 48bb7da1bf482ff3f0e3af240ea1f10a485f9819f0d47a1db79a33ec160eb814
++R 00f50ec23e47a4988a8a32a85bc431cc
  U drh
- Z 0ac756ce6c13878ee14480ce63416bec
 -Z c21c54bb710538373be6f17523f00c9b
++Z 637ce7439cf6ef99e8892a28e658821e
  # Remove this line to create a well-formed Fossil manifest.
diff --cc manifest.uuid
index b7bfd4c0a1fe2f330e91648110835acd03daaffa,211acf37e769a5a21402813c3ba8c15f0c1408a7..fe34d69e0b305d261a2f91509e9282de3da1b365
@@@ -1,1 -1,1 +1,1 @@@
- a06796a33c5ae847172a1acf833b06245df1b63b0445c0e2f1db8e9beee10617
 -48bb7da1bf482ff3f0e3af240ea1f10a485f9819f0d47a1db79a33ec160eb814
++2a75dcd3a8590fb575ea51ec4e6f91fb149b5b401327cc57f2b62a5331fc265b
diff --cc src/analyze.c
index b24be3e2b8f93684e223459d1d6aa8d78a6c3dd1,b1523c9e69261cc305416396eb0bb6738fd6cc9f..9d520f5cba8c7a7c01c40ace9f8cc020aa8d15b2
@@@ -1766,110 -1753,8 +1766,110 @@@ static Index *findIndexOrPrimaryKey
  }
  
  /*
 -** Load the content from either the sqlite_stat4
 -** into the relevant Index.aSample[] arrays.
 +** Grow the pIdx->aSample[] array. Return SQLITE_OK if successful, or
 +** SQLITE_NOMEM otherwise.
 +*/
 +static int growSampleArray(sqlite3 *db, Index *pIdx, int *piOff){
 +  int nIdxCol = pIdx->nSampleCol;
 +  int nNew = 0;
 +  IndexSample *aNew = 0;
 +  int nByte = 0;
 +  tRowcnt *pSpace; /* Available allocated memory space */
 +  u8 *pPtr;        /* Available memory as a u8 for easier manipulation */
 +  int i;
 +  u64 t;
 +
 +  assert( pIdx->nSample==pIdx->nSampleAlloc );
 +  nNew = SQLITE_STAT4_EST_SAMPLES;
 +  if( pIdx->nSample ){
 +    nNew = pIdx->nSample*2;
 +  }
 +
 +  /* Set nByte to the required amount of space */
-   nByte = ROUND8(sizeof(IndexSample) * nNew);
-   nByte += sizeof(tRowcnt) * nIdxCol * 3 * nNew;
-   nByte += nIdxCol * sizeof(tRowcnt);   /* Space for Index.aAvgEq[] */
++  nByte = ROUND8(sizeof64(IndexSample) * nNew);
++  nByte += sizeof64(tRowcnt) * nIdxCol * 3 * nNew;
++  nByte += nIdxCol * sizeof64(tRowcnt);   /* Space for Index.aAvgEq[] */
 +
 +  if( nNew==SQLITE_STAT4_EST_SAMPLES ){
 +    aNew = (IndexSample*)&((u8*)pIdx->pSchema->pStat4Space)[*piOff];
 +    *piOff += nByte;
 +    assert( *piOff<=sqlite3_msize(pIdx->pSchema->pStat4Space) );
 +  }else{
 +    aNew = (IndexSample*)sqlite3DbMallocRaw(db, nByte);
 +    if( aNew==0 ) return SQLITE_NOMEM_BKPT;
 +  }
 +
 +  pPtr = (u8*)aNew;
-   pPtr += ROUND8(nNew*sizeof(pIdx->aSample[0]));
++  pPtr += ROUND8(nNew*sizeof64(pIdx->aSample[0]));
 +  pSpace = (tRowcnt*)pPtr;
 +
 +  pIdx->aAvgEq = pSpace; pSpace += nIdxCol;
 +  assert( EIGHT_BYTE_ALIGNMENT( pSpace ) );
 +
 +  if( pIdx->nSample ){
 +    /* Copy the contents of the anEq[], anLt[], anDLt[] arrays for all
 +    ** extant samples to the new location.  */
 +    int nByte = nIdxCol * 3 * sizeof(tRowcnt) * pIdx->nSample;
 +    memcpy(pSpace, pIdx->aSample[0].anEq, nByte);
 +  }
 +  for(i=0; i<nNew; i++){
 +    aNew[i].anEq = pSpace; pSpace += nIdxCol;
 +    aNew[i].anLt = pSpace; pSpace += nIdxCol;
 +    aNew[i].anDLt = pSpace; pSpace += nIdxCol;
 +    if( i<pIdx->nSample ){
 +      aNew[i].p = pIdx->aSample[i].p;
 +      aNew[i].n = pIdx->aSample[i].n;
 +    }
 +  }
 +  assert( ((u8*)pSpace)-nByte==(u8*)aNew );
 +
 +  if( pIdx->nSample!=SQLITE_STAT4_EST_SAMPLES ){
 +    sqlite3DbFree(db, pIdx->aSample);
 +  }
 +  pIdx->aSample = aNew;
 +  pIdx->nSampleAlloc = nNew;
 +  return SQLITE_OK;
 +}
 +
 +/*
 +** Allocate the space that will likely be required for the Index.aSample[] 
 +** arrays populated by loading data from the sqlite_stat4 table. Return
 +** SQLITE_OK if successful, or SQLITE_NOMEM otherwise.
 +*/
 +static int stat4AllocSpace(sqlite3 *db, const char *zDb){
 +  int iDb = sqlite3FindDbName(db, zDb);
 +  Schema *pSchema = db->aDb[iDb].pSchema;
 +  int nByte = 0;
 +  HashElem *k;
 +
 +  assert( iDb>=0 );
 +  assert( pSchema->pStat4Space==0 );
 +  for(k=sqliteHashFirst(&pSchema->idxHash); k; k=sqliteHashNext(k)){
 +    Index *pIdx = sqliteHashData(k);
 +    int nIdxCol;
 +    if( !HasRowid(pIdx->pTable) && IsPrimaryKeyIndex(pIdx) ){
 +      nIdxCol = pIdx->nKeyCol;
 +    }else{
 +      nIdxCol = pIdx->nColumn;
 +    }
-     nByte += ROUND8(sizeof(IndexSample) * SQLITE_STAT4_EST_SAMPLES);
-     nByte += sizeof(tRowcnt) * nIdxCol * 3 * SQLITE_STAT4_EST_SAMPLES;
-     nByte += nIdxCol * sizeof(tRowcnt);   /* Space for Index.aAvgEq[] */
++    nByte += ROUND8(sizeof64(IndexSample) * SQLITE_STAT4_EST_SAMPLES);
++    nByte += sizeof64(tRowcnt) * nIdxCol * 3 * SQLITE_STAT4_EST_SAMPLES;
++    nByte += nIdxCol * sizeof64(tRowcnt);   /* Space for Index.aAvgEq[] */
 +  }
 +
 +  if( nByte>0 ){
 +    pSchema->pStat4Space = sqlite3_malloc(nByte);
 +    if( pSchema->pStat4Space==0 ){
 +      return SQLITE_NOMEM_BKPT;
 +    }
 +  }
 +
 +  return SQLITE_OK;
 +}
 +
 +/*
 +** Load the content from the sqlite_stat4 into the relevant Index.aSample[]
 +** arrays.
  **
  ** Arguments zSql1 and zSql2 must point to SQL statements that return
  ** data equivalent to the following:
diff --cc src/btree.c
Simple merge
diff --cc src/btree.h
Simple merge
diff --cc src/btreeInt.h
Simple merge
diff --cc src/build.c
Simple merge
diff --cc src/func.c
Simple merge
diff --cc src/main.c
Simple merge
diff --cc src/pager.c
Simple merge
diff --cc src/pcache1.c
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/vdbe.c
Simple merge
diff --cc src/vdbeaux.c
Simple merge
diff --cc src/wal.c
Simple merge
Simple merge
diff --cc test/walro.test
index a39b844d9dd0121e64e62c91fc15608afb87d5d3,80e2b8d02ca69b56abae04534bb4a83b2c204de4..ef1d2b88149e418df3e3cab9891f748c453ed6fa
@@@ -297,4 -297,49 +297,49 @@@ do_multiclient_test tn 
    } {}
  }
  
 -  fconfigure $fd -translation binary -encoding binary
+ #-------------------------------------------------------------------------
+ proc write_hex_file {fname hex} {
+   set fd [open $fname wb]
++  fconfigure $fd -translation binary
+   puts -nonewline $fd [decode_hexdb $hex]
+   close $fd
+ }
+ write_hex_file test.db {
+ | size 8192 pagesize 4096 filename badwal.db
+ | page 1 offset 0
+ |      0: 53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00   SQLite format 3.
+ |     16: 10 00 01 01 00 40 20 20 00 00 00 02 00 00 00 02   .....@  ........
+ |     32: 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 04   ................
+ |     48: 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00   ................
+ |     80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02   ................
+ |     96: 00 2e 76 89 0d 00 00 00 01 0f c3 00 0f c3 00 00   ..v.............
+ |   4032: 00 00 00 3b 01 06 17 0f 0f 01 67 74 61 62 6c 65   ...;......gtable
+ |   4048: 74 74 02 43 52 45 41 54 45 20 54 41 42 4c 45 20   tt.CREATE TABLE 
+ |   4064: 74 28 78 20 49 4e 54 45 47 45 52 20 50 52 49 4d   t(x INTEGER PRIM
+ |   4080: 41 52 59 20 4b 45 59 2c 20 79 20 54 45 58 54 29   ARY KEY, y TEXT)
+ }
+ write_hex_file test.db-wal {
+ | size 56 pagesize 1024 filename badwal.db-wal
+ | page 1 offset 0
+ |      0: 37 7f 06 82 00 2d e2 18 00 00 00 00 00 00 00 00   7....-..........
+ |     32: 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00   ................
+ | end badwal.db-wal
+ }
+ write_hex_file test.db-shm {
+ | size 32 pagesize 1024 filename badwal.db-wal
+ | page 1 offset 0
+ |      0: 53 48 4d 2d 55 4e 55 53 45 44 2d 49 4e 2d 52 45   SHM-UNUSED-IN-RE
+ |     16: 41 44 4f 4e 4c 59 2d 43 41 4e 54 49 4e 49 54 0a   ADONLY-CANTINIT.
+ | end badwal.db-shm
+ }
+ sqlite3 db file:test.db?mode=ro&readonly_shm=1 -uri 1
+ do_execsql_test 3.0 {
+   SELECT count(*) FROM sqlite_schema
+ } {1}
  finish_test