Small. Fast. Reliable.
Choose any three.
SQLite Release 3.44.2 On 2023-11-24
Prior changes from version 3.44.0 (2023-11-01):
- Aggregate functions can now include an ORDER BY clause after their last
parameter. The arguments to the function are processed in the order
specified. This can be important for functions like
string_agg() and json_group_array().
- Add support for the concat() and concat_ws() scalar SQL functions,
compatible with PostgreSQL, SQLServer, and MySQL.
- Add support for the string_agg() aggregate SQL function, compatible
with PostgreSQL and SQLServer.
- New conversion letters on the strftime() SQL function: %e %F %I %k %l %p %P %R %T %u
- Add new C-language APIs: sqlite3_get_clientdata() and sqlite3_set_clientdata().
- Many errors associated with CREATE TABLE are now raised when the CREATE TABLE statement
itself is run, rather than being deferred until the first time the table is actually
used.
- The PRAGMA integrity_check command now verifies the consistency of the
content in various built-in virtual tables using the new xIntegrity method.
This works for the FTS3, FTS4, FTS5, RTREE, and GEOPOLY extensions.
- The SQLITE_DBCONFIG_DEFENSIVE setting now prevents PRAGMA writable_schema
from being turned on. Previously writable_schema could be turned on, but would
not actually allow the schema to be writable. Now it simply cannot be turned on.
- Tag the built-in FTS3, FTS4, FTS5, RTREE, and GEOPOLY virtual tables as
SQLITE_VTAB_INNOCUOUS so that they can be used inside of triggers in
high-security deployments.
- The PRAGMA case_sensitive_like statement is deprecated, as its use when the
schema contains LIKE operators can lead to reports of database corruption
by PRAGMA integrity_check.
- SQLITE_USE_SEH (Structured Exception Handling) is now enabled by default whenever
SQLite is built using the Microsoft C compiler. It can be disabled using
-DSQLITE_OMIT_SEH.
- Query planner optimizations:
- In partial index scans, if the WHERE clause implies a constant value for a table
column, replace occurrences of that table column with the constant. This
increases the likelihood of the partial index being a covering index.
- Disable the view-scan optimization (added in version 3.42.0 - item 1c)
as it was causing multiple performance regressions. In its place, reduce
the estimated row count for DISTINCT subqueries by a factor of 8.
- SQLite now performs run-time detection of whether or not the underlying hardware
supports "long double" with precision greater than "double" and uses appropriate
floating-point routines depending on what it discovered.
- The CLI for Windows now defaults to using UTF-8 for both input
and output on platforms that support it. The --no-utf8 option is available
to disable UTF8 support.
Prior changes from version 3.44.1 (2023-11-22):
- Change the CLI so that it uses UTF-16 for console I/O on Windows. This
enables proper display of unicode text on old Windows7 machines.
- Other obscure bug fixes.
Changes in this specific patch release, version 3.44.2 (2023-11-24):
- Fix a mistake in the CLI that was introduced by the fix (item 15 above) in 3.44.1.
- Fix a problem in FTS5 that was discovered during internal fuzz testing only
minutes after the 3.44.1 release was tagged.
- Fix incomplete assert() statements that the fuzzer discovered the day after
the previous release.
- Fix a couple of harmless compiler warnings that appeared in debug builds with GCC 16.
Hashes:
- SQLITE_SOURCE_ID: 2023-11-24 11:41:44 ebead0e7230cd33bcec9f95d2183069565b9e709bf745c9b5db65cc0cbf92c0f
- SHA3-256 for sqlite3.c: bd70b012e2d1b3efa132d905224cd0ab476a69b892f8c6b21135756ec7ffbb13
A complete list of SQLite releases
in a single page and a chronology are both also available.
A detailed history of every
check-in is available at
SQLite version control site.