SQLite 3.44.0 Release Highlights and New Features
SQLite 3.44.0 introduces enhanced aggregate functions with ORDER BY support, new scalar functions like concat(), string_agg(), expanded strftime() format specifiers, additional C APIs, stricter PRAGMA behavior, improved query planner optimizations, runtime detection of long‑double support, and default UTF‑8 handling in the Windows CLI.
SQLite is a C library that implements a small, fast, self‑contained, high‑reliability, full‑featured SQL database engine, and it is the most widely deployed database engine in the world. Its source code is in the public domain and free for any purpose.
SQLite 3.44.0 has been released with the following updates:
Aggregate functions can now include an ORDER BY clause after their last argument, affecting the processing order of parameters. This is important for functions such as string_agg() and json_group_array() .
Support added for the scalar SQL functions concat() and concat_ws() , compatible with PostgreSQL, SQL Server, and MySQL.
Support added for the aggregate SQL function string_agg() , compatible with PostgreSQL and SQL Server.
New conversion specifiers for the strftime() function: %e, %F, %I, %k, %l, %p, %P, %R, %T, %u.
New C‑language APIs introduced: sqlite3_get_clientdata() and sqlite3_set_clientdata() .
CREATE TABLE statements now raise many table‑related errors immediately, rather than deferring them until the table is first used.
The PRAGMA integrity_check command now uses a new xIntegrity method to verify consistency across built‑in virtual tables such as FTS3, FTS4, FTS5, RTREE, and GEOPOLY.
The SQLITE_DBCONFIG_DEFENSIVE setting now prevents opening PRAGMA writable_schema ; previously it could be opened but schema writes were effectively disallowed.
Built‑in virtual tables FTS3, FTS4, FTS5, RTREE, and GEOPOLY are now marked SQLITE_VTAB_INNOCUOUS , allowing their use inside triggers in high‑security deployments.
The PRAGMA case_sensitive_like statement is deprecated because using it with patterns containing the LIKE operator can cause PRAGMA integrity_check to report database corruption.
When SQLite is built with the Microsoft C compiler, SQLITE_USE_SEH (structured exception handling) is enabled by default; it can be disabled with -DSQLITE_USE_SEH=0 .
Query planner optimizations: In partial index scans, constant values inferred from the WHERE clause replace column occurrences, increasing the chance of using the partial index as a covering index. View‑scan optimization disabled (added in version 3.42.0 as item 1c) due to performance regressions; instead, the estimated row count for DISTINCT subqueries is reduced eightfold.
SQLite now performs runtime detection of hardware support for floating‑point precision greater than “double” (i.e., “long double”) and selects appropriate routines accordingly.
The Windows CLI now defaults to UTF‑8 for input and output on platforms that support it; the --no-utf8 option can be used to disable UTF‑8 support.
Enjoyed the article? Liking and sharing it is the greatest support!
Laravel Tech Community
Specializing in Laravel development, we continuously publish fresh content and grow alongside the elegant, stable Laravel framework.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.