Small. Fast. Reliable.
Choose any three.
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.
- 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.
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.