Small. Fast. Reliable.
Choose any three.
SQLite Release 3.8.7 On 2014-10-17 (3.8.7)
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 is also available. A detailed history of every
check-in is available at
http://www.sqlite.org/src/timeline.