*** DRAFT ***
SQLite Release 3.19.3 On 2017-06-08
Changes in 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
- 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
- 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.
- Fix a problem in REPLACE that can result in a corrupt database containing
two or more rows with the same rowid. Fix for ticket
- 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.
- Fix a bug in the b-tree logic that can result in incorrect duplicate answers
for IN operator queries. Ticket
- Disallow leading zeros in numeric constants in JSON. Fix for ticket
- Disallow control characters inside of strings in JSON. Fix for ticket
- 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
Additional changes in version 3.19.1 (2017-05-24):
- Fix a bug in the LEFT JOIN flattening optimization. Ticket
- Remove a surplus semicolon that was causing problems for older versions of MSVC.
Additional changes in version 3.19.2 (2017-05-25):
- Fix more bugs in the LEFT JOIN flattening optimization. Ticket
Additional changes in version 3.19.3 (2017-06-08):
- Fix a bug associated with auto_vacuum that can lead to database
corruption. The bug was introduced in version 3.16.0 (2017-01-02).
- SQLITE_SOURCE_ID: "2017-06-08 14:26:16 0ee482a1e0eae22e08edc8978c9733a96603d4509645f348ebf55b579e89636b"
- SHA3-256 for sqlite3.c: 368f1d31272b1739f804bcfa5485e5de62678015c4adbe575003ded85c164bb8
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.