 
Small. Fast. Reliable.
Choose any three.
 
SQLite Release 3.28.0 On 2019-04-16
-  Enhanced window functions:
  -  Add support the EXCLUDE clause.
  
-  Add support for window chaining.
  
-  Add support for GROUPS frames.
  
-  Add support for "<expr> PRECEDING" and
       "<expr> FOLLOWING" boundaries
       in RANGE frames.
 
-  Added the new sqlite3_stmt_isexplain(S) interface for determining
     whether or not a prepared statement is an EXPLAIN.
-  Enhanced VACUUM INTO so that it works for read-only databases.
-  New query optimizations:
  -  Enable the LIKE optimization for cases when the ESCAPE keyword
       is present and PRAGMA case_sensitive_like is on.
  
-  In queries that are driven by a partial index, avoid unnecessary
       tests of the constraint named in the WHERE clause of the partial
       index, since we know that constraint must always be true.
 
-  Enhancements to the TCL Interface:
  -  Added the -returntype option to the function method.
  
-  Added the new bind_fallback method.
 
-  Enhancements to the CLI:
  -  Added support for bound parameters and the .parameter command.
  
-  Fix the readfile() function so that it returns
       an empty BLOB rather than throwing an out-of-memory error when
       reading an empty file.
  
-  Fix the writefile() function so that when it
       creates new directories along the path of a new file, it gives them
       umask permissions rather than the same permissions as the file.
  
-  Change --update option in the .archive command so that it skips
       files that are already in the archive and are unchanged.  Add the
       new --insert option that works like --update used to work.
 
-  Added the fossildelta.c
     extension that can create, apply, and deconstruct the 
 Fossil DVCS file delta format
     that is used by the RBU extension.
-  Added the SQLITE_DBCONFIG_WRITABLE_SCHEMA verb for the sqlite3_db_config()
     interface, that does the same work as PRAGMA writable_schema without using the
     SQL parser.
-  Added the sqlite3_value_frombind() API for determining if the argument
     to an SQL function is from a bound parameter.
-  Security and compatibilities enhancements to fts3_tokenizer():
  -  The fts3_tokenizer() function always returns NULL
       unless either the legacy application-defined FTS3 tokenizers interface
       are enabled using
       the sqlite3_db_config(SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER)
       setting, or unless the first argument to fts3_tokenizer() is a bound parameter.
  
-  The two-argument version of fts3_tokenizer() accepts a pointer to the
       tokenizer method object even without
       the sqlite3_db_config(SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER) setting
       if the second argument is a bound parameter
 
-  Improved robustness against corrupt database files.
-  Miscellaneous performance enhancements
-  Established a Git mirror of the offical SQLite source tree. 
     The canonical sources for SQLite are maintained using the
     Fossil DVCS at https://sqlite.org/src.
     The Git mirror can be seen at https://github.com/sqlite/sqlite.
Hashes:
 
- SQLITE_SOURCE_ID: 2019-04-16 19:49:53 884b4b7e502b4e991677b53971277adfaf0a04a284f8e483e2553d0f83156b50
- SHA3-256 for sqlite3.c: 411efca996b65448d9798eb203d6ebe9627b7161a646f5d00911e2902a57b2e9
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.