v2.6.0
·
76 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
API compatible with node:sqlite from Node.js v26.9.0, plus the changes below that landed on v26.x-staging but are not yet in a Node.js release. Binding undefined now succeeds where it previously threw, so this is a minor release. SQLite is unchanged at 3.53.4.
Changed
undefinedbinds as SQL NULL: passingundefinedfor a parameter binds NULL instead of throwingERR_INVALID_ARG_TYPE, so an explicitundefinedand an omitted named parameter now agree.undefinedis not an object, so it is still bound as an anonymous parameter rather than being treated as the named-parameter bag. This also removes a better-sqlite3 migration gotcha that surfaced with query builders like Knex, which emitundefinedfor columns missing from a multi-row insert. Ports Node.js PR #65709.
Fixed
- Changeset detached by a user-defined SQL function:
applyChangeset()copies every non-empty changeset before applying it, not just when afilteroronConflictcallback is supplied. SQLite reaches JavaScript through a user-defined SQL function in aCHECKconstraint or trigger too, so a changeset could previously be detached or zeroed while SQLite was still reading it. Ports Node.js PR #65870.
Full Changelog: v2.5.0...v2.6.0