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

## SQLite Release 3.19.1 On 2017-05-24

- Fix a bug in the LEFT JOIN flattening optimization. Ticket cad1ab4cb7b0fc.
- Remove a surplus semicolon that was causing problems for older versions of MSVC.

  Hashes:

- SQLITE_SOURCE_ID: "2017-05-24 13:08:33 f6d7b988f40217821a382bc298180e9e6794f3ed79a83c6ef5cae048989b3f86"
- SHA3-256 for sqlite3.c: 996b2aff37b6e0c6663d0312cd921bbdf6826c989cbbb07dadde5e9672889bca

Changes carried forward from version 3.19.0 (2017-05-22):

- The SQLITE_READ authorizer callback is invoked once with a column name that is an empty string for every table referenced in a query from which no columns are extracted.
- When using an index on an expression, try to use expression values already available in the index, rather than loading the original columns and recomputing the expression.
- Enhance the flattening optimization so that it is able to flatten views on the right-hand side of a LEFT JOIN.
- Use replace() instead of char() for escaping newline and carriage-return characters embedded in strings in the .dump output from the command-line shell.
- Avoid unnecessary foreign key processing in UPDATE statements that do not touch the columns that are constrained by the foreign keys.
- On a DISTINCT query that uses an index, try to skip ahead to the next distinct entry using the index rather than stepping through rows, when an appropriate index is available.
- Avoid unnecessary invalidation of sqlite3_blob handles when making changes to unrelated tables.
- Transfer any terms of the HAVING clause that use only columns mentioned in the GROUP BY clause over to the WHERE clause for faster processing.
- Reuse the same materialization of a VIEW if that VIEW appears more than once in the same query.
- Enhance PRAGMA integrity_check so that it identifies tables that have two or more rows with the same rowid.
- Enhance the FTS5 query syntax so that column filters may be applied to arbitrary expressions.
- Enhance the json_extract() function to cache and reuse parses of JSON input text.
- Added the anycollseq.c loadable extension that allows a generic SQLite database connection to read a schema that contains unknown and/or application-specific collating sequences.

  Bug Fixes:

- Fix a problem in REPLACE that can result in a corrupt database containing two or more rows with the same rowid. Fix for ticket f68dc596c4e6018d.
- Fix a problem in PRAGMA integrity_check that was causing a subsequent VACUUM to behave suboptimally.
- Fix the PRAGMA foreign_key_check command so that it works correctly with foreign keys on WITHOUT ROWID tables.
- Disallow leading zeros in numeric constants in JSON. Fix for ticket b93be8729a895a528e2.
- Disallow control characters inside of strings in JSON. Fix for ticket 6c9b5514077fed34551.
- Limit the depth of recursion for JSON objects and arrays in order to avoid excess stack usage in the recursive descent parser. Fix for ticket 981329adeef51011052.

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.