The requirement that the database be in WAL mode has been removed.
The sync protocol is enhanced to use less network bandwidth when both
sides start out being very similar to one another.
The sqlite3_rsync program now works on Macs without having to specify
the full pathname of the sqlite3_rsync executable on the remote side
as long as you install the sqlite3_rsync executable in
one of these directories: $HOME/bin:/usr/local/bin:/opt/homebrew/bin
Changes to JSON functions:
Bug fix: Enforce the JSON5 restriction that the
"\0" escape must not be followed by a digit.
Bug fix: When the LABEL argument to json_group_object(LABEL,VALUE)
is NULL, that element of the resulting object is omitted.
Optimization:
If the jsonb_set() or jsonb_replace() functions make a change in the
interior of a large JSONB object, they strive to keep the size of the
JSONB object unchanged and to modify as few bytes as possible on the interior
of the object. This helps reduce I/O as it allows SQLite to write only
the page that contains the changed bytes and not all the surrounding pages.
Improved support for building on Cygwin and MinGW and similar, as well
as Termux.
Typo fixes in the documentation and in the source code comments.
Miscellaneous performance improvements.
JavaScript/WASM:
Fix a long-standing filename digest calculation bug in the OPFS
SAHPool VFS. Databases created in that VFS by 3.50.0+ cannot
be read by older versions of the VFS, but 3.50.0 can
backwards-compatibly work with existing databases created
by older versions.
Prior changes from version 3.50.1 (2025-06-06):
Fix a long-standing bug in jsonb_set() and similar that was exposed by
new optimizations added in version 3.50.0.
Fix the file-io extension (used by the CLI) so that it can be built
using the MinGW compiler chain.
Avoid writing frames with no checksums into the wal file if a savepoint
is rolled back after dirty pages have already been spilled into the
wal file.
Forum post b490f726db.
Fix the Bitvec object to avoid stack overflow when the database is within
60 pages of its maximum size.
Fix a problem with UPDATEs on fts5 tables that contain BLOB values.
Fix an issue with transitive IS constraints on a RIGHT JOIN.
Raise an error early if the number of aggregate terms in a query
exceeds the maximum number of columns, to avoid downstream assertion
faults.
Ensure that sqlite3_setlk_timeout() holds the database mutex.
Fix typos in API documentation.
Changes in this specific patch release, version 3.50.3 (2025-07-17):
Fix a possible memory error that can occur if a query is made against
against FTS5 index that has been deliberately corrupted in a very specific
way.
Fix the parser so that it ignored SQL comments in all places of a
CREATE TRIGGER statement. This resolves a problem that was introduced
by the introduction of the SQLITE_DBCONFIG_ENABLE_COMMENTS feature
in version 3.49.0.
Fix an incorrect answer due to over-optimization of an AND operator.
Forum post f4878de3e.
Fix minor makefile issues and documentation typos.