Small. Fast. Reliable.
Choose any three.
SQLite Release 3.31.1 On 2020-01-27
- Revert the data layout for an internal-use-only SQLite data structure.
Applications that use SQLite should never reference internal SQLite
data structures, but some do anyhow, and a change to one such
data structure in 3.30.0 broke a popular and widely-deployed
application. Reverting that change in SQLite, at least temporarily,
gives developers of misbehaving applications time to fix their code.
- Fix a typos in the sqlite3ext.h header file that prevented the
sqlite3_stmt_isexplain() and sqlite3_value_frombind() interfaces
from being called from run-time loadable extensions.
- SQLITE_SOURCE_ID: 2020-01-27 19:55:54 3bfa9cc97da10598521b342961df8f5f68c7388fa117345eeb516eaa837bb4d6
- SHA3-256 for sqlite3.c: de465c64f09529429a38cbdf637acce4dfda6897f93e3db3594009e0fed56d27
Changes carried forward from version 3.31.0 (2020-01-22):
- Add support for generated columns.
- Add the sqlite3_hard_heap_limit64() interface and the corresponding
PRAGMA hard_heap_limit command.
- Enhance the function_list pragma to show the number of arguments on each
function, the type of function (scalar, aggregate, window), and the function
property flags SQLITE_DETERMINISTIC, SQLITE_DIRECTONLY,
SQLITE_INNOCUOUS, and/or SQLITE_SUBTYPE.
- Add the aggregated mode feature to the
DBSTAT virtual table.
- Add the SQLITE_OPEN_NOFOLLOW option to sqlite3_open_v2() that
prevents SQLite from opening symbolic links.
- Added the "#-N" array notation for JSON function path arguments.
- Added the SQLITE_DBCONFIG_TRUSTED_SCHEMA connection setting which is
also controllable via the new trusted_schema pragma and at compile-time
using the -DSQLITE_TRUSTED_SCHEMA compile-time option.
- Added APIs sqlite3_filename_database(), sqlite3_filename_journal(), and
sqlite3_filename_wal() which are useful for specialized extensions.
- Add the sqlite3_uri_key() interface.
- Upgraded the sqlite3_uri_parameter() function so that it works with the
rollback journal or WAL filename in addition to the database filename.
- Provide the ability to tag application-defined SQL functions with
new properties SQLITE_INNOCUOUS or SQLITE_DIRECTONLY.
- Add new verbs to sqlite3_vtab_config() so that the xConnect method
of virtual tables can declare the virtual table as
SQLITE_VTAB_INNOCUOUS or SQLITE_VTAB_DIRECTONLY.
- Faster response to sqlite3_interrupt().
- Added the uuid.c extension module
implementing functions for processing RFC-4122 UUIDs.
- The lookaside memory allocator is enhanced to support two separate memory
pools with different sized allocations in each pool. This allows more memory
allocations to be covered by lookaside while at the same time reducing the
heap memory usage to 48KB per connection, down from 120KB.
- The legacy_file_format pragma is deactivated. It is now a no-op. In its place,
the SQLITE_DBCONFIG_LEGACY_FILE_FORMAT option to sqlite3_db_config() is
provided. The legacy_file_format pragma is deactivated because (1) it is
rarely useful and (2) it is incompatible with VACUUM in schemas that have
tables with both generated columns and descending indexes.
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.