|
SQLite version 3.6.10 fixes a cache coherency bug (Ticket #3584) introduced by check-in [5864] which was part of version 3.6.5. This bug might lead to database corruption, hence we felt it was important to get it out as quickly as possible, even though there had already been two prior releases this week.
Some concern has been expressed that we are releasing too frequently. (Three releases in one week is a lot!) The concern is that this creates the impression of volatility and unreliability. We have been told that we should delay releases in order to create the impression of stability. But the SQLite developers feel that truth is more important than perception, not the other way around. We think it is important to make the highest quality and most stable version of SQLite available to users at all times. This week has seen two important bugs being discovered shortly after a major release, and so we have issued two emergency patch releases after the regularly scheduled major release. This makes us look bad. This puts "egg on our face." We do not like that. But, three releases also ensures that the best quality SQLite code base is available available to you at all times.
It has been suggested that "beta" releases might find these kinds of bugs prior to a major release. But our experience indicates otherwise. The two issues that prompted releases 3.6.9 and 3.6.10 were both discovered by internal testing and review - not by external users. And, indeed, most the problems found in SQLite these days are discovered by our rigorous internal testing protocol, not bug reports from the field.
It has also been argued that we should withhold releases "until testing is finished." The falacy there is that we never finish testing. We are constantly writing new test cases for SQLite and thinking of new ways to stress and potentially break the code. This is a continuous, never-ending, and on-going process. All existing tests pass before each release. But we will always be writing new tests the day after a release, regardless of how long we delay that release. And sometimes those new tests will uncover new problems.
All this is to say that we believe that SQLite version 3.6.10 is the most stable, most thoroughly tested, and bug-free version of SQLite that has ever existed. Please do not be freaked out by three releases occurring in one week.
Internal stress testing revealed a corner case where the cost function on the query optimizer might mislead the query optimizer into making a poor indexing choice. That choice could then tickle another bug in the VDBE which might result in an incorrect query result. This release fixes both problems. The chances of actually hitting this combination of problems in a real application seems remote. Nevertheless upgrading is recommended.
SQLite version 3.6.8 adds support for nested transactions and improved optimization of WHERE clauses with OR-connected terms. There is also a new compile-time option that changes the way full-text search patterns are parsed so that they can contain nested paratheses.
These are substantial changes. Even so, the release testing for SQLite has become so extensive that the developers have high confidence that this release is stable and ready for production use.
SQLite version 3.6.7 contains a major cleanup of the Unix driver, and support for the new Proxy Locking mechanism on MacOSX. Though the Unix driver is reorganized, its functionality is the same and so applications should not notice a difference.
This release fixes a bug that was introduced into SQLite version 3.6.6 and which seems like it might be able to cause database corruption. This bug was detected during stress testing. It has not been seen in the wild. An analysis of the problem suggests that the bug might be able to cause database corruption, however focused efforts to find a real-world test cases that actually causes database corruption have so far been unsuccessful. Hence, the likelihood of this bug causing problems is low. Nevertheless, we have decided to do an emergency branch release out of an abundance of caution.
The version 3.6.6.2 release also fixes a obscure memory leak that can occur following a disk I/O error.
This release fixes a bug that was introduced into SQLite version 3.6.4 and that can cause database corruption in obscure cases. This bug has never been seen in the wild; it was first detected by internal stress tests and required substantial analysis before it could be shown to potentially lead to corruption. So we feel that SQLite versions 3.6.4, 3.6.5, and 3.6.6 are safe to use for development work. But upgrading to this patch release or later is recommented prior to deploying products that incorporate SQLite.
We have taken the unusual step of issuing a patch release in order to get the fix for this bug into circulation quickly. SQLite version 3.6.7 will continue on its normal path of development with an anticipated release in mid December.
SQLite version 3.6.5 is released. This is a quick turn-around release that fixes a bug in virtual tables and FTS3 that snuck into version 3.6.5. This release also adds the new application-defined page cache mechanism.
SQLite version 3.6.5 is released. There are various minor feature enhancements and numerous obscure bug fixes. The change log contains the details. Upgrading is optional.
The SQLite developers are honored to announce that Bloomberg has joined the SQLite Consortium.
SQLite version 3.6.4 adds new features designed to help applications detect when indices are not being used on query. There are also some important performance improvements. Upgrading is optional.
SQLite version 3.6.3 fixes a bug in SELECT DISTINCT that was introduced by the previous version. No new features are added. Upgrading is recommended for all applications that make use of DISTINCT.
SQLite version 3.6.2 contains rewrites of the page-cache subsystem and the procedures for matching identifiers to table columns in SQL statements. These changes are designed to better modularize the code and make it more maintainable and reliable moving forward. Nearly 5000 non-comment lines of core code (about 11.3%) have changed from the previous release. Nevertheless, there should be no application-visible changes, other than bug fixes.
SQLite version 3.6.1 is a stabilization and performance enhancement release.