*** DRAFT ***

SQLite Release 3.54.0 On 2026-10-15

  1. Drop support for WindowsXP and earlier Windows versions, including WindowsCE. SQLite now requires Windows Vista or later.
    1. Improve performance by using Slim Reader/Writer Locks (SRWLs) to implement non-recursive mutexes, instead of CriticalSection, since all supported Windows platforms now provide SRWLs.
    2. Use the -DSQLITE_UWP=1 compile-time option for UWP and WebUI applications.
  2. Add the diskused() SQL function as an optional extension.
  3. CLI enhancements:
    1. For columnar output modes, the CLI now shows the column name header by default even if the query returns no rows.
    2. Use the new diskused() extension to implement the ".diskused" dot-command. The replaces the separate sqlite3_analyzer utility program, which is now deprecated.
    3. CLI prompt strings may contain escape sequences that expand to show state information. The initial CLI prompt is now be initialized the values of the SQLITE_PS1 and SQLITE_PS2 environment variables, if those variables exist.
    4. The default CLI prompt has been enhanced to take advantage of the new escape sequences described in the previous.
    5. On unix, the CLI preserves zero bytes when outputing unformatted BLOB values.
    6. Enhance the .mode command with new options "--rowcount on" and "--titles always". The "--titles always" is now the default behavior (see item 3a above). Legacy behavior can be restored using "-titles on".
    7. The -csv command-line option automatically disables display limits, for legacy compatibility.
    8. The default CLI prompt honors the NO_COLOR environment variable.
  4. Added the %J and %j conversions used to render JSON string literals to the built-in printf() and the format() SQL function.
  5. Add the sqlite3_result_str() interface and use it internally to simplify the code.
  6. Enhancements to date/time functions:
    1. Added the "weekday -N" form of the weekday modifier.
    2. Added the end of modifier.
  7. Use O_TMPFILE when generating temporary files, on systems that support that feature.
  8. Query planner improvements:
    1. When doing an UPDATE on a table that has expression indexes, do not change the expression index if the value being indexed is unchanged.
    2. Improved optimization of "expr OR TRUE" and "expr OR FALSE".
    3. Ignore DISTINCT in the SELECT statement on the right-hand side of an IN operator.
  9. Performance enhancements in the substr() and length() SQL functions.
  10. Added SQLITE_LIMIT_SCHEMA to the sqlite3_limit() interface.

    Hashes:

  11. SQLITE_SOURCE_ID: pending
  12. SHA3-256 for sqlite3.c: pending

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.

*** DRAFT ***