From: drh <> Date: Mon, 27 Oct 2025 12:01:56 +0000 (+0000) Subject: Merge the latest trunk enhancements up into the bedrock branch X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a4124d4256f5b090af005cc37616d822b57ef114;p=thirdparty%2Fsqlite.git Merge the latest trunk enhancements up into the bedrock branch FossilOrigin-Name: 2563e274ee18a267beb521119170543dc3949a1239d781884c4a5fab61d07d3c --- a4124d4256f5b090af005cc37616d822b57ef114 diff --cc manifest index 324ca086f5,138092d2b9..3ceebe729c --- a/manifest +++ 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 78d040f434,054715b09a..d3966663f6 --- a/manifest.uuid +++ b/manifest.uuid @@@ -1,1 -1,1 +1,1 @@@ - a7fbbfc7dd2b8b0ac18b17a9a57b834c0d249af1642426362b8501e87c42a7bd -2ae29242aa04e25f5bd47517c68d1f70c2b2173682730055f8ca8d9581c9bc23 ++2563e274ee18a267beb521119170543dc3949a1239d781884c4a5fab61d07d3c diff --cc src/sqlite.h.in index 7c46ee3591,a821ecb301..d87024da38 --- a/src/sqlite.h.in +++ b/src/sqlite.h.in @@@ -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 test/walckptnoop.test index ec5933fdf1,7ff8e90b8f..e69de29bb2 --- a/test/walckptnoop.test +++ b/test/walckptnoop.test @@@ -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