sqlite: upgrade to SQLite 3.9.2

Downloaded from https://www.sqlite.org/2015/sqlite-amalgamation-3090200.zip

  $ sha256sum sqlite-amalgamation-3090200.zip
  567139c94375e3808a11f34d81f534d0c257e2c498cddbf4cac283d74b51fe9c  sqlite-amalgamation-3090200.zip

dist/orig contains the stock sqlite3 code, as packaged in the ZIP file above.

dist contains a copy of dist/orig, but with the Android.patch file applied.
Please see Android.patch for a list of differences between stock and
Android.

One Android specific patch failed to apply cleanly. However, this patch was
a whitespace only patch, so it has been dropped from Android.patch. All
other android specific patches applied cleanly.

Changes since 3.8.10.2 (from https://www.sqlite.org/changes.html):

  2015-11-03 (3.9.2)

  * 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

  2015-10-16 (3.9.1)

  * 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.

  2015-10-14 (3.9.0)

  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 pushdown optimization on terms that originate in the
  ON or USING clause of a LEFT JOIN. Fix for ticket c2a19d81652f40568c.

  2015-07-29 (3.8.11.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.
  * Fix a long-standing problem in sqlite3_changes() for WITHOUT ROWID tables that was
  reported a few hours after the 3.8.11 release.

  2015-07-27 (3.8.11)

  * Added the experimental RBU extension. Note that this extension is experimental
  and subject to change in incompatible ways.
  * Added the experimental FTS5 extension. Note that this extension is experimental
  and subject to change in incompatible ways.
  * Added the sqlite3_value_dup() and sqlite3_value_free() interfaces.
  * Enhance the spellfix1 extension to support ON CONFLICT clauses.
  * The IS operator is now able to drive indexes.
  * Enhance the query planner to permit automatic indexing on FROM-clause subqueries
  that are implemented by co-routine.
  * Disallow the use of "rowid" in common table expressions.
  * Added the PRAGMA cell_size_check command for better and earlier detection of database
  file corruption.
  * Added the matchinfo 'b' flag to the matchinfo() function in FTS3.
  * Improved fuzz-testing of database files, with fixes for problems found.
  * Add the fuzzcheck test program and automatically run this program using both SQL
  and database test cases on "make test".
  * Added the SQLITE_MUTEX_STATIC_VFS1 static mutex and use it in the Windows VFS.
  * The sqlite3_profile() callback is invoked (by sqlite3_reset() or sqlite3_finalize())
  for statements that did not run to completion.
  * 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.
  * 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.)
  * Added the sqlite3_result_zeroblob64() and sqlite3_bind_zeroblob64() interfaces.

  Important bug fixes:

  * Fix CREATE TABLE AS so that columns of type TEXT never end up holding an INT
  value. Ticket f2ad7de056ab1dc9200
  * 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
  * Fix the skip-scan optimization so that it works correctly when the OR optimization
  is used on WITHOUT ROWID tables. Ticket 8fd39115d8f46
  * Fix the sqlite3_memory_used() and sqlite3_memory_highwater() interfaces so that
  they actually do provide a 64-bit answer.

Change-Id: Ic59c75950fe54b2ae3a2dabe5fe22f3fb4225e83
10 files changed
tree: e8599f17fb7668d9804de6744a7c2c8fa804bf3e
  1. android/
  2. dist/
  3. CleanSpec.mk
  4. README.version