Small. Fast. Reliable.
Choose any three.
Search for:

## SQLite Release 3.15.1 On 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.

  Hashes:

- SQLITE_SOURCE_ID: "2016-11-04 12:08:49 1136863c76576110e710dd5d69ab6bf347c65e36"
- SHA1 for sqlite3.c: e7c26a7be3e431dd06898f8d262c4ef240c07366

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()).

  Bug Fixes:

- 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

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.