]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Merge the latest trunk enhancements up into the bedrock branch
authordrh <>
Mon, 27 Oct 2025 12:01:56 +0000 (12:01 +0000)
committerdrh <>
Mon, 27 Oct 2025 12:01:56 +0000 (12:01 +0000)
FossilOrigin-Name: 2563e274ee18a267beb521119170543dc3949a1239d781884c4a5fab61d07d3c

14 files changed:
1  2 
main.mk
manifest
manifest.uuid
src/build.c
src/func.c
src/os_unix.c
src/sqlite.h.in
src/sqliteInt.h
src/test1.c
src/test_config.c
src/vdbe.c
src/vdbeaux.c
src/wal.c
test/walckptnoop.test

diff --cc main.mk
Simple merge
diff --cc manifest
index 324ca086f5a176fd0e119c41dacea9f66edaeb60,138092d2b97bba2dca1ae10217874a6156fdb204..3ceebe729c319d941c2eabaa2a18e7ebc60fe03f
+++ b/manifest
@@@ -1,5 -1,5 +1,5 @@@
- C Add\sa\stest\scase\sto\sensure\sthat\scommitting\sa\sconcurrent\stransaction\sfails\swith\sSQLITE_BUSY,\ssubsequent\sattempts\sto\scommit\sthe\stransaction\salso\sfail.
- D 2025-10-04T17:28:29.572
 -C Merge\sall\sthe\slatest\strunk\senhancements\sinto\sthe\swal2\sbranch.
 -D 2025-10-27T11:49:07.544
++C Merge\sthe\slatest\strunk\senhancements\sup\sinto\sthe\sbedrock\sbranch
++D 2025-10-27T12:01:56.410
  F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
  F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
  F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@@ -115,8 -114,8 +115,8 @@@ F ext/fts5/fts5_buffer.c f1e6d0324d7c55
  F ext/fts5/fts5_config.c e7d8dd062b44a66cd77e5a0f74f23a2354cd1f3f8575afb967b2773c3384f7f8
  F ext/fts5/fts5_expr.c b8c32da1127bafaf10d6b4768b0dcb92285798524bed2d87a8686f99a8e8d259
  F ext/fts5/fts5_hash.c a6266cedd801ab7964fa9e74ebcdda6d30ec6a96107fa24148ec6b7b5b80f6e0
- F ext/fts5/fts5_index.c 1e5009261966215b61bbe3b46d79916346efac775b57c1487a478f684c971111
+ F ext/fts5/fts5_index.c 8dbda33a9830764167d7697f1c9980c8a6ee74f5decb28206b963222583b8cdd
 -F ext/fts5/fts5_main.c 42025174a556257287071e90516d3ab8115daf1dd525a301883544469a260014
 +F ext/fts5/fts5_main.c 4e7dc11824e681215c2ac6b702124918b946616f85e0d54f88d0f156152387ee
  F ext/fts5/fts5_storage.c 19bc7c4cbe1e6a2dd9849ef7d84b5ca1fcbf194cefc3e386b901e00e08bf05c2
  F ext/fts5/fts5_tcl.c 7fb5a3d3404099075aaa2457307cb459bbc257c0de3dbd52b1e80a5b503e0329
  F ext/fts5/fts5_test_mi.c 4308d5658cb1f5eee5998dcbaac7d5bdf7a2ef43c8192ca6e0c843f856ccee26
@@@ -580,15 -574,13 +578,15 @@@ 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 b3de195ce668cace9b324599bf6255a70290cbfb5451e826e946f3aee6e64c54
 -F ext/session/sqlite3session.h 7404723606074fcb2afdc6b72c206072cdb2b7d8ba097ca1559174a80bc26f7a
 -F ext/session/test_session.c 8766b5973a6323934cb51248f621c3dc87ad2a98f023c3cc280d79e7d78d36fb
 +F ext/session/sqlite3changebatch.c d488b42d8fd49fb013a1e9c4535232680dabeb28ae8f9421b65ea0ccc3b430f7
 +F ext/session/sqlite3changebatch.h e72016998c9a22d439ddfd547b69e1ebac810c24
 +F ext/session/sqlite3session.c 5566dab489b5d252db61f96bc74ebcf5bf0a18135dc6ee11009dd1e80826e5e6
 +F ext/session/sqlite3session.h 120bd92f96f78d3b79848feb8c539350a15da8e9803226750d337f9a943dd86b
 +F ext/session/test_session.c eea930cdd55dbf960a2f6b35d7050d118a44bbe9bca1e66c6793909f02783404
  F ext/wasm/EXPORTED_FUNCTIONS.fiddle.in 27450c8b8c70875a260aca55435ec927068b34cef801a96205adb81bdcefc65c
- F ext/wasm/GNUmakefile c532444c786b2b5fadb6482b328a193ee93db0e2040e6bbeddf3780b1626d64d
+ F ext/wasm/GNUmakefile 3dc01e673c456d3b752674c9407276e8fef35dec1d304b3cc1de362f019b2a09
  F ext/wasm/README-dist.txt f01081a850ce38a56706af6b481e3a7878e24e42b314cfcd4b129f0f8427066a
- F ext/wasm/README.md 66ace67ae98a45e4116f2ca5425b716887bcee4d64febee804ff6398e1ae9ec7
+ F ext/wasm/README.md 2e87804e12c98f1d194b7a06162a88441d33bb443efcfe00dc6565a780d2f259
  F ext/wasm/SQLTester/GNUmakefile e0794f676d55819951bbfae45cc5e8d7818dc460492dc317ce7f0d2eca15caff
  F ext/wasm/SQLTester/SQLTester.mjs 6b3c52ed36a5573ca4883176f326332a8d4c0cecf5efd80489528267fa5d9ed4
  F ext/wasm/SQLTester/SQLTester.run.mjs 57f2adb33f43f2784abbf8026c1bfd049d8013af1998e7dcb8b50c89ffc332e0
@@@ -668,7 -660,7 +666,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 f12024433c07eae9134cacc349db69c77446c259184a323f7048f9e12c24e0f0
 -F main.mk 8bb95dd86d3a4aa46c240451be396340932e3c4ac35a44198eb1d41aba03df33
++F main.mk 712611285d1780b9a80ff7fdd91bdeae34a34c15d33c0836181c90f9aa12cb91
  F mptest/config01.test 3c6adcbc50b991866855f1977ff172eb6d901271
  F mptest/config02.test 4415dfe36c48785f751e16e32c20b077c28ae504
  F mptest/crash01.test 61e61469e257df0850df4293d7d4d6c2af301421
@@@ -683,22 -675,23 +681,23 @@@ F src/analyze.c ebfe8c9c55e44c5ca2bb885
  F src/attach.c 9af61b63b10ee702b1594ecd24fb8cea0839cfdb6addee52fba26fa879f5db9d
  F src/auth.c 54ab9c6c5803b47c0d45b76ce27eff22a03b4b1f767c5945a3a4eb13aa4c78dc
  F src/backup.c 5c97e8023aab1ce14a42387eb3ae00ba5a0644569e3476f38661fa6f824c3523
 -F src/bitvec.c e242d4496774dfc88fa278177dd23b607dce369ccafb3f61b41638eea2c9b399
 +F src/bitvec.c 1a048c91b2fbccbbc32dcefa757f93216c0f518ed2bc0b4db39947264479ad06
  F src/btmutex.c 30dada73a819a1ef5b7583786370dce1842e12e1ad941e4d05ac29695528daea
 -F src/btree.c 2c0c8589ca2eec70b52d2606bf71e805822821cf8ebcde7270129e2287162fb2
 -F src/btree.h e823c46d87f63d904d735a24b76146d19f51f04445ea561f71cc3382fd1307f0
 -F src/btreeInt.h 9c0f9ea5c9b5f4dcaea18111d43efe95f2ac276cd86d770dce10fd99ccc93886
 -F src/build.c 611e07299d72ff04bbcb9e7109183467e30925d203c3e121ef9bb3cf6876289b
 -F src/callback.c acae8c8dddda41ee85cfdf19b926eefe830f371069f8aadca3aa39adf5b1c859
 +F src/btree.c 29f1051f14715bad3abd99df384e1f0ef2301121d08c2c87323d5d63f492a0b5
 +F src/btree.h dcda10d5a5d29690dc2739b8d4d416d136760ab1dbe88a2dd417855e1775e37a
 +F src/btreeInt.h c3b8750a8dd8bc9a38840be463e7d23899b9da08276fa442e2bb8efd1052bc48
- F src/build.c 5d202e308f64ceb7609e08fe36513c484899bf7cdebf290323564ebaded88505
++F src/build.c d7250a0005ce3d607e3df20743d7c3d48988fdf20296811f96d4c549fca891b5
 +F src/callback.c bd1ecfce052f6a5854497b16e6cae4f39f314d62fe43bd4cdaa452ab93623f3c
+ F src/carray.c a6f26cb349ca700d706c0e76d5b2895d76e2a1c392a2b909cf543a0dd4d4d047 w ext/misc/carray.c
  F src/complete.c a3634ab1e687055cd002e11b8f43eb75c17da23e
  F src/date.c e19e0cfff9a41bfdd884c655755f6f00bca4c1a22272b56e0dd6667b7ea893a2
- F src/dbpage.c 081c59d84f187aa0eb48d98faf9578a00bde360f68438d646a86b618653d2479
+ F src/dbpage.c c9ea81c11727f27e02874611e92773e68e2a90a875ef2404b084564c235fd91f
  F src/dbstat.c 73362c0df0f40ad5523a6f5501224959d0976757b511299bf892313e79d14f5c
  F src/delete.c 03a77ba20e54f0f42ebd8eddf15411ed6bdb06a2c472ac4b6b336521bf7cea42
- F src/expr.c aae36a5fbd17e256caf37b03bdaf4d27fd080d83578953c746d542340b37457e
+ F src/expr.c 4d63c8f6d50fe20637de8bdaf57757a0e424e4ac5e2c3313e621d64727a48a1c
  F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
  F src/fkey.c 928ed2517e8732113d2b9821aa37af639688d752f4ea9ac6e0e393d713eeb76f
- F src/func.c da56527c319a7a21550ac1a2c910de36d9c7e713cb9836c5dde66967da5d4e37
 -F src/func.c 0b802107498048d3dcac0b757720bcb8506507ce02159e213ab8161458eb293b
++F src/func.c 13ab81ae9e23657de777837b1a909a6913d28283615132be88144fc8c1830bbb
  F src/global.c a19e4b1ca1335f560e9560e590fc13081e21f670643367f99cb9e8f9dc7d615b
  F src/hash.c 73934a7f7ab1cb110614a9388cb516893b0cf5b7b69e4fd1a0780ac4ce166be7
  F src/hash.h 46b92795a95bfefb210f52f0c316e9d7cdbcdd7e7fcfb0d8be796d3a5767cddf
@@@ -707,8 -700,8 +706,8 @@@ F src/in-operator.md 10cd8f4bcd225a3251
  F src/insert.c dfd311b0ac2d4f6359e62013db67799757f4d2cc56cca5c10f4888acfbbfa3fd
  F src/json.c fb031340edee159c07ad37dbe668ffe945ed86f525b0eb3822e4a67cbc498a72
  F src/legacy.c d7874bc885906868cd51e6c2156698f2754f02d9eee1bae2d687323c3ca8e5aa
- F src/loadext.c 3326993a09553c6b38cc52d4f9cc2e47dcfc8736ffd853fcb0cb49bc9e3d523c
+ F src/loadext.c a3bc9a2522dc3b960e38b7582d1818f6245a49289387c2c7b19f27bfeabf1e81
 -F src/main.c ce69a2650e3d359ed6a8a2867ccafb27ac62ce1d39f3120a84ff513320952a6c
 +F src/main.c 2dd936e93baecad43ed527aaa9083b022b58b86ba605a48a154689324d0597fa
  F src/malloc.c 410e570b30c26cc36e3372577df50f7a96ee3eed5b2b161c6b6b48773c650c5e
  F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645
  F src/mem1.c 3bb59158c38e05f6270e761a9f435bf19827a264c13d1631c58b84bdc96d73b2
@@@ -728,34 -721,34 +727,34 @@@ F src/os.c 509452169d5ea739723e213b8e24
  F src/os.h 1ff5ae51d339d0e30d8a9d814f4b8f8e448169304d83a7ed9db66a65732f3e63
  F src/os_common.h 6c0eb8dd40ef3e12fe585a13e709710267a258e2c8dd1c40b1948a1d14582e06
  F src/os_kv.c fb7ba8d6204197357f1eb7e1c7450d09c10043bf7e99aba602f4aa46b8fb11a3
- F src/os_setup.h 6011ad7af5db4e05155f385eb3a9b4470688de6f65d6166b8956e58a3d872107
- F src/os_unix.c fde6f7cc7ad8c3d25f8f6ca59ddac74759179aa28cc287aea867bb1eefd07082
- F src/os_win.c f81a7cffdfe8c593a840895b3f64290714f0186b06302d2c397012252d830374
+ F src/os_setup.h 8efc64eda6a6c2f221387eefc2e7e45fd5a3d5c8337a7a83519ba4fbd2957ae2
 -F src/os_unix.c bbd3ec01b2023bc41b532666533e087feea457c595d1b63284c8acc8929ea7d5
++F src/os_unix.c 863a7426cda7b239735eb9d749b2ea0e9d3fc075ee1020085be85371535e0334
+ F src/os_win.c 27617f334168644b542c9d58ac6e5f051b318136273e78d243384b4eca2df6b3
  F src/os_win.h 4c247cdb6d407c75186c94a1e84d5a22cbae4adcec93fcae8d2bc1f956fd1f19
 -F src/pager.c 4dd3d1ca38b88dc46475be26c50a2866218d84ce7c0980ab8656e116a5445a99
 -F src/pager.h fc0c95d27f2aefffcb39b4373b3557e89e1b4b9a36b183cc04d6f22002bf0ad2
 -F src/parse.y 619c3e92a54686c5e47923688c4b9bf7ec534a4690db5677acc28b299c403250
 +F src/pager.c a8b08e262e43251a32e5eb20666177994d6b5a8b80eaa69c1e4b2328bf134f33
 +F src/pager.h dd6ade22dd303a8ca6c34f1ff0f299add7191c1bff65f0289b7fd7c3460f9551
 +F src/parse.y f97f2ed8f0d46a22530aabaac9e2915941f255adcac67b420cd77c384d09a1d0
  F src/pcache.c 588cc3c5ccaaadde689ed35ce5c5c891a1f7b1f4d1f56f6cf0143b74d8ee6484
  F src/pcache.h 1497ce1b823cf00094bb0cf3bac37b345937e6f910890c626b16512316d3abf5
 -F src/pcache1.c 131ca0daf4e66b4608d2945ae76d6ed90de3f60539afbd5ef9ec65667a5f2fcd
 +F src/pcache1.c 69b3a3e00e56dd03749af545084f4c823690400e8b12fcefba948f8fd975b84a
  F src/pragma.c ab340f5e412cb46da58d159fd57a70d6696578b5b39664fb44064279b4d20a33
  F src/prepare.c 2af0b5c1ec787c8eebd21baa9d79caf4a4dc3a18e76ce2edbf2027d706bca37a
- F src/printf.c 5f0c957af9699e849d786e8fbaa3baab648ca5612230dc17916434c14bc8698f
+ F src/printf.c 7297c2aeed4d90d80c5ba82920d9e57b7bfad04b3466be1d7e042db382fe296e
 -F src/random.c 606b00941a1d7dd09c381d3279a058d771f406c5213c9932bbd93d5587be4b9c
 +F src/random.c 9bd018738ec450bf35d28050b4b33fa9a6eebf3aaefb1a1cff42dc14a7725673
  F src/resolve.c f8d1d011aba0964ff1bdccd049d4d2c2fec217efd90d202a4bb775e926b2c25d
  F src/rowset.c 8432130e6c344b3401a8874c3cb49fefe6873fec593294de077afea2dce5ec97
 -F src/select.c b95181711d59c36d9789e67f76c4cfec64b99f9629a50be5e6566e117b87d957
 +F src/select.c baf48b38fea6765887330cd09d5b52d573b782e7f4b565b890a1be5591f0e12e
- F src/shell.c.in e9042383a072e2ec8f85f326f8e154f9c788183b7a851b4402c2d9e1e8508372
- F src/sqlite.h.in e74339526325568e189489bdc0d63e98269884cb99581cd07223dcb90585148e
+ F src/shell.c.in e58b0cecf2579c0115253e9c02a44b54fbadf77f4f33b43cfaa48a8274c9aa01
 -F src/sqlite.h.in f7944026ee89ea348f89aec56372d6d25b6cafc1d89df741278d6917e86326a3
++F src/sqlite.h.in 756af67e912658e177259769826bd527821723322215a4fc56edb75ea6870fd2
  F src/sqlite3.rc 015537e6ac1eec6c7050e17b616c2ffe6f70fca241835a84a4f0d5937383c479
- F src/sqlite3ext.h 3f0c4ed6934e7309a61c6f3c30f70a30a5b869f785bb3d9f721a36c5e4359126
- F src/sqliteInt.h 8a7bd1fe9241acee23d05dd1334282f4d7530b5169f2de98dd43a83f07ef10a0
+ F src/sqlite3ext.h 7f236ca1b175ffe03316d974ef57df79b3938466c28d2f95caef5e08c57f3a52
 -F src/sqliteInt.h 88f7fc9ce1630d9a5f7e0a8e1f3287cdc63882fba985c18e7eee1b9f457f59aa
++F src/sqliteInt.h 3abba32334160df50e29079ca1c668b8ed733abeb2422ab63e68d997f234caed
  F src/sqliteLimit.h fe70bd8983e5d317a264f2ea97473b359faf3ebb0827877a76813f5cf0cdc364
- F src/status.c 0e72e4f6be6ccfde2488eb63210297e75f569f3ce9920f6c3d77590ec6ce5ffd
+ F src/status.c 7565d63a79aa2f326339a24a0461a60096d0bd2bce711fefb50b5c89335f3592
  F src/table.c 0f141b58a16de7e2fbe81c308379e7279f4c6b50eb08efeec5892794a0ba30d1
  F src/tclsqlite.c 3c604c49e6cf4211960a9ddb9505280fd22cde32175f40884c641c0f5a286036
  F src/tclsqlite.h 614b3780a62522bc9f8f2b9fb22689e8009958e7aa77e572d0f3149050af348a
- F src/test1.c bdaf7b1821d1be4e67580c0dd1fa0903d8bbb6abb273bb854e70b6c626db9daf
 -F src/test1.c f880ab766eeedf2c063662bd9538b923fd42c4341b7bfc2150a6d93ab8b9341c
++F src/test1.c b3eb7c421aafcc14b3143243076884fc3d85d050338daab397a870281de13a45
  F src/test2.c 62f0830958f9075692c29c6de51b495ae8969e1bef85f239ffcd9ba5fb44a5ff
  F src/test3.c 432646f581d8af1bb495e58fc98234380250954f5d5535e507fc785eccc3987a
  F src/test4.c 0ac87fc13cdb334ab3a71823f99b6c32a6bebe5d603cd6a71d84c823d43a25a0
@@@ -768,7 -761,7 +767,7 @@@ F src/test_backup.c a2bfd90d2ff2511b863
  F src/test_bestindex.c 3401bee51665cbf7f9ed2552b5795452a8b86365e4c9ece745b54155a55670c6
  F src/test_blob.c 77b994e17f2c87055f44fd96c9a206c5a7155bae2cda2769af60c2f3582f962c
  F src/test_btree.c 28283787d32b8fa953eb77412ad0de2c9895260e4e5bd5a94b3c7411664f90d5
- F src/test_config.c 7bd467660d36ce56cea4a291cf75b3018effea87b6cc8f58a8873d65be1e1bc4
 -F src/test_config.c 18aa596d37de1d5968c439fd58ebf38bc4d9c9d1db63621504e241fde375cecd
++F src/test_config.c 3aedafeffa534c1bacec76037dab4f7340229f7e92c7cae98dc4d0252a8f1acc
  F src/test_delete.c d0e8f6dc55cfc98a7c27c057fb88d512260564bf0b611482656c68b8f7f401ed
  F src/test_demovfs.c 3efa2adf4f21e10d95521721687d5ca047aea91fa62dd8cc22ac9e5a9c942383
  F src/test_devsym.c 649434ed34d0b03fbd5a6b42df80f0f9a7e53f94dd1710aad5dd8831e91c4e86
@@@ -803,30 -796,30 +802,30 @@@ F src/test_vfs.c b4135c1308516adf0dfd49
  F src/test_window.c 6d80e11fba89a1796525e6f0048ff0c7789aa2c6b0b11c80827dc1437bd8ea72
  F src/test_wsd.c 41cadfd9d97fe8e3e4e44f61a4a8ccd6f7ca8fe9
  F src/threads.c 4ae07fa022a3dc7c5beb373cf744a85d3c5c6c3c
- F src/tokenize.c 8400646d2830afc2f2dc465a75e3a92e4bedeea623f19dbd79c0c12d0dd6dda2
+ F src/tokenize.c cb3294cf23c11106b50d9af6998a6c1bf389b52e15b17698c9fab97bbaa9b37f
  F src/treeview.c 3ce7ac9835d2d70cc1c868b01b747ae8a062322e155701e58e3d62ca79aada7a
  F src/trigger.c d5cf2541ff048f30b6a0507eb3d1ec4e695c53584e3b2298a5bf248714fe185e
 -F src/update.c 3e5e7ff66fa19ebe4d1b113d480639a24cc1175adbefabbd1a948a07f28e37cf
 +F src/update.c e1a8b1876e6f2a1824a6b9f1999a03d5dd50ce250a1bb86ea133e5b4b359488b
  F src/upsert.c 215328c3f91623c520ec8672c44323553f12caeb4f01b1090ebdca99fdf7b4f1
  F src/utf.c 7267c3fb9e2467020507601af3354c2446c61f444387e094c779dccd5ca62165
  F src/util.c 36fb1150062957280777655976f3f9a75db236cb8207a0770ceae8d5ec17fcd3
 -F src/vacuum.c 1bacdd0a81d2b5dc1c508fbf0d938c89fa78dd8d5b46ec92686d44030d4f4789
 -F src/vdbe.c 057eced21ffe816e654a2959bc472c844f1397082a52c6dca1685608d63fe0af
 +F src/vacuum.c 9e6ca9779ed3924fa6590a5a5ffe4d9233cead10144bbc285da44ff5519f7ec4
- F src/vdbe.c 6ea46d6aa01f2e63a87f955f550f6ebecbf46058fb7f3abca65145637ebc09c0
- F src/vdbe.h ea1f1b52f0efe422f80d88da3c57e4eadc72856e29a22f1ff08e502ec6ba5f08
++F src/vdbe.c 34ff2e63552d0334c4d14b9d4d11dc5152d70b978544c38f8f6af8e1ab4d5e88
+ F src/vdbe.h be33bd7b17f2ec92939642416030491508c51071f6c14e27cd195983fec56b63
  F src/vdbeInt.h 52896dd4d5b62190c53db14b09fc2484434eb594c963df0fa66eb8a94527b02e
- F src/vdbeapi.c f9a4881a9674fec3fa13da35044a1484d3c4b95f9ec891cc8ffb02ef2b7a41df
- F src/vdbeaux.c a851468e72aa48fb191df7c34161904990cbde8fb92b7acb054348a3434345b0
+ F src/vdbeapi.c 869a0da5d855495055f4d35c6ada582f64ce995ce14b26ff9d336274d497266c
 -F src/vdbeaux.c 6655264f299212c777384fb566a55eaddd177235e90587139e44ab33bca09bda
++F src/vdbeaux.c a2f2fe39ab0de42efcc5c8da6791a14e9da992bd3007d0b8e09f2ed8588adf66
  F src/vdbeblob.c b3f0640db9642fbdc88bd6ebcc83d6009514cafc98f062f675f2c8d505d82692
  F src/vdbemem.c e67d9c6484d868c879d20c70d00bf4a9058082f1d4058607ca15d50eb3aebc21
- F src/vdbesort.c cb6f472e83ca12c46aa7de0ac0a9d11458b357986f2617a1c90dfb19a542ecbe
- F src/vdbetrace.c fe0bc29ebd4e02c8bc5c1945f1d2e6be5927ec12c06d89b03ef2a4def34bf823
+ F src/vdbesort.c b69220f4ea9ffea5fdef34d968c60305444eea909252a81933b54c296d9cca70
+ F src/vdbetrace.c 49e689f751505839742f4a243a1a566e57d5c9eaf0d33bbaa26e2de3febf7b41
  F src/vdbevtab.c fc46b9cbd759dc013f0b3724549cc0d71379183c667df3a5988f7e2f1bd485f3
  F src/vtab.c 828221bdbeaaa6d62126ee6d07fd4ec0d09dcaea846f87ad01944d8b7e548859
  F src/vxworks.h 9d18819c5235b49c2340a8a4d48195ec5d5afb637b152406de95a9436beeaeab
- F src/wal.c 45f107fc800f64dbc5ea794efcb451b7eb5f29db5cd812c0597848bcc0ee8318
 -F src/wal.c 50707a2d17b615d040cb07d54779c408878398a5d1631a2325c1c35eff229d6f
 -F src/wal.h 97b8a9903387401377b59507e86b93a148ef1ad4e5ce0f23659a12dcdce56af2
++F src/wal.c 96707248044c67b18ce1c871ae863aaf0c8511a5f721e629d628ddf81b15ba5d
 +F src/wal.h 8d02ab8c2a93a941f5898eb3345bf711c1d3f8f86f4be8d5428fb6c074962d8a
  F src/walker.c d5006d6b005e4ea7302ad390957a8d41ed83faa177e412f89bc5600a7462a014
- F src/where.c 9e6b0da119a155ee2b0f8f16fc012a23aa5d7cfca8d2298ab5687c05b9110ecd
+ F src/where.c 7d17cd5cb883b2166097957e20c4aab2d0d98e0c1141002ef77b5f6b9deed844
  F src/whereInt.h 8d94cb116c9e06205c3d5ac87af065fc044f8cf08bfdccd94b6ea1c1308e65da
  F src/wherecode.c 71c5c6804b7f882dec8ec858758accae02fcfca13df3cc720f1f258e663ec7c5
  F src/whereexpr.c 403a44eeec1a0f0914fccc6a59376b6924bc00ef6728fe6ffce4cf3051b320fc
@@@ -908,9 -901,8 +907,9 @@@ F test/backup_ioerr.test 4c3c7147cee85b
  F test/backup_malloc.test 0c9abdf74c51e7bedb66d504cd684f28d4bd4027
  F test/badutf.test d5360fc31f643d37a973ab0d8b4fb85799c3169f
  F test/badutf2.test f310fd3b24a491b6b77bccdf14923b85d6ebcce751068c180d93a6b8ff854399
- F test/basexx1.test 655ef510338820fe58a860fae66e13a0d44bb47d842713936431296aca992473
+ F test/basexx1.test 4ae6ddbd92a7ebcabb5d844664c3e755d29fb69c8ddcf0c8d59bbe4e07c23919
  F test/bc_common.tcl c70b896d1d4ce72f769d2c7c1fc15b2cb07559eb2093f2736c8ca51664b29ff5
 +F test/bc_test1.c e0a092579552e066ed4ce7bcdaecfa69c4aacc8d
  F test/bestindex1.test 856a453dff8c68b4568601eed5a8b5e20b4763af9229f3947c215729ed878db0
  F test/bestindex2.test 394ff8fbf34703391247116d6a44e1c50ee7282236ee77909044573cefc37bc0
  F test/bestindex3.test 34bea272b0e0f835651b16a3931dbe7ac927039be6b2e1cb617bbe1d584b492b
@@@ -1510,8 -1492,9 +1511,8 @@@ F test/pagesize.test 5769fc62d8c890a83a
  F test/pcache.test c8acbedd3b6fd0f9a7ca887a83b11d24a007972b
  F test/pcache2.test af7f3deb1a819f77a6d0d81534e97d1cf62cd442
  F test/pendingrace.test e99efc5ab3584da3dfc8cd6a0ec4e5a42214820574f5ea24ee93f1d84655f463
- F test/percentile.test 52ba89d6ee6b65f770972b67dace358bab7cdbd532803d3db157845268e789cd
+ F test/percentile.test eaee1ff3e35d5fe933ac98d927c9a7d2f4f1a1a19ee22e7d45e97a6d9ee32077
 -F test/permutations.test db0a650837cf1eb2128b9c33aac8059933338cf25ccd4c7a089115d6b23368cf
 +F test/permutations.test 965b59d667eac286a6dc74c7cc93943683834708bb6870028b6f12af8faec68f
  F test/pg_common.tcl 3b27542224db1e713ae387459b5d117c836a5f6e328846922993b6d2b7640d9f
  F test/pragma.test 7d07b7bb76e273215d6a20c4f83c3062cc28976c737ccb70a686025801e86c8f
  F test/pragma2.test e5d5c176360c321344249354c0c16aec46214c9f
@@@ -2008,7 -1989,7 +2010,7 @@@ F test/wal_common.tcl 204d1721ac13c5e0c
  F test/walbak.test 018d4e5a3d45c6298d11b99f09a8ef6876527946
  F test/walbig.test f437473a16cfb314867c6b5d1dbcd519e73e3434
  F test/walblock.test 6bb472e82730e7e4e81395e907a01d8cfc2bd9e1f01f8a9184ca572e2955a4bf
- F test/walckptnoop.test b44f18370476faac8511f97e99c737dd611416fa64ecd63da9b5b59783acabcb
 -F test/walckptnoop.test b13a2c3140f2c913cfd422d9a224544757d04b8b14ab4c267ab9910467c0b9be
++F test/walckptnoop.test da39a3ee5e6b4b0d3255bfef95601890afd80709
  F test/walcksum.test 50e204500eed9c691b6045e467bb2923f49aa93d8adf315e2be135fdb202c1c2
  F test/walcrash.test 21038858cc552077b0522f50b0fa87e38139306a
  F test/walcrash2.test a0edab4e5390f03b99a790de89aad15d6ec70b36
@@@ -2206,8 -2185,8 +2208,8 @@@ F tool/version-info.c 3b36468a90faf1bbd
  F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
  F tool/warnings.sh 1ad0169b022b280bcaaf94a7fa231591be96b514230ab5c98fbf15cd7df842dd
  F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
- P 399cada13519f6d8b6b445b625857a9a655fb15892678829d351d40c73953e40
- R 983b443156bd8238ef005246af53af0f
- U dan
- Z 0f48d61b8ae9486d1642700a133d6676
 -P 83fa6234091abc001136b1ce168ece0da086e440ab32db9a51887ec0229e761c 1803cb9bb6a13fb66956f729066b6eae64c3a1c0715102fb1a9994e395c12ba9
 -R dce510f9f65dd43e919d5a10b866c75c
++P a7fbbfc7dd2b8b0ac18b17a9a57b834c0d249af1642426362b8501e87c42a7bd 2ae29242aa04e25f5bd47517c68d1f70c2b2173682730055f8ca8d9581c9bc23
++R 295a32663df9b0368d2e6b43136a0990
+ U drh
 -Z 3acea67f5706c7aa20f916a1fc790e97
++Z 4575e8bc7aafcb07c57d47c84b2fecb0
  # Remove this line to create a well-formed Fossil manifest.
diff --cc manifest.uuid
index 78d040f434444c32268bdd634f2a6e35aab4f351,054715b09a0ad010c3e3aa683edee8812aa60a62..d3966663f67fb447ee30962b93a36384b744768c
@@@ -1,1 -1,1 +1,1 @@@
- a7fbbfc7dd2b8b0ac18b17a9a57b834c0d249af1642426362b8501e87c42a7bd
 -2ae29242aa04e25f5bd47517c68d1f70c2b2173682730055f8ca8d9581c9bc23
++2563e274ee18a267beb521119170543dc3949a1239d781884c4a5fab61d07d3c
diff --cc src/build.c
Simple merge
diff --cc src/func.c
Simple merge
diff --cc src/os_unix.c
Simple merge
diff --cc src/sqlite.h.in
index 7c46ee3591ac6d4cd9f87b5491d0ba3aa84ab54f,a821ecb3016aed5e1d5d490603888f7e8c364cd4..d87024da38f43e50a939aa5c4a578d3b9d5ea371
@@@ -11140,98 -11153,54 +11178,146 @@@ int sqlite3_deserialize
  #define SQLITE_DESERIALIZE_RESIZEABLE  2 /* Resize using sqlite3_realloc64() */
  #define SQLITE_DESERIALIZE_READONLY    4 /* Database is read-only */
  
 +/*
 +** Access details of recent COMMIT commands. This function allows various
 +** details related to the most recent COMMIT command to be accessed. 
 +** The requested value is always returned via output parameter (*piVal).
 +** The specific value requested is identified by parameter op (see
 +** below).
 +**
 +** SQLITE_OK is returned if successful, or SQLITE_ERROR if the "op" or
 +** "zDb" paramters are unrecognized.
 +*/
 +int sqlite3_commit_status(
 +  sqlite3 *db,                    /* Database handle */
 +  const char *zDb,                /* Name of database - "main" etc. */
 +  int op,                         /* SQLITE_COMMIT_XXX constant */
 +  unsigned int *piVal             /* OUT: Write requested value here */
 +);
 +
 +/*
 +** The following describes the five requests supported by
 +** sqlite3_commit_status(), each identified by an SQLITE_COMMIT_XXX 
 +** constant:
 +** 
 +** SQLITE_COMMIT_FIRSTFRAME:
 +**   In this case argument zDb must be "main", or "temp", or else the name of
 +**   an attached database. If zDb does not correspond to any attached database, 
 +**   SQLITE_ERROR is returned.
 +**
 +**   The final value of (*piVal) for this request is only defined if (a) the
 +**   most recent attempt to write to the database connection was successful,
 +**   (b) the most recent attempt to write to the database did write to database 
 +**   zDb, and (c) zDb is a wal mode database.
 +**
 +**   If the above conditions are true, then output parameter (*piVal) is
 +**   set to the frame number of the first frame written by the recent 
 +**   transaction. In wal mode, or in wal2 mode when a transaction is
 +**   written into the *-wal file, the frame number indicates the frame's 
 +**   position in the wal file - frames are numbered starting from 1. In 
 +**   wal2 mode, when a transaction is written to the *-wal2 file, the frame
 +**   number is the frame's position in the *-wal2 file, plus (1 << 31).
 +**
 +**   Note: Although the a database may have up to (1<<32) pages, each wal
 +**   file may contain at most (1<<31) frames.
 +**
 +** SQLITE_COMMIT_NFRAME:
 +**   zDb is interpreted in the same way as, and the final value of (*piVal)
 +**   is undefined, for SQLITE_COMMIT_FIRSTFRAME.
 +**
 +**   Otherwise, (*piVal) is set to the number of frames written by the 
 +**   recent transaction.
 +**
 +** SQLITE_COMMIT_CONFLICT_DB:
 +**   Parameter zDb is ignored for this request. The results of this
 +**   request are only defined if the most recent attempt to write to
 +**   the database handle was a BEGIN CONCURRENT transaction that 
 +**   failed with an SQLITE_BUSY_SNAPSHOT error.
 +**
 +**   In other cases, (*piVal) is set to the index of the database
 +**   on which the SQLITE_BUSY_SNAPSHOT error occurred (0 for main,
 +**   a value of 2 or greater for an attached database). This value
 +**   may be used with the sqlite3_db_name() API to find the name
 +**   of the conflicting database.
 +**
 +** SQLITE_COMMIT_CONFLICT_FRAME:
 +**   Parameter zDb is ignored for this request. The results of this
 +**   request are only defined if the most recent attempt to write to
 +**   the database handle was a BEGIN CONCURRENT transaction that 
 +**   failed with an SQLITE_BUSY_SNAPSHOT error.
 +**
 +**   (*piVal) is set to the frame number of the conflicting frame for 
 +**   the recent SQLITE_BUSY_SNAPSHOT error. The conflicting transaction may
 +**   be found by comparing this value with the FIRSTFRAME and
 +**   NFRAME values for recent succesfully committed transactions on
 +**   the same db. If the CONFLICT_FRAME value is F, then the conflicting 
 +**   transaction is the most recent successful commit for which 
 +**   (FIRSTFRAME <= F <= FIRSTFRAME+NFRAME) is true.
 +**
 +** SQLITE_COMMIT_CONFLICT_PGNO:
 +**   Parameter zDb is ignored for this request. The results of this
 +**   request are only defined if the previous attempt to write to
 +**   the database using database handle db failed with 
 +**   SQLITE_BUSY_SNAPSHOT.
 +**
 +**   Return the page number of the conflicting page for the most
 +**   recent SQLITE_BUSY_SNAPSHOT error.
 +*/
 +#define SQLITE_COMMIT_FIRSTFRAME     0
 +#define SQLITE_COMMIT_NFRAME         1
 +#define SQLITE_COMMIT_CONFLICT_DB    2
 +#define SQLITE_COMMIT_CONFLICT_FRAME 3
 +#define SQLITE_COMMIT_CONFLICT_PGNO  4
 +
 +
+ /*
+ ** CAPI3REF: Bind array values to the CARRAY table-valued function
+ **
+ ** The sqlite3_carray_bind(S,I,P,N,F,X) interface binds an array value to
+ ** one of the first argument of the [carray() table-valued function].  The
+ ** S parameter is a pointer to the [prepared statement] that uses the carray()
+ ** functions.  I is the parameter index to be bound.  P is a pointer to the
+ ** array to be bound, and N is the number of eements in the array.  The
+ ** F argument is one of constants [SQLITE_CARRAY_INT32], [SQLITE_CARRAY_INT64],
+ ** [SQLITE_CARRAY_DOUBLE], [SQLITE_CARRAY_TEXT], or [SQLITE_CARRAY_BLOB] to
+ ** indicate the datatype of the array being bound.  The X argument is not a
+ ** NULL pointer, then SQLite will invoke the function X on the P parameter
+ ** after it has finished using P, even if the call to
+ ** sqlite3_carray_bind() fails. The special-case finalizer
+ ** SQLITE_TRANSIENT has no effect here.
+ */
+ int sqlite3_carray_bind(
+   sqlite3_stmt *pStmt,        /* Statement to be bound */
+   int i,                      /* Parameter index */
+   void *aData,                /* Pointer to array data */
+   int nData,                  /* Number of data elements */
+   int mFlags,                 /* CARRAY flags */
+   void (*xDel)(void*)         /* Destructor for aData */
+ );
+ /*
+ ** CAPI3REF: Datatypes for the CARRAY table-valued function
+ **
+ ** The fifth argument to the [sqlite3_carray_bind()] interface musts be
+ ** one of the following constants, to specify the datatype of the array
+ ** that is being bound into the [carray table-valued function].
+ */
+ #define SQLITE_CARRAY_INT32     0    /* Data is 32-bit signed integers */
+ #define SQLITE_CARRAY_INT64     1    /* Data is 64-bit signed integers */
+ #define SQLITE_CARRAY_DOUBLE    2    /* Data is doubles */
+ #define SQLITE_CARRAY_TEXT      3    /* Data is char* */
+ #define SQLITE_CARRAY_BLOB      4    /* Data is struct iovec */
+ /*
+ ** Versions of the above #defines that omit the initial SQLITE_, for
+ ** legacy compatibility.
+ */
+ #define CARRAY_INT32     0    /* Data is 32-bit signed integers */
+ #define CARRAY_INT64     1    /* Data is 64-bit signed integers */
+ #define CARRAY_DOUBLE    2    /* Data is doubles */
+ #define CARRAY_TEXT      3    /* Data is char* */
+ #define CARRAY_BLOB      4    /* Data is struct iovec */
  /*
  ** Undo the hack that converts floating point types to integer for
  ** builds on processors without floating point support.
diff --cc src/sqliteInt.h
Simple merge
diff --cc src/test1.c
Simple merge
Simple merge
diff --cc src/vdbe.c
Simple merge
diff --cc src/vdbeaux.c
Simple merge
diff --cc src/wal.c
Simple merge
index ec5933fdf1bf4a6067b16a9964c91f24c29e97d5,7ff8e90b8f9c5b192f33a35cbb8758a260dbcc8e..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
@@@ -1,90 -1,110 +1,0 @@@
--# 2025 September 5
--#
--# 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 the operation of the library in
--# "PRAGMA wal_checkpoint = noop" mode.
--#
--
--set testdir [file dirname $argv0]
--source $testdir/tester.tcl
--source $testdir/lock_common.tcl
--source $testdir/malloc_common.tcl
--source $testdir/wal_common.tcl
--
--set testprefix walckptnoop
--
--ifcapable !wal {finish_test ; return }
 -
 -set VAL 123
 -
 -proc myrand {} {
 -  global VAL
 -
 -  set A 1103515245
 -  set C 12345
 -  set M 2147483648
 -
 -  set VAL [expr {($A * $VAL + $C) % $M}]
 -  return $VAL
 -}
 -
 -proc myrandomblob {n} {
 -  set l [list]
 -  for {set i 0} {$i < $n} {incr i} {
 -    lappend l [expr [myrand] % 256]
 -  }
 -  binary format c* $l
 -}
 -
 -db func myrandomblob myrandomblob
 -
--
--do_execsql_test 1.0 {
--  PRAGMA page_size=1024;
--  PRAGMA auto_vacuum=NONE;
--  PRAGMA secure_delete=OFF;
--  VACUUM;
--  CREATE TABLE t1(x INTEGER PRIMARY KEY, y TEXT);
--  CREATE INDEX i1 ON t1(y);
--  PRAGMA journal_mode = wal;
--
--  WITH s(i) AS (
--    SELECT 1 UNION ALL SELECT i+1 FROM s WHERE i<1000
--  )
-   INSERT INTO t1 SELECT NULL, hex(randomblob(64)) FROM s;
 -  INSERT INTO t1 SELECT NULL, hex(myrandomblob(64)) FROM s;
--} {0 wal}
--
--do_execsql_test 1.1 {
--  PRAGMA wal_checkpoint = noop;
- } {0 314 0}
 -} {0 298 0}
--do_execsql_test 1.2 {
--  PRAGMA wal_checkpoint = noop;
- } {0 314 0}
 -} {0 298 0}
--do_execsql_test 1.3 {
--  PRAGMA wal_checkpoint = passive;
- } {0 314 314}
 -} {0 298 298}
--do_execsql_test 1.4 {
--  PRAGMA wal_checkpoint = noop;
- } {0 314 314}
 -} {0 298 298}
--
--db_save_and_close
--db_restore_and_reopen
--do_execsql_test 1.5 {
--  PRAGMA wal_checkpoint = noop;
- } {0 314 0}
 -} {0 298 0}
--
--db close
--sqlite3 db test.db
--db eval {
--  PRAGMA auto_vacuum=NONE;
--  PRAGMA secure_delete=OFF;
--}
--do_execsql_test 1.6 {
--  PRAGMA wal_checkpoint = noop;
--} {0 0 0}
--
--do_catchsql_test 1.7 {
--  BEGIN;
--    DELETE FROM t1;
--    PRAGMA wal_checkpoint = noop;
--} {1 {database table is locked}}
--
--do_catchsql_test 1.8 {
--  COMMIT;
--  PRAGMA wal_checkpoint = noop;
--} {0 {0 5 0}}
- explain_i {
-   PRAGMA wal_checkpoint = noop;
- }
--
--do_execsql_test 1.9 {
--  PRAGMA journal_mode = delete;
--  PRAGMA wal_checkpoint = noop;
--} {delete 0 -1 -1}
--
--finish_test