SQLite

Timeline
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

100 most recent check-ins

2025-01-27
14:12
Avoid splitting a hyperlink across lines in the documentation comment for sqlite3_serialize(). (Leaf check-in: 74b770bd user: drh tags: trunk)
11:50
Add the sqlite3_setlk_timeout() API. For setting the timeout used by SQLITE_ENABLE_SETLK_TIMEOUT blocking locks without also setting the regular retry-based busy-timeout. (Leaf check-in: 4a7eb492 user: dan tags: win32-enable-setlk)
2025-01-26
23:34
Make two private routines in FTS "static" so that they are not callable from outside of SQLite itself. (check-in: 9b11bed0 user: drh tags: trunk)
20:09
Further comment improvements in the star-query heuristic. Add an ALWAYS() on an unreachable branch to achieve MC/DC. (check-in: 5e18ce68 user: drh tags: trunk)
17:29
Small size and complexity reduction on the star-query heuristic. Improved comments for the star-query heuristic. (check-in: a7ecb2f4 user: drh tags: trunk)
2025-01-25
23:04
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. (check-in: 1bc09c9e user: drh tags: trunk)
14:30
Improvments to debug output on the star-query heuristic. (check-in: b3ebeb06 user: drh tags: trunk)
00:07
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. (check-in: 8b9e621d user: drh tags: trunk)
2025-01-24
20:59
Remove an incorrect ALWAYS() added in check-in [7cfbe14d199bb631]. (check-in: 431a1a29 user: drh tags: trunk)
18:37
Clarify handling of a NULL for the 2nd argument to sqlite3_serialize(), as pointed out in forum post 3df7168b90. (check-in: 340edbe5 user: stephan tags: trunk)
16:37
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. (check-in: 7cfbe14d user: drh tags: trunk)
16:27
The debugging output for WhereLoop objects now shows cost estimate changes due to the star-query heuristic. (Closed-Leaf check-in: a280f5f5 user: drh tags: star-query-heuristic)
15:55
Minor tweaks to the star-query detection and processing. (check-in: 61f76a45 user: drh tags: star-query-heuristic)
15:49
Fix a race condition causing SQLite to use a busy-handler for an operation that should not. (check-in: 6ab9ed8e user: dan tags: win32-enable-setlk)
15:41
Correct a version number in autosetup/README.md. (check-in: c338caf0 user: stephan tags: trunk)
14:51
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. (check-in: 5aebd7df user: drh tags: star-query-heuristic)
14:13
Update autosetup/README.md to reflect recent refactoring. (check-in: 60163682 user: stephan tags: trunk)
12:54
Replace a handful of hard tabs in string literals with \t in mkwasmbuilds.c. (check-in: e8e4d497 user: stephan tags: trunk)
09:21
Minor additions to ext/wasm/README.md. (check-in: 85747ea1 user: stephan tags: trunk)
09:18
Update ext/wasm/README.md to reflect simplifications permitted by the current configure script behavior. (check-in: 9abb56c6 user: stephan tags: trunk)
08:58
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. (check-in: 7f9074e2 user: stephan tags: trunk)
2025-01-23
22:23
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". (check-in: 4aa025a9 user: stephan tags: trunk)
21:06
Fix a possible infinity loop in debugging-printf logic in the query planner. No changes to production code. (check-in: 9a20b940 user: drh tags: trunk)
19:44
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. (check-in: c9dc581e user: stephan tags: trunk)
16:11
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. (check-in: 0acd4ef3 user: stephan tags: trunk)
15:58
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. (check-in: 5d16e3f2 user: stephan tags: trunk)
14:09
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. (check-in: 0a426a54 user: stephan tags: trunk)
11:42
Have fts5 better handle OOM errors from sqlite3_blob_close(). (Leaf check-in: 7ffa7e02 user: dan tags: branch-3.48)
11:21
Remove unnecessary --minify 0 emcc flag from the wasm build, as -g3 implies that capability along with other anti-minification features we rely on. (check-in: 10c91f9c user: stephan tags: trunk)
06:12
Do not strip binaries during 'make install', for consistency with the legacy build and per request from package maintainers. (check-in: 92b06a4c user: stephan tags: branch-3.48)
06:10
Do not strip binaries during 'make install', for consistency with the legacy build and per request from package maintainers. (check-in: cd3fed5c user: stephan tags: trunk)
2025-01-22
21:34
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. (check-in: 8c60d4c9 user: stephan tags: trunk)
19:37
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. (Leaf check-in: fe0c58d0 user: drh tags: enable-attach)
17:18
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. (check-in: c20d21b4 user: drh tags: trunk)
2025-01-21
17:41
Fix date/time computations to deal with the sub-millisecond rounding problem. (check-in: 55091181 user: drh tags: branch-3.48)
17:37
Fix date/time computations to deal with the sub-millisecond rounding problem identified in forum post 766a2c9231. (check-in: afb0a592 user: drh tags: trunk)
16:30
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 post 0025389d0860af82. This change only affects builds that use -DSQLITE_DEBUG. (check-in: 7fb1ae25 user: drh tags: trunk)
15:45
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. (Closed-Leaf check-in: e5bbc242 user: stephan tags: autoconf-to-autosetup)
15:21
Increase the version number to 3.48.1. (check-in: 3e006d23 user: drh tags: branch-3.48)
15:16
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. (check-in: 2fec6aa9 user: drh tags: branch-3.48)
15:12
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. (check-in: 753fd747 user: drh tags: trunk)
14:40
Remove now-extraneous autoconf/INSTALL and autoconf/configure.ac and update autoconf/README.* to account for the port to autosetup. (check-in: 646667af user: stephan tags: autoconf-to-autosetup)
14:34
Have fts5 better handle OOM errors from sqlite3_blob_close(). (check-in: f418350f user: dan tags: trunk)
12:33
Demonstration of how to extend the if() and iif() SQL functions to support more than 3 arguments. (Leaf check-in: f13ef591 user: drh tags: if-many-args)
11:10
Use Tcl_GetString() instead of Tcl_GetCharLength() to test for a zero-length string in the TCL interface, since that is much more efficient. (check-in: a8d9dcfd user: drh tags: trunk)
2025-01-20
20:50
configure script: work around msys's inability to 'exec' a '.sh' file by prefixing the call with an explicit 'sh', as reported in forum post befb352a42a7cd6d. (check-in: 4cc2dc31 user: stephan tags: branch-3.48)
20:48
configure script: work around msys's inability to 'exec' a '.sh' file by prefixing the call with an explicit 'sh', as reported in forum post befb352a42a7cd6d. (check-in: 25b01f1c user: stephan tags: autoconf-to-autosetup)
19:57
Add 'dist' and missing 'install' pieces to the autoconf bundle. (check-in: 16fa2041 user: stephan tags: autoconf-to-autosetup)
19:19
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. (check-in: bd5dc923 user: drh tags: trunk)
18:34
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. (check-in: 9303e663 user: dan tags: branch-3.48)
18:26
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. (check-in: 39bdbb3f user: dan tags: trunk)
16:14
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 post c27403ef974df9f1. (Same change as [89306d1a4905] but to a different file, as that content was moved since the 3.48 release.) (check-in: 239a3d15 user: stephan tags: trunk)
16:11
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 post c27403ef974df9f1. (check-in: 89306d1a user: stephan tags: branch-3.48)
2025-01-19
21:47
Get libsqlite3.so and .a building in the autoconf bundle. (check-in: 88cee3fc user: stephan tags: autoconf-to-autosetup)
19:51
Get the CLI shell building in the autoconf bundle. (check-in: 241cdbc4 user: stephan tags: autoconf-to-autosetup)
19:14
Add an SQLITE_TESTCTRL_OPTIMIZATION mask that can disable the query planner heuristics that are designed to help with star queries. (check-in: fec4ff18 user: drh tags: trunk)
18:58
Initial work towards converting the autoconf bundle to autosetup. Currently non-functional. (check-in: d7708372 user: stephan tags: autoconf-to-autosetup)
18:32
Further refactoring of auto.def to simplify creation of variant builds like the autoconf bundle. (check-in: f806c563 user: stephan tags: trunk)
16:26
Minor internal refactoring of auto.def to support the pending autoconf subdir port to autosetup. No functional changes. (check-in: 01ff3758 user: stephan tags: trunk)
14:53
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. (check-in: 2f1e9499 user: stephan tags: trunk)
2025-01-18
23:44
Enable automatic query-time indexes for WITHOUT ROWID tables. (check-in: 8534af5b user: drh tags: trunk)
21:19
Add a simple test case (many more are coming soon to TH3). Fix an obsolete assert(). (Closed-Leaf check-in: aa829a13 user: drh tags: without-rowid-autoidx)
21:00
Add support for automatic query-time indexes on WITHOUT ROWID tables. (check-in: 89c4cbd9 user: drh tags: without-rowid-autoidx)
16:06
When cross-compiling, change the CFLAGS default to exclude -g, per /chat discussion prompted by forum post 9a67df63eda9925c. (check-in: 67558248 user: stephan tags: branch-3.48)
16:05
When cross-compiling, change the CFLAGS default to exclude -g, per /chat discussion prompted by forum post 9a67df63eda9925c. (check-in: 4309da2c user: stephan tags: trunk)
13:52
When running make install, avoid the -s (strip) flag when cross-compiling, as it only works for the build platform. Reported in forum post 9a67df63eda9925c. (check-in: cc29664f user: stephan tags: branch-3.48)
13:51
When running make install, avoid the -s (strip) flag when cross-compiling, as it only works for the build platform. Reported in forum post 9a67df63eda9925c. Also remove the undocumented and unused --soname=auto option. (check-in: 230e49c1 user: stephan tags: trunk)
2025-01-17
23:49
For the purpose of the query planner heuristic added by [38db9b5c83], a query should only count as a star query if the fact tables are connected to the dimension table by an INNER JOIN. If a LEFT JOIN is used, then the fact tables are constrained to be in inner loops anyhow and so the heuristic does not make any sense. But it does interfere with AUTOMATIC index creation, which causes the performance regression reported by forum post d87570a1455. (check-in: 0852c57e user: drh tags: trunk)
17:09
Enhance a comment on a test case to add recent context. (check-in: c2647d1b user: drh tags: trunk)
15:56
Typo fix in speedtest.md. (check-in: 36027cf3 user: stephan tags: trunk)
15:39
Improvements to the speedtest.tcl script. Add documentation on how to use the script. (check-in: eb3853d0 user: drh tags: trunk)
12:32
Add the test/speedtest.tcl script to simplify performance and size testing. (check-in: ad7b3867 user: drh tags: trunk)
10:42
Fix a potential one-byte buffer overrun when reading from the Windows console in the CLI. (check-in: 42bcc7c1 user: drh tags: branch-3.48)
10:39
Fix a potential one-byte buffer overrun when reading from the Windows console in the CLI. Forum post 95e17b8f5c. This problem was introduced by check-in [abfe488ed67e2e35], which was an attempt to get the Windows build working on MingGW. (check-in: 4d967596 user: drh tags: trunk)
2025-01-16
20:46
speedtest1: further improvements to the "json" testset. (check-in: c4750f7c user: drh tags: trunk)
20:08
speedtest1: Improvements to the "json" testset. Better balance in "mix1". (check-in: 2cc73c5e user: drh tags: trunk)
17:19
Revamp the "json" testset in speedtest1. (check-in: d3350883 user: drh tags: trunk)
14:37
Add the "json" test case to speedtest1 and include it in "mix1". (check-in: 2db3a3ee user: drh tags: trunk)
14:06
Speedtest1 enhancements: (1) Add the ability to scale performance of tests sets using "/NNN" after the testset name, even for testsets in a comma-separated list. (2) Add the "mix1" macro testset. (check-in: 85667b3a user: drh tags: trunk)
13:10
wasm: after generating the .js/.mjs file, strip out all of the generated pieces which create Emscripten call() bindings for the sqlite3 APIs, as we don't use those binding, so both the setup time and the memory they use installing WASM proxy bindings is wasted. This eliminates some 200 superfluous/unused bindings from the init process. (check-in: 020d2c75 user: stephan tags: trunk)
12:15
When generating the autoconf snapshot, replaces the Libs.private line from sqlite3.pc.in with one compatible with the legacy build, as reported in forum post e40b9b424a. (check-in: fe471547 user: stephan tags: trunk)
09:27
Replace use of Emscripten's Module.postRun() with a custom callback so that we get consistent library init timing with both Emscripten 3.1.x and 4.0.x. Details and discussion are in Emscripten ticket #23420. (check-in: 4863a70a user: stephan tags: trunk)
01:47
When two indexes have the same cost, use the narrower one (the one with the smaller average on-disk row width). (check-in: 39855967 user: drh tags: trunk)
2025-01-15
22:58
Check-in [da9124fee28c155c] broken the new SQLITE_IOCAP_SUBPAGE_READ mechanism for inhibiting direct-overflow-read. This check-in fixes the problem. (check-in: f741ffc0 user: drh tags: branch-3.48)
21:13
Check-in [da9124fee28c155c] broken the new SQLITE_IOCAP_SUBPAGE_READ mechanism for inhibiting direct-overflow-read. This check-in fixes the problem. (check-in: 113078d5 user: drh tags: trunk)
21:11
Re-enable comment-stripping in the JS dist builds. (check-in: 5decfea3 user: stephan tags: branch-3.48)
21:09
Teach tool/stripccomments.c that a backslash immediately preceeding a forward slash means that that forward slash cannot be the start of a comment. This is intended to allow JavaScript regular expressions containing \/* (like the one introduced in emsdk 4.0.0) to pass through properly. Re-enable comment-stripping in the JS dist builds. (check-in: db21d6cc user: stephan tags: trunk)
21:00
Work around a behavior change in emsdk 4.0.0 which breaks the load/init timing of the wasm module. (check-in: c0f0d263 user: stephan tags: branch-3.48)
20:53
Work around a behavior change in emsdk 4.0.0 which breaks the load/init timing of the wasm module. (check-in: 00a75018 user: stephan tags: trunk)
20:23
When choosing between two indexes with the same cost, pick the one with the smaller predicted number of bytes per row. (Closed-Leaf check-in: d4bd0d42 user: drh tags: consider-idx-width)
19:30
Variable names and conditional logic simplified in where.c. These changes are cosmetic only and do not affect the resuling machine code. (check-in: dbc2d6a2 user: drh tags: trunk)
15:27
Fix a typo in a wasm makefile var name, noting that this doesn't actually fix anything because the var in question is not used when building 'clean' or 'distclean'. (check-in: 7cfc75a6 user: stephan tags: trunk)
14:31
Disable the C-style comment stripper in the JS dist build, as explained in forum post 529c20d344. (check-in: 76ffc70f user: stephan tags: branch-3.48)
14:28
Disable the C-style comment stripper in the JS dist build, as explained in forum post 529c20d344. (check-in: a9475e76 user: stephan tags: trunk)
13:35
Fix another problem that was causing underestimates of index size. (Later:) Closed this branch as I don't think it is the correct approach to the problem. Maybe I'll change my mind later, but that's the decision for now. (Closed-Leaf check-in: a1690ecd user: drh tags: analyze-row-size)
12:45
Have windows SQLITE_ENABLE_SETLK_TIMEOUT builds block indefinitely if the busy-timeout is set to 0x7FFFFFFF. (check-in: daefcafe user: dan tags: win32-enable-setlk)
12:38
Fix issues with the prior check-ins on this branch. The code seems to work now, though many tests fail because of the new sqlite_stat1.stat text. (check-in: be26698a user: drh tags: analyze-row-size)
00:46
Some bug fixes to the previous. Still lots of bugs remaining. (check-in: 76f2bede user: drh tags: analyze-row-size)
00:29
Always include the sz=NNN option in the sqlite_stat1.stat field. (check-in: 9c0d6f29 user: drh tags: analyze-row-size)
2025-01-14
20:47
Change the version number to 3.49.0 to begin the next development cycle. Any patches to 3.48.0 will go on a branch. (check-in: 8165a3d3 user: drh tags: trunk)