*** DRAFT ***
SQLite Release 3.41.0 On 2023-02-15
- Query planner improvements:
- Make use of indexed expressions within an aggregate query that
includes a GROUP BY clause.
- The query planner has improved awareness of when an index is covering,
and adjusts predicted runtimes accordingly.
- The query planner is more aggressive about using co-routines rather
than materializing subqueries and views.
- Queries against the built-in table-valued functions json_tree() and
json_each() will now usually treat "ORDER BY rowid" as a no-op.
- Add the built-in unhex() SQL function.
- Add the base64 and base85 application-defined functions as an extension and
include that extension in the CLI.
- Add the sqlite3_stmt_scanstatus_v2() interface. (This interface is only
available if SQLite is compiled using SQLITE_ENABLE_STMT_SCANSTATUS.)
- In-memory databases created using sqlite3_deserialize() now report their
filename as an empty string, not as 'x'.
- The new makefile target "sqlite3r.c" builds an amalgamation that includes
the recovery extension.
- Changes to the CLI:
- Add the new base64() and base85() SQL functions
- Enhanced EXPLAIN QUERY PLAN output using the new sqlite3_stmt_scanstatus_v2()
interface when compiled using SQLITE_ENABLE_STMT_SCANSTATUS.
- The ".scanstats est" command provides query planner estimates in profiles.
- The continuation prompt indicates if the input is currently inside of a
string literal, identifier literal, comment, trigger definition, etc.
- Enhance the --safe command-line option to disallow dangerous SQL functions.
- Enhance the PRAGMA integrity_check command so that it detects when text strings in
a table are equivalent to but not byte-for-byte identical to the same strings in the index.
- Enhance the carray table-valued function so that it is able to bind an array of
- Added the sqlite3_is_interrupted() interface.
- Long-running calls to sqlite3_prepare() and similar now invoke the
progress handler callback and react to sqlite3_interrupt().
- The sqlite3_vtab_in_first() and sqlite3_vtab_in_next() functions are enhanced so that
they reliably detect if they are invoked on a parameter that was not selected for
multi-value IN processing using sqlite3_vtab_in().
They return SQLITE_ERROR instead of SQLITE_MISUSE in this case.
- Miscellaneous performance enhancements.
- SQLITE_SOURCE_ID: pending
- 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.