Small. Fast. Reliable.
Choose any three.
 
SQLite Release 3.9.3 On 2016-04-01
Prior changes from version 3.9.0 (2015-10-14):
Policy Changes:
- The version numbering conventions for SQLite are revised to use the
    emerging standard of semantic versioning.
New Features And Enhancements:
 - Added the json1 extension module in the source tree, and in the amalgamation.
    Enable support using the SQLITE_ENABLE_JSON1 compile-time option.
 - Added Full Text Search version 5 (FTS5) to the amalgamation, enabled
    using SQLITE_ENABLE_FTS5.  FTS5 will be considered "experimental" (subject
    to incompatible changes) for at least one more release cycle.
 - The CREATE VIEW statement now accepts an optional list of
    column names following the view name.
 - Added support for indexes on expressions.
 - Added support for table-valued functions in the FROM clause of a
    SELECT statement.
 - Added support for eponymous virtual tables.
 - A VIEW may now reference undefined tables and functions when
    initially created.  Missing tables and functions are reported when
    the VIEW is used in a query.
 - Added the sqlite3_value_subtype() and sqlite3_result_subtype()
    interfaced (used by the json1 extension).
 - The query planner is now able to use partial indexes that contain
    AND-connected terms in the WHERE clause.
 - The sqlite3_analyzer.exe utility is updated to report the depth of
    each btree and to show the average fanout for indexes and
    WITHOUT ROWID tables.
 - Enhanced the dbstat virtual table so that it can be used as a
    table-valued function where the argument is the schema to be
    analyzed.
Other changes:
 - The sqlite3_memory_alarm() interface, which has been deprecated and
    undocumented for 8 years, is changed into a no-op.
Important fixes:
 - Fixed a critical bug in the
    SQLite Encryption Extension that
    could cause the database to become unreadable and unrecoverable if a VACUUM command
    changed the size of the encryption nonce.
 - Added a memory barrier in the implementation of
    sqlite3_initialize() to help ensure that it is thread-safe.
 - Fix the OR optimization so that it always ignores subplans that
    do not use an index.
 - Do not apply the WHERE-clause push-down optimization on terms that originate
    in the ON or USING clause of a LEFT JOIN.  Fix for ticket
    c2a19d81652f40568c.
 
Prior changes from version 3.9.1 (2015-10-16):
- Fix the json1 extension so that it does not recognize ASCII form-feed as a
    whitespace character, in order to comply with RFC-7159.  Fix for ticket
    57eec374ae1d0a1d
 - Add a few #ifdef and build script changes to address compilation issues that
    appeared after the 3.9.0 release.
 
Prior changes from version 3.9.2 (2015-11-02):
- Fix the schema parser so that it interprets certain
    (obscure and ill-formed)
    CREATE TABLE statements the same as legacy.  Fix for ticket
    ac661962a2aeab3c331
 - Fix a query planner problem that could result in an incorrect
    answer due to the use of automatic indexing in subqueries in
    the FROM clause of a correlated scalar subqueries.  Fix for ticket
    8a2adec1.
 
Changes in this specific patch release, version 3.9.3 (2016-04-01):
- Backport a
    simple query planner optimization
    that allows the IS operator
    to drive an index on a LEFT OUTER JOIN.  No other changes from the
    version 3.9.2 baseline.
 
      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.