Small. Fast. Reliable.
Choose any three.
SQLite Release 3.19.3 On 2017-06-08
Prior changes 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.
- Fix a bug in the b-tree logic that can result in incorrect duplicate answers
for IN operator queries. Ticket
61fe9745
- 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.
Prior changes from version 3.19.1 (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.
Prior changes from version 3.19.2 (2017-05-25):
- Fix more bugs in the LEFT JOIN flattening optimization. Ticket
7fde638e94287d2c.
Changes in this specific patch release, 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).
Ticket fda22108.
Hashes:
- 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.