SQLite is a C-implemented SQL database engine that is small, fast, self-contained, highly reliable, and fully functional. Embedded in all phones and most computers, SQLite is also bundled with a large number of other applications and is the world’s most used database engine. As the first major release in 2020, SQLite 3.31.0 has been released, and one of the main features of this release is support for build/calculate columns. The updates are as follows:
Add support for the build column.
Add the sqlite3_hard_heap_limit64() interface and the corresponding PRAGMA hard_heap_limit command.
Enhance function_list pragma to display the number of parameters per function, the type of function (scalar, collection, 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.
Adding the SQLITE_OPEN_NOFOLLOW option to the sqlite3_open_v2() prevents SQLite from opening symbolic links.
Added the “”-N” array symbol for the JSON function path parameter.
Added SQLITE_DBCONFIG_TRUSTED_SCHEMA connection settings, which can also be controlled by the new Trusted_schema pragma when compiling using the -DSQLITE_TRUSTED_SCHEMA compile-time option.
Added APIs sqlite3_filename_database (), sqlite3_filename_journal () and sqlite3_filename_wal () that are useful for dedicated extensions.
Add sqlite3_uri_key() interface.
The sqlite3_uri_parameter() function has been upgraded so that it can be used in addition to the database file name, along with the rollback log or WAL file name.
Provides the ability to use new properties SQLITE_INNOCUOUS or SQLITE_DIRECTONLY to mark application-defined SQL functions.
Add a new verb to the sqlite3_vtab_config() so that the xConnect method of the virtual table can declare the virtual table as SQLITE_VTAB_INNOCUOUS or SQLITE_VTAB_DIRECTONLY.
Respond sfaster to sqlite3_interrupt().
Added the uuid.c extension, which implements the function for handling the RFC-4122 UUID.
The backup memory allocator is enhanced to support the allocation of two separate memory pools of different sizes in each pool. As a result, more memory allocations are back-up coverage, while reducing heap memory usage per connection from 120KB to 48KB.
legacy_file_format pragma was deactivated and is now no-op. In its location, SQLITE_DBCONFIG_LEGACY_FILE_FORMAT options for sqlite3_db_config() are available. Deactivation legacy_file_format pragma indication is indicated because it is rarely useful and is not compatible with VACUUM in a pattern with a table that has both a generated column and a descending index.
More changes can be found in the release notes.
In addition, SQLite 3.31.1 has been released immediately after 3.31.0. The updateincludeincludes include restoring the data layout of the Internally Used SQLite data structure for internal use only, and fixing the typos in the sqlite3ext.h header file.