Small. Fast. Reliable.
Choose any three.

Recent News

2009-May-07 - Version 3.6.14

SQLite version 3.6.14 provides new performance enhancements in the btree and pager layers and in the query optimizer. Certain workloads can be as much as twice as fast as the previous release, though 10% faster is a more typical result.

Queries against virtual tables that contain OR and IN operators in the WHERE clause are now able to use indexing.

A new optional asynchronous I/O backend is available for unix and windows. The asynchronous backend gives the illusion of faster response time by pushing slow write operations into a background thread. The tradeoff for faster response time is that more memory is required (to hold the content of the pending writes) and if a power failure or program crash occurs, some transactions that appeared to have committed might end up being rolled back upon restart.

This release also contains many minor bug fixes, documentation enhancements, new test cases, and cleanups and simplifications to the source code.

There is no compelling reason to upgrade from versions 3.6.12 or 3.6.13 if those prior versions are working. Though many users may benefit from the improved performance.


2009-Apr-14 - Version 3.6.13

SQLite version 3.6.13 fixes several minor issues that appeared in previous version, including Ticket #3774, ticket #3791, and ticket #3777. This is a bug-fix release only. There are no new features or enhancements.


2009-Mar-31 - Version 3.6.12

SQLite version 3.6.12 fixes a database corruption bug. If an incremental_vacuum is rolled back in an in-memory database, the database will often go corrupt. This only happens for in-memory databases. On-disk databases are unaffected. And the corruption only appears if an incremental vacuum is rolled back. Nevertheless, upgrading is recommended for all applications, especially those that make use of in-memory databases and/or incremental vacuum. See ticket #3761.

SQLite version 3.6.12 also adds support for the sqlite3_unlock_notify() interface and the reverse_unordered_selects pragma and the new ".genfkey" command in the CLI. There are also performance improvements in many count(*) SQL statements.

During testing of version 3.6.12, a bug in the lookaside memory allocator as it relates to shared cache mode was found that effects all prior versions of SQLite back to version 3.6.1. If you are using shared cache mode you should either disable lookaside memory allocation or upgrade to version 3.6.12. See ticket #3743.


2009-Feb-18 - Version 3.6.11

SQLite version 3.6.11 adds support for the hot-backup interface. This interface can be used to create a backup copy of an SQLite database while it is in use. The same interface can be used to initialize an in-memory database from a persistent disk image or to save an in-memory database into a persistent disk image. Usage examples can be found at Using the SQLite Online Backup API.


2009-Jan-15 - Version 3.6.10

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 fallacy 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.


2009-Jan-14 - Version 3.6.9

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.


2009-Jan-12 - Version 3.6.8

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 parentheses.

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.


2008-Dec-16 - Version 3.6.7

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.


2008-Nov-26 - Version 3.6.6.2

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.


2008-Nov-22 - Version 3.6.6.1

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 recommended 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.


2008-Nov-19 - Version 3.6.6

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.


2008-Nov-12 - Version 3.6.5

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.


2008-Nov-01 - Bloomberg Joins SQLite Consortium

The SQLite developers are honored to announce that Bloomberg has joined the SQLite Consortium.


2008-Oct-15 - Version 3.6.4

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.


2008-Sep-22 - Version 3.6.3

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.


2008-Aug-30 - Version 3.6.2

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.


2008-Aug-06 - Version 3.6.1

SQLite version 3.6.1 is a stabilization and performance enhancement release.


Old news...
This page last modified 2009/05/06 17:58:20 UTC