Repository navigation
·
6 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.10.0, plus createModule() and the changes listed under 3.0.0 that are on Node.js v26.x-staging but not yet in a release. SQLite is unchanged at 3.53.4.
Added
createModule(): virtual tables whose rows come from a JavaScript iterable, viaDatabase.prototype.createModule(name, { columns, rows, directOnly, useBigIntArguments }), wrappingsqlite3_create_module_v2(). Ports Node.js PR #65787, PR #66195, and PR #66215, which are onv26.x-stagingbut not yet in a Node.js release.
Fixed
process.exit()in a worker duringexec(): a user-defined function that calledprocess.exit()whileexec()ran in a worker aborted the process withFATAL ERROR: Error::Error napi_define_properties. The worker now exits with the requested code.- Expanded SQL longer than V8's maximum string length: with a
sqlite.db.querydiagnostics subscriber, running a statement whose expanded SQL exceeded V8's maximum string length (for example, one with a bound blob over about 256 MB, which expands to hex) threwError: Unknown failurefrom a C++ exception that unwound through SQLite, and leaked the expanded SQL. The statement now succeeds and publishes no event. ReadingexpandedSQLon such a statement threwError: Unknown failurewith nocode; it now throwsERR_STRING_TOO_LONG, as oversized TEXT values do since 3.0.0.node:sqliteaborts the process when readingexpandedSQLon such a statement (checked on v24.21.0). - C++ exceptions in aggregate callbacks: a node-addon-api failure inside an aggregate's
step,inverse, or final callback unwound through SQLite. Asteporinverseresult whosethengetter threw madeexec()leaveclose()failing withERR_INVALID_STATE(database cannot be closed while in a callback), andget()/all()threw an unrelated error instead of the getter's. Exiting the process or a worker while a window aggregate with aUint8Arrayaccumulator was mid-query aborted withterminate called after throwing an instance of 'Napi::Error'. Function and aggregate callbacks now catch these exceptions; the statement throws the original error, and exit proceeds normally.
Full Changelog: v3.0.0...v3.1.0