SQLite version 3.15.0 is a regularly scheduled maintenance release. The key feature in this release is the added support for row values. There are also other enhancements and fixes for a number of obscure bugs.
The 3.15.0 release uses about 7% fewer CPU cycles than 3.14.2. Most of the improvement in this release is in the SQL parser, query planner, and byte-code generator (the front-end) corresponding to the sqlite3_prepare_v2() interface. Overall, version 3.15.0 uses about half as much CPU time as version 3.8.1 (2013-10-17). These performance measurements are made using the "speedtest1.c" workload on x64 compiled with gcc and -Os. Performance improvements may vary with different platforms and workloads.
SQLite version 3.14.2 fixes several obscure bugs and adds improved support for building SQLite using the STDCALL calling convention on 32-bit windows systems. Upgrading from versions 3.14 and 3.14.1 is optional.
SQLite version 3.14.1 adds a small patch to improve the performance of the pcache1TruncateUnsafe() routine for cases when the only a few pages on the end of the cache are being removed. This causes COMMITs to run faster when there is a very large page cache. Upgrading from version 3.14 is optional.
SQLite version 3.14 (the "π" release) is a regularly scheduled maintenance release containing performance enhancements, new features, and fixes for obscure bugs.
SQLite version 3.13.0 is a regularly schedule maintenance release containing performance enhancements and fixes for obscure bugs.
Yikes! The 3.12.0 and 3.12.1 releases contain a backwards compatibility bug! Tables that declare a column with type "INTEGER" PRIMARY KEY (where the datatype name INTEGER is quoted) generate an incompatible database file. The mistake came about because the developers have never thought to put a typename in quotes before, and so there was no documentation of that capability nor any tests. (There are tests now, though, of course.) Instances of quoting the datatype name are probably infrequent in the wild, so we do not expect the impact of this bug to be too severe. Upgrading is still strongly recommended.
Fixes for three other minor issues were included in this patch release. The other issues would have normally been deferred until the next scheduled release, but since a patch release is being issued anyhow, they might as well be included.
SQLite version 3.12.1 is an emergency patch release to address a crash bug that snuck into version 3.12.0. Upgrading from version 3.12.0 is highly recommended.
Another minor problem involving datatypes on view columns, and a query planner deficiency are fixed at the same time. These two issues did not justify a new release on their own, but since a release is being issued to deal with the crash bug, we included these other fixes for good measure.
SQLite version 3.12.0 is a regularly scheduled maintenance release. A notable change in this release is an increase in the default page size for newly created database files. There are also various performance improvements. See the change log for details.
SQLite version 3.11.1 is a patch release that fixes problems in the new FTS5 extension and increases a default setting in the spellfix1 extension, and implements enhancements to some of the Windows makefiles. The SQLite core is unchanged from 3.11.0. Upgrading is optional.
SQLite version 3.11.0 is a regularly scheduled maintenance release.
Yikes! An optimization attempt gone bad resulted in a bug in the LIKE operator which is fixed by this patch release. Three other minor but low-risk fixes are also included in the patch.
SQLite version 3.10.1 is a bug-fix release primarily targeting the fix for the query planner bug cb3aa0641d9a4 discovered by Mapscape. Also included is a minor API enhancement requested by the Firefox developers at Mozilla. The differences from version 3.10.0 are minimal.
SQLite version 3.10.0 is a regularly scheduled maintenance release.
SQLite version 3.9.2 is a patch release fixing two obscure bugs. (Details: (1), (2)). Upgrade only if you are having problems.
SQLite version 3.9.1 is a small patch to version 3.9.0 that includes a few simple build script and #ifdef tweaks to make the code easier to compile on a wider variety of platform. There are no functional changes, except for a single minor bug-fix in the json1 extension to stop it from recognizing form-feed (ASCII 0x0c) as a whitespace character, in conformance with RFC7159.
SQLite version 3.9.0 is a regularly schedule maintenance release. Key changes include:
SQLite version 18.104.22.168 is a patch release that fixes two arcane issues that were reported shortly after 3.8.11 was released. Upgrade from 3.8.11 only in the unlikely event that one of these obscure issues affect your code.
SQLite version 3.8.11 is a regularly scheduled maintenance release. See the change log for details.
Yikes! Index corruption after a sequence of valid SQL statements!
It has been many years since anything like this bug has snuck into an official SQLite release. But for the pasts seven months (version 3.8.7 through version 22.214.171.124) if you do an INSERT into a carefully crafted schema in which there are two nested triggers that convert an index key value from TEXT to INTEGER and then back to TEXT again, the INTEGER value might get inserted as the index key instead of the correct TEXT, resulting in index corruption. This patch release adds a single line of code to fix the problem.
If you do actually encounter this problem, running REINDEX on the damaged indexes will clear it.
The 3.8.10 release did not add the new SQLITE_ENABLE_DBSTAT_VTAB compile-time option to the sqlite3_compileoption_used() interface. This patch release fixes that omission. And while we are at it, the associated dbstat virtual table was enhanced slightly and a harmless compiler warning was fixed.
There is no reason to upgrade from version 3.8.10 unless you are using the new SQLITE_ENABLE_DBSTAT_VTAB compile-time option.
SQLite version 3.8.10 is a regularly scheduled maintenance release. This release features performance improvements, fixes to several arcane bugs found by the AFL fuzzer, the new "sqldiff.exe" command-line utility, improvements to the documentation, and other enhancements. See the release notes for additional information.
SQLite version 3.8.9 is a regularly scheduled maintenance release. New features in this release include the PRAGMA index_xinfo command, the sqlite3_status64() interface, and the ".dbinfo" command of the command-line shell. See the release notes for additional information.
The 126.96.36.199 patch release fixes an obscure problem in the SQLite code generator that can cause incorrect results when the qualifying expression of a partial index is used inside the ON clause of a LEFT JOIN. This problem has been in the code since support for partial indexes was first added in version 3.8.0. However, it is difficult to imagine a valid reason to every put the qualifying constraint inside the ON clause of a LEFT JOIN, and so this issue has never come up before.
Any applications that is vulnerable to this bug would have encountered problems already. Hence, upgrading from the previous release is optional.
The 188.8.131.52 patch release fixes a single minor problem: It ensures that the sqlite3_wal_checkpoint(TRUNCATE) operation will always truncate the write-ahead log even if log had already been reset and contained no new content. It is unclear if this is a bug fix or a new feature.
Something like this would normally go into the next regularly scheduled release, but a prominent SQLite user needed the change in a hurry so we were happy to rush it out via this patch.
There is no reason to upgrade unless you actually need the enhanced behavior of sqlite3_wal_checkpoint(TRUNCATE).
Within hours of releasing version 3.8.8, a bug was reported against the 10-month-old 3.8.4 release. As that bug exists in all subsequent releases, the decision was made to issue a small patch to the 3.8.8 before it came into widespread use.
See ticket f97c4637102a3ae72b7911 for a description of the bug.
The changes between versions 3.8.8 and 184.108.40.206 are minimal.
SQLite version 3.8.8 is a regularly schedule maintenance release of SQLite.
There are no dramatic new features or performance enhancements in this release, merely incremental improvements. Most of the performance gain in this release comes from refactoring the B-Tree rebalancing logic to avoid unnecessary memcpy() operations. New features include the PRAGMA data_version statement and the ability to accept a VALUES clause with no arbitrary limit on the number of rows. Several obscure bugs have been fixed, including some multithreading races and a work-around for a compiler bug on some Macs.
See the change log for a longer list of enhancements and bug fixes.