 
Small. Fast. Reliable.
Choose any three.
 
SQLite Release 3.8.7 On 2014-10-17
Performance Enhancements:
- Many micro-optimizations result in 20.3% more work for the same number
    of CPU cycles relative to the previous release. 
    The cumulative performance increase since version 3.8.0 is 61%.
    (Measured using 
    cachegrind on the
    speedtest1.c workload on
    Ubuntu 13.10 x64 with gcc 4.8.1 and -Os. Your performance may vary.)
- The sorter can use auxiliary helper threads to increase real-time response.
    This feature is off by default and may be
    enabled using the PRAGMA threads command or the SQLITE_DEFAULT_WORKER_THREADS
    compile-time option.
- Enhance the skip-scan optimization so that it is able to skip index terms that
    occur in the middle of the index, not just as the left-hand side of the index.
- Improved optimization of CAST operators.
- Various improvements in how the query planner uses sqlite_stat4
    information to estimate plan costs.
New Features:
 
- Added new interfaces with 64-bit length parameters:
    sqlite3_malloc64(),
    sqlite3_realloc64(),
    sqlite3_bind_blob64(),
    sqlite3_result_blob64(),
    sqlite3_bind_text64(), and
    sqlite3_result_text64().
- Added the new interface sqlite3_msize() that returns the size of a memory allocation
    obtained from sqlite3_malloc64() and its variants.
- Added the SQLITE_LIMIT_WORKER_THREADS option to sqlite3_limit() and
    PRAGMA threads command for configuring the number of available worker threads.
- The spellfix1 extension allows the application to optionally specify the rowid for
    each INSERT.
- Added the User Authentication
    extension.
Bug Fixes:
 
- Fix a bug in the partial index implementation that might result in an incorrect
    answer if a partial index is used in a subquery or in a view.
    Ticket 98d973b8f5.
- Fix a query planner bug that might cause a table to be scanned in the wrong direction
    (thus reversing the order of output) when a DESC index is used to implement the ORDER BY
    clause on a query that has an identical GROUP BY clause.
    Ticket ba7cbfaedc7e6.
- Fix a bug in sqlite3_trace() that was causing it to sometimes fail to print
    an SQL statement if that statement needed to be re-prepared.
    Ticket 11d5aa455e0d98f3c1e6a08
- Fix a faulty assert() statement.
    Ticket 369d57fb8e5ccdff06f1
Test, Debug, and Analysis Changes:
 
- Show ASCII-art abstract syntax tree diagrams using the ".selecttrace"
    and ".wheretrace" commands in the 
    command-line shell when compiled with SQLITE_DEBUG, SQLITE_ENABLE_SELECTTRACE,
    and SQLITE_ENABLE_WHERETRACE.  Also provide the sqlite3TreeViewExpr() and
    sqlite3TreeViewSelect() entry points that can be invoked from with the
    debugger to show the parse tree when stopped at a breakpoint.
- Drop support for SQLITE_ENABLE_TREE_EXPLAIN.  The SELECTTRACE mechanism provides
    more useful diagnostics information.
- New options to the command-line shell for configuring auxiliary
    memory usage: --pagecache, --lookaside, and --scratch.
- SQLITE_SOURCE_ID: "2014-10-17 11:24:17 e4ab094f8afce0817f4074e823fabe59fc29ebb4"
- SHA1 for sqlite3.c: 56dcf5e931a9e1fa12fc2d600cd91d3bf9b639cd
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.