*** DRAFT ***
SQLite Release 3.51.0 On 2025-10-31
- New macros in sqlite3.h:
- SQLITE_SCM_BRANCH → the name of the branch from which the source code is taken.
- SQLITE_SCM_TAGS → space-separated list of tags on the source code check-in.
- SQLITE_SCM_DATETIME → ISO-8601 date and time of the source code check-in.
- Two new JSON functions, jsonb_each() and jsonb_tree() work the same as the existing
json_each() and json_tree() functions except that they return JSONB for the "value" column
when the "type" is 'array' or 'object'.
- The carray and percentile extensions are now built
into the amalgamation, though they are disabled by default and must be activated
at compile-time using the
-DSQLITE_ENABLE_CARRAY and/or -DSQLITE_ENABLE_PERCENTILE options, respectively.
- Enhancements to TCL Interface:
- Add the
-asdict flag to the eval command
to have it set the row data as a dict instead of an array.
- User-defined functions may not
break to return an
SQL NULL.
- CLI enhancements:
- Increase the precision of ".timer" to microseconds.
- Enhance the "box" and "column" formatting modes to deal
with double-wide characters.
- The ".imposter" command provides read-only imposter tables
that work with VACUUM and do not require the --unsafe-testing
option.
- Add the --ifexists option to the CLI command-line option and to
the .open command.
- Limit columns widths set by the ".width" command to 30,000 or less,
as there is not good reason to have wider columns, but supporting
wider columns provides opportunity to malefactors.
- Performance enhancements:
- Use fewer CPU cycles to commit a read transaction.
- Early detection of joins that return no rows due to one or more
of the tables containing no rows.
- Avoid evaluation of scalar subqueries if the result of the subquery
does not change the result of the overall expression.
- Faster window function queries when using
"BETWEEN :x FOLLOWING AND :y FOLLOWING" with a large :y.
- Add the PRAGMA wal_checkpoint=NOOP; command and the
SQLITE_CHECKPOINT_NOOP argument for sqlite3_wal_checkpoint_v2().
- Add the sqlite3_set_errmsg() API for use by extensions.
- Add the sqlite3_db_status64() API, which works just like the existing
sqlite3_db_status() API except that it returns 64-bit results.
- Add the SQLITE_DBSTATUS_TEMPBUF_SPILL option to the sqlite3_db_status()
and sqlite3_db_status64() interfaces.
- In the session extension add the sqlite3changeset_apply_v3() interface.
- For the built-in printf() and the format() SQL function,
omit the leading '-' from negative floating point numbers if the
'+' flag is omitted and the "#" flag is present and all displayed digits are '0'.
Use '%#f' or similar to avoid outputs like '-0.00' and instead show just '0.00'.
- Improved error messages generated by FTS5.
- Enforce STRICT typing on computed columns.
- Improved support for VxWorks
- JavaScript/WASM:
- Now supports 64-bit WASM. The canonical builds continue to be
32-bit but creating one's own 64-bit build is now as simple
as running "make".
Hashes:
- 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.
*** DRAFT ***