 
Small. Fast. Reliable.
Choose any three.
 
SQLite Release 3.4.0 On 2007-06-18
- Fix a bug that can lead to database corruption if an SQLITE_BUSY error
    occurs in the middle of an explicit transaction and that transaction
    is later committed.  Ticket #2409.
- Fix a bug that can lead to database corruption if autovacuum mode is
    on and a malloc() failure follows a CREATE TABLE or CREATE INDEX statement
    which itself follows a cache overflow inside a transaction.  See
    ticket #2418. 
    
- Added explicit upper bounds on the sizes and
    quantities of things SQLite can process.  This change might cause
    compatibility problems for
    applications that use SQLite in the extreme, which is why the current
    release is 3.4.0 instead of 3.3.18.
- Added support for Incremental BLOB I/O.
- Added the sqlite3_bind_zeroblob() API
    and the zeroblob() SQL function.
- Added support for 
    Incremental Vacuum.
- Added the SQLITE_MIXED_ENDIAN_64BIT_FLOAT compile-time option to support
    ARM7 processors with goofy endianness.
- Removed all instances of sprintf() and strcpy() from the core library.
- Added support for
    International Components for Unicode (ICU)
    to the full-text search extensions.
- In the Windows OS driver, reacquire a SHARED lock if an attempt to
    acquire an EXCLUSIVE lock fails.  Ticket #2354
- Fix the REPLACE() function so that it returns NULL if the second argument
    is an empty string.  Ticket #2324.
- Document the hazards of type conversions in
    sqlite3_column_blob()
    and related APIs.  Fix unnecessary type conversions.  Ticket #2321.
- Internationalization of the TRIM() function.  Ticket #2323
- Use memmove() instead of memcpy() when moving between memory regions
    that might overlap.  Ticket #2334
- Fix an optimizer bug involving subqueries in a compound SELECT that has
    both an ORDER BY and a LIMIT clause.  Ticket #2339.
- Make sure the sqlite3_snprintf()
    interface does not zero-terminate the buffer if the buffer size is
    less than 1.  Ticket #2341
- Fix the built-in printf logic so that it prints "NaN" not "Inf" for
    floating-point NaNs.  Ticket #2345
- When converting BLOB to TEXT, use the text encoding of the main database.
    Ticket #2349
- Keep the full precision of integers (if possible) when casting to
    NUMERIC.  Ticket #2364
- Fix a bug in the handling of UTF16 codepoint 0xE000
- Consider explicit collate clauses when matching WHERE constraints
    to indices in the query optimizer.  Ticket #2391
- Fix the query optimizer to correctly handle constant expressions in 
    the ON clause of a LEFT JOIN.  Ticket #2403
- Fix the query optimizer to handle rowid comparisons to NULL
    correctly.  Ticket #2404
- Fix many potential segfaults that could be caused by malicious SQL
    statements.
A complete list of SQLite releases
      in a single page and a chronology are both also available.  
      A detailed history of every
      check-in is available at
      
      SQLite version control site.