*** DRAFT ***

SQLite Release 3.8.11.1 On 2015-07-29

Prior changes from version 3.8.11 (2015-07-27):

  1. Added the experimental RBU extension. Note that this extension is experimental and subject to change in incompatible ways.
  2. Added the experimental FTS5 extension. Note that this extension is experimental and subject to change in incompatible ways.
  3. Added the sqlite3_value_dup() and sqlite3_value_free() interfaces.
  4. Enhance the spellfix1 extension to support ON CONFLICT clauses.
  5. The IS operator is now able to drive indexes.
  6. Enhance the query planner to permit automatic indexing on FROM-clause subqueries that are implemented by co-routine.
  7. Disallow the use of "rowid" in common table expressions.
  8. Added the PRAGMA cell_size_check command for better and earlier detection of database file corruption.
  9. Added the matchinfo 'b' flag to the matchinfo() function in FTS3.
  10. Improved fuzz-testing of database files, with fixes for problems found.
  11. Add the fuzzcheck test program and automatically run this program using both SQL and database test cases on "make test".
  12. Added the SQLITE_MUTEX_STATIC_VFS1 static mutex and use it in the Windows VFS.
  13. The sqlite3_profile() callback is invoked (by sqlite3_reset() or sqlite3_finalize()) for statements that did not run to completion.
  14. Enhance the page cache so that it can preallocate a block of memory to use for the initial set page cache lines. Set the default preallocation to 100 pages. Yields about a 5% performance increase on common workloads.
  15. Miscellaneous micro-optimizations result in 22.3% more work for the same number of CPU cycles relative to the previous release. SQLite now runs twice as fast as version 3.8.0 and three times as fast as version 3.3.9. (Measured using cachegrind on the speedtest1.c workload on Ubuntu 14.04 x64 with gcc 4.8.2 and -Os. Your performance may vary.)
  16. Added the sqlite3_result_zeroblob64() and sqlite3_bind_zeroblob64() interfaces.

    Important bug fixes:

  17. Fix CREATE TABLE AS so that columns of type TEXT never end up holding an INT value. Ticket f2ad7de056ab1dc9200
  18. Fix CREATE TABLE AS so that it does not leave NULL entries in the sqlite_master table if the SELECT statement on the right-hand side aborts with an error. Ticket 873cae2b6e25b
  19. Fix the skip-scan optimization so that it works correctly when the OR optimization is used on WITHOUT ROWID tables. Ticket 8fd39115d8f46
  20. Fix the sqlite3_memory_used() and sqlite3_memory_highwater() interfaces so that they actually do provide a 64-bit answer.

Changes in this specific patch release, version 3.8.11.1 (2015-07-29):

  1. Restore an undocumented side-effect of PRAGMA cache_size: force the database schema to be parsed if the database has not been previously accessed.
  2. Fix a long-standing problem in sqlite3_changes() for WITHOUT ROWID tables that was reported a few hours after the 3.8.11 release.
  3. SQLITE_SOURCE_ID: "2015-07-29 20:00:57 cf538e2783e468bbc25e7cb2a9ee64d3e0e80b2f"
  4. SHA1 for sqlite3.c: 3be71d99121fe5b17f057011025bcf84e7cc6c84

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.

*** DRAFT ***