Small. Fast. Reliable.
Choose any three.
SQLite Release 3.45.1 On 2024-01-30
Prior changes from version 3.45.0 (2024-01-15):
- Added the SQLITE_RESULT_SUBTYPE property for
application-defined SQL functions.
All application defined SQL functions that invokes
sqlite3_result_subtype() must be registered with this new property.
Failure to do so might cause the call to sqlite3_result_subtype() to
behave as a no-op. Compile with -DSQLITE_STRICT_SUBTYPE=1 to cause an
SQL error to be raised if a function that is not SQLITE_RESULT_SUBTYPE
tries invokes sqlite3_result_subtype(). The use of -DSQLITE_STRICT_SUBTYPE=1
is a recommended compile-time option for every application that makes
use of subtypes.
- Enhancements to the JSON SQL functions:
- All JSON functions are rewritten to use a new internal parse tree
format called JSONB. The new parse-tree format is serializable
and hence can be stored in the database to avoid unnecessary re-parsing
whenever the JSON value is used.
- New versions of JSON-generating functions generate binary JSONB instead
of JSON text.
- The json_valid() function adds an optional second argument that
specifies what it means for the first argument to be "well-formed".
- Add the FTS5 tokendata option to the FTS5 virtual table.
- The SQLITE_DIRECT_OVERFLOW_READ optimization is now enabled by default.
Disable it at compile-time using -DSQLITE_DIRECT_OVERFLOW_READ=0.
- Query planner improvements:
- Do not allow the transitive constraint optimization to trick the
query planner into using a range constraint when a better equality
constraint is available.
(Forum post 2568d1f6e6.)
- The query planner now does a better job of disregarding
indexes that ANALYZE identifies as low-quality.
(Forum post 6f0958b03b.)
- Increase the default value for SQLITE_MAX_PAGE_COUNT from 1073741824 to
- Enhancements to the CLI:
- Improvements to the display of UTF-8 content on Windows
- Automatically detect playback of ".dump" scripts and make appropriate
changes to settings such as ".dbconfig defensive off" and
".dbconfig dqs_dll on".
Changes in this specific patch release, version 3.45.1 (2024-01-30):
- Restore the JSON BLOB input bug, and promise to support the anomaly in
subsequent releases, for backward compatibility.
- Fix the PRAGMA integrity_check command so that it works on read-only
databases that contain FTS3 and FTS5 tables. This resolves an issue
introduced in version 3.44.0 but was undiscovered until after the 3.45.0 release.
- Fix issues associated with processing corrupt JSONB inputs:
- Prevent exponential runtime when converting a corrupt JSONB into text.
- Fix a possible read of one byte past the end of the JSONB blob when converting
a corrupt JSONB into text.
- Enhanced testing using jfuzz to prevent any future JSONB problems such
as the above.
- Fix a long-standing bug in which a read of a few bytes past the end of a
memory-mapped segment might occur when accessing a craftily corrupted database
using memory-mapped database.
- Fix a long-standing bug in which a NULL pointer dereference might occur in
the bytecode engine due to incorrect bytecode being generated for a class
of SQL statements that are deliberately designed to stress the query planner
but which are otherwise pointless.
- SQLITE_SOURCE_ID: 2024-01-30 16:01:20 e876e51a0ed5c5b3126f52e532044363a014bc594cfefa87ffb5b82257cc467a
- SHA3-256 for sqlite3.c: 0474604df9e1b69a5544295dd046aad954749279780d557da80f44b958100295
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.