]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
4 months agoAdd the sqlite3_db_filename() to the sqlite3.oo1.DB tracing output. Document an unfor...
stephan [Mon, 24 Nov 2025 20:36:49 +0000 (20:36 +0000)] 
Add the sqlite3_db_filename() to the sqlite3.oo1.DB tracing output. Document an unfortunate design choice which was only recently recognized as such.

FossilOrigin-Name: dec0c6073cc130ba445ec68bc49a410001d778c4aa21624dcb0a68b88fce251f

4 months agoAdd kvvfs URI flag transient=1 to cause the storage object to be removed when the...
stephan [Mon, 24 Nov 2025 20:14:23 +0000 (20:14 +0000)] 
Add kvvfs URI flag transient=1 to cause the storage object to be removed when the last handle to the db is closed. By default it behaves like a filesystem would, retaining the storage objects.

FossilOrigin-Name: c6183261be77d03451aed563a5e4c19aa69706aa311cfdaf5db5e9b0a167d814

4 months agoAdd the --blob-quote option to the ".mode" command in the CLI.
drh [Mon, 24 Nov 2025 18:31:13 +0000 (18:31 +0000)] 
Add the --blob-quote option to the ".mode" command in the CLI.

FossilOrigin-Name: 76a986b10d284b25915a07b7150ef1b85f4ef7d48d4e5315b13e7d1532cb97f1

4 months agoFix a typeof check so that it works in Worker threads.
stephan [Mon, 24 Nov 2025 18:17:07 +0000 (18:17 +0000)] 
Fix a typeof check so that it works in Worker threads.

FossilOrigin-Name: 3f2ed39e40e9c76c7d035b819d06c316ec4fba4e112b8a293822a8648147594b

4 months agoHave kvvfs enforce ASCII-only names to avoid truncating multibyte characters in kvvfs...
stephan [Mon, 24 Nov 2025 18:08:25 +0000 (18:08 +0000)] 
Have kvvfs enforce ASCII-only names to avoid truncating multibyte characters in kvvfs's key buffer.

FossilOrigin-Name: 03cb2a13c7f9081132390b5169cf22ffeced6ebdc5f01654360f951720310916

4 months agoChange some 32-bit integers in fts3_write.c to 64-bit to reduce the chances of intege...
dan [Mon, 24 Nov 2025 17:44:17 +0000 (17:44 +0000)] 
Change some 32-bit integers in fts3_write.c to 64-bit to reduce the chances of integer overflow.

FossilOrigin-Name: 8f8a7224c1e0173764757d5022de60abec3babdc3d4131632805e0b04d1a65bf

4 months agoAdd the QRF_BLOB_Size encoding for BLOBs in QRF.
drh [Mon, 24 Nov 2025 16:46:08 +0000 (16:46 +0000)] 
Add the QRF_BLOB_Size encoding for BLOBs in QRF.

FossilOrigin-Name: bafff695d34202377b937cb4ca9f8a7611ae286d9ab927e6c71faa3cd99496e5

4 months agoAvoid an assert() failure caused by processing a CREATE TABLE AS ... command that...
dan [Mon, 24 Nov 2025 16:04:07 +0000 (16:04 +0000)] 
Avoid an assert() failure caused by processing a CREATE TABLE AS ... command that generates very long column names.

FossilOrigin-Name: 06554a079d6b299986fc5eeb201595fad14f77c0efcf2d65bd2f36bbc325892c

4 months agoAvoid signed integer overflow that may occur in a non-default build when processing...
dan [Mon, 24 Nov 2025 15:40:10 +0000 (15:40 +0000)] 
Avoid signed integer overflow that may occur in a non-default build when processing a very large CREATE TABLE AS ... statement.

FossilOrigin-Name: b7417497d1fdbf588a8aca8499d27dee560d728a1eafbf44b34fe3b119423d98

4 months agoGet kvvfs v2 storage import working by disallowing it when there are opened db/journa...
stephan [Mon, 24 Nov 2025 15:17:52 +0000 (15:17 +0000)] 
Get kvvfs v2 storage import working by disallowing it when there are opened db/journal handles. Move import/export out of the JsStorageDb class and into sqlite3_js_kvvfs_import/export_storage().

FossilOrigin-Name: c9e0b32278290baf987b5a46bd47358439e3d0f190b2879a965d6e4262ea7baf

4 months agoShow just the list of available modes and omit the current mode display
drh [Mon, 24 Nov 2025 13:26:06 +0000 (13:26 +0000)] 
Show just the list of available modes and omit the current mode display
for the ".mode --list" command in the CLI.

FossilOrigin-Name: b9b2761fe79d9cc52365eef6bc34c7442972c5410517ff69926397cc7974ae33

4 months agoIn the CLI on the ".mode" command, replace the recently added --no-limits option...
drh [Mon, 24 Nov 2025 13:24:58 +0000 (13:24 +0000)] 
In the CLI on the ".mode" command, replace the recently added --no-limits option with
"--limits L,C".  And add --sw as an alias for --screenwidth.

FossilOrigin-Name: cff0978587a4193b57b0384a587bf89174be2fd91cff4d40130babef1dc8431e

4 months agoDoc typo fix.
stephan [Mon, 24 Nov 2025 13:22:26 +0000 (13:22 +0000)] 
Doc typo fix.

FossilOrigin-Name: d96cc772f0423f3f2b6ee0b0fb3d7e133cc4981cc7be76527a6d43792ece74e2

4 months agoAdd the fail-on-malloc()-error patch to the autosetup maintenance docs.
stephan [Mon, 24 Nov 2025 13:10:23 +0000 (13:10 +0000)] 
Add the fail-on-malloc()-error patch to the autosetup maintenance docs.

FossilOrigin-Name: 526b88fb9b270e780660b97fc14f41583885a3d801f0ed17e0e35ebd61749b26

4 months agoChange our local copy of the third-party jimsh0.c program (used only
drh [Mon, 24 Nov 2025 11:00:02 +0000 (11:00 +0000)] 
Change our local copy of the third-party jimsh0.c program (used only
during the build process) so that it prints an error message and
exits if malloc() fails.  This does not fix any actual bugs nor make
the build process any "safer", but it might help prevent bothersome
warnings from pedantic static analyzers.

FossilOrigin-Name: 72c8a5b94cdf5da7e2b197e02c9d5d98fe415cd731c3893acf3ba69bb4dde37a

4 months agoAdd the long-missing sqlite3_next_stmt() binding to JS/WASM.
stephan [Sun, 23 Nov 2025 22:18:26 +0000 (22:18 +0000)] 
Add the long-missing sqlite3_next_stmt() binding to JS/WASM.

FossilOrigin-Name: de27d2d3f2353309227b4d5f77eff76c108c094b61ac59f5a769229a084f2567

4 months agoMore work on kvvfs v2. Db imports work, in the sense that the storage is properly...
stephan [Sun, 23 Nov 2025 22:13:42 +0000 (22:13 +0000)] 
More work on kvvfs v2. Db imports work, in the sense that the storage is properly replaced, but the native side is not yet able to recover from that (and how to make it able to do so is not clear).

FossilOrigin-Name: 4857c9d2fe428c19319244bf0589eaf93c124f020a633d6b7d40d35aaf969d24

4 months agoAdd the long-missing sqlite3_next_stmt() binding to JS/WASM.
stephan [Sun, 23 Nov 2025 22:09:16 +0000 (22:09 +0000)] 
Add the long-missing sqlite3_next_stmt() binding to JS/WASM.

FossilOrigin-Name: 53a99ff4ed5ef5f8620bf324a4f7a1d0812f5c80311228eb820039430ca04bd5

4 months agoDocs, cleanups, and dead code removal.
stephan [Sun, 23 Nov 2025 20:05:21 +0000 (20:05 +0000)] 
Docs, cleanups, and dead code removal.

FossilOrigin-Name: 49db59aa9c74e49d878adc8671b0d32db8f1f898bde29d046ce0e368d8987868

4 months agoGet the kvvfs v2 working in 64-bit wasm builds (a 0 vs null vs BigInt issue).
stephan [Sun, 23 Nov 2025 16:54:16 +0000 (16:54 +0000)] 
Get the kvvfs v2 working in 64-bit wasm builds (a 0 vs null vs BigInt issue).

FossilOrigin-Name: 4811742688bd8ae847c0a13ca9b395b2d2edd24ce4e7760a5d1b0adf1c7f332d

4 months agoEliminate the superfluous 'kvvfs-' part of keys for transient storage and cleanup...
stephan [Sun, 23 Nov 2025 16:35:18 +0000 (16:35 +0000)] 
Eliminate the superfluous 'kvvfs-' part of keys for transient storage and cleanup their export a bit. Reminder for later: we could potentially use the dbpage vtab to serialize any db to this JSON-friendly form.

FossilOrigin-Name: f63014f70febf82976a99f9f1ce6d793e2ca8d1dd2f72622152b64b2d65f8adc

4 months agoInitial work on eliminating the superfluous-for-transient-storage kvvfs key prefixes...
stephan [Sun, 23 Nov 2025 15:38:34 +0000 (15:38 +0000)] 
Initial work on eliminating the superfluous-for-transient-storage kvvfs key prefixes and implementing kvvfs db import.

FossilOrigin-Name: 6bc64059410b1868b7a3576e16d03c02e7c007a2be8b313e386eeb2e2a35c258

4 months agoAdd tests demonstrating basic concurrent use of kvvfs storage and that kvvfs still...
stephan [Sun, 23 Nov 2025 13:33:56 +0000 (13:33 +0000)] 
Add tests demonstrating basic concurrent use of kvvfs storage and that kvvfs still works after wiping the storage out from under it).

FossilOrigin-Name: cbbb9e61ae81097625488d78c5cbc0065c0acc3c8a7fd819490bc697f9d808c5

4 months agoBump kvvfs's sqlite3_vfs::iVersion to 2 so that its xCurrentTimeInt64() can be used...
stephan [Sun, 23 Nov 2025 12:14:18 +0000 (12:14 +0000)] 
Bump kvvfs's sqlite3_vfs::iVersion to 2 so that its xCurrentTimeInt64() can be used. Add JsStorageDb.exportToObject() to serialize a kvvfs to a JSON-friendly form.

FossilOrigin-Name: 393c1beee00ec3b3e98eb385cae0abeb1b34475140c0e8c3d57541d349904436

4 months agoReplace an alloc/free on every read of a JS kvvfs key with a one-time alloc and a...
stephan [Sun, 23 Nov 2025 11:28:27 +0000 (11:28 +0000)] 
Replace an alloc/free on every read of a JS kvvfs key with a one-time alloc and a long paragraph explaining why we have to leak it.

FossilOrigin-Name: 66fb9978f0a63887d214e895343adedfa46ee7aefccb8389d6d3af727e0a65ea

4 months agoNew test case for bSplitColumn in QRF.
drh [Sun, 23 Nov 2025 10:55:38 +0000 (10:55 +0000)] 
New test case for bSplitColumn in QRF.

FossilOrigin-Name: 6d01f9f49eef5f7d4bddadc458691b6ca36e277bae1d4b43b60a128a44e3faca

4 months agoIn QRF in bSplitColumn mode, increase the spacing between columns to be as
drh [Sun, 23 Nov 2025 00:45:47 +0000 (00:45 +0000)] 
In QRF in bSplitColumn mode, increase the spacing between columns to be as
wide as five, for improved legibility, if screen width allows.

FossilOrigin-Name: 673648cc812e1549c2b3e7749306e7395d0b7e396a7d5ac432948eb3a6c3713f

4 months agoUse the new "split" mode to simplify and improve the implementation of
drh [Sun, 23 Nov 2025 00:10:06 +0000 (00:10 +0000)] 
Use the new "split" mode to simplify and improve the implementation of
the ".tables" and ".indexes" commands in the CLI.  Fix a bug in QRF
that this new implementation found.

FossilOrigin-Name: b73df612b621699cd58de6ef327fefdeb8f52eb620f0d2df00d38ff6608a8dd5

4 months agoAdd "split" mode in the CLI. Fix CLI commands given on the command line
drh [Sat, 22 Nov 2025 23:34:53 +0000 (23:34 +0000)] 
Add "split" mode in the CLI.  Fix CLI commands given on the command line
so that they honor --once in prior commands.

FossilOrigin-Name: 2530f04d1bb02b800fda83544f5b5dcd42f52b3e56ad625cd03b40e42f24ac6b

4 months agoAdd the --no-limits option to the .mode command in the CLI.
drh [Sat, 22 Nov 2025 21:47:48 +0000 (21:47 +0000)] 
Add the --no-limits option to the .mode command in the CLI.

FossilOrigin-Name: 3cee168e8801481f6d909fb5d20a773b9c6ca0b8daedfc301c9d762a17f9d839

4 months agoIn QRF, change the name of the bWrapSnglCol flag to bSplitColumn.
drh [Sat, 22 Nov 2025 21:34:33 +0000 (21:34 +0000)] 
In QRF, change the name of the bWrapSnglCol flag to bSplitColumn.
Similar changes to the TCL interface.

FossilOrigin-Name: 76512b3b80fdcaae22340cde0b69857e2a4d7e86a63c6759465bd8a0bcbf82bc

4 months agoCherrypick [0b53be562f1e] into trunk.
stephan [Sat, 22 Nov 2025 19:29:23 +0000 (19:29 +0000)] 
Cherrypick [0b53be562f1e] into trunk.

FossilOrigin-Name: e86e5723d778721b10c1c908545c56233d4d5549a7ca3b7cf8ca649c70450add

4 months agoThis combination of kvvfs callbacks seems to work okay for both persistent and transi...
stephan [Sat, 22 Nov 2025 19:21:25 +0000 (19:21 +0000)] 
This combination of kvvfs callbacks seems to work okay for both persistent and transient storage, but it's unclear why/how, as xAccess() does not appear to be doing anything useful (and misbehaves when told to report that the storage object in question exists). These tests fail in 64-bit builds for as-yet-unknown reasons (other tests continue to pass in 64-bit).

FossilOrigin-Name: 69e591d0054218ead789cee199e5258f1c378a89e4b7b0e38fe74e834e23156b

4 months agoFix a misinteraction of CREATE/READONLY flags in the OPFS VFS.
stephan [Sat, 22 Nov 2025 17:27:16 +0000 (17:27 +0000)] 
Fix a misinteraction of CREATE/READONLY flags in the OPFS VFS.

FossilOrigin-Name: 0b53be562f1e1a5b20ffe8d72df64e753a8d759b580d949a0f32409144769bb0

4 months agoIgnore semicolons at the end of dot-commands, if the compatibility date is
drh [Sat, 22 Nov 2025 16:43:52 +0000 (16:43 +0000)] 
Ignore semicolons at the end of dot-commands, if the compatibility date is
20251115 or later.
[forum:/forumpost/72d084ed552|Forum thread 2025-10-09T21:12:32z]

FossilOrigin-Name: 7a9e753e977ff61ceee50c4e0e5f9b1fc179e91acd9ac88378c888b3e45ebe3a

4 months agoFix storage-size counting of non-local/non-session kvvfs storage. Rename the 'global...
stephan [Sat, 22 Nov 2025 16:29:45 +0000 (16:29 +0000)] 
Fix storage-size counting of non-local/non-session kvvfs storage. Rename the 'global' buildin kvvfs storage object to 'localThread'.

FossilOrigin-Name: 61606be2ae2b0d73cdcd7947a77c7ad87cdf850bba90b0c3e3cdf8c02177db73

4 months agoCherrypick [e0b33b51229a] for the latest wasmutil/jaccwabyt - all tests are happy...
stephan [Sat, 22 Nov 2025 15:49:45 +0000 (15:49 +0000)] 
Cherrypick [e0b33b51229a] for the latest wasmutil/jaccwabyt - all tests are happy. Fix a make deps bug which can break parallel builds involving fiddle.

FossilOrigin-Name: 0be777bd6cc6c6b4f52d948cdba7e9c30ad062a35c659512b3f3f89f53aaba25

4 months agoIncremental work on kvvfs v2.
stephan [Sat, 22 Nov 2025 07:35:36 +0000 (07:35 +0000)] 
Incremental work on kvvfs v2.

FossilOrigin-Name: 60d61cf383b63b25dcfbf8da9539aaec253b6618ec83403f6690b7a32c13363d

4 months agoFactor KVVfsFile::zName back out. Remove the extraneous part of the storage keys...
stephan [Sat, 22 Nov 2025 05:37:21 +0000 (05:37 +0000)] 
Factor KVVfsFile::zName back out. Remove the extraneous part of the storage keys for non-local/non-session storage.

FossilOrigin-Name: d2bf96d68c6cb2ae68558722edb22192fb1dbbf08fefdb2fd0a4827688e082a8

4 months agoDemonstrate completely transient and a semi-transient (until page reload) kvvfs insta...
stephan [Sat, 22 Nov 2025 02:43:56 +0000 (02:43 +0000)] 
Demonstrate completely transient and a semi-transient (until page reload) kvvfs instances.

FossilOrigin-Name: 3f9ff9873303c3900dd3cba6e922bfb8cdb1f595353b692796b62e3025013517

4 months agoLatest side-stream jaccwabyt/wasmutil.
stephan [Sat, 22 Nov 2025 02:23:02 +0000 (02:23 +0000)] 
Latest side-stream jaccwabyt/wasmutil.

FossilOrigin-Name: e0b33b51229a977cc3fa8a5a6c8ea59669f8bf566b2a6330fd24da1ad886a716

4 months agoImplementation of bWrapSnglCol in QRF.
drh [Sat, 22 Nov 2025 00:38:17 +0000 (00:38 +0000)] 
Implementation of bWrapSnglCol in QRF.

FossilOrigin-Name: 4bbd3f7ead50c0babd7843f58972e2e1762a84866cc4ed88a2a74375b13da11c

4 months agoGet initial JS overrides of the kvvfs sqlite3_vfs and sqlite3_io_methods in place...
stephan [Fri, 21 Nov 2025 22:13:35 +0000 (22:13 +0000)] 
Get initial JS overrides of the kvvfs sqlite3_vfs and sqlite3_io_methods in place. It now tracks a distinct Storage-ish object per sqlite3_file instance.

FossilOrigin-Name: 19a3349a2031e2b7fae67847b55643e4f70f8dae863ebc1ace3b09d1f482c8eb

4 months agoAdd the bWrapSnglCol flag to the QRF spec, though it is not yet documented
drh [Fri, 21 Nov 2025 20:10:12 +0000 (20:10 +0000)] 
Add the bWrapSnglCol flag to the QRF spec, though it is not yet documented
and does not yet work.  Fix column output so that it omits trailing space.

FossilOrigin-Name: a858027fc92727c680b7e984303df7f9e0a2d90c860c547176f290b113a69390

4 months agoNeed a double-underscore prefix on the cplusplus macro
drh [Fri, 21 Nov 2025 19:47:13 +0000 (19:47 +0000)] 
Need a double-underscore prefix on the cplusplus macro

FossilOrigin-Name: 04394387e626cd99ff98df978c4b7f2d32f65760e0c26e53f1ef4f59e4e91a4f

4 months agoFix the qrf.h header so that it is usable from C++
drh [Fri, 21 Nov 2025 19:01:26 +0000 (19:01 +0000)] 
Fix the qrf.h header so that it is usable from C++

FossilOrigin-Name: 1105b710934cf4a243c64d37dd147bc9378c0f7aa55a99891b7ac6e8f8f17f88

4 months agoMore work towards using JS generic Storage objects as db page storage via kvvfs.
stephan [Fri, 21 Nov 2025 18:55:33 +0000 (18:55 +0000)] 
More work towards using JS generic Storage objects as db page storage via kvvfs.

FossilOrigin-Name: 90a33941c69b3581feaed271542f0238ca81ee34fe5b353ca7da48b81ac73a5f

4 months agoRemove kvvfs-specific filename validation from the oo1.DB ctor.
stephan [Fri, 21 Nov 2025 18:49:58 +0000 (18:49 +0000)] 
Remove kvvfs-specific filename validation from the oo1.DB ctor.

FossilOrigin-Name: 206275292217be4ff317d4c9186ecaf863ca69295e2f995ed175aa65d9ad11dc

4 months agoFix typo in the implementation of the ".schema" command of the CLI for the
drh [Fri, 21 Nov 2025 17:30:44 +0000 (17:30 +0000)] 
Fix typo in the implementation of the ".schema" command of the CLI for the
case when there are ATTACH-ed databases.

FossilOrigin-Name: 8a230e4da230a7b103749b069a99a58e4c220873c2f9576abdc928c3538d70b3

4 months agoInitial restructuring of kvvfs working towards generic support of JS's Strorage inter...
stephan [Fri, 21 Nov 2025 15:23:52 +0000 (15:23 +0000)] 
Initial restructuring of kvvfs working towards generic support of JS's Strorage interface as storage rather than hard-coding it to just window.localStorage and window.sessionStorage. The eventual goal of that is to have a storage solution which works without the POSIX I/O APIs, getting us one step closer to a wasi-sdk build. It would be transient, like Emscripten's virtual filesystem, and could hypothetically replace our dependency on that particular feature.

FossilOrigin-Name: 190ef4a94005b0feebe865a960d846a1b60ec1b267b15d5a24749f174a6169bc

4 months agoAdd new file missing from [3c4061428544].
stephan [Fri, 21 Nov 2025 15:03:38 +0000 (15:03 +0000)] 
Add new file missing from [3c4061428544].

FossilOrigin-Name: 41f94eca01d8317364aa60ddd8e5fe3cd21a215040ef271a157d450a914139d0

4 months agoEnhance ALTER TABLE to support adding and removing NOT NULL and CHECK
drh [Fri, 21 Nov 2025 14:15:56 +0000 (14:15 +0000)] 
Enhance ALTER TABLE to support adding and removing NOT NULL and CHECK
constraints.

FossilOrigin-Name: 895498e4431e02cff65a5d96db22f0b0cb9c96aedf1e3cdcdeb3c34c6fec432b

4 months agoFix the QRF so that it omits the closing text from styles "json" and "jobject"
drh [Fri, 21 Nov 2025 11:00:29 +0000 (11:00 +0000)] 
Fix the QRF so that it omits the closing text from styles "json" and "jobject"
when the result set it empty.

FossilOrigin-Name: e1ba175124be83da4db6d5d4e583b9b3b7dcb82e983c6f185d590469dcdc3139

4 months agoMove the JS pieces of kvvfs into their own file to facilitate pending feature experim...
stephan [Fri, 21 Nov 2025 10:49:32 +0000 (10:49 +0000)] 
Move the JS pieces of kvvfs into their own file to facilitate pending feature experimentation.

FossilOrigin-Name: 3c40614285449df259a3444e36f888cfb5e782ea58287914f97f496ea61e9e9f

4 months agoTest cases for the fix in the prior check-in.
drh [Thu, 20 Nov 2025 22:46:27 +0000 (22:46 +0000)] 
Test cases for the fix in the prior check-in.

FossilOrigin-Name: 4d41bee75eda51251121c8e3903f47941116e5182238a03f41a593c47efb6fcf

4 months agoPreserve auto-explain mode across mode changes, as has always been the
drh [Thu, 20 Nov 2025 21:08:46 +0000 (21:08 +0000)] 
Preserve auto-explain mode across mode changes, as has always been the
case before.

FossilOrigin-Name: 8896185ae0b0af8918aa8ce449f18759e6ae60358afbac1019397bae307b15d5

4 months agoFix hwtime.h (broken by [305bb022368bac9f]) so that unamalgamated windows
drh [Thu, 20 Nov 2025 12:41:26 +0000 (12:41 +0000)] 
Fix hwtime.h (broken by [305bb022368bac9f]) so that unamalgamated windows
builds work again.

FossilOrigin-Name: 1245319257d03a00eddbc8ff4b43b5813f8a567a12a9957f923bef58c85c0c20

4 months agoRemove an extraneous loop level from the JS bootstrapping bits.
stephan [Thu, 20 Nov 2025 12:14:03 +0000 (12:14 +0000)] 
Remove an extraneous loop level from the JS bootstrapping bits.

FossilOrigin-Name: 86817b4e9f011d296fb420be95269fecb54fb48a220bce84020e3af2d2c164a4

4 months agoEnable the SQLITE_EXPERIMENTAL_PRAGMA_20251114 in the WASM builds for the sake of...
stephan [Thu, 20 Nov 2025 12:12:55 +0000 (12:12 +0000)] 
Enable the SQLITE_EXPERIMENTAL_PRAGMA_20251114 in the WASM builds for the sake of VFS experimentors. The links in the comments describe what that does.

FossilOrigin-Name: aaa55a3ebf8e725443030be5f31ac7fc0766c1f3c771ce69852f31e7e6f165b9

4 months agoUse sqlite3MPrintf() instead of sqlite3_mprintf() internally in alter.c, alter-table-constraints
drh [Thu, 20 Nov 2025 11:06:58 +0000 (11:06 +0000)] 
Use sqlite3MPrintf() instead of sqlite3_mprintf() internally in alter.c,
for improved OOM reporting.

FossilOrigin-Name: 57555d75daa2ee8345f8329749841a322b3e57679e5c4899ef749c8bc814812d

4 months agoAdditional checks for OOM conditions.
drh [Thu, 20 Nov 2025 02:03:57 +0000 (02:03 +0000)] 
Additional checks for OOM conditions.

FossilOrigin-Name: 8fafd4988bf1fa1aa799c2834dd31bebdd52e7ae8e68c0197ccb497eb9b1e5f6

4 months agoMark an unreachable branch with NEVER().
drh [Thu, 20 Nov 2025 00:56:28 +0000 (00:56 +0000)] 
Mark an unreachable branch with NEVER().

FossilOrigin-Name: df2259a32fd65986eafceb2c551e6e1661927f1f5b18dbb97c59d9627279eea0

4 months agoCall sqlite3OomFault() rather than setting db->mallocFailed directly.
drh [Wed, 19 Nov 2025 23:11:56 +0000 (23:11 +0000)] 
Call sqlite3OomFault() rather than setting db->mallocFailed directly.

FossilOrigin-Name: 4fd5dfa215f14b20ddfc55904acbcc9bc9fd2123bb06fff72ef76efa17304566

4 months agoFix three harmless declaration-after-statement warnings in the new CLI code.
drh [Wed, 19 Nov 2025 19:37:28 +0000 (19:37 +0000)] 
Fix three harmless declaration-after-statement warnings in the new CLI code.

FossilOrigin-Name: b65b29656c835db22557733f4dcfe906bf21a7a3c36266cbbc7e3277f029b901

4 months agoImproved comments in code. Omit unneeded wrapper functions.
drh [Wed, 19 Nov 2025 15:25:18 +0000 (15:25 +0000)] 
Improved comments in code.  Omit unneeded wrapper functions.

FossilOrigin-Name: 3485c7c81bee8e98ea6b403438bcdb2b6fa058afeafea150ce1c859345e1529b

4 months agoStrip unterminated "--" comments from the end of constraints added using ALTER TABLE...
dan [Wed, 19 Nov 2025 11:31:59 +0000 (11:31 +0000)] 
Strip unterminated "--" comments from the end of constraints added using ALTER TABLE ADD CONSTRAINT or ADD NOT NULL.

FossilOrigin-Name: c73ab47b0250c01f1ffa6e506793769744ebeb8ca7edbb78de9a08db2037d6de

4 months agoClarification to the header comment on dropConstraintFunc(). No changes
drh [Wed, 19 Nov 2025 11:28:48 +0000 (11:28 +0000)] 
Clarification to the header comment on dropConstraintFunc().  No changes
to code.

FossilOrigin-Name: 4bd53fbb20d78de7bbff1154e7ee1321b93b0ede435e150ad4ee992a4108ad5a

4 months agoTrivial simplification to the ALTER TABLE ADD CONSTRAINT code.
drh [Wed, 19 Nov 2025 10:26:49 +0000 (10:26 +0000)] 
Trivial simplification to the ALTER TABLE ADD CONSTRAINT code.

FossilOrigin-Name: 383965b3ba701d3627e0bbd09ad04d0ce00d4721497d82e241dc7cffa745b1d9

4 months agoFix another problem that could follow an OOM fault on this branch.
dan [Tue, 18 Nov 2025 19:58:56 +0000 (19:58 +0000)] 
Fix another problem that could follow an OOM fault on this branch.

FossilOrigin-Name: c4cc80eb281f7c8da3d62fec03b2258ce8d0063fc9cfff61f2cbcdd01e13c391

4 months agoAvoid a segfault that could follow an OOM in an ALTER TABLE statement.
dan [Tue, 18 Nov 2025 19:48:39 +0000 (19:48 +0000)] 
Avoid a segfault that could follow an OOM in an ALTER TABLE statement.

FossilOrigin-Name: 0e4c2b889edbe801bb8ff29bbdb0b3139bdc85e696ccdf5bf51d7e5f9fdde961

4 months agoMerge the latest trunk changes into the alter-table-constraints branch.
drh [Tue, 18 Nov 2025 19:36:45 +0000 (19:36 +0000)] 
Merge the latest trunk changes into the alter-table-constraints branch.

FossilOrigin-Name: 31d7aeeaef20ac42c3c395dbaf7a8225ac718256a4cbeb7c198d1c7361766b1b

4 months agoMerge the latest trunk enhancements into the temp-trigger-refs branch.
drh [Tue, 18 Nov 2025 19:34:11 +0000 (19:34 +0000)] 
Merge the latest trunk enhancements into the temp-trigger-refs branch.

FossilOrigin-Name: 0957f4c9c45dc2f4543021cf739bfcc940da6e5fc05b7a4e8721b8c02861bfd9

4 months agoDo not attempt to make the generated file "shell.c" read-only. This turns
drh [Tue, 18 Nov 2025 19:11:21 +0000 (19:11 +0000)] 
Do not attempt to make the generated file "shell.c" read-only.  This turns
out to be annoying in general, and especially annoying on macs.

FossilOrigin-Name: 6ab18d036a3e412ee01806a40f69aca2b77283bd5336df27597cc19d32e6e6f2

4 months agoNew subcomponent, the Query Result Formatter (QRF), that formats query
drh [Tue, 18 Nov 2025 17:49:48 +0000 (17:49 +0000)] 
New subcomponent, the Query Result Formatter (QRF), that formats query
results for display to humans on a fixed-width font terminal.  Rework the
CLI to make use of the QRF.  Renovate the .mode command of the CLI.  Also
incorporate the QRF into the TCL interface as the "format" method.

FossilOrigin-Name: 7e460ffa5aae884807db9e7c8214d6d822d5d38ea406fe3b3eac04ac16f158fa

4 months agoAdd support for SQLITE_LIMIT_PARSER_DEPTH to limit the size of the stack
drh [Tue, 18 Nov 2025 17:27:46 +0000 (17:27 +0000)] 
Add support for SQLITE_LIMIT_PARSER_DEPTH to limit the size of the stack
used by the parser.  This can help prevent deeply nested parse trees that
then cause problems on machines with smaller CPU stacks.  Modify the
%realloc and %free directives of Lemon and add the new %stack_size_limit
directive in support of this capability.

FossilOrigin-Name: 52ba0c731d004409353a55ce8ca5a514ce486a077a2be82db5b8fea7619848d5

4 months agoModify the "%realloc" and "%free" commands in Lemon so that the functions parser-stack-size
drh [Tue, 18 Nov 2025 15:40:02 +0000 (15:40 +0000)] 
Modify the "%realloc" and "%free" commands in Lemon so that the functions
they specify take an extra parameter at the end, the %extra_context pointer.
This allows the implementation to distinguish between OOM errors and
failures to increase the stack size because of the stack size limit.

FossilOrigin-Name: 9862c945d9a8531f9bef123aee9ed1fd3f64542250a57beb3a150227bc3c1a12

4 months agoLower the default stack size for the parse to 50.
drh [Tue, 18 Nov 2025 15:20:22 +0000 (15:20 +0000)] 
Lower the default stack size for the parse to 50.

FossilOrigin-Name: 41fe19ab054acda912bc32dd6f9c6412416ab1af6cf55515e96c89fb55b46424

4 months agoAdd the SQLITE_LIMIT_PARSER_DEPTH value for sqlite3_limit(). This isn't
drh [Tue, 18 Nov 2025 14:48:33 +0000 (14:48 +0000)] 
Add the SQLITE_LIMIT_PARSER_DEPTH value for sqlite3_limit().  This isn't
something that many applications will need, but it is useful for testing.

FossilOrigin-Name: 8f0b07f36159225c476f756f8f9b35c75783bc8bed43b578f4d1055fa800ecc9

4 months agoYet another attempt at controlling the parser stack size.
drh [Tue, 18 Nov 2025 13:03:08 +0000 (13:03 +0000)] 
Yet another attempt at controlling the parser stack size.

FossilOrigin-Name: cb19986dc6bc483df21e082e54a14cb6d7540b1734259e6d326d676908ac0172

4 months agoFix incorrect "#line" generation in Lemon.
drh [Tue, 18 Nov 2025 10:38:41 +0000 (10:38 +0000)] 
Fix incorrect "#line" generation in Lemon.

FossilOrigin-Name: 5c0214df2c0a7470ac2edca0c483a3edd3c39ef0739688ab9a06e23882200360

4 months agoAdd api.oo1=0 flag to ext/wasm/GNUmakefile to strip out the sqlite3.oo1 pieces from...
stephan [Mon, 17 Nov 2025 23:55:41 +0000 (23:55 +0000)] 
Add api.oo1=0 flag to ext/wasm/GNUmakefile to strip out the sqlite3.oo1 pieces from the build. Part of the ongoing response to [forum:4b7d45433731d2e0|forum post 4b7d45433731d2e0].

FossilOrigin-Name: ea48567ac54e4949a8b68977a58a5de7946e074ae8737133071d02f40ac97f34

4 months agoIf SQL is entered as additional command-line arguments to CLI, that counts qrf
drh [Mon, 17 Nov 2025 19:46:04 +0000 (19:46 +0000)] 
If SQL is entered as additional command-line arguments to CLI, that counts
the same as getting input from a pipe or file for the purpose of determining
the default format mode.

FossilOrigin-Name: 3d55ec15a9e4dc8af4bf1e2884eaa2c809995fb1529633f73287dc7a54153629

4 months agoFix a harmless compiler warning.
drh [Mon, 17 Nov 2025 19:19:58 +0000 (19:19 +0000)] 
Fix a harmless compiler warning.

FossilOrigin-Name: 6621737cc05cbf8ff5f576775a8a3c64f666b56d42939968ebb55d72a835646b

4 months agoThe -textjsonb option is on by default in the standard non-batch mode of
drh [Mon, 17 Nov 2025 18:51:55 +0000 (18:51 +0000)] 
The -textjsonb option is on by default in the standard non-batch mode of
the CLI.  New fast screening test for JSONB.

FossilOrigin-Name: fd09f934d64ec07fd56f1b80ab05dafb28b605d5802ff5758eea17d8ad24e3cc

4 months agoCLI comes up in legacy "list" mode if neither stdin or stdout are a tty, or
drh [Mon, 17 Nov 2025 16:44:13 +0000 (16:44 +0000)] 
CLI comes up in legacy "list" mode if neither stdin or stdout are a tty, or
if "--compat 20251114" or earlier is specified, or if "--batch" is used.
New modes "batch" and "tty" select either legacy "list" mode or the newer
"qbox" mode with limits.
Make CVS output compatible with legacy.  Break out ".import" into a separate
subroutine in anticipation of forthcoming improvements.  General code
cleanup.

FossilOrigin-Name: f6bfcea9a01493af182e9aa0d35df6f81bf9e36220df79139afa287fa43d9aa3

4 months agoFix test cases impacted by the use of ~/.sqliterc
drh [Mon, 17 Nov 2025 00:15:14 +0000 (00:15 +0000)] 
Fix test cases impacted by the use of ~/.sqliterc

FossilOrigin-Name: 8fc05faef91186429c6c710991fd736b1df9a9af946c29d207db2518d6436b38

4 months agoFix a bug in ".show". Adjust test cases for the new default mode.
drh [Sun, 16 Nov 2025 23:06:45 +0000 (23:06 +0000)] 
Fix a bug in ".show".  Adjust test cases for the new default mode.

FossilOrigin-Name: 2aebd7bfecaaf1f75b52b05a0d3009fc0dc61289ae666d24cb4e3ddfaf251645

4 months agoDefault .mode is now qbox with limits. New --compat YYYYMMDD command-line
drh [Sun, 16 Nov 2025 17:27:21 +0000 (17:27 +0000)] 
Default .mode is now qbox with limits.  New --compat YYYYMMDD command-line
option, and new -DCOMPATIBILITY_DATE=YYYYMMDD compile-time options can
override.  Command ".mode YYYYMMDD" sets the mode to the default for the
date given.

FossilOrigin-Name: 52e022375961ad9460412e40e100219ee59055eb0ab309cbfc2ab19f61929a45

4 months agoFix a long-standing bug in .schema when the argument contains a ".".
drh [Sun, 16 Nov 2025 10:49:51 +0000 (10:49 +0000)] 
Fix a long-standing bug in .schema when the argument contains a ".".

FossilOrigin-Name: 404576214fc20161cdcb031d57696d6068506309c8faecd3e4424e5ced28046b

4 months agoFix a problem with the new command-line parsing in the CLI.
drh [Sun, 16 Nov 2025 02:32:06 +0000 (02:32 +0000)] 
Fix a problem with the new command-line parsing in the CLI.

FossilOrigin-Name: 3e02804c387c89afde59eef8e464c6011e083e158873e4f8ab1f17bcc12b7c28

4 months agoImproved --safe mode defenses. Fix a test case error.
drh [Sun, 16 Nov 2025 01:34:01 +0000 (01:34 +0000)] 
Improved --safe mode defenses.  Fix a test case error.

FossilOrigin-Name: eacc9db80de8baa878ebdc3a054538c8998db9a2e46720c0d8b109d62a0cac29

4 months agoImproved error detection in the argument to .mode --widths.
drh [Sun, 16 Nov 2025 01:03:53 +0000 (01:03 +0000)] 
Improved error detection in the argument to .mode --widths.

FossilOrigin-Name: 4d774ee495e38282b8701988fe514344ee0e81285692c8d1adc1ee7e22960ad9

4 months agoFix formatting problem in .schema and .fullschema
drh [Sun, 16 Nov 2025 00:56:24 +0000 (00:56 +0000)] 
Fix formatting problem in .schema and .fullschema

FossilOrigin-Name: 4035fb15ff36d139ed4c839fdebb0278e6cf9a2f00298e1a548a8f8317ba14b2

4 months agoHelp text improvements in the CLI.
drh [Sat, 15 Nov 2025 20:10:32 +0000 (20:10 +0000)] 
Help text improvements in the CLI.

FossilOrigin-Name: dcaabd97d5064dd70fb386a2eef55f4301bba4b54915ed6a91d736abe7a04ae8

4 months agoRemove an unused struct.
stephan [Sat, 15 Nov 2025 16:06:03 +0000 (16:06 +0000)] 
Remove an unused struct.

FossilOrigin-Name: 93dd0e62b74a0d99803f680f23953e9fa2429074505ba402ca5ed4610ddef8fb

4 months agoBug fix to the --lineline option in the CLI. Other minor CLI tweaks.
drh [Sat, 15 Nov 2025 15:30:55 +0000 (15:30 +0000)] 
Bug fix to the --lineline option in the CLI.  Other minor CLI tweaks.

FossilOrigin-Name: 40f81a9f9f6ea29144174fbd487f83d150a1be8f35e7496bfc1cfc6a556b6312

4 months agoJNI: when validing the eTextRep argument in sqlite3_create_function(), only validate...
stephan [Sat, 15 Nov 2025 15:30:45 +0000 (15:30 +0000)] 
JNI: when validing the eTextRep argument in sqlite3_create_function(), only validate the lower four bits (the high bits are for other flags). Add flags to test functions to ensure this case is triggered.

FossilOrigin-Name: aab640be7bc5829fe16d2582b13f942b7debb271c150ca2471561de6b2d70dc7

4 months agoColumnar modes respond to nScreenWidth.
drh [Sat, 15 Nov 2025 15:18:41 +0000 (15:18 +0000)] 
Columnar modes respond to nScreenWidth.

FossilOrigin-Name: 60d26ebb4d91cc885b6b938ef2fc2864ebbf5a18d2e456521ee2f4aa3b22eddf

4 months agoReplace the JNI binding's internal use of sqlite3ErrorWithMsg() with sqlite3_set_errm...
stephan [Sat, 15 Nov 2025 15:09:04 +0000 (15:09 +0000)] 
Replace the JNI binding's internal use of sqlite3ErrorWithMsg() with sqlite3_set_errmsg() and have it handle OOM in a way consistent with the rest of the JNI bindings.

FossilOrigin-Name: 0899a9eb3af727f310372f3441573ab506ffec31dca4774e850b2b59a4001ee0

4 months agoRandom JS build cleanups and parallel build mkdir race fixes. Reinstate the recently...
stephan [Sat, 15 Nov 2025 13:30:13 +0000 (13:30 +0000)] 
Random JS build cleanups and parallel build mkdir race fixes. Reinstate the recently-removed [a65bd978cbc646ec] after finding a reformulation which works on Emscripten 4.0.19 (and saves about 85kb on the JS deliverables).

FossilOrigin-Name: acb1525a49463de67716638626406ccde9a282907d0de218ab88bf474ba830ee