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

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

  Hashes:

- SQLITE_SOURCE_ID: "2017-05-22 13:58:13 28a94eb282822cad1d1420f2dad6bf65e4b8b9062eda4a0b9ee8270b2c608e40"
- SHA3-256 for sqlite3.c: c30326aa1a9cc342061b755725eac9270109acf878bc59200dd4b1cea6bc2908

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.