]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
9 months agoFor all binary operators, try to avoid computing subquery operands if the optimize-null-values
drh [Mon, 30 Jun 2025 12:14:47 +0000 (12:14 +0000)] 
For all binary operators, try to avoid computing subquery operands if the
other operand is NULL.

FossilOrigin-Name: d86eb16283c4b573c506d4faa422d5d9aeb6abc279d8e6a8e2104737162d417f

9 months agoSlightly smaller and faster version of the previous check-in.
drh [Mon, 30 Jun 2025 11:04:55 +0000 (11:04 +0000)] 
Slightly smaller and faster version of the previous check-in.

FossilOrigin-Name: f6e6fd02f4ad49c390a2d3c9626d57f9b2fff1f67eb361b30074cc1f5121810e

9 months agoFactor out the code that tries to avoid evaluating subquery operands if the
drh [Mon, 30 Jun 2025 10:30:47 +0000 (10:30 +0000)] 
Factor out the code that tries to avoid evaluating subquery operands if the
other operand is NULL into a subroutine, so that it can be more easily reused
by other parts of the code generator.

FossilOrigin-Name: 3c6c71bcea16443b82234414137dfa1b59e2ee8fe5097906c738fc1228fec4e6

9 months agoImprove the bytecode generated for comparisons so that if one operand is
drh [Sat, 28 Jun 2025 17:59:15 +0000 (17:59 +0000)] 
Improve the bytecode generated for comparisons so that if one operand is
a subquery and the other operand evaluates to NULL, the subquery operand
is not even computed.  This fixes 5 of the 12 slow queries described
in [forum:/forumpost/52651713ac|forum post 52651713ac].

FossilOrigin-Name: f147bc04776ac0056412f69dfc518016c0d5b4e9d964664e3d88f595fb29dbe0

9 months agoRaise an error right away if the number of aggregate terms in a query
drh [Fri, 27 Jun 2025 19:02:21 +0000 (19:02 +0000)] 
Raise an error right away if the number of aggregate terms in a query
exceeds the maximum number of columns.

FossilOrigin-Name: 5508b56fd24016c13981ec280ecdd833007c9d8dd595edb295b984c2b487b5c8

9 months agoAPI doc typo fixes and closing DD element tags from brickviking.
stephan [Fri, 27 Jun 2025 12:46:50 +0000 (12:46 +0000)] 
API doc typo fixes and closing DD element tags from brickviking.

FossilOrigin-Name: c9ddd15b0197e6e5c5a74581d94cf986523514ffdb28c66ba18de9a22aec97e9

9 months agoWork around an apparent GCC UBSAN bug. See
drh [Thu, 26 Jun 2025 18:57:20 +0000 (18:57 +0000)] 
Work around an apparent GCC UBSAN bug.  See
[forum:/forumpost/1d7c25d4a2d6f5e2|forum thread 1d7c25d4a2d] for details.

FossilOrigin-Name: 23056532e51abcff486e38a3319545e6663b4a855abe1bc443e2cd7e0473748c

9 months agoMinor API doc fixes sent off-list from brickviking.
stephan [Wed, 25 Jun 2025 20:42:40 +0000 (20:42 +0000)] 
Minor API doc fixes sent off-list from brickviking.

FossilOrigin-Name: cb4d05633a0c9cdf146f3108e1b4b10754cd79d72a425d8cc9cd21836037a01b

9 months agoSimilar fix to the previous check-in, but this time for
drh [Tue, 24 Jun 2025 18:27:59 +0000 (18:27 +0000)] 
Similar fix to the previous check-in, but this time for
sqlite3_preupdate_new().

FossilOrigin-Name: 9aaff764d508cbd9823f23cdf0c510255721bc5c09be481ebc60bd8902ceb8c5

9 months agoRange check the column index on the sqlite3_preupdate_old() interface
drh [Tue, 24 Jun 2025 15:58:32 +0000 (15:58 +0000)] 
Range check the column index on the sqlite3_preupdate_old() interface
and return SQLITE_MISUSE if too large.
[forum:/forumpost/b617e497287235d0|Forum post b617e49728].

FossilOrigin-Name: 6a5701e6c7be25cba93e55438f950966e1dacb32eb2b23a8acc8ac53da6f0a85

9 months agoAPI doc typo fixes and one rephrasing improvement from brickviking.
stephan [Tue, 24 Jun 2025 07:38:52 +0000 (07:38 +0000)] 
API doc typo fixes and one rephrasing improvement from brickviking.

FossilOrigin-Name: 85e8060c4701a601d4bc8a639acd268ee4f2736193820d55ecd9b8abf864132f

9 months agoImprove some of the error messages emitted by fts5 when it encounters corruption.
dan [Mon, 23 Jun 2025 19:38:22 +0000 (19:38 +0000)] 
Improve some of the error messages emitted by fts5 when it encounters corruption.

FossilOrigin-Name: 48044a6b57c0a16cb75139c103ad88ca4ab64d74f70a3dee0d8b817fbfbec3c6

9 months agoFix an SQL typo introduced by the previous check-in.
drh [Mon, 23 Jun 2025 19:00:30 +0000 (19:00 +0000)] 
Fix an SQL typo introduced by the previous check-in.

FossilOrigin-Name: 72a81d247bc74a21d077d311969ac585d0f26bffbd210ec60f03c38bf138790e

9 months agoEscape the "_" character in LIKE patterns in the CLI.
drh [Mon, 23 Jun 2025 16:51:33 +0000 (16:51 +0000)] 
Escape the "_" character in LIKE patterns in the CLI.
[forum:/forumpost/6a89702f5d|Forum post 6a89702f5d].

FossilOrigin-Name: cf61cd359e666c66b6bba4407a653c799f7f07e1f5ee6b837ad467029c461a6a

9 months agoFix a harmless compiler warning injected by [c978aed3b6f82b3d].
drh [Mon, 23 Jun 2025 13:42:59 +0000 (13:42 +0000)] 
Fix a harmless compiler warning injected by [c978aed3b6f82b3d].

FossilOrigin-Name: f46500247b3a2f8b4a2f0f032cc4066af9cb3918e38a09c59db0a1da5747a25c

9 months agoImproved "statement aborts at ..." log-file messages that identify the
drh [Mon, 23 Jun 2025 13:28:13 +0000 (13:28 +0000)] 
Improved "statement aborts at ..." log-file messages that identify the
trigger that caused the abort.

FossilOrigin-Name: 7691264fe37300c880d612c91cf093327841fbe85fb7ec67e777e911d2cfc9ee

9 months agoAdd the --disable-rpath configure script flag to address [forum:13cac3b56516f849...
stephan [Sun, 22 Jun 2025 22:48:11 +0000 (22:48 +0000)] 
Add the --disable-rpath configure script flag to address [forum:13cac3b56516f849 | forum post 13cac3b56516f849].

FossilOrigin-Name: a59d9bb25e518f5d79f654615b92f6c50cfb704b5abee0f820912644b89366c5

9 months agoAPI doc typo fixes from brickviking.
stephan [Sun, 22 Jun 2025 12:04:47 +0000 (12:04 +0000)] 
API doc typo fixes from brickviking.

FossilOrigin-Name: 18e07f8f53693d0dace3c4025a572c1a10582290a338aa7f0913c83842a69b05

9 months agoMinor JS test cleanups prompted by a linter.
stephan [Sat, 21 Jun 2025 16:33:05 +0000 (16:33 +0000)] 
Minor JS test cleanups prompted by a linter.

FossilOrigin-Name: 764235a3d15fda55af85ebe3b5885fa27336cc0e979f1be2f6770b66a84bbe87

9 months agoRemove some duplicated JS tests.
stephan [Sat, 21 Jun 2025 16:18:23 +0000 (16:18 +0000)] 
Remove some duplicated JS tests.

FossilOrigin-Name: d1cb9ed79d806f667c22f5ba9861451d4d0765aa3072e085831045cf3a39f8b4

9 months agoReduce the maximum --size flag for JS kvvfs speedtest1 from 4 to 2, as --size 3 and...
stephan [Sat, 21 Jun 2025 16:02:20 +0000 (16:02 +0000)] 
Reduce the maximum --size flag for JS kvvfs speedtest1 from 4 to 2, as --size 3 and 4 are overflowing the kvvfs storage limits.

FossilOrigin-Name: b77b3adc828ce543e880e230701edd5e0ccb681e4c3c724ea8ad5ecbd69c73a6

9 months agoGive oo1.Stmt.get() similar treatment to [8c187140a60b]. This is an internal change...
stephan [Sat, 21 Jun 2025 15:58:20 +0000 (15:58 +0000)] 
Give oo1.Stmt.get() similar treatment to [8c187140a60b]. This is an internal change only - the API is unaffected.

FossilOrigin-Name: f5a7abc0a447273de40dacc463d267d26d4b62be56ee15baf05825791c2a7a6e

9 months agoExtend the SEE-via-kvvfs tests to include all three key types.
stephan [Sat, 21 Jun 2025 15:38:59 +0000 (15:38 +0000)] 
Extend the SEE-via-kvvfs tests to include all three key types.

FossilOrigin-Name: fc001aa5ee978795c2ff670bea64db0b69b6bde98653769d9cede8825a28e698

9 months agoRework how JS's oo1.DB.exec() flags its Stmt objects to make certain Stmt APIs illega...
stephan [Sat, 21 Jun 2025 14:38:53 +0000 (14:38 +0000)] 
Rework how JS's oo1.DB.exec() flags its Stmt objects to make certain Stmt APIs illegal (i.e. throwing) if called while that Stmt is being step()ped by DB.exec() (which can happen via client-provided per-result-row callbacks). This is an internal change only - the API is unaffected. Remove some unrelated dead code.

FossilOrigin-Name: 8c187140a60b62dc3b6066b8615766d52b7a29a5de992cbb6d312dbb225a980b

9 months agoNumerous small doc typo from BrickViking.
stephan [Sat, 21 Jun 2025 06:07:13 +0000 (06:07 +0000)] 
Numerous small doc typo from BrickViking.

FossilOrigin-Name: 3aab4415de615c178205936372c625bb571bad1016c3d2e7bb2a45932356f3d6

9 months agoEnhance sqlite3BtreeSetPageSize() so that it detects early if no changes
drh [Fri, 20 Jun 2025 13:12:55 +0000 (13:12 +0000)] 
Enhance sqlite3BtreeSetPageSize() so that it detects early if no changes
are needed and exists with SQLITE_OK.

FossilOrigin-Name: c978aed3b6f82b3d9d2e0ca0283c611351bca5e5496e86a9d5d0731ebcd27c84

9 months agoFix an out-of-order local variable declaration in ext/misc/fileio.c.
drh [Thu, 19 Jun 2025 20:19:12 +0000 (20:19 +0000)] 
Fix an out-of-order local variable declaration in ext/misc/fileio.c.

FossilOrigin-Name: a88bb75288a06492a04ab1278e8a2101a74f4ba712d328b4c73e86ac01cb946d

9 months agoImprove the accuracy of sqlite3BtreeRowCountEst().
drh [Thu, 19 Jun 2025 20:00:37 +0000 (20:00 +0000)] 
Improve the accuracy of sqlite3BtreeRowCountEst().

FossilOrigin-Name: e553fb538ec1527457e2927edf9127dccf268a8a3b5918d4fb0d066ad9676094

9 months agoGeneralize the indexCellCompare() so that works on any index page, not just
drh [Thu, 19 Jun 2025 19:33:06 +0000 (19:33 +0000)] 
Generalize the indexCellCompare() so that works on any index page, not just
the current page that a cursor is pointing to.

FossilOrigin-Name: b305a7f5db183d8e0e5d62ca3c9c6260ad94bb954f7342bd3caabcd8308a21f5

9 months agoA slight doc rephrasing for clarity, suggested in the forum.
stephan [Thu, 19 Jun 2025 12:35:30 +0000 (12:35 +0000)] 
A slight doc rephrasing for clarity, suggested in the forum.

FossilOrigin-Name: 0d6084a398edb013fcfb613eff8d75e2f86cbb5e3c8049328ede89e75db93cb3

9 months agoDoc typo fixes from [forum:0bce273669 | forum post 0bce273669].
stephan [Thu, 19 Jun 2025 10:46:39 +0000 (10:46 +0000)] 
Doc typo fixes from [forum:0bce273669 | forum post 0bce273669].

FossilOrigin-Name: 8f97e3f00d24b26fe87a9d3396ad855277a1a369f6f89e9c77dc9af4d203bdf1

9 months agoExpose the column metadata APIs to WASM (which does not require a non-default sqlite3...
stephan [Thu, 19 Jun 2025 10:25:50 +0000 (10:25 +0000)] 
Expose the column metadata APIs to WASM (which does not require a non-default sqlite3.c build, contrary to my prior mistaken claims). This adds only 424 bytes to sqlite3.wasm and 660 bytes to sqlite3.js.

FossilOrigin-Name: 3cf983816ccd167d93cb39c7a16b6db4b4f7ef2a64f4181d3bc4530cd0bd3b67

9 months agoExtend the pedantic enforcement of type to VIRTUAL columns.
drh [Wed, 18 Jun 2025 19:04:28 +0000 (19:04 +0000)] 
Extend the pedantic enforcement of type to VIRTUAL columns.

FossilOrigin-Name: b734c74e55acb26eb61b60937bef870f4b55b2e2e7560a22362f5f31ba2fcd03

9 months agoEnforce judgmental typing on STORED generated columns for STRICT
drh [Wed, 18 Jun 2025 16:17:00 +0000 (16:17 +0000)] 
Enforce judgmental typing on STORED generated columns for STRICT
tables.  [forum:/forumpost/6caf195248a849e4|Forum post 6caf195248].

FossilOrigin-Name: 5e9279bff0482806f86657ae05ca3e916708d138bc3c3ceb3fbf454818649d44

9 months agoExport the column-metadata APIs to WASM. Doing so requires a non-default build of... wasm-column-metadata
stephan [Wed, 18 Jun 2025 15:37:04 +0000 (15:37 +0000)] 
Export the column-metadata APIs to WASM. Doing so requires a non-default build of sqlite3.c, so this is a proof-of-concept branch saved just in case SQLITE_ENABLE_COLUMN_METADATA ever becomes the default for sqlite3.c.

FossilOrigin-Name: 59db3f639d1073678805dea26a4686eddfb238f055aa90bd429fc7fd33241502

9 months agoAdd the --enable-column-metadata flag to the configure script (off by default). It...
stephan [Wed, 18 Jun 2025 15:22:50 +0000 (15:22 +0000)] 
Add the --enable-column-metadata flag to the configure script (off by default). It's only available in the canonical build, not the autoconf build, because it changes how sqlite3.c gets generated.

FossilOrigin-Name: 986b601db11a041d280eb61004723604bf4b6fd573b9832c97e3a9da9ea16e9a

9 months agoEliminate configure/build discrepancies in how 'make tclextension-...' works vs other...
stephan [Wed, 18 Jun 2025 14:17:18 +0000 (14:17 +0000)] 
Eliminate configure/build discrepancies in how 'make tclextension-...' works vs other makefile-side handling of the extension, conforming to the former.

FossilOrigin-Name: 7ca545fd3b460fcf92e117baef42655eb6e78ebb5bdc6302f8f1b5b8446c0a06

9 months agoChange the definition of SQLITE_DYNAMIC to a function that has exactly
drh [Wed, 18 Jun 2025 14:14:46 +0000 (14:14 +0000)] 
Change the definition of SQLITE_DYNAMIC to a function that has exactly
the same type as sqlite3_destructor_type, in an effort to work around
possible legacy compiler bugs.

FossilOrigin-Name: 83553edf78c35d171a0ddf1a51306e963d715e56d95b8159b561b729cfb27843

9 months agoAdd the --tclConfig.sh FILE flag to buildtclext.tcl to eliminate the discrepancy...
stephan [Wed, 18 Jun 2025 11:11:30 +0000 (11:11 +0000)] 
Add the --tclConfig.sh FILE flag to buildtclext.tcl to eliminate the discrepancy between the configure-time-detected tclConfig.sh and the one auto-detected by the tclextension family of makefile targets. Add the tclextension-all target to run all of the various tclextension-... targets in their natural order to facilitate testing changes like this one. Update the --help text to note that --with-tclsh should only be used if there's a specific need, and that --with-tcl is generall preferred. This is in response to [https://github.com/termux/termux-packages/issues/23268 | Termux ticket 23268].

FossilOrigin-Name: 928976abcb11f9d5abe1f7631002592c4af7bf83ecadba5b0763866d039c2270

9 months agotea: remove the vsatisfies 8.6- enforcement from the extension because at least one...
stephan [Tue, 17 Jun 2025 20:50:51 +0000 (20:50 +0000)] 
tea: remove the vsatisfies 8.6- enforcement from the extension because at least one platform with tcl 8.6 is inexplicably failing it. [forum:fde857fb8101a4be | Forum post fde857fb8101a4be]

FossilOrigin-Name: 7331e32a76a8a41cc1bd1c84069219c9929e0e0f941c1d9e308cbbb7959373c5

9 months agoAvoid writing frames with no checksums into the wal file if a
drh [Tue, 17 Jun 2025 19:10:33 +0000 (19:10 +0000)] 
Avoid writing frames with no checksums into the wal file if a
savepoint is rolled back after dirty pages have already been
spilled into the wal file.

FossilOrigin-Name: 5973f9b9aa828ec9274b02a124b95f452c58235eaafffbdda1c32b4ae2d5616d

9 months agoFix a corner-case for [9441fff52cc4e19c].
drh [Tue, 17 Jun 2025 18:57:07 +0000 (18:57 +0000)] 
Fix a corner-case for [9441fff52cc4e19c].

FossilOrigin-Name: 336a59eb3afd80ce048de472368df6dfc32934ee783859d37663ed8f5cf169a5

9 months agoUpdate walcksum.test so that it works with SQLITE_DEFAULT_AUTOVACUUM=1 builds. forum-b490f726db-fix
dan [Tue, 17 Jun 2025 18:17:09 +0000 (18:17 +0000)] 
Update walcksum.test so that it works with SQLITE_DEFAULT_AUTOVACUUM=1 builds.

FossilOrigin-Name: 0da16f6c625bff9f2ca5624afa6dce6b5a157f44c1d56b25b92946c13217ab02

9 months agoExtend [b5c6cb13cff5] to use a wildcard on darwin* because some OSes report a version...
stephan [Tue, 17 Jun 2025 17:15:12 +0000 (17:15 +0000)] 
Extend [b5c6cb13cff5] to use a wildcard on darwin* because some OSes report a version number in the suffix. [forum:0c4bbc2962dfb06e | Forum post 0c4bbc2962dfb06e].

FossilOrigin-Name: d960bd6f9256410ebc98125b0567380457e39bc8fe768fcd9ea05c6de1994df6

9 months agoMinor proj.tcl portability fixes and cleanups suggested in [forum:7b218c3c9f|forum...
stephan [Tue, 17 Jun 2025 14:56:30 +0000 (14:56 +0000)] 
Minor proj.tcl portability fixes and cleanups suggested in [forum:7b218c3c9f|forum post 7b218c3c9f]. Tested on Linux, Msys, Cygwin, and Haiku.

FossilOrigin-Name: b5c6cb13cff53f4ba1e0e6a0d61389252bd004d9099727e7a9304217e3f81d80

9 months agoproj.tcl portability fixes and cleanups suggested in [forum:7b218c3c9f|forum post... linux-named-apple
stephan [Tue, 17 Jun 2025 14:37:31 +0000 (14:37 +0000)] 
proj.tcl portability fixes and cleanups suggested in [forum:7b218c3c9f|forum post 7b218c3c9f]. Branching so that it can be tested on msys/cygwin/haiku before committing to it.

FossilOrigin-Name: 89552e9137b7ebba9600443720e936e8dc4f7ab021d2ac3f0bb01b74071e130c

9 months agoAvoid writing frames with no checksums into the wal file if a savepoint is rolled...
dan [Tue, 17 Jun 2025 11:36:39 +0000 (11:36 +0000)] 
Avoid writing frames with no checksums into the wal file if a savepoint is rolled back after dirty pages have already been spilled into the wal file. Possible fix for [forum:/forumpost/b490f726db | forum post b490f726db].

FossilOrigin-Name: 3a3269fe8e925a522d5df9f011220a842fb15a9f56e785884e32d2e15abda5bb

9 months agoFix an issue going back to version 3.39.0 with transitive IS constraints
drh [Mon, 16 Jun 2025 17:36:11 +0000 (17:36 +0000)] 
Fix an issue going back to version 3.39.0 with transitive IS constraints
in queries that make use of RIGHT JOIN.  Problem reported by
[forum:/forumpost/68f29a2005|forum post 68f29a2005].

FossilOrigin-Name: 9441fff52cc4e19c44df1a77ffe474f409d519b270c7166ce17f99e6ea48fc1e

9 months agoImproved debugging output for the transitive constraint optimization.
drh [Mon, 16 Jun 2025 16:07:14 +0000 (16:07 +0000)] 
Improved debugging output for the transitive constraint optimization.

FossilOrigin-Name: 94b53c20e9bc8687c44272419aa7a93076eebdeae9a4f50b95b96a49993f9c0d

9 months agoMake the show-%p-az-zero hack of the previous check-in configurable at
drh [Mon, 16 Jun 2025 15:34:26 +0000 (15:34 +0000)] 
Make the show-%p-az-zero hack of the previous check-in configurable at
run-time using the 0x100000 bit of either .treetrace or .wheretrace.
As before, this is all a no-op except for debugging builds.

FossilOrigin-Name: a29627d7e7f8344d9a099cc133bda85250b02dc5ee5f358ba59691e0816b5b2d

9 months agoAdd an "#if 0" that can be changed to "1" to cause all %p output to render
drh [Mon, 16 Jun 2025 13:51:09 +0000 (13:51 +0000)] 
Add an "#if 0" that can be changed to "1" to cause all %p output to render
as 0, thus making comparisons of .treetrace and .wheretrace output easier.

FossilOrigin-Name: 65e2704c0bc329f3dd248548a2d4edb7d3ace8ceaf0b82b8618b9b1b764884cd

9 months agoHave sqlite3_setlk_timeout() take the database handle mutex. This fixes an assert...
dan [Thu, 12 Jun 2025 07:35:38 +0000 (07:35 +0000)] 
Have sqlite3_setlk_timeout() take the database handle mutex. This fixes an assert() failure that could occur if sqlite3_setlk_timeout() were called on a threadsafe handle.

FossilOrigin-Name: a95d126e1330e1b83f42b51f97c4c216622cf38062f3b5d72ccb76313187e850

9 months agoFix a problem with UPDATEs on fts5 tables that contain blob values.
dan [Wed, 11 Jun 2025 15:03:53 +0000 (15:03 +0000)] 
Fix a problem with UPDATEs on fts5 tables that contain blob values.

FossilOrigin-Name: badf3014bd1620fd3d4b8013f641fd820b249649fb93cc75b7b8df9dfd6f32a6

9 months agoFix the concat_ws() SQL function so that it includes empty strings in the
drh [Wed, 11 Jun 2025 00:01:42 +0000 (00:01 +0000)] 
Fix the concat_ws() SQL function so that it includes empty strings in the
concatenation.  [forum:/forumpost/52503ac21d|Forum post 52503ac21d].

FossilOrigin-Name: 80a78987da484d435a8242c05c48d546d430920df713b24a9d9d9fff7ba1113d

9 months agoImproved selection of the divisor when subdividing nested Bitvec objects.
drh [Tue, 10 Jun 2025 19:52:21 +0000 (19:52 +0000)] 
Improved selection of the divisor when subdividing nested Bitvec objects.
This fixes a potential stack overflow that can occur when the database size
is within 60 pages of the maximum allowed by the file format.

FossilOrigin-Name: f7ab764ed9df6d7a4a96cb0933d291f00174f33fed3d9951785078fe225adcb7

9 months agoMinor corrections to the new Bitvec testing logic.
drh [Tue, 10 Jun 2025 18:26:09 +0000 (18:26 +0000)] 
Minor corrections to the new Bitvec testing logic.

FossilOrigin-Name: 77b79ca1277419b91589aff2c601d4abdd7107d48019a58f7f7c85d96c2a538e

9 months agoEnhancements to sqlite3BitvecBuiltinTest() that allow testing code to
drh [Tue, 10 Jun 2025 17:22:53 +0000 (17:22 +0000)] 
Enhancements to sqlite3BitvecBuiltinTest() that allow testing code to
create very large Bitvec objects that do not use the linear array cross-check.

FossilOrigin-Name: c5680672cae23f65637eebf66f3bb983a2864be03ea70378832034f3c89ef728

9 months agoImproved diagnostics for Bitvec: Add the sqlite3ShowBitvec() routine that
drh [Tue, 10 Jun 2025 16:02:29 +0000 (16:02 +0000)] 
Improved diagnostics for Bitvec:  Add the sqlite3ShowBitvec() routine that
can be called from a debugger (only available with SQLITE_DEBUG).  Add new
output opcodes for sqlite3BitvecBuiltinTest().

FossilOrigin-Name: dea1e37fa67ada6efc1533b449d9eb22338d9e58eec8f89b48c38319c212c8f4

10 months agoAdjustments to ext/misc/fileio.c in an attempt to get it to build using mingw.
drh [Mon, 9 Jun 2025 22:38:34 +0000 (22:38 +0000)] 
Adjustments to ext/misc/fileio.c in an attempt to get it to build using mingw.

FossilOrigin-Name: 96b14a3f1193de8f30e9fa704f87558dab8027a218868d32e47688cd5df497b7

10 months agoRemove unnecessary whitespace and otherwise improve comments in the
drh [Fri, 6 Jun 2025 23:10:18 +0000 (23:10 +0000)] 
Remove unnecessary whitespace and otherwise improve comments in the
wherecode.c module.  No coding changes.

FossilOrigin-Name: 2eb4e9bf0f2df50324a62fb272a92bbd931b8b4e4b35bac0c05b676c97b61339

10 months agoUpdate the "msort" function in Lemon so that it works with lists of any
drh [Fri, 6 Jun 2025 23:02:03 +0000 (23:02 +0000)] 
Update the "msort" function in Lemon so that it works with lists of any
length, and also so that the sort is stable.  This patch was motivated by
[forum:/forumpost/63750d717c9ed961|forum post 63750d717c] but was
independently developed, then tested by temporarily setting LISTSIZE to 2.

FossilOrigin-Name: aba5c3135edf7de2798ad808fa0ff176fdba3f4a9b101f1f4210b441cba8e75d

10 months agoRemove the clunky test_windirent.h and test_windirent.c files from src/
drh [Thu, 5 Jun 2025 20:12:41 +0000 (20:12 +0000)] 
Remove the clunky test_windirent.h and test_windirent.c files from src/
and replace them with a much cleaner and more compact ext/misc/windirent.h.

FossilOrigin-Name: acc978df52ec41ffdb5c27764f30d53efa1f25a314b7d98983dc0d211a36b570

10 months agoEnhance the FSDIR virtual table with a new "level" column. The query planner
drh [Thu, 5 Jun 2025 18:28:54 +0000 (18:28 +0000)] 
Enhance the FSDIR virtual table with a new "level" column.  The query planner
knows how to optimize to avoid search deeper than the maximum requested level.

FossilOrigin-Name: 1ddc0f9e79c33957961bc1443ccb74d756a02cbd20850052079782e76aef2706

10 months agotea build: add an info-exists check after a 'scan' call, as scan does not create...
stephan [Wed, 4 Jun 2025 18:34:20 +0000 (18:34 +0000)] 
tea build: add an info-exists check after a 'scan' call, as scan does not create its target vars on error. Problem reported at [forum:fde857fb8101a4be | forum post fde857fb8101a4be] and triggers when the 'vsatisfies' test for the host's Tcl version fails (so the build would fail anyway, but will fail more informatively with this fix).

FossilOrigin-Name: 4f21874d5d20aef2e2d67a59e4fa03d98aa6514b16e4d956acfc817142cfbdb6

10 months agoApply the duplicate 'export default' workaround to the (untested and unsupported...
stephan [Tue, 3 Jun 2025 18:10:59 +0000 (18:10 +0000)] 
Apply the duplicate 'export default' workaround to the (untested and unsupported) node-specific build rules in mkwasmbuilds.c to resolve a problem reported off-list by Thomas Steiner.

FossilOrigin-Name: 2f8a1b79533879e4975b405c46fea496ba8bffbef065e7dd0ad29fd4aa8f8f92

10 months agoEnhance sqlite3_rsync so that it works even if the replica database is
drh [Tue, 3 Jun 2025 10:49:51 +0000 (10:49 +0000)] 
Enhance sqlite3_rsync so that it works even if the replica database is
initially malformed.

FossilOrigin-Name: ea1754f7d8a770477a1b19b606b27724fdc0b733e51fef32c1ef834f972c3cc5

10 months agoFix an off-by-one error in sqlite3_rsync, reported in
drh [Tue, 3 Jun 2025 10:28:47 +0000 (10:28 +0000)] 
Fix an off-by-one error in sqlite3_rsync, reported in
[forum:/forumpost/b6d78f60fc|forum post b6d78f60fc].

FossilOrigin-Name: 27d9e8e79b921c4a86916556f3bf56b94684a7e3d40166c0fdaaf750d4011de0

10 months agoFix harmless compiler warning introduced by the setlk-snapshot-fix merge.
drh [Tue, 3 Jun 2025 10:18:54 +0000 (10:18 +0000)] 
Fix harmless compiler warning introduced by the setlk-snapshot-fix merge.

FossilOrigin-Name: c1f20f89d9eb3e1dd1018c0e0efe5d3043a592f078e235ad04b960334c7186c2

10 months agoFix JSONB edit so that when it is trying to reduce the size of an element
drh [Mon, 2 Jun 2025 23:34:42 +0000 (23:34 +0000)] 
Fix JSONB edit so that when it is trying to reduce the size of an element
it understands 0xf0 (8-byte) sizes.

FossilOrigin-Name: 5b3de6e8ab6b228bf6c0e0c31b50ca29d8b7852b460eaaca6c6ecf5a3c083cab

10 months agoIncrease the version number to 3.51.0
drh [Mon, 2 Jun 2025 18:58:42 +0000 (18:58 +0000)] 
Increase the version number to 3.51.0

FossilOrigin-Name: ed69d4432712603bea2161e0ca0c99e59480fb000e1cbf1aa1401d924544e351

10 months agoFixes to ensure SQLITE_ENABLE_SETLK_TIMEOUT builds use a blocking lock and do not...
dan [Mon, 2 Jun 2025 18:48:36 +0000 (18:48 +0000)] 
Fixes to ensure SQLITE_ENABLE_SETLK_TIMEOUT builds use a blocking lock and do not call xSleep() when (a) opening a snapshot transaction, and (b) when blocked by another process running recovery.

FossilOrigin-Name: 7f9c0cdd0630a41db359b188b226a1ad6a3bae1663c27169acfe25edc7fb171b

10 months agoFix os_win.c so that SQLITE_ENABLE_SETLK_TIMEOUT=2 builds work on windows. setlk-snapshot-fix
dan [Mon, 2 Jun 2025 18:37:32 +0000 (18:37 +0000)] 
Fix os_win.c so that SQLITE_ENABLE_SETLK_TIMEOUT=2 builds work on windows.

FossilOrigin-Name: 8efb95e0d4670b9c5dbd8cf34512334f47951a8dff8fdadc8645f75076acd91f

10 months agoImprove the accuracy of affinity and collating sequence analysis for
drh [Mon, 2 Jun 2025 18:34:17 +0000 (18:34 +0000)] 
Improve the accuracy of affinity and collating sequence analysis for
NATURAL JOINs to the left of RIGHT JOINs where source tables are views
or subqueries.  Initial problem report in
[forum:/forumpost/829306db47|forum post 829306db47].

FossilOrigin-Name: f184d1d236e47962658a4639d9533f67a525b74cfe0f06c93e9b85fdcd02a15f

10 months agoUpdates to new test cases to run with SQLITE_ENABLE_SETLK_TIMEOUT=2 builds.
dan [Mon, 2 Jun 2025 18:09:46 +0000 (18:09 +0000)] 
Updates to new test cases to run with SQLITE_ENABLE_SETLK_TIMEOUT=2 builds.

FossilOrigin-Name: c6d3e3542fdf6a3428d3a2ec20c699c169ed53341dc782d81f7fe5944f769748

10 months agoMerge trunk changes into this branch.
dan [Mon, 2 Jun 2025 17:44:10 +0000 (17:44 +0000)] 
Merge trunk changes into this branch.

FossilOrigin-Name: 7d27451804e525190f8e67da75aaeb3bf2de677021f7566c6681398e60a88c72

10 months agoSlight modernization of the TEA README.txt.
stephan [Mon, 2 Jun 2025 15:17:59 +0000 (15:17 +0000)] 
Slight modernization of the TEA README.txt.

FossilOrigin-Name: bf7be67e3fb7b75fc281997f7bf9aa69eaf4da6bdf2fefe359b12d25ec95f512

10 months agoTEA: remove the stale man page and references to the MSC makefiles from the README...
stephan [Mon, 2 Jun 2025 15:10:41 +0000 (15:10 +0000)] 
TEA: remove the stale man page and references to the MSC makefiles from the README.txt. Based on discussion at [forum:87e6660191a472c5 | forum post 87e6660191a472c5].  A couple of weeks ago we internally discussed pulling in the MSC makefiles from the 3.49 tree but they are stale and possibly unused, so opted against it for the time being.

FossilOrigin-Name: c9888a409565e6c8891a3dafa56962df364fb729a61df2701dc0bb282e36fb75

10 months agoRemove an unnecessary parameter from sqlite3VdbeRecordUnpack(). Improved
drh [Mon, 2 Jun 2025 13:54:33 +0000 (13:54 +0000)] 
Remove an unnecessary parameter from sqlite3VdbeRecordUnpack().  Improved
comments and assert()s on KeyInfo.

FossilOrigin-Name: 387f4c4d98b8fb83f6ae406e4143dabda7766e8752b7f6ca104655e51330c978

10 months agoFix stale comments related to KeyInfo. Add new assert()s associated with
drh [Mon, 2 Jun 2025 09:49:07 +0000 (09:49 +0000)] 
Fix stale comments related to KeyInfo.  Add new assert()s associated with
memory management of KeyInfo.

FossilOrigin-Name: abd805bc76f14ede7359b029908179b7ca57e929c5918acae1403ef73ae0bd47

10 months agoFix an off-by-one error in the size computation of a vdbe-sorter.
drh [Sun, 1 Jun 2025 21:38:35 +0000 (21:38 +0000)] 
Fix an off-by-one error in the size computation of a vdbe-sorter.
[forum:/forumpost/c1cc8b057a|Forum post c1cc8b057a].
Problem introduced by checkin [d4307a0d43f42e96].

FossilOrigin-Name: 8b7a7fcf62e5c2742c243808fa482472954f2b4aae0bc7ae513bc07065c93737

10 months agoFix VACUUM so that it works even when ATTACH_WRITE is disabled.
drh [Sun, 1 Jun 2025 16:10:25 +0000 (16:10 +0000)] 
Fix VACUUM so that it works even when ATTACH_WRITE is disabled.

FossilOrigin-Name: 42494f85acb303919d3f1f2202f8b95fbd657652da4b8dc00451c10ea6c496e0

10 months agoEnhance "box" and "column" mode formatting in the CLI to better deal with
drh [Sat, 31 May 2025 20:51:42 +0000 (20:51 +0000)] 
Enhance "box" and "column" mode formatting in the CLI to better deal with
double-wide characters.

FossilOrigin-Name: b0de22ed0abf2ea5d269f191c884d7b2be167a2ed27018c25aaa0ea238cd621a

10 months agoUpdate a few test scripts so that they run on windows.
dan [Sat, 31 May 2025 19:55:07 +0000 (19:55 +0000)] 
Update a few test scripts so that they run on windows.

FossilOrigin-Name: 14a18f4e3a3f35e636262a253364ab1e8054ed38c0c7fd482633522cbcf5ffc4

10 months agoNew makefile target "xdevtest" works like "releasetest" except that it
drh [Sat, 31 May 2025 18:26:37 +0000 (18:26 +0000)] 
New makefile target "xdevtest" works like "releasetest" except that it
omits the "verify-source" dependency so that it can be run with uncommitted
changes in the source tree.

FossilOrigin-Name: 1afb1ac3e9f0a122f1374799c09b60a0dd5443434d4567d94385096ada91bf12

10 months agoFix an affinity problem caused by a USING or NATURAL JOIN on the LHS of a FULL JOIN...
dan [Sat, 31 May 2025 18:16:21 +0000 (18:16 +0000)] 
Fix an affinity problem caused by a USING or NATURAL JOIN on the LHS of a FULL JOIN. [forum:/forumpost/5028c785b6|Forum post 5028c785b6].

FossilOrigin-Name: 8d393ca07fe09f48d77adb517e2e4baaa58a9251422de62a0504999205d3ea1d

10 months agoRelax query flattener constraint (3b) and thereby allow flattening the RHS of
drh [Sat, 31 May 2025 16:17:14 +0000 (16:17 +0000)] 
Relax query flattener constraint (3b) and thereby allow flattening the RHS of
a LEFT JOIN even if the RHS contains a virtual table.  This was previously
disallowed by [9dbae1df75219e2a] as a performance optimization.  It
turns out that the constraint causes performance issues, and we do not have
a record of any performance issue that it solves.

FossilOrigin-Name: 1ddaa92057e550ea281d45d9860eafe69399224725548a93dd91c47a34e52152

10 months agoFix assert() statements in os_unix.c and os_win.c. Allow walsetlk_recover.test to...
dan [Sat, 31 May 2025 15:10:41 +0000 (15:10 +0000)] 
Fix assert() statements in os_unix.c and os_win.c. Allow walsetlk_recover.test to run in non-SQLITE_ENABLE_SNAPSHOT builds.

FossilOrigin-Name: 9f521ecda2b8d2f383cc84e308b3a4adfcf1bd6339eb834c8fa76c8704c861b7

10 months agoMove a mis-located makefile comment block.
stephan [Sat, 31 May 2025 11:08:06 +0000 (11:08 +0000)] 
Move a mis-located makefile comment block.

FossilOrigin-Name: 7d884386bec11f47c2c18002dd8c573c9b5cb6f7cdf2307a96cccead05b6abf2

10 months agotcl extension: UDFs may now 'break' to return an SQL NULL. Add the (eval -asdict...
stephan [Sat, 31 May 2025 11:02:06 +0000 (11:02 +0000)] 
tcl extension: UDFs may now 'break' to return an SQL NULL. Add the (eval -asdict) flag to use a dict, instead of an array, for the eval row data.

FossilOrigin-Name: 413a626b5c7902c1810142536c36e4ea8ee7c616ea82dfe1114199f9319091f7

10 months agoAdd some missing UNUSED_PARAMETER() annotations to squelch downstream build warnings...
stephan [Sat, 31 May 2025 09:44:00 +0000 (09:44 +0000)] 
Add some missing UNUSED_PARAMETER() annotations to squelch downstream build warnings when using -Wextra -pedantic.

FossilOrigin-Name: a98a2f49355ec39c56e571c70d377675b1bd99a6d43cf9217b0eb1e081895d8e

10 months agoFollow-up to the previous: The same optimization suppression needs to
drh [Fri, 30 May 2025 22:58:09 +0000 (22:58 +0000)] 
Follow-up to the previous:  The same optimization suppression needs to
happen if the left-hand side is coming from a LEFT JOIN.

FossilOrigin-Name: cf5b37b3a39013d8ca9de92da2289346caf52b56daff59e19b140cc586a3421f

10 months agoIf blocking locks are enabled, avoid using the busy handler when blocked by another...
dan [Fri, 30 May 2025 20:52:18 +0000 (20:52 +0000)] 
If blocking locks are enabled, avoid using the busy handler when blocked by another process running recovery.

FossilOrigin-Name: a35236757ab57c4c9b34e47c5dbc10d8f1220f8152955f5303cf9c3902ee169b

10 months agoWhen synthesizing an ON constraint from a USING or NATURAL, if the left-hand
drh [Fri, 30 May 2025 19:55:46 +0000 (19:55 +0000)] 
When synthesizing an ON constraint from a USING or NATURAL, if the left-hand
side is coming from a RIGHT JOIN, be sure to set the EP_CanBeNull flag so that
the optimizer knows to check for NULL even if the column has a NOT NULL
constraint.  Fix for the problem reported by
[forum:/forumpost/4fc70203b61c7e12|forum post 4fc70203b61]

FossilOrigin-Name: 60adc78a22956429d34ccc4e2c193c5994c11c3b3cff7901d47fad7d92dba935

10 months agoAvoid invoking the busy-handler if a blocking lock times out while attempting to...
dan [Fri, 30 May 2025 18:23:03 +0000 (18:23 +0000)] 
Avoid invoking the busy-handler if a blocking lock times out while attempting to open a snapshot transaction.

FossilOrigin-Name: fe11f85fd3283bb7002f43bd8b796e9e7b67f6d1a92eb676be06b46d1458fc1d

10 months agoConfigure-related fixes and additions, most notably integration of self-tests for...
stephan [Fri, 30 May 2025 16:08:31 +0000 (16:08 +0000)] 
Configure-related fixes and additions, most notably integration of self-tests for proj.tcl's APIs. Teaish make-install fixes based on the discussion in [forum:87e6660191a472c5 | forum thread 87e6660191a472c5].

FossilOrigin-Name: 2e486f8fd011d28fdd7e59ff34f7f04374019932eb160a8c4de56a5ce01e5782

10 months agoRandom typo fixes in JNI docs.
stephan [Fri, 30 May 2025 15:46:52 +0000 (15:46 +0000)] 
Random typo fixes in JNI docs.

FossilOrigin-Name: f63608a3847469b130e029cc569fe6f03a9053352ec43c10d69849cbab4f61c5

10 months agoUse a more robust backup definition for offsetof().
drh [Fri, 30 May 2025 15:43:04 +0000 (15:43 +0000)] 
Use a more robust backup definition for offsetof().

FossilOrigin-Name: 22441955e03df07903b98832a60c05c53721cd67c667f6c83d5e97fcc62735ee

10 months agoAdd "include <stddef.h>" to fts5 and rtree to ensure that they use the system version...
dan [Fri, 30 May 2025 11:14:11 +0000 (11:14 +0000)] 
Add "include <stddef.h>" to fts5 and rtree to ensure that they use the system version of the offsetof() macro when it is available, as the built-in version triggers ubsan errors with clang.

FossilOrigin-Name: 838deb7f3423df84061a043928ed34e1d74e2e7d57ef1a9519bb32fea82e4352

10 months agoSquelch an interesting but harmless struct initialization warning emitted after an...
stephan [Fri, 30 May 2025 10:18:09 +0000 (10:18 +0000)] 
Squelch an interesting but harmless struct initialization warning emitted after an emsdk update. Fix JS breakage introduced by changes in Emscripten 4.0.7: manually export the HEAPxyz symbols which used to be exposed by default.

FossilOrigin-Name: 10d0897cc9a5998fe1344cfbb242a78b59012e29aa3b1993895dfac26721b053

10 months agoFix the missing -lm link flag for the sqlite3 shell when building the autoconf bundle...
stephan [Thu, 29 May 2025 20:29:13 +0000 (20:29 +0000)] 
Fix the missing -lm link flag for the sqlite3 shell when building the autoconf bundle with --disable-static-shell, as reported in [forum:5adf1c932a | forum post 5adf1c932a].

FossilOrigin-Name: f6318c4a6b5a133657741c066ef2c76a71880dbc98cfff1fdd632637daf002dc