- Multiple bug fixes to the row value logic that was introduced in version 3.15.0.
- Fix a NULL pointer dereference in ATTACH/DETACH following a maliciously constructed syntax error. Ticket 2f1b168ab4d4844.
- Fix a crash that can occur following an out-of-memory condition in the built-in instr() function.
- In the JSON extension, fix the JSON validator so that it correctly rejects invalid backslash escapes within strings.
- SQLITE_SOURCE_ID: "2016-11-28 19:13:37 bbd85d235f7037c6a033a9690534391ffeacecc8"
- SHA1 for sqlite3.c: 06d77b42a3e70609f8d4bbb97caf53652f1082cb
Changes carried forward from version 3.15.1 (2016-11-04):
- Added SQLITE_FCNTL_WIN32_GET_HANDLE file control opcode.
- Fix the VACUUM command so that it spills excess content to disk rather than holding everything in memory, and possible causing an out-of-memory error for larger database files. This fixes an issue introduced by version 3.15.0.
- Fix a case (present since 3.8.0 - 2013-08-26) where OR-connected terms in the ON clause of a LEFT JOIN might cause incorrect results. Ticket 34a579141b2c5ac.
- Fix a case where the use of row values in the ON clause of a LEFT JOIN might cause incorrect results. Ticket fef4bb4bd9185ec8f.
Changes carried forward from version 3.15.0 (2016-10-14):
- Added support for row values.
- Allow deterministic SQL functions in the WHERE clause of a partial index.
- Added the "modeof=filename" URI parameter on the unix VFS
- Added support for SQLITE_DBCONFIG_MAINDBNAME.
- Added the ability to VACUUM an ATTACH-ed database.
- Enhancements to the command-line shell:
- Add the ".testcase" and ".check" dot-commands.
- Added the --new option to the ".open" dot-command, causing any prior content in the database to be purged prior to opening.
- Enhance the fts5vocab virtual table to handle "ORDER BY term" efficiently.
- Miscellaneous micro-optimizations reduce CPU usage by more than 7% on common workloads. Most optimization in this release has been on the front-end (sqlite3_prepare_v2()).
- The multiply operator now correctly detects 64-bit integer overflow and promotes to floating point in all corner-cases. Fix for ticket 1ec41379c9c1e400.
- Correct handling of columns with redundant unique indexes when those columns are used on the LHS of an IN operator. Fix for ticket 0eab1ac759.
- Skip NULL entries on range queries in indexes on expressions. Fix for ticket 4baa46491212947.
- Ensure that the AUTOINCREMENT counters in the sqlite_sequence table are initialized doing "Xfer Optimization" on "INSERT ... SELECT" statements. Fix for ticket 7b3328086a5c116c.
- Make sure the ORDER BY LIMIT optimization (from check-in 559733b09e) works with IN operators on INTEGER PRIMARY KEYs. Fix for ticket 96c1454c