*** DRAFT ***

SQLite Release 3.10.2 On 2016-01-20

    Critical bug fix:

  1. Version 3.10.0 introduced a case-folding bug in the LIKE operator which is fixed by this patch release. Ticket 80369eddd5c94.

    Other miscellaneous bug fixes:

  2. Fix a use-after-free that can occur when SQLite is compiled with -DSQLITE_HAS_CODEC.
  3. Fix the build so that it works with -DSQLITE_OMIT_WAL.
  4. Fix the configure script for the amalgamation so that the --readline option works again on Raspberry PIs.

    Hashes:

  5. SQLITE_SOURCE_ID: "2016-01-20 15:27:19 17efb4209f97fb4971656086b138599a91a75ff9"
  6. SHA1 for sqlite3.c: f7088b19d97cd7a1c805ee95c696abd54f01de4f

Changes carried forward from version 3.10.1 (2016-01-14):

    New feature:

  1. Add the SQLITE_FCNTL_JOURNAL_POINTER file control.

    Bug fix:

  2. Fix a 16-month-old bug in the query planner that could generate incorrect results when a scalar subquery attempts to use the block sorting optimization. Ticket cb3aa0641d9a4.

Changes carried forward from version 3.10.0 (2016-01-06):

    General improvements:

  1. Added support for LIKE, GLOB, and REGEXP operators on virtual tables.
  2. Added the colUsed field to sqlite3_index_info for use by the sqlite3_module.xBestIndex method.
  3. Enhance the PRAGMA cache_spill statement to accept a 32-bit integer parameter which is the threshold below which cache spilling is prohibited.
  4. On unix, if a symlink to a database file is opened, then the corresponding journal files are based on the actual filename, not the symlink name.
  5. Added the "--transaction" option to sqldiff.
  6. Added the sqlite3_db_cacheflush() interface.
  7. Added the sqlite3_strlike() interface.
  8. When using memory-mapped I/O map the database file read-only so that stray pointers and/or array overruns in the application cannot accidentally modify the database file.
  9. Added the experimental sqlite3_snapshot_get(), sqlite3_snapshot_open(), and sqlite3_snapshot_free() interfaces. These are subject to change or removal in a subsequent release.
  10. Enhance the 'utc' modifier in the date and time functions so that it is a no-op if the date/time is known to already be in UTC. (This is not a compatibility break since the behavior has long been documented as "undefined" in that case.)
  11. Added the json_group_array() and json_group_object() SQL functions in the json extension.
  12. Added the SQLITE_LIKE_DOESNT_MATCH_BLOBS compile-time option.
  13. Many small performance optimizations.

    Portability enhancements:

  14. Work around a sign-extension bug in the optimizer of the HP C compiler on HP/UX. (details)

    Enhancements to the command-line shell:

  15. Added the ".changes ON|OFF" and ".vfsinfo" dot-commands.
  16. Translate between MBCS and UTF8 when running in cmd.exe on Windows.

    Enhancements to makefiles:

  17. Added the --enable-editline and --enable-static-shell options to the various autoconf-generated configure scripts.
  18. Omit all use of "awk" in the makefiles, to make building easier for MSVC users.

    Important fixes:

  19. Fix inconsistent integer to floating-point comparison operations that could result in a corrupt index if the index is created on a table column that contains both large integers and floating point values of similar magnitude. Ticket 38a97a87a6.
  20. Fix an infinite-loop in the query planner that could occur on malformed common table expressions.
  21. Various bug fixes in the sqldiff tool.

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