 
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.