]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
5 months agoFixes and improved documentation to the new --sqlid and --dbid range fuzzcheck-improvements
drh [Mon, 3 Feb 2025 18:49:06 +0000 (18:49 +0000)] 
Fixes and improved documentation to the new --sqlid and --dbid range
options in fuzzcheck.

FossilOrigin-Name: 59e26632449163a36b803cc7027ed99c1f6b675dda6f0b2b12bbe55884923f08

5 months agoEnhance fuzzcheck so that the --sqlid and --dbid options can specify a
drh [Mon, 3 Feb 2025 18:36:05 +0000 (18:36 +0000)] 
Enhance fuzzcheck so that the --sqlid and --dbid options can specify a
range of tests to be run.

FossilOrigin-Name: cdd0af6f86e49ade1339ad5a3cc444400a9722a9efdf84a30b3ff9428b7ac36d

5 months agoFix for a potential UAF in FTS5.
drh [Mon, 3 Feb 2025 18:05:54 +0000 (18:05 +0000)] 
Fix for a potential UAF in FTS5.

FossilOrigin-Name: e33f2fedda17b4f3678fc23c438093c256b0c125da5f1ac42ecaf3d604d54b6a

5 months agoImprove the JS-side sqlite3_set_auxdata() test to also trigger the case that the...
stephan [Mon, 3 Feb 2025 18:01:42 +0000 (18:01 +0000)] 
Improve the JS-side sqlite3_set_auxdata() test to also trigger the case that the aux data actually gets reused. Test changes only, no library code.

FossilOrigin-Name: 9f27379d860518e6e097a2c999da04176812260a61bf11fe495c3efd76971806

5 months agoFix a use-after-free case in fts5 provoked by fuzzdata8.db. Tcl test case pending. fuzz-data
dan [Mon, 3 Feb 2025 17:54:55 +0000 (17:54 +0000)] 
Fix a use-after-free case in fts5 provoked by fuzzdata8.db. Tcl test case pending.

FossilOrigin-Name: a4962df665084e423e020be9a2834b6886a8e3feb461cff5358b61398a2a20d2

5 months agoNew test case for test/fuzzdata8.db
drh [Mon, 3 Feb 2025 17:45:41 +0000 (17:45 +0000)] 
New test case for test/fuzzdata8.db

FossilOrigin-Name: 8a882f976e22100b91c7ca4119123f16ad5f03311f0a6dc17449bcdcff29618c

5 months agoRework [76c8435a] to eliminate automatic JS-to-WASM function conversions of sqlite3_s...
stephan [Mon, 3 Feb 2025 17:34:12 +0000 (17:34 +0000)] 
Rework [76c8435a] to eliminate automatic JS-to-WASM function conversions of sqlite3_set_auxdata() destructors because it can leads to leaks on every call of a UDF. This feature never worked before [76c8435a] but fixing it was ill-conceived because of the memory leakage it introduces. WASM function pointers can still be used as destructors in this context.

FossilOrigin-Name: 3fb993af0caf041da934cea29c039b27c468be0b75bce1537a6425767cf9bf8d

5 months agoAdd a more complete test for [76c8435a] and add some commentary about (A) the inabili...
stephan [Mon, 3 Feb 2025 14:55:56 +0000 (14:55 +0000)] 
Add a more complete test for [76c8435a] and add some commentary about (A) the inability to automatically clean up automatically-generated WASM proxy functions for sqlite3_set_auxdata() destructors and (B) how to deal with (A) to avoid leaking WASM proxy functions.

FossilOrigin-Name: d693c2dddbd10a2e0b77893b04b11502e30b768f1b06814105f7f35172845fb9

5 months agoFix the build process on Windows so that it generates identical sqlite3.c,
drh [Mon, 3 Feb 2025 14:44:16 +0000 (14:44 +0000)] 
Fix the build process on Windows so that it generates identical sqlite3.c,
sqlite3.h, and shell.c files on Windows and Unix.  This patch also includes
a change to JS bindings that got caught up in the branch.

FossilOrigin-Name: 91ef45fc2902e46813366ec6b8317209f39f10e4a23c3808e33aceedab9da6c7

5 months agoBring the autoconf-tarball Makefile.msc into alignment with the main windows-build-issue
drh [Mon, 3 Feb 2025 14:40:05 +0000 (14:40 +0000)] 
Bring the autoconf-tarball Makefile.msc into alignment with the main
Makefile.msc.

FossilOrigin-Name: 52a7a162d131532de8f4403b099fa122fc72c80f71494fb561afc4e0ff8e6bf4

5 months agoCorrect the FuncPtrAdapter signature for the JS binding of sqlite3_set_auxdata()...
stephan [Mon, 3 Feb 2025 14:04:27 +0000 (14:04 +0000)] 
Correct the FuncPtrAdapter signature for the JS binding of sqlite3_set_auxdata(). Reported in [https://github.com/sqlite/sqlite-wasm/issues/92|the npm subproject, ticket #92].

FossilOrigin-Name: 76c8435a5f390001038b8ee94322ff478c9d5f29501ed1c5891c952a41e377aa

5 months agoAdjust the build process to avoid extra CR characters inserted by jimsh
drh [Mon, 3 Feb 2025 13:20:11 +0000 (13:20 +0000)] 
Adjust the build process to avoid extra CR characters inserted by jimsh
on Windows.

FossilOrigin-Name: 1f54853932cec9ba20e9be48a59f1817b8b45e4c4d6ef8a06d34f86dd688e28e

5 months agoThe "clean" target on Makefile.msc should not delete the auto.def file.
drh [Mon, 3 Feb 2025 12:42:03 +0000 (12:42 +0000)] 
The "clean" target on Makefile.msc should not delete the auto.def file.

FossilOrigin-Name: 72fbcedfb09febb72fa325cb21d160cd33dca7fe5579817143f47d90a20ec2ef

5 months agoAdd a header comment to test/speedtest1.c that outlines how to compile the
drh [Sun, 2 Feb 2025 18:01:32 +0000 (18:01 +0000)] 
Add a header comment to test/speedtest1.c that outlines how to compile the
program using historical amalgamation sources, for comparison testing.

FossilOrigin-Name: 602d4dd69ec9a724c69cb41ab15376ec731bfd4894fac0a2b25076b857786c6d

5 months agoUpdate to the "--help" output from speedtest1.
drh [Sun, 2 Feb 2025 16:52:21 +0000 (16:52 +0000)] 
Update to the "--help" output from speedtest1.

FossilOrigin-Name: 5216452047eecdd6c0f6ab85b304f975ed05a394a4ad9ae793fb65d645502b12

5 months agoURL typo fix in code comments. No code changes.
stephan [Sun, 2 Feb 2025 12:15:25 +0000 (12:15 +0000)] 
URL typo fix in code comments. No code changes.

FossilOrigin-Name: 002a123094e4ef14eb5ec28033adca6083ba2717e1eaa23e80595e37a947e6c2

5 months agoAdd a missing "db2 close" to the ext/session/session_gen.test test module.
drh [Sat, 1 Feb 2025 23:49:01 +0000 (23:49 +0000)] 
Add a missing "db2 close" to the ext/session/session_gen.test test module.

FossilOrigin-Name: 4068f586ddadd3a818645574f7584fcee6d373dbf45805c545100883b495598a

5 months agoFix a comment typo - in a comment used to generate documentation.
drh [Sat, 1 Feb 2025 23:34:33 +0000 (23:34 +0000)] 
Fix a comment typo - in a comment used to generate documentation.

FossilOrigin-Name: b8de75eeded79a8312218d7a543e7c7d11181c9f4004e875495608d11a81ff38

5 months agoRemove an ALWAYS() added by [2567298f4b0fdfeb] because dbsqlfuzz found a way
drh [Sat, 1 Feb 2025 23:28:49 +0000 (23:28 +0000)] 
Remove an ALWAYS() added by [2567298f4b0fdfeb] because dbsqlfuzz found a way
to reach it.  The test case was added to TH3.

FossilOrigin-Name: d08a7aa8987458a91fcb861d58289e622ba8722936c7874a284f9f2fd782e269

5 months agoEnable SQLITE_ENABLE_NORMALIZE for several test configurations.
drh [Sat, 1 Feb 2025 21:06:49 +0000 (21:06 +0000)] 
Enable SQLITE_ENABLE_NORMALIZE for several test configurations.

FossilOrigin-Name: b07c64077a3912ef7cdf23e9411df6387f38baa32f5a11fffec5ba4f93935e27

5 months agoFix an issue with sqlite3_normalized_sql() caused by changes needed to
drh [Sat, 1 Feb 2025 20:53:17 +0000 (20:53 +0000)] 
Fix an issue with sqlite3_normalized_sql() caused by changes needed to
support SQLITE_DBCONFIG_ENABLE_COMMENT.

FossilOrigin-Name: 79d287a39443f2d098fcc24199627555a656b34aa5bf5d484f91cb513d83e143

5 months agoJS doc typo fixes. No functional changes.
stephan [Sat, 1 Feb 2025 09:44:48 +0000 (09:44 +0000)] 
JS doc typo fixes. No functional changes.

FossilOrigin-Name: e0d9c74c1cdddb2321131255b94f9cda6530be3f2a06aed4abb54dcda092481e

5 months agoTweaks to [4b4f33d791fe4318] to make it easier to test.
drh [Fri, 31 Jan 2025 20:18:34 +0000 (20:18 +0000)] 
Tweaks to [4b4f33d791fe4318] to make it easier to test.

FossilOrigin-Name: 2567298f4b0fdfeb42aa6bba7e0bec3bc8d0b89bf644a79b41893dd6a6c5774c

5 months agoFix test case numbering in tests recently added to like3.test.
drh [Fri, 31 Jan 2025 18:56:58 +0000 (18:56 +0000)] 
Fix test case numbering in tests recently added to like3.test.

FossilOrigin-Name: 6df2098c548b58c2910837726b666a628d5c712c560c0221a771e8181f71fae7

5 months agoExpose the new SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE/WRITE and SQLITE_DBCONFIG_ENABLE_...
stephan [Fri, 31 Jan 2025 18:45:03 +0000 (18:45 +0000)] 
Expose the new SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE/WRITE and SQLITE_DBCONFIG_ENABLE_COMMENTS (from [325e547a21955]) to JS/WASM.

FossilOrigin-Name: 8da1a9af66f905c683e9c3445d609b5c0e11ac912be192c468ddd79f237837f4

5 months agoRemove an assert() that is not true if a trace-callback is deregistered while there...
dan [Fri, 31 Jan 2025 18:33:37 +0000 (18:33 +0000)] 
Remove an assert() that is not true if a trace-callback is deregistered while there are active statements.

FossilOrigin-Name: 0ecfc4d0ebdb272a69f8f98ddb069c7e0735fb899804027eb16f241d83b3d046

5 months agoFix a problem with LIKE and GLOB processing in utf-16be databases in cases where...
dan [Fri, 31 Jan 2025 14:52:36 +0000 (14:52 +0000)] 
Fix a problem with LIKE and GLOB processing in utf-16be databases in cases where the utf-8 encoding of a character ends with the byte 0xBF.

FossilOrigin-Name: 4b4f33d791fe4318c4597bee7d2f9e486ed223e731982af470f5cc0dbdc600fc

5 months agoIf any errors occur while processing sqlite_dbpage changes, cancel
drh [Fri, 31 Jan 2025 14:52:05 +0000 (14:52 +0000)] 
If any errors occur while processing sqlite_dbpage changes, cancel
pending truncate operations.

FossilOrigin-Name: 6138e0dc4e0e4e19cb048fe0cd969156151fdc427eee21188d2a822642aad043

5 months agoThree new options to sqlite3_db_config(): ATTACH_CREATE, ATTACH_WRITE,
drh [Fri, 31 Jan 2025 13:32:03 +0000 (13:32 +0000)] 
Three new options to sqlite3_db_config():  ATTACH_CREATE, ATTACH_WRITE,
and COMMENTS.

FossilOrigin-Name: 325e547a2195571ece4bb22ca65d67d8c2cb42030618916d37930666cf221917

5 months agoMinor wasm-specific doc touchups.
stephan [Fri, 31 Jan 2025 12:30:37 +0000 (12:30 +0000)] 
Minor wasm-specific doc touchups.

FossilOrigin-Name: 56b618da9073db8b8d5dafa177a3c9e4c4d927bf512e14b0e6d23937f91ce4cf

5 months agoImprovements to the SQLITE_DBCONFIG option documentation. extra-security
drh [Fri, 31 Jan 2025 12:09:36 +0000 (12:09 +0000)] 
Improvements to the SQLITE_DBCONFIG option documentation.

FossilOrigin-Name: 59f0ba10062a6ccfd56061a16af3436b9e1b9d23378bff3302bcf33bb3137cb9

5 months agoCorrect a typo in tool/emcc.sh.in which could cause all of the configure-time work...
stephan [Fri, 31 Jan 2025 11:45:55 +0000 (11:45 +0000)] 
Correct a typo in tool/emcc.sh.in which could cause all of the configure-time work to locate the emcc binary to go unused. Reported in [forum:feb325cdde5b6f37|forum post feb325cdde5b6f37].

FossilOrigin-Name: f66efd5b531210407ee8f30cdf6684a7610479fd8810a609c54469f7424a0644

5 months agoAdd the SQLITE_DBCONFIG_ENABLE_COMMENTS setting (default on) to enable or
drh [Fri, 31 Jan 2025 01:34:19 +0000 (01:34 +0000)] 
Add the SQLITE_DBCONFIG_ENABLE_COMMENTS setting (default on) to enable or
disable the ability to include comments in SQL input text.

FossilOrigin-Name: 393749a2e22d5c8eba36e2106a35909420aa6316652d1ab4f18ef699247b6fba

5 months agoMerge all the latest trunk changes into the extra-security branch.
drh [Fri, 31 Jan 2025 00:54:59 +0000 (00:54 +0000)] 
Merge all the latest trunk changes into the extra-security branch.

FossilOrigin-Name: 86ba57561a8d8c14e401c06b2345a9417053aa3a5f0c84e52460f23f5e6aa8d0

5 months agoThe reuse-subroutine optimization [c9a3498113074bbc] might have generated
drh [Thu, 30 Jan 2025 21:12:58 +0000 (21:12 +0000)] 
The reuse-subroutine optimization [c9a3498113074bbc] might have generated
byte-code that loops forever.  This check-in fixes the problem.

FossilOrigin-Name: 0cc4ed8c6e53aca1f5e94c132bedbc7f561c04a77f1a30b965ffe7560634bfeb

5 months agoRemove an unused parameter from an internal-use subroutine in the TCL interface.
drh [Thu, 30 Jan 2025 16:07:51 +0000 (16:07 +0000)] 
Remove an unused parameter from an internal-use subroutine in the TCL interface.

FossilOrigin-Name: a700692b39e24f5ca9ea6f879d413e20c2ad2b85f62c867407dafe111f13d931

5 months agoImprovements to the TCL interface for Tcl9 as suggested by Jan Nijtmans.
drh [Thu, 30 Jan 2025 16:00:28 +0000 (16:00 +0000)] 
Improvements to the TCL interface for Tcl9 as suggested by Jan Nijtmans.

FossilOrigin-Name: d76c5db866de2732b68401a4c3e39acddc7a99bed965160c1796477c062b478a

5 months agoUpdates to the compile-for-windows.md document.
drh [Thu, 30 Jan 2025 13:54:32 +0000 (13:54 +0000)] 
Updates to the compile-for-windows.md document.

FossilOrigin-Name: bcd22ed686954657ba820d53dec255d33797924f76e57b931016813581e04e06

5 months agoMinor code de-duplication across the top-level auto.def and autoconf/auto.def.
stephan [Thu, 30 Jan 2025 12:19:30 +0000 (12:19 +0000)] 
Minor code de-duplication across the top-level auto.def and autoconf/auto.def.

FossilOrigin-Name: 3c990d77cb83ab371d92c97e0528f790ab6126c60f48ff77e48bd166d7834cf0

5 months agoDisable a test case that (intentionally) does use-after-free, as it does
drh [Thu, 30 Jan 2025 12:01:24 +0000 (12:01 +0000)] 
Disable a test case that (intentionally) does use-after-free, as it does
occasionally cause problems even for non-sanitizer builds.

FossilOrigin-Name: 23c7d5bea351c04785153ddb30e19c1236db9d11054ab8229893531026b53655

5 months agoFix build regression, introduced in [d2fe6b05f38d9d] (3.48.0), in which SQLITE_OMIT...
stephan [Thu, 30 Jan 2025 11:19:16 +0000 (11:19 +0000)] 
Fix build regression, introduced in [d2fe6b05f38d9d] (3.48.0), in which SQLITE_OMIT and SQLITE_ENABLE flags passed to configure via CFLAGS were not propagated to the OPT_FEATURE_FLAGS list. Reported in [forum:9801e54665afd728|forum post 9801e54665afd728].

FossilOrigin-Name: ec71d9dcd582188d7fb4ab945187de1023eaaecffeeb2903a6fcc49650bd21e9

5 months agoFix bug in sessions handling of FK constraints introduced by [e09a0c02] (released...
dan [Wed, 29 Jan 2025 18:53:19 +0000 (18:53 +0000)] 
Fix bug in sessions handling of FK constraints introduced by [e09a0c02] (released in 3.48.0). Bug was preventing a changeset containing FK violations from being applied even when the xConflict(CHANGESET_FOREIGN_KEY) returned OMIT.

FossilOrigin-Name: d7c07581203a0a88456588e49e51b40a8341b0e7121809f75be0ee882d91650f

5 months agoEnhance the if() and iif() SQL functions so that they support any
drh [Tue, 28 Jan 2025 20:32:48 +0000 (20:32 +0000)] 
Enhance the if() and iif() SQL functions so that they support any
number of arguments greater than or equal to two.
Suggested by [forum:/forumpost/40f7867f75f80|forum post 40f7867f75f80].

FossilOrigin-Name: fb76d184ee5afc41009c4023bb68b3ddd42c9235a79ec9695c26f5bbe9a1aa25

5 months agoFix sessions module handling of tables with generated columns.
dan [Tue, 28 Jan 2025 19:03:37 +0000 (19:03 +0000)] 
Fix sessions module handling of tables with generated columns.

FossilOrigin-Name: 437fb316389bc3c24c5cdb4d01edfc81e2c2e9f2b399fc2a95b05d279361d8ec

5 months agoFix a copy/paste typo in the output of vfstrace for xDlClose().
drh [Tue, 28 Jan 2025 18:03:22 +0000 (18:03 +0000)] 
Fix a copy/paste typo in the output of vfstrace for xDlClose().

FossilOrigin-Name: 1d57b57c85bb8cb9b8a1808b771bb91eeb8150efd14f9064a390e533e715bab7

5 months agoSimplifh the IdList object to remove unnecessary fields. Performance
drh [Tue, 28 Jan 2025 12:50:17 +0000 (12:50 +0000)] 
Simplifh the IdList object to remove unnecessary fields.  Performance
increases by about 0.8%.

FossilOrigin-Name: a4625bb995dd5582d1f3cf0c2e54eb3f01f1cc1405811dda86ebd38b2b858994

5 months agoFix typo in speedtest.md.
drh [Tue, 28 Jan 2025 10:56:22 +0000 (10:56 +0000)] 
Fix typo in speedtest.md.

FossilOrigin-Name: 984a9cc22c7c8492bf4fae482749663899b0e33a25c32e6ae5c5e98fc12bb83e

5 months agoApparently I got the logic of [abfe488ed67e2e35] confused, even backwards.
drh [Tue, 28 Jan 2025 01:10:45 +0000 (01:10 +0000)] 
Apparently I got the logic of [abfe488ed67e2e35] confused, even backwards.
Change it so that the SQLITE_USE_W32_FOR_CONSOLE_IO macro causes Win32 APIs
to be used for console I/O and for stdio to be used otherwise.  This is
reported to be necessary for builds that use a C-language runtime other than
the one provided by Microsoft.  This changes if for Windows only.  It is a
bug fix, though we don't have a test case that will demonstrate a malfunction.

FossilOrigin-Name: 925e97e6f4238f02259a0c95b1fc668ae32a95329242f8eeae236ef207aca112

5 months agoRemove an ALWAYS() in the star-query heuristic that is sometimes false if you
drh [Tue, 28 Jan 2025 00:48:01 +0000 (00:48 +0000)] 
Remove an ALWAYS() in the star-query heuristic that is sometimes false if you
have a corrupt database.  dbsqlfuzz c37ba7728d79859b79c8341b59297e88fba017d3.
Test case in TH3.

FossilOrigin-Name: 6b9a339628eb8bfb6dfbee02000a6ac91cc8a9ae16bd990e62c4142b9f912c36

5 months agoUse hashing to accelerate column matching on INSERT statements. Code is
drh [Mon, 27 Jan 2025 21:18:13 +0000 (21:18 +0000)] 
Use hashing to accelerate column matching on INSERT statements.  Code is
smaller and about 1.8% faster overall according to test/speedtest.tcl.

FossilOrigin-Name: 8be956383e0344fb613ec2e56fce7b518f439ae34bf9ddb424de2bd9b31c9889

5 months agoEnhance ./configure to issue an unambiguious error if the pathname to either
drh [Mon, 27 Jan 2025 17:48:51 +0000 (17:48 +0000)] 
Enhance ./configure to issue an unambiguious error if the pathname to either
the source tree or the build directory contains any space characters.

FossilOrigin-Name: 614ae5c74f3b534f50432c875681d7a1e6135be883508939c9c57822cc1e9361

5 months agoAvoid splitting a hyperlink across lines in the documentation comment for
drh [Mon, 27 Jan 2025 14:12:14 +0000 (14:12 +0000)] 
Avoid splitting a hyperlink across lines in the documentation comment for
sqlite3_serialize().

FossilOrigin-Name: 74b770bd445d98ff883000ab2e31603d729e415e4e4f640646eef30825634f48

5 months agoMake two private routines in FTS "static" so that they are not callable from
drh [Sun, 26 Jan 2025 23:34:49 +0000 (23:34 +0000)] 
Make two private routines in FTS "static" so that they are not callable from
outside of SQLite itself.

FossilOrigin-Name: 9b11bed0448b95319206b413c35f23bb80f3f4c0a4394d40f2e64066400a01ed

5 months agoFurther comment improvements in the star-query heuristic. Add an ALWAYS()
drh [Sun, 26 Jan 2025 20:09:57 +0000 (20:09 +0000)] 
Further comment improvements in the star-query heuristic.  Add an ALWAYS()
on an unreachable branch to achieve MC/DC.

FossilOrigin-Name: 5e18ce68fbc5e73e6694936f3ba71f5b5e3758cf380951805ca6ea6a3f0943aa

5 months agoSmall size and complexity reduction on the star-query heuristic. Improved
drh [Sun, 26 Jan 2025 17:29:33 +0000 (17:29 +0000)] 
Small size and complexity reduction on the star-query heuristic.  Improved
comments for the star-query heuristic.

FossilOrigin-Name: a7ecb2f4b7eee78b88f1b2e026dffed2007ca4ffeb152632624ab2582839b250

5 months agoRevise the strategy used by the star-query heuristic: Instead of decreasing
drh [Sat, 25 Jan 2025 23:04:05 +0000 (23:04 +0000)] 
Revise the strategy used by the star-query heuristic:  Instead of decreasing
the cost of all fact-table WhereLoops, increase the run-cost of WhereLoops that
are SCANs of dimension tables.

FossilOrigin-Name: 1bc09c9e8bd77ac41ecbe510c7e003757fc11d0f586da6cdf3584315aa9d6407

5 months agoImprovments to debug output on the star-query heuristic.
drh [Sat, 25 Jan 2025 14:30:36 +0000 (14:30 +0000)] 
Improvments to debug output on the star-query heuristic.

FossilOrigin-Name: b3ebeb0682a2c837987acf4ed92f06cf91aea235830c5a0f9dd1ce64afe16e84

5 months agoAvoid calling computeMxChoice() after an OOM as some assert()s can fail
drh [Sat, 25 Jan 2025 00:07:14 +0000 (00:07 +0000)] 
Avoid calling computeMxChoice() after an OOM as some assert()s can fail
in that routine if a prior OOM occurred while building the WhereLoop array.

FossilOrigin-Name: 8b9e621dbf599d7e75e07d75d4c400247d693ea76e00eba0919f4e33e3e10bdd

5 months agoRemove an incorrect ALWAYS() added in check-in [7cfbe14d199bb631].
drh [Fri, 24 Jan 2025 20:59:12 +0000 (20:59 +0000)] 
Remove an incorrect ALWAYS() added in check-in [7cfbe14d199bb631].

FossilOrigin-Name: 431a1a29f93dc642779dc21c3a0edad5fcda1d175e9d1e3b216fa02c234fe774

5 months agoClarify handling of a NULL for the 2nd argument to sqlite3_serialize(), as pointed...
stephan [Fri, 24 Jan 2025 18:37:55 +0000 (18:37 +0000)] 
Clarify handling of a NULL for the 2nd argument to sqlite3_serialize(), as pointed out in [forum:3df7168b90|forum post 3df7168b90].

FossilOrigin-Name: 340edbe5540762656b648c18a359ab7039b4a0af15db199fc86317a415e2bafa

5 months agoImprove the star-query heuristic so that it does a better job of identifying
drh [Fri, 24 Jan 2025 16:37:31 +0000 (16:37 +0000)] 
Improve the star-query heuristic so that it does a better job of identifying
actual star queries.  Also includes improved diagnostic output from the
query planner.

FossilOrigin-Name: 7cfbe14d199bb631abd4d009698eeaee9b8450d5061ded612095ee4738ac6a1f

5 months agoThe debugging output for WhereLoop objects now shows cost star-query-heuristic
drh [Fri, 24 Jan 2025 16:27:18 +0000 (16:27 +0000)] 
The debugging output for WhereLoop objects now shows cost
estimate changes due to the star-query heuristic.

FossilOrigin-Name: a280f5f5480e560fc2b80e8947d8062e8b3487d930e71cb60fc9ba90d87977c1

5 months agoMinor tweaks to the star-query detection and processing.
drh [Fri, 24 Jan 2025 15:55:20 +0000 (15:55 +0000)] 
Minor tweaks to the star-query detection and processing.

FossilOrigin-Name: 61f76a45ac7aa454419fd7539a3d8e60f0733fb5a2abd034d795328f3c1b6e9b

5 months agoCorrect a version number in autosetup/README.md.
stephan [Fri, 24 Jan 2025 15:41:33 +0000 (15:41 +0000)] 
Correct a version number in autosetup/README.md.

FossilOrigin-Name: c338caf0fd4adc7baacf20f6d4274b1776b9487a5a976b8d85e490791be82b11

5 months agoWhen looking for star-queries, do not count a table as a dimension table
drh [Fri, 24 Jan 2025 14:51:15 +0000 (14:51 +0000)] 
When looking for star-queries, do not count a table as a dimension table
if that table is separated from the fact table by an OUTER or CROSS join
or if the table is a self-join.

FossilOrigin-Name: 5aebd7df0d577e98b3affd22b84b42dfe84a9f37fa29187505cc245b95460ba4

5 months agoUpdate autosetup/README.md to reflect recent refactoring.
stephan [Fri, 24 Jan 2025 14:13:20 +0000 (14:13 +0000)] 
Update autosetup/README.md to reflect recent refactoring.

FossilOrigin-Name: 601636829b79888deda7d4dc5786f82b4f0b302d84663ee96b4d47fcb429abcf

5 months agoReplace a handful of hard tabs in string literals with \t in mkwasmbuilds.c.
stephan [Fri, 24 Jan 2025 12:54:59 +0000 (12:54 +0000)] 
Replace a handful of hard tabs in string literals with \t in mkwasmbuilds.c.

FossilOrigin-Name: e8e4d497a7b6aae450cb93927c7583fcce3fe971cd3691f9d9cad605de3cfb1f

5 months agoMinor additions to ext/wasm/README.md.
stephan [Fri, 24 Jan 2025 09:21:39 +0000 (09:21 +0000)] 
Minor additions to ext/wasm/README.md.

FossilOrigin-Name: 85747ea1654c74d330614aa174ede4a989b6456eb1fc5eb0fc9f2d1418b6ef99

5 months agoUpdate ext/wasm/README.md to reflect simplifications permitted by the current configu...
stephan [Fri, 24 Jan 2025 09:18:19 +0000 (09:18 +0000)] 
Update ext/wasm/README.md to reflect simplifications permitted by the current configure script behavior.

FossilOrigin-Name: 9abb56c6acb1c84c2df8534ca3ebb2894afd68bc7b8331d4d12611896c576749

5 months agoRemove extraneous are-we-making-clean guards from the generated wasm build rules...
stephan [Fri, 24 Jan 2025 08:58:54 +0000 (08:58 +0000)] 
Remove extraneous are-we-making-clean guards from the generated wasm build rules, as that guard is set at a higher level. Rename a makefile call()able for consistency.

FossilOrigin-Name: 7f9074e2a7ff62bdcf343895e80a51224de62a22afbbf82068ec5fea7eeda0bb

5 months agowasm: de-list demo-worker1-promiser-esm.html from the test pages because (per Chrome...
stephan [Thu, 23 Jan 2025 22:23:31 +0000 (22:23 +0000)] 
wasm: de-list demo-worker1-promiser-esm.html from the test pages because (per Chrome 131) "Module scripts don't support importScripts()", where "don't" means "they used to but no longer do".

FossilOrigin-Name: 4aa025a943a4024094b91f13abfb8945bbbb8334e3ec904dee5315852845bfe1

5 months agoFix a possible infinity loop in debugging-printf logic in the query planner.
drh [Thu, 23 Jan 2025 21:06:59 +0000 (21:06 +0000)] 
Fix a possible infinity loop in debugging-printf logic in the query planner.
No changes to production code.

FossilOrigin-Name: 9a20b94080f5379867530772e081b737ae4cf6b416469dcabb85b8dd819f491f

5 months agoWhen running wasm-opt, ignore any failure because it will fail for unknown flags...
stephan [Thu, 23 Jan 2025 19:44:09 +0000 (19:44 +0000)] 
When running wasm-opt, ignore any failure because it will fail for unknown flags and the set of legal flags will change from version to version.  Document the size-reduction effect (or non-effect) of a dozen-odd wasm-opt flags and retain those which demonstrate a wasm file size reduction in -Oz builds (our production build mode). Total size savings: roughly 13kb.

FossilOrigin-Name: c9dc581e0287e3462ac55f80ca76e7e98d31157022052c892517363c45287a7b

5 months agoRemove some now-dead makefile code, rename a var for consistency, and fix a recipe...
stephan [Thu, 23 Jan 2025 16:11:24 +0000 (16:11 +0000)] 
Remove some now-dead makefile code, rename a var for consistency, and fix a recipe bug introduced in the previous checkin in the bundler-friendly build.

FossilOrigin-Name: 0acd4ef3addb311476f4a670be0c4c4a0f3f88b0420886d4c1c3c3027dd51d73

5 months agoInitial support for post-processing wasm files with wasm-opt (if it's available)...
stephan [Thu, 23 Jan 2025 15:58:01 +0000 (15:58 +0000)] 
Initial support for post-processing wasm files with wasm-opt (if it's available). This currently shaves 12kb off of the release-mode build of sqlite3.wasm but there are many dozens of wasm-opt flags left to try.

FossilOrigin-Name: 5d16e3f28364de2d6b6456a6fc56bf604b9106c3ae15719f2862192ae3020cc1

5 months agoMove small parts of ext/wasm/GNUmakefile into ext/wasm/config.make.in and have the...
stephan [Thu, 23 Jan 2025 14:09:02 +0000 (14:09 +0000)] 
Move small parts of ext/wasm/GNUmakefile into ext/wasm/config.make.in and have the configure script populate that, rather than dynamically determining those values on each 'make' invocation. Add a configure-time check for the optional wasm-opt binary in prep for pending experimentation with using it to reduce the wasm file sizes.

FossilOrigin-Name: 0a426a549577b883e2de7cd0605041cc97b57f53ee6657bc318b0bfde7b62677

5 months agoRemove unnecessary --minify 0 emcc flag from the wasm build, as -g3 implies that...
stephan [Thu, 23 Jan 2025 11:21:29 +0000 (11:21 +0000)] 
Remove unnecessary --minify 0 emcc flag from the wasm build, as -g3 implies that capability along with other anti-minification features we rely on.

FossilOrigin-Name: 10c91f9cd074e8d35af1c7f8251ac18e5dd91fa14df3fe4e1fb44441c4f08c7a

5 months agoDo not strip binaries during 'make install', for consistency with the legacy build...
stephan [Thu, 23 Jan 2025 06:10:54 +0000 (06:10 +0000)] 
Do not strip binaries during 'make install', for consistency with the legacy build and per request from package maintainers.

FossilOrigin-Name: cd3fed5c2082c250c32c4d99eecd49a1ab840583fc343bcfd27fb536715d0ce9

5 months agoReplace the use of the Autools in ./autoconf/ with Autosetup and extend its configure...
stephan [Wed, 22 Jan 2025 21:34:53 +0000 (21:34 +0000)] 
Replace the use of the Autools in ./autoconf/ with Autosetup and extend its configure script to include many of the flags available in the canonical build.

FossilOrigin-Name: 8c60d4c901af716d4d4dfd1dd4aa626c758fac2cb46112b24b0838b7888fc66f

5 months agoAdd two new sqlite3_db_config() options that enable the ATTACH command enable-attach
drh [Wed, 22 Jan 2025 19:37:47 +0000 (19:37 +0000)] 
Add two new sqlite3_db_config() options that enable the ATTACH command
to create new database files and to open databases read/write.  Both
default to on for backwards compatibility.

FossilOrigin-Name: fe0c58d00b491d1af7c0894f5c32542954aeea2e6510853b3bcbf13ac0bf5ce0

5 months agoAdd the -q/--quiet option to test/speedtest.tcl. Automatically enable
drh [Wed, 22 Jan 2025 17:18:53 +0000 (17:18 +0000)] 
Add the -q/--quiet option to test/speedtest.tcl.  Automatically enable
-DSQLITE_OMIT_LOAD_EXTENSION and -DSQLITE_THREADSAFE=0 so that no extra
libraries are required.

FossilOrigin-Name: c20d21b473d8a45267262c5df1d7b102eccce8e4cfbe1e467ea66c474aea0af5

5 months agoFix date/time computations to deal with the sub-millisecond rounding
drh [Tue, 21 Jan 2025 17:37:58 +0000 (17:37 +0000)] 
Fix date/time computations to deal with the sub-millisecond rounding
problem identified in [forum:/forumpost/766a2c9231|forum post 766a2c9231].

FossilOrigin-Name: afb0a5923a6db4045fab5226198aab970d746d4866294ebba943c6986e97ecde

5 months agoPerformance improvements to the (debug-use only) Mem.pScopyFrom logic, resulting
drh [Tue, 21 Jan 2025 16:30:55 +0000 (16:30 +0000)] 
Performance improvements to the (debug-use only) Mem.pScopyFrom logic, resulting
in about 8x faster performance under -DSQLITE_DEBUG for the query in from
[forum:/forumpost/0025389d0860af82|forum post 0025389d0860af82].  This change
only affects builds that use -DSQLITE_DEBUG.

FossilOrigin-Name: 7fb1ae25d1572dd7709a0f850c148a5f745a524f01ea231e29a1ebc37c173fb9

5 months agoExplain the lack of docs in autoconf/Makefile.in and refer interested readers to... autoconf-to-autosetup
stephan [Tue, 21 Jan 2025 15:45:03 +0000 (15:45 +0000)] 
Explain the lack of docs in autoconf/Makefile.in and refer interested readers to main.mk in canonical tree. Minor cleanups and fixes in tool/mkautoconfamal.sh.

FossilOrigin-Name: e5bbc2428f1000a451c1b4afd287742b9896a1a6c82d9706c6b8e7d6fb3b1e44

5 months agoThe FuncDev.nArg field values -3 and -4 now have special meansing of 1 or more
drh [Tue, 21 Jan 2025 15:12:00 +0000 (15:12 +0000)] 
The FuncDev.nArg field values -3 and -4 now have special meansing of 1 or more
or 2 or more arguments, respectively.  This saves space in the built-in
function table, resulting in slightly faster performance and a reduced binary
size.

FossilOrigin-Name: 753fd747f24c5e9a019eb00b8a4f66e65c6733ba10a7adbd1b55786867c32ca6

5 months agoRemove now-extraneous autoconf/INSTALL and autoconf/configure.ac and update autoconf...
stephan [Tue, 21 Jan 2025 14:40:35 +0000 (14:40 +0000)] 
Remove now-extraneous autoconf/INSTALL and autoconf/configure.ac and update autoconf/README.* to account for the port to autosetup.

FossilOrigin-Name: 646667af8ca2140d823facf4578105c3d9815ea34b2a4cb96103c2fe7d718229

5 months agoHave fts5 better handle OOM errors from sqlite3_blob_close().
dan [Tue, 21 Jan 2025 14:34:59 +0000 (14:34 +0000)] 
Have fts5 better handle OOM errors from sqlite3_blob_close().

FossilOrigin-Name: f418350f3f83147bc5817a885be6e39ff9ff5722742a88d17600729c53c65010

5 months agoUse Tcl_GetString() instead of Tcl_GetCharLength() to test for a zero-length
drh [Tue, 21 Jan 2025 11:10:16 +0000 (11:10 +0000)] 
Use Tcl_GetString() instead of Tcl_GetCharLength() to test for a zero-length
string in the TCL interface, since that is much more efficient.

FossilOrigin-Name: a8d9dcfd23fbfcd887e451382836c1e88215984cc01e00be11387dbf4ab26fd8

5 months agoconfigure script: work around msys's inability to 'exec' a '.sh' file by prefixing...
stephan [Mon, 20 Jan 2025 20:48:18 +0000 (20:48 +0000)] 
configure script: work around msys's inability to 'exec' a '.sh' file by prefixing the call with an explicit 'sh', as reported in [forum:befb352a42a7cd6d|forum post befb352a42a7cd6d].

FossilOrigin-Name: 25b01f1c9a5e606441bfd4e729fb88361436dffc76ef7a10c04a4d4ad0bcc655

5 months agoAdd 'dist' and missing 'install' pieces to the autoconf bundle.
stephan [Mon, 20 Jan 2025 19:57:32 +0000 (19:57 +0000)] 
Add 'dist' and missing 'install' pieces to the autoconf bundle.

FossilOrigin-Name: 16fa20413e3f3f0b6ea5d97022945843d1f785ac0142836f2a3651fd1917385f

5 months agoRemove an assert() in the unix file locking logic that is not true
drh [Mon, 20 Jan 2025 19:19:31 +0000 (19:19 +0000)] 
Remove an assert() in the unix file locking logic that is not true
if alternative VFS "unix-excl" is used for a read-only connection.

FossilOrigin-Name: bd5dc92368e41231a07bb59dd3db8942e238129ec7a3c8d785459d9b62bfcba3

5 months agoFix an assert() that could fail if a virtual table called sqlite3_step() from within...
dan [Mon, 20 Jan 2025 18:26:58 +0000 (18:26 +0000)] 
Fix an assert() that could fail if a virtual table called sqlite3_step() from within the xSync() method while committing a "PRAGMA defer_foreign_keys=1" transaction.

FossilOrigin-Name: 39bdbb3f6dd1d30d180526d35c11f789f5e9d45b99ead72fd4a3b136afab66b1

5 months agoconfigure script: remove an overzealous is-a-file check in the tclsh search which...
stephan [Mon, 20 Jan 2025 16:14:09 +0000 (16:14 +0000)] 
configure script: remove an overzealous is-a-file check in the tclsh search which fails to account for implicit .exe extensions on Windows builds. Reported in [forum:c27403ef974df9f1|forum post c27403ef974df9f1]. (Same change as [89306d1a4905] but to a different file, as that content was moved since the 3.48 release.)

FossilOrigin-Name: 239a3d1573f4cb720308018280b2add54034e69e38fe7060a7238875eee4f1c9

5 months agoGet libsqlite3.so and .a building in the autoconf bundle.
stephan [Sun, 19 Jan 2025 21:47:06 +0000 (21:47 +0000)] 
Get libsqlite3.so and .a building in the autoconf bundle.

FossilOrigin-Name: 88cee3fc7c8bfd9b6955fb6b2fd6b25660563e4d043ffa5ea18d8abe91afdb7f

5 months agoGet the CLI shell building in the autoconf bundle.
stephan [Sun, 19 Jan 2025 19:51:47 +0000 (19:51 +0000)] 
Get the CLI shell building in the autoconf bundle.

FossilOrigin-Name: 241cdbc40a2f82df53c149849a103a335b0643a65e229a1e80ab90a0e457bb6b

5 months agoAdd an SQLITE_TESTCTRL_OPTIMIZATION mask that can disable the query planner
drh [Sun, 19 Jan 2025 19:14:21 +0000 (19:14 +0000)] 
Add an SQLITE_TESTCTRL_OPTIMIZATION mask that can disable the query planner
heuristics that are designed to help with star queries.

FossilOrigin-Name: fec4ff185a2f3f1bee8f27432206276636cf27365d2d41cd7282f8c0425f2e96

5 months agoInitial work towards converting the autoconf bundle to autosetup. Currently non-funct...
stephan [Sun, 19 Jan 2025 18:58:09 +0000 (18:58 +0000)] 
Initial work towards converting the autoconf bundle to autosetup. Currently non-functional.

FossilOrigin-Name: d7708372ff2fef4bfa61e56dbfbb363cac7685587a61a151497991d9a08bb07f

5 months agoFurther refactoring of auto.def to simplify creation of variant builds like the autoc...
stephan [Sun, 19 Jan 2025 18:32:45 +0000 (18:32 +0000)] 
Further refactoring of auto.def to simplify creation of variant builds like the autoconf bundle.

FossilOrigin-Name: f806c563a29240c709508316846fbe0cb3ed61b68a6c1d9544eb699e30141d8d

5 months agoMinor internal refactoring of auto.def to support the pending autoconf subdir port...
stephan [Sun, 19 Jan 2025 16:26:25 +0000 (16:26 +0000)] 
Minor internal refactoring of auto.def to support the pending autoconf subdir port to autosetup. No functional changes.

FossilOrigin-Name: 01ff37584708f3f79c62c1b5ed8cceab721cf8348a69a65f0559b1ef8845e85b

5 months agoMove some of the auto.def functions into autosetup/sqlite-config.tcl for re-use in...
stephan [Sun, 19 Jan 2025 14:53:45 +0000 (14:53 +0000)] 
Move some of the auto.def functions into autosetup/sqlite-config.tcl for re-use in the pending migration of the autoconf bundle to autosetup. This is just reorg, no functional changes.

FossilOrigin-Name: 2f1e94994f3595baad4045ab05ffee0668059c23ab37a39c25b83c62bfbaea28