]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Merge all the latest trunk enhancements into the bedrock branch.
authordrh <>
Wed, 4 Mar 2026 13:35:36 +0000 (13:35 +0000)
committerdrh <>
Wed, 4 Mar 2026 13:35:36 +0000 (13:35 +0000)
FossilOrigin-Name: 0fd87fa08db1caa610043b78a7297f652c2be4072b4663e14ff5e40a6c96fd1b

16 files changed:
1  2 
ext/rbu/sqlite3rbu.c
main.mk
manifest
manifest.uuid
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/test_config.c
src/wal.c
test/walrestart.test

Simple merge
diff --cc main.mk
Simple merge
diff --cc manifest
index 3d03ef6644490695d943e02c7ac7605b7ade4972,57adcb4ab49176c3fb0903d12d666875a3f468a1..bc90a32524ce5d53ee8fab9792f9948378172186
+++ b/manifest
@@@ -1,5 -1,5 +1,5 @@@
- C Merge\slatest\schanges\sfrom\swal2\sinto\sthis\sbranch.
- D 2026-02-18T13:57:52.330
 -C Merge\sthe\ssort-and-merge\soptimization\sbug\sfix\sinto\sthe\swal2\sbranch.
 -D 2026-03-04T13:24:55.454
++C Merge\sall\sthe\slatest\strunk\senhancements\sinto\sthe\sbedrock\sbranch.
++D 2026-03-04T13:35:36.410
  F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
  F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
  F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@@ -470,7 -468,7 +470,7 @@@ F ext/rbu/rbuvacuum.test 542561741ff2b2
  F ext/rbu/rbuvacuum2.test 1a9bd41f127be2826de2a65204df9118525a8af8d16e61e6bc63ba3ac0010a23
  F ext/rbu/rbuvacuum3.test 3ce42695fdf21aaa3499e857d7d4253bc499ad759bcd6c9362042c13cd37d8de
  F ext/rbu/rbuvacuum4.test ffccd22f67e2d0b380d2889685742159dfe0d19a3880ca3d2d1d69eefaebb205
- F ext/rbu/sqlite3rbu.c 62e4f13c70e40d42370946c4ed545fffa9fc9d85cf0c5d084f4a0acc53ea31b8
 -F ext/rbu/sqlite3rbu.c e99400d29d029936075e27495b269a2dcdceae3cf8c86b1d0869b4af487be3ab
++F ext/rbu/sqlite3rbu.c cb9cb54027796d85ac43f6c941fdc48a72afe2ebef185b13254a203f5751b500
  F ext/rbu/sqlite3rbu.h e3a5bf21e09ca93ce4e8740e00d6a853e90a697968ec0ea98f40826938bdb68e
  F ext/rbu/test_rbu.c 8b6e64e486c28c41ef29f6f4ea6be7b3091958987812784904f5e903f6b56418
  F ext/recover/dbdata.c 10d3c56968a9af6853722a47280805ad1564714d79ea45ac6f7da14bb57fd137
@@@ -584,12 -571,10 +575,12 @@@ F ext/session/sessionrowid.test 85187c2
  F ext/session/sessionsize.test 8fcf4685993c3dbaa46a24183940ab9f5aa9ed0d23e5fb63bfffbdb56134b795
  F ext/session/sessionstat1.test 5e718d5888c0c49bbb33a7a4f816366db85f59f6a4f97544a806421b85dc2dec
  F ext/session/sessionwor.test 6fd9a2256442cebde5b2284936ae9e0d54bde692d0f5fd009ecef8511f4cf3fc
 -F ext/session/sqlite3session.c 6ebd02be470f36d41c4bd78927f39d507b62051ba025eacaed9936c769902a07
 -F ext/session/sqlite3session.h 7404723606074fcb2afdc6b72c206072cdb2b7d8ba097ca1559174a80bc26f7a
 -F ext/session/test_session.c 190110e3bd9463717248dec1272b44fe9943e57b7646d0b4200dcf11e4dccee6
 +F ext/session/sqlite3changebatch.c d488b42d8fd49fb013a1e9c4535232680dabeb28ae8f9421b65ea0ccc3b430f7
 +F ext/session/sqlite3changebatch.h e72016998c9a22d439ddfd547b69e1ebac810c24
 +F ext/session/sqlite3session.c 08086d05608a142ca801a0219bdb15c9a8eb45537d0d693b1f06e8400ec35eca
 +F ext/session/sqlite3session.h 120bd92f96f78d3b79848feb8c539350a15da8e9803226750d337f9a943dd86b
 +F ext/session/test_session.c 1ba3073ff0fc61824876e43899171864e7584ae034b27b3821ccd4906d629131
- F ext/wasm/GNUmakefile a2698072853b67c39e92ca19835c65fbaa8b8884078a99c4e54b72b9ede8306e
+ F ext/wasm/GNUmakefile 79236447d750609aa6beda30feec1314180c5462a493ad94214122887232bfd4
  F ext/wasm/README-dist.txt f01081a850ce38a56706af6b481e3a7878e24e42b314cfcd4b129f0f8427066a
  F ext/wasm/README.md 2e87804e12c98f1d194b7a06162a88441d33bb443efcfe00dc6565a780d2f259
  F ext/wasm/SQLTester/GNUmakefile e0794f676d55819951bbfae45cc5e8d7818dc460492dc317ce7f0d2eca15caff
@@@ -668,7 -653,7 +659,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 3e58a98a5ac521d949d076be7b009464609e79e5de898dc95f893388b1ae2ffa
 -F main.mk 2f89ad787bd2c35ec8f12751997b95126bd3d229691dfd8dfc87c97668c3ea95
++F main.mk 9b80c97741deaf80bc851f8f9ca101f6b82ae02cd290dd93b76f9cabb4459fc4
  F make.bat a136fd0b1c93e89854a86d5f4edcf0386d211e5d5ec2434480f6eea436c7420c
  F mptest/config01.test 3c6adcbc50b991866855f1977ff172eb6d901271
  F mptest/config02.test 4415dfe36c48785f751e16e32c20b077c28ae504
@@@ -684,23 -669,23 +675,23 @@@ F src/analyze.c ebfe8c9c55e44c5ca2bb885
  F src/attach.c 7cf07d4fa42b9fc8662237c60c40b730326c30aa90ae5fffc0b18b2d726ebf61
  F src/auth.c ebec42df26b34a62b6750d30d9c2c03554a1c522020182476f7729a439fef04f
  F src/backup.c 5c97e8023aab1ce14a42387eb3ae00ba5a0644569e3476f38661fa6f824c3523
 -F src/bitvec.c e242d4496774dfc88fa278177dd23b607dce369ccafb3f61b41638eea2c9b399
 +F src/bitvec.c 1a048c91b2fbccbbc32dcefa757f93216c0f518ed2bc0b4db39947264479ad06
  F src/btmutex.c 30dada73a819a1ef5b7583786370dce1842e12e1ad941e4d05ac29695528daea
 -F src/btree.c 03d2f0381a1eaf35c60575a9e76d4da9b28fea22f65c1523affb788d2c6f7229
 -F src/btree.h e823c46d87f63d904d735a24b76146d19f51f04445ea561f71cc3382fd1307f0
 -F src/btreeInt.h 9c0f9ea5c9b5f4dcaea18111d43efe95f2ac276cd86d770dce10fd99ccc93886
 -F src/build.c b993e4adef4c4cdfd7abf62e2676c467bb1923f25f40c3c7ab2a7bfbace3de7f
 -F src/callback.c 3605bbf02bd7ed46c79cd48346db4a32fc51d67624400539c0532f4eead804ad
 +F src/btree.c ccddaedd083df9820deae0cad893094f78170e7fe9af92ade258b909cd39430b
 +F src/btree.h dcda10d5a5d29690dc2739b8d4d416d136760ab1dbe88a2dd417855e1775e37a
 +F src/btreeInt.h c3b8750a8dd8bc9a38840be463e7d23899b9da08276fa442e2bb8efd1052bc48
 +F src/build.c 899c33f67843888e9f5c996e66c5a4eeca0016eebafcf5e261b32b5df0f1a50c
 +F src/callback.c 6987b99f738d9f68fe95ff482cdc10a9bf3df2051319d3d418b7cd22e725825e
  F src/carray.c 3efe3982d5fb323334c29328a4e189ccaef6b95612a6084ad5fa124fd5db1179
  F src/complete.c a3634ab1e687055cd002e11b8f43eb75c17da23e
- F src/date.c e1a6c5ac4753016198d664d633b8541fa4ad4ccde2beb12548fa99e746f38cec
+ F src/date.c 61e92f1f7e2e88e1cd91e91dc69eb2b2854e7877254470f9fabd776bfac922b8
  F src/dbpage.c c9ea81c11727f27e02874611e92773e68e2a90a875ef2404b084564c235fd91f
  F src/dbstat.c 73362c0df0f40ad5523a6f5501224959d0976757b511299bf892313e79d14f5c
  F src/delete.c 901499bed747c3b4b2be45be1abe912ba50a3f6a40ba88cc006ccf279f2d0e97
  F src/expr.c 8c3b23cb35f43c2d0570c1058b9a269e561e769e09c81ba192992c95022c1939
  F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
  F src/fkey.c fb0f74c57d19a2d3f113f3476826919d68feda7ff334abfdb479a9a6353b9fcd
- F src/func.c 01b8a2761c8866ab0b6d5fee81eef165fab4da71b77ac9b26b27bf8cf1926f56
 -F src/func.c 6e7de3551ae0f8205006e5109f025223246edd20186d54d90746dee7c1c5c093
++F src/func.c f546ec9edbaf1e4bf9a152bddf1b09c11949beece5d2d96c61184c46d169107b
  F src/global.c a19e4b1ca1335f560e9560e590fc13081e21f670643367f99cb9e8f9dc7d615b
  F src/hash.c 03c8c0f4be9e8bcb6de65aa26d34a61d48a9430747084a69f9469fbb00ea52ca
  F src/hash.h 46b92795a95bfefb210f52f0c316e9d7cdbcdd7e7fcfb0d8be796d3a5767cddf
@@@ -710,7 -695,7 +701,7 @@@ F src/insert.c dfd311b0ac2d4f6359e62013
  F src/json.c 8b6341a419150b28530cc21e3951b2238c35cdc312f11b2ca29017fe4b1dedc0
  F src/legacy.c d7874bc885906868cd51e6c2156698f2754f02d9eee1bae2d687323c3ca8e5aa
  F src/loadext.c 56a542244fbefc739a2ef57fac007c16b2aefdb4377f584e9547db2ce3e071f9
- F src/main.c 46518a0ff7d4e5183db5fe113e8415c9e1b78acfde635b0959c208cba7d4d9c5
 -F src/main.c 31a13302193fbd51279c7e69cdfa0320d0de7629f9151e0964c1d320e8bdd7a4
++F src/main.c d01035411e123a8d32b5cc3b6930cbe9de6de53e1c448b6837107ae770af6589
  F src/malloc.c 422f7e0498e1c9ef967f06283b6f2c0b16db6b905d8e06f6dbc8baaa3e4e6c5a
  F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645
  F src/mem1.c 3bb59158c38e05f6270e761a9f435bf19827a264c13d1631c58b84bdc96d73b2
@@@ -731,33 -716,33 +722,33 @@@ F src/os.h 1ff5ae51d339d0e30d8a9d814f4b
  F src/os_common.h 6c0eb8dd40ef3e12fe585a13e709710267a258e2c8dd1c40b1948a1d14582e06
  F src/os_kv.c e7d96727db5b67e39d590a68cc61c86daf4c093c36c011a09ebfb521182ec28d
  F src/os_setup.h 8efc64eda6a6c2f221387eefc2e7e45fd5a3d5c8337a7a83519ba4fbd2957ae2
- F src/os_unix.c 54ab9a0a780e73c740fd01cdd13b2cba192d7b2b50d5c6820ee661e02e6f488e
 -F src/os_unix.c fa5e09b4df35ad845440cad67b86908cfe1fd4c28c51915f82e23633d1992bf4
++F src/os_unix.c 26448dcc94baa96f2e20e088641cb069c99e100e752628b390254f2f50cb72fa
  F src/os_win.c 0d553b6e8b92c8eb85e7f1b4a8036fe8638c8b32c9ad8d9d72a861c10f81b4c5
  F src/os_win.h 5e168adf482484327195d10f9c3bce3520f598e04e07ffe62c9c5a8067c1037b
- F src/pager.c 93e9cf4fe32606a29ed446ef5577eaed7e7e7802b01773d96312742bbfce45ed
 -F src/pager.c ac55710d5c1ffcc650677d4596305ff9470ba9191266ac015e4eb1f0a5a6871d
 -F src/pager.h fc0c95d27f2aefffcb39b4373b3557e89e1b4b9a36b183cc04d6f22002bf0ad2
 -F src/parse.y 3b784d6083380a950e3b1b32ce5ddd303e8c7c209d8ab788df2c62aaf9ee8eb3
++F src/pager.c 3eb91d6767b280553f72f43c35e270d6f3a83caaea59e3b050bebb19ae4169a7
 +F src/pager.h dd6ade22dd303a8ca6c34f1ff0f299add7191c1bff65f0289b7fd7c3460f9551
- F src/parse.y aa52bf080906d3214e01343a67feabbc330f9c7e7f1db6126a3b722cbf58c01d
++F src/parse.y ed14fa473eaa60ec94b9cb970908e708d2b190f41c8042a001b20788b1c71ef5
  F src/pcache.c 588cc3c5ccaaadde689ed35ce5c5c891a1f7b1f4d1f56f6cf0143b74d8ee6484
- F src/pcache.h 1497ce1b823cf00094bb0cf3bac37b345937e6f910890c626b16512316d3abf5
+ F src/pcache.h 092b758d2c5e4dabb30eae46d8dfad77c0f70b16bf3ff1943f7a232b0fe0d4ba
 -F src/pcache1.c 131ca0daf4e66b4608d2945ae76d6ed90de3f60539afbd5ef9ec65667a5f2fcd
 +F src/pcache1.c 69b3a3e00e56dd03749af545084f4c823690400e8b12fcefba948f8fd975b84a
  F src/pragma.c ab340f5e412cb46da58d159fd57a70d6696578b5b39664fb44064279b4d20a33
  F src/prepare.c f6a6e28a281bd1d1da12f47d370a81af46159b40f73bf7fa0b276b664f9c8b7d
- F src/printf.c b1b29b5e58e1530d5daeee5963d3c318d8ab2d7e38437580e28755753e0c1ded
+ F src/printf.c 9cff219dba73b1aa9a8113e83e962f03f7bea8b6eb51cefb25bc468d5a69fb2d
 -F src/random.c 606b00941a1d7dd09c381d3279a058d771f406c5213c9932bbd93d5587be4b9c
 +F src/random.c 9bd018738ec450bf35d28050b4b33fa9a6eebf3aaefb1a1cff42dc14a7725673
  F src/resolve.c 928ff887f2a7c64275182060d94d06fdddbe32226c569781cf7e7edc6f58d7fd
  F src/rowset.c 8432130e6c344b3401a8874c3cb49fefe6873fec593294de077afea2dce5ec97
- F src/select.c 9057b0a712ab8542317395429a65122a0011edd48f2cd6a2f43172c21d4d19e8
- F src/shell.c.in b944a21d98cc4c6107bfd1ec702440579cb4bf86435125b67ff661180e9453b5
- F src/sqlite.h.in 94b5bfe05c59cb64c93adcfc91380a41d64518eb36abd319212fcfbf10ecf318
 -F src/select.c ffe199f025a0dd74670d2a77232bdea364a4d7b36f32c64a6572d39ba6a11576
++F src/select.c 5c5b5bd015202400779d4b5dcfe96ed15b7312e169ed549182f74c25ac9e4207
+ F src/shell.c.in 2acdfca982deb70cdfefb8b422822d4e0234fe4dde6ff2bd9020b26445853917
 -F src/sqlite.h.in 1f853f1d836af3e5a0b451521041d05658988a45f6978aaae08286e483fee5ac
++F src/sqlite.h.in 71ec80f51d400d8c8a6dc861e853b86b8a06ef7ccd4ee7602ca8da1daea630e1
  F src/sqlite3.rc 015537e6ac1eec6c7050e17b616c2ffe6f70fca241835a84a4f0d5937383c479
  F src/sqlite3ext.h 1b7a0ee438bb5c2896d0609c537e917d8057b3340f6ad004d2de44f03e3d3cca
- F src/sqliteInt.h b9b6ed9f2f6ac6cfd2fbf574f69940a343a3a47480c3b41d1834a9dee1739730
 -F src/sqliteInt.h 185abb373dc2a311e3292540ef177ea301d8140b976ecd8ba381a5a0162cd6e9
++F src/sqliteInt.h e76c06587524a50d9d402c973b83b982c3c27f6835873a488b0ba62708f2a217
  F src/sqliteLimit.h 904a3f520362c7065c18165aaabd504fb13cc1b76cb411f38bd41ac219e4af1e
  F src/status.c 7565d63a79aa2f326339a24a0461a60096d0bd2bce711fefb50b5c89335f3592
  F src/table.c 0f141b58a16de7e2fbe81c308379e7279f4c6b50eb08efeec5892794a0ba30d1
  F src/tclsqlite.c 85b5a20df96016e5d1d8fdc68c8a4c279c5b93e2049b77cd806c2cc50b9d8c56
  F src/tclsqlite.h 614b3780a62522bc9f8f2b9fb22689e8009958e7aa77e572d0f3149050af348a
- F src/test1.c e23123a355f0525b615bc354e060f9eb78ffe6f91593c627c31da3f2249ba417
 -F src/test1.c 3e3b013f59ffcb57dce00c90d55907072d71d4e970cb0a590cb261efe11bae9c
++F src/test1.c 8180efb505fc453149225a8af00257fcaf1c321a9e824d67cf95ca33262cfba8
  F src/test2.c 62f0830958f9075692c29c6de51b495ae8969e1bef85f239ffcd9ba5fb44a5ff
  F src/test3.c 432646f581d8af1bb495e58fc98234380250954f5d5535e507fc785eccc3987a
  F src/test4.c 0ac87fc13cdb334ab3a71823f99b6c32a6bebe5d603cd6a71d84c823d43a25a0
@@@ -770,7 -755,7 +761,7 @@@ F src/test_backup.c a2bfd90d2ff2511b863
  F src/test_bestindex.c d75fad21369d80910238032bcf8d9ca1f2bffda13c1ceec63bfbb7f704448b15
  F src/test_blob.c 77b994e17f2c87055f44fd96c9a206c5a7155bae2cda2769af60c2f3582f962c
  F src/test_btree.c 28283787d32b8fa953eb77412ad0de2c9895260e4e5bd5a94b3c7411664f90d5
- F src/test_config.c 0cac3f68f571bcd26b9618883e2794006dfccd9067fb81adf977743a48588af4
 -F src/test_config.c e02566c2c4ee2916324ce17123a798b47663cead2de546cfbd71d8cddb46bb26
++F src/test_config.c c252db0cc2bf942a4324f4a3c746e53eed355e23eacf5665ea3750a0a62a076f
  F src/test_delete.c d0e8f6dc55cfc98a7c27c057fb88d512260564bf0b611482656c68b8f7f401ed
  F src/test_demovfs.c 3efa2adf4f21e10d95521721687d5ca047aea91fa62dd8cc22ac9e5a9c942383
  F src/test_devsym.c 649434ed34d0b03fbd5a6b42df80f0f9a7e53f94dd1710aad5dd8831e91c4e86
@@@ -807,28 -792,28 +798,28 @@@ F src/test_wsd.c 41cadfd9d97fe8e3e4e44f
  F src/threads.c 4ae07fa022a3dc7c5beb373cf744a85d3c5c6c3c
  F src/tokenize.c f297bbf02037639e7a93b37d9c6e4415b3de1273395ee8fa8183e741e1e7fb72
  F src/treeview.c feaa59f14db4f7b5aacca9c5ad5aeb562c1f98262c1ffd74371f4186ade91fc5
- F src/trigger.c a40440614bdf523090cc07223f4878f7e3c892bcd1a13afe18f90190daa5945d
+ F src/trigger.c 4bf3bfb3851d165e4404a9f9e69357345f3f7103378c07e07139fdd8aeb7bd20
 -F src/update.c 3e5e7ff66fa19ebe4d1b113d480639a24cc1175adbefabbd1a948a07f28e37cf
 +F src/update.c e1a8b1876e6f2a1824a6b9f1999a03d5dd50ce250a1bb86ea133e5b4b359488b
  F src/upsert.c 215328c3f91623c520ec8672c44323553f12caeb4f01b1090ebdca99fdf7b4f1
  F src/utf.c 7267c3fb9e2467020507601af3354c2446c61f444387e094c779dccd5ca62165
- F src/util.c 10572efe1bcf43fc2f6015cfba6126a4a5e32e7d6478a946a2b27d5ce189328b
+ F src/util.c eccfa8b3b414bb64c6543421c9fd10e5f07e103baae36427a273a9131527694c
 -F src/vacuum.c d3d35d8ae893d419ade5fa196d761a83bddcbb62137a1a157ae751ef38b26e82
 -F src/vdbe.c 577d735e735bfc09da7701acd9c51223080bcd12882a418a400ca0d36d888e12
 +F src/vacuum.c 09d61b53904979f2c6acb740121fd0d1b5371f962baaaa2dbbe449b5535ff581
 +F src/vdbe.c 8c9df7ad134a07e60907c51551aa6ee90214393dbb849ce6db31d3a564e25fd7
  F src/vdbe.h 966d0677a540b7ea6549b7c4e1312fc0d830fce3a235a58c801f2cc31cf5ecf9
  F src/vdbeInt.h 42488247a80cd9d300627833c6c85ace067ae5011a99e7614e2358130d62feea
  F src/vdbeapi.c 6cdcbe5c7afa754c998e73d2d5d2805556268362914b952811bdfb9c78a37cf1
 -F src/vdbeaux.c df883876635d6d876c29c1690c874849bed3fd371ea909b2334a52532e575027
 +F src/vdbeaux.c 99843ed3828dbc89950843f7f15af75a4a2b2e1e22065f9c49b3814f94037db2
  F src/vdbeblob.c b3f0640db9642fbdc88bd6ebcc83d6009514cafc98f062f675f2c8d505d82692
- F src/vdbemem.c bdfda8e65933cfee34aa29c2bfa31fc07609f3d56d147aa8a367a297533d33d1
+ F src/vdbemem.c 317ec5e870ddb16951b606c9fe8be22baef22ecbe46f58fdefc259662238afb7
  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 8f0f8aed7bafc4f0fa9b0e1e5d70d4f12022b46509936b3f671f41246e6ad728
 -F src/wal.c 0f813d54656eb40d465077947cf523d0f6672e215d8c00e06b86459f58eb5634
 -F src/wal.h 97b8a9903387401377b59507e86b93a148ef1ad4e5ce0f23659a12dcdce56af2
++F src/wal.c d2a533795f209c107a6d197c1016301414d23620fb3e0d769eb1ecf127128775
 +F src/wal.h 4f25678500c97bf59c627fa4ed8b9fc4f5bbb958b2e26cc638e42d13509848c3
  F src/walker.c d5006d6b005e4ea7302ad390957a8d41ed83faa177e412f89bc5600a7462a014
- F src/where.c 7a7fe745dd8104d0276a3d3f6e6ac7f087af3dd9f34a90bc937e5e7aea817e15
+ F src/where.c 9f09ee7b260010138d5f9fb5f195b98051119eae3096a99d72ff16c83230f4af
  F src/whereInt.h 8d94cb116c9e06205c3d5ac87af065fc044f8cf08bfdccd94b6ea1c1308e65da
  F src/wherecode.c 783ecd30061c875c919a5163e4b55f9a0eccdaf7c9b17ad2908a1668a8766bc4
  F src/whereexpr.c e9f7185fba366d9365aa7a97329609e4cf00b3dd0400d069fbaa5187350c17c6
@@@ -2045,9 -2018,10 +2039,10 @@@ F test/waloverwrite.test dad2f26567f1b4
  F test/walpersist.test 8d78a1ec91299163451417b451a2bac3481f8eb9f455b1ca507a6625c927ca6e
  F test/walprotocol.test 1b3f922125e341703f6e946d77fdc564d38fb3e07a9385cfdc6c99cac1ecf878
  F test/walprotocol2.test 7e4bedd5ee83607e2928ac438bf7332a396b980d3e02aa0746509ce11ad1f13c
 -F test/walrestart.test 3b0a9198ad2eb9f716d8f3846b133ba9f4619fb56decb1e67bba27743c766289
++F test/walrestart.test 98fa7cf354b8f0139c0c456408d044c797afa0a51aac2008e87028bd430783a8
  F test/walro.test 78a84bc0fdae1385c06b017215c426b6845734d6a5a3ac75c918dd9b801b1b9d
  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
@@@ -2231,8 -2203,8 +2226,8 @@@ F tool/warnings-clang.sh bbf6a1e685e534
  F tool/warnings.sh d924598cf2f55a4ecbc2aeb055c10bd5f48114793e7ba25f9585435da29e7e98
  F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
  F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c
- P d577b2a2b2b04ff7b7b07c0fce6c9e3a910ae0a2a46d3524e688c1530155e3c2 4ab288bd4a0b83e988121c6f46ecea0bd19244b62b2c3010ce3f4bf449de6136
- R 1c9e273841949ba2b7f1cf3c0eb2871a
- U dan
- Z c441a64209094bf3c9a33bbac9c718af
 -P 947411e56c009b8212c406eff187ddf1cace7869ebcb7d12192bdb38f2d6f6c9 61f8a28591a833b1f5834a347feefeba8414fecc7ff154f1b6ef19963f181812
 -R 8924eb5934f020887cb79a3867ad5f0e
++P 25dbd86f9ccd3c78a9ac6da9b4cdaa163efc98fa99f9f5967dcdbd9328b7e9cc ec0fb37faa6555d3167cf7793ba7bc2d8ba30726143428b8eafee3b0a6ad83f4
++R 913ec1b860eb7f84f0a7e11b0df60439
+ U drh
 -Z 6a6ae871c5b3078cf254732001612d68
++Z 1d504962d095f3dc5a8f3ba613b0a3ab
  # Remove this line to create a well-formed Fossil manifest.
diff --cc manifest.uuid
index 5b7eefcf86ac52c518ae06de85ffd6440c21ff23,66f3880fce2e76efe5e0ee9e94b2041919940b8b..4b860c7b41ebf23dd65cc3460f023e5f90406d1c
@@@ -1,1 -1,1 +1,1 @@@
- 25dbd86f9ccd3c78a9ac6da9b4cdaa163efc98fa99f9f5967dcdbd9328b7e9cc
 -ec0fb37faa6555d3167cf7793ba7bc2d8ba30726143428b8eafee3b0a6ad83f4
++0fd87fa08db1caa610043b78a7297f652c2be4072b4663e14ff5e40a6c96fd1b
diff --cc src/func.c
Simple merge
diff --cc src/main.c
index fa2be34550eecc6e86c4216171eead03cae30f0c,b44ac8dca8eacdc8588cc7dea5f7532f80bbfb17..db6074c8a8bef170f336f364a3277dab6ef28c40
@@@ -3399,7 -3407,8 +3407,8 @@@ static int openDatabase
    db->aDb = db->aDbStatic;
    db->lookaside.bDisable = 1;
    db->lookaside.sz = 0;
 -
+   db->nFpDigit = 17;
 +  sqlite3FastPrngInit(&db->sPrng);
    assert( sizeof(db->aLimit)==sizeof(aHardLimit) );
    memcpy(db->aLimit, aHardLimit, sizeof(db->aLimit));
    db->aLimit[SQLITE_LIMIT_WORKER_THREADS] = SQLITE_DEFAULT_WORKER_THREADS;
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
index 5a8275b1d1bf89eceabe29a9ded2a8d78f2667ad,795f874b61fb326b6783f0c4b42d39de0aae3b3e..0c4cb74712de07e5b6beef6541b33f9936d87f40
@@@ -1705,8 -1692,8 +1705,9 @@@ struct sqlite3 
    u8 noSharedCache;             /* True if no shared-cache backends */
    u8 nSqlExec;                  /* Number of pending OP_SqlExec opcodes */
    u8 eOpenState;                /* Current condition of the connection */
+   u8 nFpDigit;                  /* Significant digits to keep on double->text */
    int nextPagesize;             /* Pagesize after VACUUM if >0 */
 +  FastPrng sPrng;               /* State of the per-connection PRNG */
    i64 nChange;                  /* Value returned by sqlite3_changes() */
    i64 nTotalChange;             /* Value returned by sqlite3_total_changes() */
    int aLimit[SQLITE_N_LIMIT];   /* Limits */
diff --cc src/test1.c
Simple merge
Simple merge
diff --cc src/wal.c
Simple merge
index 0000000000000000000000000000000000000000,4274b2e33c7ccc6d680a29bf26829ace89c13bca..910eedde4d95abbe428a0ba829cc2d8964bfda4f
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,87 +1,87 @@@
 -} {0 58 58}
+ # 2026-03-03
+ #
+ # The author disclaims copyright to this source code.  In place of
+ # a legal notice, here is a blessing:
+ #
+ #    May you do good and not evil.
+ #    May you find forgiveness for yourself and forgive others.
+ #    May you share freely, never taking more than you give.
+ #
+ #***********************************************************************
+ # This file implements regression tests for SQLite library.  The
+ # focus of this file is testing a race condition in WAL restart.
+ #
+ set testdir [file dirname $argv0]
+ source $testdir/tester.tcl
+ if {$::tcl_platform(platform) ne "unix"} {
+   # This test only works on unix
+   finish_test
+   return
+ } 
+ set testprefix walrestart
+ if {[permutation]=="memsubsys1"} {
+   # memsubsys1 configures a very small page-cache, which causes different
+   # numbers of frames to be written to the wal file for some transactions,
+   # which causes some of the tests in this file to fail.
+   finish_test
+   return
+ }
+ db close
+ sqlite3_shutdown
+ proc faultsim {n} { return 0 }
+ sqlite3_test_control_fault_install faultsim
+ # Populate database. Create a large wal file and checkpoint it.
+ #
+ reset_db
+ do_execsql_test 1.0 {
+   PRAGMA auto_vacuum = 0;
+   PRAGMA journal_mode = wal;
+   CREATE TABLE t1(a INTEGER PRIMARY KEY, b);
+   WITH s(i) AS (
+     SELECT 1 UNION ALL SELECT i+1 FROM s WHERE i<20
+   ) 
+   INSERT INTO t1 SELECT NULL, randomblob(600) FROM s;
+   CREATE INDEX i1 ON t1(b);
+   PRAGMA wal_checkpoint;
+ } {wal 0 49 49}
+ do_execsql_test 1.1 {
+   UPDATE t1 SET b=randomblob(600);
+   PRAGMA wal_checkpoint;
+ } {0 45 45}
+ # We have a completely checkpointed wal file on disk. mxFrame=$large, 
+ # nBackfill=$large. Do another checkpoint with [db]. This time, after [db]
+ # reads mxFrame but before it reads nBackfill, write to the db such
+ # that 0 < mxFrame < large.
+ #
+ proc faultsim {n} {
+   if {$n==660} {
+     db2 eval { UPDATE t1 SET b=randomblob(600) WHERE a<5 }
+   }
+   return 0
+ }
+ sqlite3 db2 test.db
+ do_execsql_test 1.2 {
+   PRAGMA wal_checkpoint;
+ } {0 45 0}
+ # Now write another big update to the wal file and checkpoint it.
+ #
+ do_execsql_test -db db2 1.3 {
+   UPDATE t1 SET b=randomblob(600);
+ }
+ proc faultsim {n} { return 0 }
+ do_execsql_test 1.4 {
+   PRAGMA wal_checkpoint;
++} {0 57 57}
+ do_catchsql_test 1.5 {
+   PRAGMA integrity_check
+ } {0 ok}
+ finish_test