]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
2 months agoUpdate the tester1 SEE tests to account for opfs-wl. opfs-wl
stephan [Sun, 8 Mar 2026 08:09:09 +0000 (08:09 +0000)] 
Update the tester1 SEE tests to account for opfs-wl.

FossilOrigin-Name: 616d32c8380ef47c5a7c2eb765e7b6fbec9500d4e16c837f4ee11d71c239a55f

2 months agoRefactor tester1 OPFS test to support both the "opfs" and "opfs-wl" VFSes.
stephan [Sun, 8 Mar 2026 07:58:02 +0000 (07:58 +0000)] 
Refactor tester1 OPFS test to support both the "opfs" and "opfs-wl" VFSes.

FossilOrigin-Name: 17ac8d7bdfaf96510abea8c11019045c1703b7040655d9c4c8d7001636260b50

3 months agoExtend the JS pre-bootstrapping configuration to include an option to disable inclusi...
stephan [Sat, 7 Mar 2026 06:10:29 +0000 (06:10 +0000)] 
Extend the JS pre-bootstrapping configuration to include an option to disable inclusion of any given extension VFS (not the default VFSes, like memdb). The primary motivation for this is to give people who don't use OPFS to a way to keep the OPFS VFSes from loading their proxy workers, which are expensive.

FossilOrigin-Name: 9a07eb7a941479510891d1444aacbeb440efaad3e9a13f186833618d8b60a8da

3 months agoFix the mangling of the opfs async proxy script's URI caused by both OPFS VFSes modif...
stephan [Sat, 7 Mar 2026 04:19:08 +0000 (04:19 +0000)] 
Fix the mangling of the opfs async proxy script's URI caused by both OPFS VFSes modifying it to accound for sqlite3.dir. Add a link to speedtest1 with opfw-wl to index.html.

FossilOrigin-Name: c1cb61f473a11a325ef421ba8edfb20257203688565f7db62309044be183af5f

3 months agoCleanups and docs in the opfs vfs and its concurrency tester. Experimentally add...
stephan [Sat, 7 Mar 2026 03:32:17 +0000 (03:32 +0000)] 
Cleanups and docs in the opfs vfs and its concurrency tester. Experimentally add sqlite3.capi.sqlite3_js_retry_busy(), which runs a callback repeatedly until it _stops_ returning (or throwing) an SQLITE_BUSY error.

FossilOrigin-Name: 45c02ed21635f7ef45214ab5ec6230b6b8bd89e35ef5889db318523e1c679fea

3 months agoElide more of the 64-bit was stuff from the default build target.
stephan [Sat, 7 Mar 2026 03:29:26 +0000 (03:29 +0000)] 
Elide more of the 64-bit was stuff from the default build target.

FossilOrigin-Name: 3b74ad9081daee560bf9b400e69a75abcc62dae7c5f55dcf46de84daae50ed9f

3 months agoCleanups and docs in the new opfs code structure.
stephan [Sat, 7 Mar 2026 02:19:23 +0000 (02:19 +0000)] 
Cleanups and docs in the new opfs code structure.

FossilOrigin-Name: 3b470c4c7a1fcc710e6b9eae32134c7f6c3f6008b24c7351257f66f5e8f70311

3 months agoFor backwards compatibility, ensure that the "opfs" VFS does not specifically require...
stephan [Sat, 7 Mar 2026 01:01:13 +0000 (01:01 +0000)] 
For backwards compatibility, ensure that the "opfs" VFS does not specifically require Atomics.waitAsync() (a new requirement of "opfs-wl"), but make use of it if available. Only apply jitter to the concurrency test runs at random intervals.

FossilOrigin-Name: f2175f526c00cfe562e8f332eb197b5ef2c3d6be1fff2aab1566c2c533a293ac

3 months agoAdd some jitter and duration info to the opfs concurrency tester. Ensure that Atomics...
stephan [Fri, 6 Mar 2026 23:50:44 +0000 (23:50 +0000)] 
Add some jitter and duration info to the opfs concurrency tester. Ensure that Atomics.waitAsync() is available for opfs-wl. Further testing has shown that Web opfs-wl is consistently fairer about doling out contested locks but it's dog slow compared to the original VFS under moderate concurrency. In single-connection use they're effectively on par.

FossilOrigin-Name: a9aecc987512d60f2663973f43c769cf086fc14149edfbcb18c0aec9f5aa3dbf

3 months agoGet "opfs" and "opfs-wl" properly split. Speedtest1 and the concurrency tester are...
stephan [Fri, 6 Mar 2026 22:21:06 +0000 (22:21 +0000)] 
Get "opfs" and "opfs-wl" properly split. Speedtest1 and the concurrency tester are happy with opfs-wl but it is not yet plugged in to tester1.

FossilOrigin-Name: 12dcd5425967b6306f3e3178babeac130962edb78e6298d545a429a1a20457cc

3 months agoMinor cleanups and docs. Teach the OPFS concurrency tester to deal with SQLITE_BUSY...
stephan [Fri, 6 Mar 2026 19:33:25 +0000 (19:33 +0000)] 
Minor cleanups and docs. Teach the OPFS concurrency tester to deal with SQLITE_BUSY instead of failing.

FossilOrigin-Name: 247ffed141f66a6a5a396a3e002995a9f00c70333271199200530066e77956c4

3 months agoThis one reliably runs 5 workers. Checking in before subsequent cleanups and debug...
stephan [Fri, 6 Mar 2026 17:10:28 +0000 (17:10 +0000)] 
This one reliably runs 5 workers. Checking in before subsequent cleanups and debug output removal break it.

FossilOrigin-Name: ba81d95febc5fd0f9bbb2685fef5b1b10f9991751f2bdfafba80c15877af1cef

3 months agoCorrect an internal doc falsehood.
stephan [Fri, 6 Mar 2026 16:15:32 +0000 (16:15 +0000)] 
Correct an internal doc falsehood.

FossilOrigin-Name: 53aa080e357d7a2ffeab68a3584fda43d51ecef3dc8a1d46dd32392ae4f9740c

3 months agoThis Web Lock impl can reliably run a single OPFS connection but rather unreliably...
stephan [Fri, 6 Mar 2026 16:04:21 +0000 (16:04 +0000)] 
This Web Lock impl can reliably run a single OPFS connection but rather unreliably 'loses' workers with higher counts, presumably due to deadlock or deadly embrace (how _all_ of them can deadlock at once is unclear, but clearly a bug).

FossilOrigin-Name: d4e8583e2e80665adfe4e814adb6c219936af1dcac4105795045cb1a7b1e4864

3 months agoRemove an extraneous OPFS metrics increment.
stephan [Fri, 6 Mar 2026 11:49:36 +0000 (11:49 +0000)] 
Remove an extraneous OPFS metrics increment.

FossilOrigin-Name: bf3548a37712e848c7a9cadfdc1669a2be572ea0a0c28d84c157ab30f8c30c44

3 months agoA slight simplification/optimization in the OPFS proxy's waitLoop().
stephan [Fri, 6 Mar 2026 09:11:47 +0000 (09:11 +0000)] 
A slight simplification/optimization in the OPFS proxy's waitLoop().

FossilOrigin-Name: 521bb140b7ed237c118ac9094732d06907229a6ff385502e850c679bd623fd58

3 months agoReimplement the OPFS async proxy's wait-forever loop to be more async-friendly for...
stephan [Fri, 6 Mar 2026 09:06:24 +0000 (09:06 +0000)] 
Reimplement the OPFS async proxy's wait-forever loop to be more async-friendly for upcoming changes.

FossilOrigin-Name: fd775772fbb50b04c8c37977b90a708784eefed403e3668196c9d95559d3a5e1

3 months agoStrip the opfs-wl "back to formula", removing the current false starts so that this...
stephan [Thu, 5 Mar 2026 11:51:27 +0000 (11:51 +0000)] 
Strip the opfs-wl "back to formula", removing the current false starts so that this can be tried again without tripping over any cruft. The current impl is subject, with no obvious way out of it, to starvation in the async proxy.

FossilOrigin-Name: d022f1f5e74dedae044801330eb099022498f359f408e69b3574885641b312f5

3 months agoThe opfs-wl lock hang has been traced to starvation between the WebLock and the tight...
stephan [Thu, 5 Mar 2026 06:30:57 +0000 (06:30 +0000)] 
The opfs-wl lock hang has been traced to starvation between the WebLock and the tight wait-on-VFS-calls Atomics.wait() loop. This can reportedly be resolved with another level of indirection in which the WebLock takes over the wait-on-VFS-calls part until it's unlocked, returning to the global loop when it's done. That exceeds this morning's ambitions but is next to try out.

FossilOrigin-Name: 113bd910e12fea17f9f4a0a3baf706f15627c08cfa6b47a960a83eee761ef4dd

3 months agoAdd some debugging output to opfs and track down the breakage to the initial WebLock...
stephan [Wed, 4 Mar 2026 21:16:36 +0000 (21:16 +0000)] 
Add some debugging output to opfs and track down the breakage to the initial WebLock request, which is never reaching its callback. Still broken, but this is progress.

FossilOrigin-Name: 62fc8b35aeec75f5648b3daa24162c638999d447aa874bdfcbac1431c5c97b6f

3 months agoGet opfs-wl plugged in to the concurrency tester. Somewhat ironically, all competing...
stephan [Wed, 4 Mar 2026 20:33:21 +0000 (20:33 +0000)] 
Get opfs-wl plugged in to the concurrency tester. Somewhat ironically, all competing workers fail with locking errors while worker 1 is busy running off the rails somewhere. Stashing for closer investigation later.

FossilOrigin-Name: 3b27310aa29ea84f459974981a600301abac5c705029a289d3872ecacf231da3

3 months agoConsolidate the last 200 lines of common OPFS VFS code. "opfs" still works, "opfs...
stephan [Wed, 4 Mar 2026 19:21:09 +0000 (19:21 +0000)] 
Consolidate the last 200 lines of common OPFS VFS code. "opfs" still works, "opfs-wl" registers fine but is still otherwise untested.

FossilOrigin-Name: 5978ee4902e4223fed6b95bd2d8f489bb300af8b762650e7113d1f3e97519d88

3 months agoFactor out about 300 lines of common OPFS VFS bootstrapping code.
stephan [Wed, 4 Mar 2026 17:54:02 +0000 (17:54 +0000)] 
Factor out about 300 lines of common OPFS VFS bootstrapping code.

FossilOrigin-Name: 57adecbab71795b62b1c2e4570ff504f35681e81dd8c94f78ad8e05ef39d36fd

3 months agoConsolidate the OPFS VFS's metrics-tracking code.
stephan [Wed, 4 Mar 2026 16:30:51 +0000 (16:30 +0000)] 
Consolidate the OPFS VFS's metrics-tracking code.

FossilOrigin-Name: b71c79ef9672c77a72a976ffcd7cbebfaf0ff314dff97b274f7d092de6a7773f

3 months agoBaby steps in consolidating common OPFS VFS code.
stephan [Wed, 4 Mar 2026 14:33:33 +0000 (14:33 +0000)] 
Baby steps in consolidating common OPFS VFS code.

FossilOrigin-Name: b0dd23299e97ff975f213cb3a8b051f4d7b785b29def82e01f53427fdf77ecb6

3 months agoConsolidate much of the OPFS utility code into a new file for use by two of the OPFS...
stephan [Wed, 4 Mar 2026 11:37:39 +0000 (11:37 +0000)] 
Consolidate much of the OPFS utility code into a new file for use by two of the OPFS VFSes.

FossilOrigin-Name: db19a6e9663c3a44996178cb8c35dc4ccd60f48cb4b81b6c214411a56c57def7

3 months agoA potential fix for the probable breakage of bundler-friendly builds in the previous...
stephan [Wed, 4 Mar 2026 00:48:03 +0000 (00:48 +0000)] 
A potential fix for the probable breakage of bundler-friendly builds in the previous check-in. Pending review from someone who uses those tools.

FossilOrigin-Name: 8ea85776116521526d684f221d67e288126e62931d4a0ea7fc7f164cd2d5b2ec

3 months agoopfs-wl is now loading and registering but it's still untested.
stephan [Wed, 4 Mar 2026 00:37:55 +0000 (00:37 +0000)] 
opfs-wl is now loading and registering but it's still untested.

FossilOrigin-Name: 9a471f7491a371052bf1785098ba966dd0d03503e7d8b9fbcd65f07b038e5021

3 months agoAn initial attempt to plugging opfs-wl into the build but its initial handshake with...
stephan [Tue, 3 Mar 2026 23:43:40 +0000 (23:43 +0000)] 
An initial attempt to plugging opfs-wl into the build but its initial handshake with the async half collides with the opfs VFS's handshake, causing bootstrapping to fail miserably. We'll need to either devise a handshake which can differentiate between the two instances or we'll need to preprocess sqlite3-opfs-async-proxy into two copies. Move the (now) three copies of some common code shared by the opfs pieces into a preprocessor #include.

FossilOrigin-Name: 1e0b72631aecb0bb72f4089116da221e6c4abf962db589de08132cd52c2be0e2

3 months agoAdd a missing reset of the lock handshake SharedArrayBuffer slot.
stephan [Tue, 3 Mar 2026 21:46:44 +0000 (21:46 +0000)] 
Add a missing reset of the lock handshake SharedArrayBuffer slot.

FossilOrigin-Name: 5910ed7ac843aa1fdb103ddcfaf6270d12cb39199205fc0b9f721fbf7fa2f851

3 months agoImplementations of WebLock-based opfs::xLock() and xUnlock(). Still completely untest...
stephan [Tue, 3 Mar 2026 21:07:46 +0000 (21:07 +0000)] 
Implementations of WebLock-based opfs::xLock() and xUnlock(). Still completely untested and not yet integrated into the build.

FossilOrigin-Name: 3343e3aabe465f4ab91dd148dfc5a60346e9afb560c10d1f92aeae98763ec3ce

3 months agoMerge trunk into the opfs-wl branch.
stephan [Tue, 3 Mar 2026 18:34:59 +0000 (18:34 +0000)] 
Merge trunk into the opfs-wl branch.

FossilOrigin-Name: 81bc4b3b6abc19f98d1f3b1065c4b39a42620a0d7abebe98605dca62dd2d6f9a

3 months agoConvert many sqlite3_realloc() calls to sqlite3_realloc64().
drh [Mon, 2 Mar 2026 17:11:44 +0000 (17:11 +0000)] 
Convert many sqlite3_realloc() calls to sqlite3_realloc64().

FossilOrigin-Name: 88dce64242552e7443d9fb496f6f3ad71dc5b4a882ce21b7ef1d5ea4e26f1e61

3 months agoOmit explain_i calls from TCL test scripts.
drh [Mon, 2 Mar 2026 16:40:16 +0000 (16:40 +0000)] 
Omit explain_i calls from TCL test scripts.

FossilOrigin-Name: 204f25c882832058c3291d4d6a0a6ac2711c081cb91b19feb2cf94a25ed61ecf

3 months agoFix TEMP INSTEAD OF triggers so that they work on TEMP views.
drh [Mon, 2 Mar 2026 15:34:16 +0000 (15:34 +0000)] 
Fix TEMP INSTEAD OF triggers so that they work on TEMP views.
[forum:/forumpost/2026-02-28T23:33:04z|Forum post 2026-02-28T23:33:04z].

FossilOrigin-Name: 0596bd508f0bc548158858a1dc113af2235d02632ce8c41cd27d1029e1a7e48d

3 months agoChange some sqlite3_realloc() calls into sqlite3_realloc64(). realloc64
drh [Mon, 2 Mar 2026 15:06:59 +0000 (15:06 +0000)] 
Change some sqlite3_realloc() calls into sqlite3_realloc64().

FossilOrigin-Name: a391f5646926787fd9a004225ea406b61d20f282c852c0282fd26cada644b601

3 months agoRemove the experimental and incomplete ext/repair extension, to prevent AIs
drh [Mon, 2 Mar 2026 13:44:04 +0000 (13:44 +0000)] 
Remove the experimental and incomplete ext/repair extension,  to prevent AIs
from scanning the (incomplete) code and reporting bugs against it.

FossilOrigin-Name: 213b1c6608af4b3e9d6e0d8de6432cc6857931427baf4beac1e0a4294e4dc6ce

3 months agoDisable test shell1-5.0 as it is causing a use of initialized deep inside
drh [Mon, 2 Mar 2026 13:43:08 +0000 (13:43 +0000)] 
Disable test shell1-5.0 as it is causing a use of initialized deep inside
of TCL.

FossilOrigin-Name: 440bd6091e3767f0a2f42ffdc92ca5e4736c0a73324fdd15397c3b5dbbc31fb8

3 months agoUse only 64-bit memory allocation in FTS5. Fix for UAF reported by
drh [Mon, 2 Mar 2026 11:41:48 +0000 (11:41 +0000)] 
Use only 64-bit memory allocation in FTS5.  Fix for UAF reported by
Zijie Zhao.

FossilOrigin-Name: e8976d5041c929675772039b7a8fc4ff0b609537d86f9aa6e445ecd512a10673

3 months agoFix a possible 9-byte buffer overread in the zipfile extension hit when processing...
dan [Mon, 2 Mar 2026 11:22:28 +0000 (11:22 +0000)] 
Fix a possible 9-byte buffer overread in the zipfile extension hit when processing a corrupt zip file. Forum post [forum:/forumpost/721a05d2c5 | 721a05d2c5].

FossilOrigin-Name: 5db21813d126554d80db903be6d36ab6c1f73f9135a54af6dcfcfce0bcc18e68

3 months agoThe intck01.sql test should only be run if virtual tables work.
drh [Mon, 2 Mar 2026 00:06:02 +0000 (00:06 +0000)] 
The intck01.sql test should only be run if virtual tables work.

FossilOrigin-Name: 641d6f31a7f7b4901061e24d4e624da5ed92282e79771bb019b82a882e5d1ae9

3 months agoMore floating point conversion test cases.
drh [Sun, 1 Mar 2026 23:23:52 +0000 (23:23 +0000)] 
More floating point conversion test cases.

FossilOrigin-Name: 44a736a700ab12b398873400dc06cd334817842b4fa08bf8070a9ad6dbff0b51

3 months agoNew floating-point test case.
drh [Sun, 1 Mar 2026 23:01:17 +0000 (23:01 +0000)] 
New floating-point test case.

FossilOrigin-Name: f353399932e9797198e635405a594c2987850070e3f9aee87a05c5a65d4c1e00

3 months agoFix an OOB read in the incremental integrity-check extension.
drh [Sun, 1 Mar 2026 22:36:02 +0000 (22:36 +0000)] 
Fix an OOB read in the incremental integrity-check extension.

FossilOrigin-Name: abecc8e388e294311aa0b572e0a984b8ddad2afbf829c1246e1682fa549c8fac

3 months agoSimplified rounding logic in sqlite3Fp10Convert2().
drh [Sun, 1 Mar 2026 20:22:08 +0000 (20:22 +0000)] 
Simplified rounding logic in sqlite3Fp10Convert2().

FossilOrigin-Name: 8ac63ebc5c04ba555bbf0d878a70e25deba5fcc75ff44c464600b92c27e5dcb0

3 months agoCode changes in sqlite3Fp10Convert2() for easier maintenance. Does not
drh [Sat, 28 Feb 2026 20:22:10 +0000 (20:22 +0000)] 
Code changes in sqlite3Fp10Convert2() for easier maintenance.  Does not
affect the generated machine code.

FossilOrigin-Name: 21c8fc7100e23b632b77934cbbafb98dfd3e6e73bab702446ef6345b378c9d36

3 months agoImprovements to power-of-ten computations used for text ↔ binary64
drh [Fri, 27 Feb 2026 22:59:46 +0000 (22:59 +0000)] 
Improvements to power-of-ten computations used for text ↔ binary64
conversions.

FossilOrigin-Name: 0780bce854b962fb2d4a1a19c55c9b5790a9669f26e1ff8b5f1f1733cfc647e0

3 months agoMinor simplification to the text→binary64 conversion algorithm.
drh [Fri, 27 Feb 2026 20:37:03 +0000 (20:37 +0000)] 
Minor simplification to the text→binary64 conversion algorithm.

FossilOrigin-Name: 6632d51f1673e9a6b6e26baebc7aaa1ae27024ad5db1baff6ee5fcf865099f43

3 months agoTwo code comment typo fixes reported in the forum. No code changes.
stephan [Fri, 27 Feb 2026 18:32:12 +0000 (18:32 +0000)] 
Two code comment typo fixes reported in the forum. No code changes.

FossilOrigin-Name: 3fbd28fabc5509a0bf2026cb60891d6d3efe251910baa3a3934225d0a7187bfa

3 months agoFix an off-by-one error in the indentation of multi-line outputs in
drh [Fri, 27 Feb 2026 13:25:42 +0000 (13:25 +0000)] 
Fix an off-by-one error in the indentation of multi-line outputs in
QRF_STYLE_Line mode.

FossilOrigin-Name: d47499b21c893cc8749a1cafe1cf712dacfeaa6cfe2cdb75d1fc450f3cb6879f

3 months agoAdd an assert() to sqlite3RegisterLikeFunctions() to hopefully prevent
drh [Fri, 27 Feb 2026 11:36:43 +0000 (11:36 +0000)] 
Add an assert() to sqlite3RegisterLikeFunctions() to hopefully prevent
future false-positive bug reports coming out of CodeQL.

FossilOrigin-Name: 7c5f4dcd748baa60097bbf68d7aca99cc959bb1f7da92bd9ad86a4425a37d391

3 months agoAnother nano-optimization in kvvfs v2.
stephan [Fri, 27 Feb 2026 06:33:28 +0000 (06:33 +0000)] 
Another nano-optimization in kvvfs v2.

FossilOrigin-Name: a9d60190d693504742a894918f145111908d7d6cb9e853ba7a2356529046372a

3 months agoJS: slight performance improvements in KVVfsStorage.
stephan [Fri, 27 Feb 2026 03:21:47 +0000 (03:21 +0000)] 
JS: slight performance improvements in KVVfsStorage.

FossilOrigin-Name: 56edf2addb155dbb60269fe563ecb5f6132672c6c61f6f9d18ebdff72111298d

3 months agoAn initial copy/paste stub for experimenting with using WebLocks for a new copy of...
stephan [Fri, 27 Feb 2026 03:11:40 +0000 (03:11 +0000)] 
An initial copy/paste stub for experimenting with using WebLocks for a new copy of the OPFS vfs. This is not yet functional, or even loading, but needs stashing to avoid potential loss.

FossilOrigin-Name: 372f18ae909bafd7167b70051935832e3107ede72aaeccbf5c042db7ba791912

3 months agoFix typos in the SQLITE_PREPARE_FROM_DDL documentation.
drh [Thu, 26 Feb 2026 16:19:21 +0000 (16:19 +0000)] 
Fix typos in the SQLITE_PREPARE_FROM_DDL documentation.

FossilOrigin-Name: 9174e7dacf867c1f80e73ccf5e0ee7b9e84fbe9f2e53559d06b72206b1cde3c6

3 months agoImprovements to the SQLITE_PREPARE_FROM_DDL documentation.
drh [Thu, 26 Feb 2026 13:35:38 +0000 (13:35 +0000)] 
Improvements to the SQLITE_PREPARE_FROM_DDL documentation.

FossilOrigin-Name: c3288f16848866a2c846221c33631785f7b39938078bb95c61895f789395aa1d

3 months agoFix an inconsequential typo in the output of the datedebug() SQL function.
drh [Thu, 26 Feb 2026 12:17:19 +0000 (12:17 +0000)] 
Fix an inconsequential typo in the output of the datedebug() SQL function.

FossilOrigin-Name: 3a92a53d8cf77822c22618dbf35851a20d27c4a659d23db2d24e7ccb3f61c7fc

3 months agoFix a problem where the wrong collation could be used as part of a row-value comparis...
dan [Thu, 26 Feb 2026 11:03:22 +0000 (11:03 +0000)] 
Fix a problem where the wrong collation could be used as part of a row-value comparison between columns with different collation sequences. [forum:/forumpost/6ceca07fc3 | Forum post 6ceca07fc3].

FossilOrigin-Name: 212c68249cc0e8904fc36d8e90646d04604f2b3b9d4c32eaeac7d920fa0fba99

3 months agoThe GCC bug is fixed in GCC-15.
drh [Wed, 25 Feb 2026 21:19:20 +0000 (21:19 +0000)] 
The GCC bug is fixed in GCC-15.

FossilOrigin-Name: 21f9abe6c9d1e2ce99ed75c2984103dcd2356b5d53bca3f3732176bb856bf3f7

3 months agoReinstant the work-around for [https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96270...
drh [Wed, 25 Feb 2026 12:44:19 +0000 (12:44 +0000)] 
Reinstant the work-around for [https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96270|GCC compiler bug 96270]
which is apparently still an issue as of gcc 13.3.0 with -m32 on Mint Linux.
The test case in the bug report is fixed, but the vdbeMemRenderNum() routine
in SQLite still shows the problem.

FossilOrigin-Name: 7fae321095ebec775de1b39b974fb1f295d5efbd5723e9cb29a981c97a4262c8

3 months agoUse a 64-bit hash for the testing option SQLITE_CHECK_PAGES to maintain
drh [Wed, 25 Feb 2026 01:04:22 +0000 (01:04 +0000)] 
Use a 64-bit hash for the testing option SQLITE_CHECK_PAGES to maintain
page alignment.

FossilOrigin-Name: 75a35cd8f97f8a6cd2311c829685bd3b1cfb394de15174aef347f15cfb1913a1

3 months agoAdjust the changes to shell8.test from [5da9bf09cc00faf9] so that they
drh [Tue, 24 Feb 2026 19:50:27 +0000 (19:50 +0000)] 
Adjust the changes to shell8.test from [5da9bf09cc00faf9] so that they
work with older versions of TCL.

FossilOrigin-Name: c3b9e2cee3565da50bcc92766f700c31142391a697cbab7465774cf20a307dd8

3 months agoRename SQLITE_ENABLE_MULTITHREADED_CHECKS to SQLITE_THREAD_MISUSE_WARNINGS.
drh [Tue, 24 Feb 2026 19:37:16 +0000 (19:37 +0000)] 
Rename SQLITE_ENABLE_MULTITHREADED_CHECKS to SQLITE_THREAD_MISUSE_WARNINGS.
Run test cases with that option. Also add the
SQLITE_THREAD_MISUSE_ABORT option.

FossilOrigin-Name: be8c8b9cb7b618a1571a988bc1cfdc15d99a8bf144d699385c0076e940b9f7f5

3 months agoFix an assert() that is incorrect when the SQLITE_DBCONFIG_FP_DIGITS setting
drh [Mon, 23 Feb 2026 19:51:54 +0000 (19:51 +0000)] 
Fix an assert() that is incorrect when the SQLITE_DBCONFIG_FP_DIGITS setting
is on a non-default value.

FossilOrigin-Name: 3ca1ed81c4fa41f5f9fdbebf0929dd8421a4e29f95764fe1027d4d8706a41480

3 months agoAdd test cases for the symlink defenses of the previous check-in.
drh [Mon, 23 Feb 2026 13:29:29 +0000 (13:29 +0000)] 
Add test cases for the symlink defenses of the previous check-in.

FossilOrigin-Name: 5da9bf09cc00faf98cc515fb5a10a0af325b8f7608893808d031dfef62380be2

3 months agoChange the SQLAR archive extraction algorithm in the CLI so that it
drh [Mon, 23 Feb 2026 12:19:05 +0000 (12:19 +0000)] 
Change the SQLAR archive extraction algorithm in the CLI so that it
uses the newly enhanced realpath() SQL function to guard against
attacks that use symlinks to try to write files outside of the
destination directory.
[forum:/forumpost/641b09daa17d9086|Forum post 641b09daa17d9086].

FossilOrigin-Name: 7cced53e8c508fbf1816162c5358c77a712f76a38fd18f07171efc3c028a3c57

3 months agoEnhance the realpath() SQL function in the fileio.c extension
drh [Mon, 23 Feb 2026 11:44:30 +0000 (11:44 +0000)] 
Enhance the realpath() SQL function in the fileio.c extension
so that it works ever for pathnames that do not exist.

FossilOrigin-Name: 27a5735fb1e194d763ab9fdb933fad4f694fb2f8ad19205d17ac81caebd82548

3 months agoWhen doing an SQLAR archive extraction in the CLI, postpone creating symlinks until...
drh [Mon, 23 Feb 2026 01:34:14 +0000 (01:34 +0000)] 
When doing an SQLAR archive extraction in the CLI, postpone creating symlinks until after
all files and directories have been created.  This prevents a hostile archive from
creating a symlink through which it can subsequently write content outside of the target
directory.  [forum:forumpost/9e176adfef91c207|Forum post 9e176adfef91c207].

FossilOrigin-Name: 9719034d4d3becda127dc294f7f58ded9c982509c690dd55b56310912957eb51

3 months agoImproved implementation of realpath() in the fileio.c extension that does not require
drh [Mon, 23 Feb 2026 00:57:00 +0000 (00:57 +0000)] 
Improved implementation of realpath() in the fileio.c extension that does not require
the last element of the path to actually exist.

FossilOrigin-Name: 4df4999484d9008d8af3c9c340810e0cf5f57161ba053ed5501276b450577039

3 months agoAdd the realpath() SQL function to the fileio.c extension. And clean up
drh [Sun, 22 Feb 2026 20:44:52 +0000 (20:44 +0000)] 
Add the realpath() SQL function to the fileio.c extension.  And clean up
the UTF8 handling on the Windows side of that extension while we are at it.

FossilOrigin-Name: 8bb8941930378b436f1353603be194644568b55fe347475be0caddddad40efa3

3 months agoFix typos and include wording in the documentation for
drh [Sat, 21 Feb 2026 21:19:41 +0000 (21:19 +0000)] 
Fix typos and include wording in the documentation for
SQLITE_DBCONFIG_FP_DIGITS.

FossilOrigin-Name: c30cee1224904eb2092daa0ad9494aec7c7a8c6c1661f5b91b62c3ef0c5ea95b

3 months agoFix a harmless warning in the decimal extension.
drh [Sat, 21 Feb 2026 20:20:06 +0000 (20:20 +0000)] 
Fix a harmless warning in the decimal extension.

FossilOrigin-Name: f16c7c4000f2b992f7245dcaf669f13ed464579f8894f3c16842eebf41285c70

3 months agoImproved rounding of double→text conversions for rounding digits
drh [Sat, 21 Feb 2026 20:03:47 +0000 (20:03 +0000)] 
Improved rounding of double→text conversions for rounding digits
of 17.  Add the new sqlite3_db_config(), SQLITE_DBCONFIG_FP_DIGITS,
to specify the number of significant digits to preserve on conversions.

FossilOrigin-Name: 78c12b4f6ae869c3ea5e368c97b45991442bdd2d3a60935f1e6fc02a8e01cd41

3 months agoNew sqlite3_db_config(SQLITE_DBCONFIG_FP_DIGITS) that let's the application fp-performance-v2
drh [Sat, 21 Feb 2026 19:26:58 +0000 (19:26 +0000)] 
New sqlite3_db_config(SQLITE_DBCONFIG_FP_DIGITS) that let's the application
specify the number of significant digits that double→text conversions
will attempt to preserve.

FossilOrigin-Name: 3f16985dcc47a366b54164c5024f920a79dddd76faeac5e36b4770732ed72c0a

3 months agoNew test cases for floating-point conversions.
drh [Sat, 21 Feb 2026 13:57:40 +0000 (13:57 +0000)] 
New test cases for floating-point conversions.

FossilOrigin-Name: 3033fe97b14ba0531278d4aa444bc5340e044b87a72b3a4341032ddee442000f

3 months agoRemove an unreachable branch.
drh [Sat, 21 Feb 2026 13:40:07 +0000 (13:40 +0000)] 
Remove an unreachable branch.

FossilOrigin-Name: 93f90eacc0c5b2ae0042ec525359298883f8473e24967208feef4029d9fa2d08

3 months agoIncrease the precision of double → text conversions that happen in
drh [Sat, 21 Feb 2026 10:57:02 +0000 (10:57 +0000)] 
Increase the precision of double → text conversions that happen in
sqlite3_column_text(), or sqlite3_value_text(), or in the CAST() operator,
or similar, so that round-tripping the value back to double results in
exactly the same value.

FossilOrigin-Name: ef0049e3ade304f64e1ab97e52e1e21379e4db461f3fa80dac8e544fb90d622f

3 months agoFurther simplification, performance gain, and size reduction in
drh [Sat, 21 Feb 2026 00:56:11 +0000 (00:56 +0000)] 
Further simplification, performance gain, and size reduction in
sqlite3FpDecode().

FossilOrigin-Name: 5954f22ceb6b43ed160ec085cd86b66299d8aab3e349a41941a4f1c2eade7457

3 months agoSmall performance increase and size reduction in sqlite3FpDecode() by using
drh [Sat, 21 Feb 2026 00:20:29 +0000 (00:20 +0000)] 
Small performance increase and size reduction in sqlite3FpDecode() by using
local variables instead of structure elements.

FossilOrigin-Name: b4c378bba582205aa676e45b21ffa17ad6199e2a017ec73cf41a0243f693b589

3 months agoInconsequential changes to floating-point conversion, amounting to mere
drh [Fri, 20 Feb 2026 20:43:25 +0000 (20:43 +0000)] 
Inconsequential changes to floating-point conversion, amounting to mere
code cleanup to aid comprehension.

FossilOrigin-Name: 6d9c29123b6b143b0f7c8f5d018f170c72edfc5b1a4d67edd45e5552def2af6c

3 months agoIn the decimal extension, an optional second argument to the
drh [Fri, 20 Feb 2026 16:21:58 +0000 (16:21 +0000)] 
In the decimal extension, an optional second argument to the
decimal() and decimal_exp() functions rounds the value to the
number of significant digits specified by that argument.

FossilOrigin-Name: cb24edf1afc3f9083a4963c5fe232933eccc7c0cb8872aa5fcd336d226b885ef

3 months agoFix a cse in the fiddle.debug build where it could not overwrite its read-only/genera...
stephan [Fri, 20 Feb 2026 14:22:09 +0000 (14:22 +0000)] 
Fix a cse in the fiddle.debug build where it could not overwrite its read-only/generated index.html.

FossilOrigin-Name: 7adb2c0f438a97d377760436b1ac81fffab36e541a2b5ee733bfc7108e0180e5

3 months agoAdd new functions ieee754_to_int() and ieee754_from_int() to the
drh [Fri, 20 Feb 2026 14:20:33 +0000 (14:20 +0000)] 
Add new functions ieee754_to_int() and ieee754_from_int() to the
ieee754 extension.  No changes to the core SQLite.

FossilOrigin-Name: 8660d3e94cbe892693554df282bce0fa8c7aedbc5e020cab647cbbff3d7e55b7

3 months agoImproved rounding of floating-point conversions in some corner cases.
drh [Fri, 20 Feb 2026 12:27:52 +0000 (12:27 +0000)] 
Improved rounding of floating-point conversions in some corner cases.

FossilOrigin-Name: 436dccd42650a6ab0a74459ae42fdb3e36d853f934324acc2bc961f87c001852

3 months agoIn the CLI, the ".quit" command in a --cmd argument causes an immediate
drh [Thu, 19 Feb 2026 17:20:40 +0000 (17:20 +0000)] 
In the CLI, the ".quit" command in a --cmd argument causes an immediate
exit.  [forum:/forumpost/f057122b68|Forum post f057122b68].

FossilOrigin-Name: 4731cc8856aa4dcfad5db501648bfd0afef43d8c5f339e7b11a1e3ee64348b87

3 months agoImprovements to rounding behavior in the new floating-point conversion logic.
drh [Thu, 19 Feb 2026 12:59:42 +0000 (12:59 +0000)] 
Improvements to rounding behavior in the new floating-point conversion logic.

FossilOrigin-Name: e540f6c370675ae043af8cdbb80f7eb17c08e50f7634e0b78f0b1dccf7bd4b18

3 months agoRestore the CLI function dtostr() back to its original purpose of converting
drh [Tue, 17 Feb 2026 20:28:25 +0000 (20:28 +0000)] 
Restore the CLI function dtostr() back to its original purpose of converting
floating point values to decimal using the host computer's C-library.

FossilOrigin-Name: f3cc05ba7fa9cb77573de5cd28ab90f10844567692ed57a706c5dc35b1348009

3 months agoMinor fixes to tmstmpvfs.c.
drh [Tue, 17 Feb 2026 14:28:18 +0000 (14:28 +0000)] 
Minor fixes to tmstmpvfs.c.

FossilOrigin-Name: 091bd90ed5a6a326fd532e93bd17903e052476da14dc6aee2599a9acf75a3276

3 months agoIncrease the number of floating-point precision test cases by 9x, and
drh [Tue, 17 Feb 2026 14:02:27 +0000 (14:02 +0000)] 
Increase the number of floating-point precision test cases by 9x, and
increase the require precision to 16 digits.

FossilOrigin-Name: 62c2cf74db5e47f975d1f47818f82f060ddecad4b68c4d4dbc6190cc9a8fc397

3 months agoFix a harmless compiler warning from MSVC.
drh [Tue, 17 Feb 2026 12:23:12 +0000 (12:23 +0000)] 
Fix a harmless compiler warning from MSVC.

FossilOrigin-Name: 12f3a6d0aaff8818c427d79e2b9394328625b3a60ccaa7b628d064084c65cfaf

3 months agoNew assert()s for the return value from sqlite3SchemaToIndex().
drh [Tue, 17 Feb 2026 11:28:48 +0000 (11:28 +0000)] 
New assert()s for the return value from sqlite3SchemaToIndex().

FossilOrigin-Name: 2610105a439e25c050b2deb32953861187c81b1d97407f41dc188e6627e0ac4d

3 months agoFurther simplifications, performance improvements, and size reductions
drh [Tue, 17 Feb 2026 01:04:23 +0000 (01:04 +0000)] 
Further simplifications, performance improvements, and size reductions
to the numeric to text conversion logic.

FossilOrigin-Name: dd5af703e1082951a4295a3453611db12b23cfbcfee4258ec3985abe96ab54ba

3 months agoFaster conversion of integers to text, by converting two digits at a time. numeric-conversion
drh [Tue, 17 Feb 2026 00:37:12 +0000 (00:37 +0000)] 
Faster conversion of integers to text, by converting two digits at a time.

FossilOrigin-Name: 90300e02f0de45b57d53976cae72928b3e56532d90b8b8cdc988e14762777930

3 months agoSimplifications to sqlite3AtoF(), resulting in slightly faster performance
drh [Mon, 16 Feb 2026 23:52:51 +0000 (23:52 +0000)] 
Simplifications to sqlite3AtoF(), resulting in slightly faster performance
and slightly smaller size.

FossilOrigin-Name: 6b9ab641763bc1620a01beec71589506b3b0827bff1c6cd98a5d17c6070050b3

3 months agoFix a bad assert() in the previous check-in. numeric-conversion-perf
drh [Mon, 16 Feb 2026 17:22:17 +0000 (17:22 +0000)] 
Fix a bad assert() in the previous check-in.

FossilOrigin-Name: a4540582b5b704af13b570b3dc609dbacada719302372a038cf74eee3688d5e7

3 months agoRefactor the sqlite3AtoF() routine so that it requires a zero-terminated
drh [Mon, 16 Feb 2026 16:56:59 +0000 (16:56 +0000)] 
Refactor the sqlite3AtoF() routine so that it requires a zero-terminated
UTF-8 input.  When the need arises to convert UTF16 or non-terminated
strings, wrapper functions are used.  Together, this makes the code slightly
smaller and faster.

FossilOrigin-Name: 67c7c72e9bdf04c920d77006538a202c923fa74b47c81dc3014c2929dac7277d

3 months agoFix another case where SQLite might fail to identify an ON clause on a RIGHT or FULL...
dan [Mon, 16 Feb 2026 16:56:25 +0000 (16:56 +0000)] 
Fix another case where SQLite might fail to identify an ON clause on a RIGHT or FULL join that refers to FROM-clause elements to its right.

FossilOrigin-Name: e956b36063e77b5ad0d8b8afb5dc942665f570d762929ff277e320c06ded8ce6

3 months agoFix a problem with identifying ON clauses attached to RIGHT or FULL JOINs (which...
dan [Mon, 16 Feb 2026 11:59:14 +0000 (11:59 +0000)] 
Fix a problem with identifying ON clauses attached to RIGHT or FULL JOINs (which is an error) if the join appeared in a flattened sub-query.

FossilOrigin-Name: cf2dc6dfad275dad8fef763a57baaaf6301b0d3bf1916be90f22200cbe0115d0

3 months agoPerformance improvement in floating-point conversions.
drh [Mon, 16 Feb 2026 11:14:59 +0000 (11:14 +0000)] 
Performance improvement in floating-point conversions.

FossilOrigin-Name: b5ebbd004183f81902fa79a143222204b33dbe1cacb918194556b8dac67bd567

3 months agoAvoid the big power-of-ten lookup table. fp-perf
drh [Sun, 15 Feb 2026 18:41:29 +0000 (18:41 +0000)] 
Avoid the big power-of-ten lookup table.

FossilOrigin-Name: 245ac7d9ec61e14fcef13a731e290fc5e8979efef6f4345f875eab9b882b0713