SQLite 3.53 release

SQLite 3.53, a lightweight database management system implemented as a pluggable library, has been released. Release 3.52 has been cancelled. SQLite's code is distributed in the public domain, meaning it can be used without restriction and without charge for any purpose. A specially created consortium provides financial support for SQLite's developers.

Major changes:

  • A database corruption issue has been fixed. The problem, present since SQLite 3.7.0 (2010), affected databases in WAL (Write-Ahead Logging) mode and occurred due to a race condition that occurred when two or more database connections were simultaneously opened, attempting to write or commit transactions to a single database instance. The resulting crash is reportedly extremely rare and could only be reproduced using a specially created test scenario.
  • In the ALTER TABLE command, it is allowed to remove the NOT NULL and CHECK checks.
  • The "REINDEX EXPRESSIONS" command has been added for rebuilding indexes based on expressions that use a column function or column operations as an index element. This command can be used to repair corrupted indexes.
  • Temporary triggers created by the CREATE TEMP TRIGGER command and applied to tables in other databases allow modification of tables or querying data from tables.
  • In the "VACUUM INTO" command, when specifying a target file via a URL, the "reserve=N" parameter is now used to determine the number of database backups to be created.
  • Implemented new SQL functions json_array_insert() and jsonb_array_insert() for inserting elements into JSON arrays.
  • The QRF (Query Result Formatter) library has been added and used in the command line utility to format the results of SQL queries in a readable form.
  • Changes in the command line utility:
    • The "mode" command has been significantly expanded.
    • Output generation has been improved, for example, border rendering is enabled by default, and numeric values ​​are now right-aligned in tabular output.
    • Ensured that the ";" symbols after commands are ignored.
    • The contents of files with *.sql and *.txt extensions specified on the command line are now read and interpreted as sets of SQL expressions and dot commands.
    • The ".timer" command now supports the "once" value to apply the timer only to the next SQL statement.
    • The "--timeout S" option has been added to the ".progress" command to force the SQL statement to terminate after the timeout expires.
    • The behavior of patterns in the ".indexes" command has changed so that they are now applied to index names rather than indexed table names.
  • Optimizations have been made to the query planner, speeding up table merges and EXCEPT, INTERSECT, and UNION operations.
  • Improved performance of functions for converting floating-point numbers to text representation.
  • The implementation compiled to WebAssembly intermediate code has been updated with the "opfs-wl" VFS, which is identical to the "opfs" VFS but uses the Web Locks API to handle locks.
  • The "-p|--port" option has been added to the sqlite3_rsync utility.
  • Support for the Windows RT platform has ended.

Source: opennet.ru

Add a comment