Recently, a new release of SQLite 3.53 has been published. This lightweight database management system is designed as a plug-in library. It is important to note that the previous release, 3.52, has been cancelled. The SQLite code is distributed as public domain, allowing users to utilize it without any restrictions or charges. Financial support for SQLite developers is provided by a specially created consortium.
The main changes in this release include:
- Fixed an error that led to database corruption. This issue has been present since SQLite version 3.7.0 (2010) and affected databases in Write-Ahead Logging (WAL) mode. The problem occurred due to a race condition when multiple DB connections were opened simultaneously, leading to conflicts when trying to write or commit transactions to the same database instance. It is reported that this failure was extremely rare and could only be reproduced in a specific test scenario.
- The “ALTER TABLE” command now allows the removal of “NOT NULL” and “CHECK” constraints.
- A new “REINDEX EXPRESSIONS” command has been added to rebuild Expression-based indexes that utilize column functions or operations as the index element. This command can help in restoring corrupt indexes.
- Temporary triggers created using the “CREATE TEMP TRIGGER” command can now perform table modifications or data queries from tables in other databases.
- The “VACUUM INTO” command now supports specifying the target file via URL and includes the option “reserve=N” to determine the number of database backups to be created.
- New SQL functions json_array_insert
/Reports, release notes, official announcements.