 
Small. Fast. Reliable.
Choose any three.
 
SQLite Release 3.7.16.2 On 2013-04-12
- Added the PRAGMA foreign_key_check command.
- Added new extended error codes for all SQLITE_CONSTRAINT errors
- Added the SQLITE_READONLY_ROLLBACK extended error code for when a database
    cannot be opened because it needs rollback recovery but is read-only.
- Added SQL functions unicode(A) and char(X1,...,XN).
- Performance improvements for PRAGMA incremental_vacuum, especially in
    cases where the number of free pages is greater than what will fit on a 
    single trunk page of the freelist.
- Improved optimization of queries containing aggregate min() or max().
- Enhance virtual tables so that they can potentially use an index when
    the WHERE clause contains the IN operator.
- Allow indices to be used for sorting even if prior terms of the index
    are constrained by IN operators in the WHERE clause.
- Enhance the PRAGMA table_info command so that the "pk" column is an
    increasing integer to show the order of columns in the primary key.
- Enhance the query optimizer to exploit transitive join constraints.
- Performance improvements in the query optimizer.
- Allow the error message from PRAGMA integrity_check to be longer than
    20000 bytes.
- Improved name resolution for deeply nested queries.
- Added the test_regexp.c module as a demonstration of how to implement
    the REGEXP operator.
- Improved error messages in the RTREE extension.
- Enhance the command-line shell so that a non-zero argument to the
    ".exit" command causes the shell to exit immediately without cleanly
    shutting down the database connection.
- Improved error messages for invalid boolean arguments to dot-commands
    in the command-line shell.
- Improved error messages for "foreign key mismatch" showing the names of
    the two tables involved.
- Remove all uses of umask() in the unix VFS.
- Added the PRAGMA vdbe_addoptrace and PRAGMA vdbe_debug commands.
- Change to use strncmp() or the equivalent instead of memcmp() when 
    comparing non-zero-terminated strings.
- Update cygwin interfaces to omit deprecated API calls.
- Enhance the spellfix1 extension so that the edit distance cost table can
    be changed at runtime by inserting a string like 'edit_cost_table=TABLE' 
    into the "command" field.
- Bug fix: repair a long-standing problem that could cause incorrect query
    results in a 3-way or larger join that compared INTEGER fields against TEXT
    fields in two or more places.
    Ticket fc7bd6358f
- Bug fix: Issue an error message if the 16-bit reference counter on a
    view overflows due to an overly complex query.
- Bug fix: Avoid leaking memory on LIMIT and OFFSET clauses in deeply
    nested UNION ALL queries.
- Bug fix: Make sure the schema is up-to-date prior to running pragmas
    table_info, index_list, index_info, and foreign_key_list.
- Fix for a bug in the ORDER BY optimizer that was introduced in
    version 3.7.15 which would sometimes optimize out the sorting step
    when in fact the sort was required.
    Ticket a179fe7465
- Fix a long-standing bug in the CAST expression that would recognize UTF16
    characters as digits even if their most-significant-byte was not zero.
    Ticket 689137afb6da41.
- Fix a bug in the NEAR operator of FTS3 when applied to subfields.
    Ticket 38b1ae018f.
- Fix a long-standing bug in the storage engine that would (very rarely)
    cause a spurious report of an SQLITE_CORRUPT error but which was otherwise
    harmless.
    Ticket 6bfb98dfc0c.
- The SQLITE_OMIT_MERGE_SORT option has been removed.  The merge sorter is
    now a required component of SQLite.
- Fixed lots of spelling errors in the source-code comments
- Fix a bug (present since version 3.7.13) that could result in database corruption
    on windows if two or more processes try to access the same database file at the
    same time and immediately after third process crashed in the middle of committing
    to that same file.  See ticket 
    7ff3120e4f for further
    information.
- SQLITE_SOURCE_ID: 
    "2013-04-12 11:52:43 cbea02d93865ce0e06789db95fd9168ebac970c7"
- SHA1 for sqlite3.c: d466b54789dff4fb0238b9232e74896deaefab94
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.