- Notifications
You must be signed in to change notification settings - Fork1.1k
Releases: sql-js/sql.js
Release v1.13.0
sql.js v1.13 Release Notes
This release of sql.js brings significant updates and improvements, primarily focused on modernizing the underlying toolchain and enhancing functionality.
Theonline playground was rewritten:
Key highlights include:
🚀 Dependency Updates and Modernization
SQLite Core Upgrade: sql.js is now built withSQLite version 3.49. This incorporates all the enhancements and bug fixes from SQLite versions 3.45.0 through 3.49.1. SeeSQLite release notes. Notable SQLite improvements in this range include:
- Query Planner Enhancements: Expect improved query performance due to optimizations in query planning, especially for complex queries, star joins, and queries involving
INoperators. These improvements are detailed in the SQLite release notes for versions 3.47.0, 3.49.0, and 3.46.0. - New SQL Features: Take advantage of new SQL functions and features introduced in SQLite 3.47+, such as:
- Enhanced
iif()function with support for multiple arguments (SQLite 3.49.0). - Right-hand side negative indexing for JSON
->>operator (SQLite 3.47.0). json_pretty()function for formatted JSON output (SQLite 3.46.0).- Support for underscore characters in numeric literals (SQLite 3.46.0).
- Improved date and time function modifiers like
ceilingandfloor(SQLite 3.46.0).
- Enhanced
- Bug Fixes and Stability: Benefit from numerous bug fixes and stability improvements across various SQLite components, ensuring a more robust database experience. Refer to the SQLite Changelog for detailed fixes in versions 3.45.1, 3.45.2, 3.45.3, 3.46.1, 3.47.1, 3.47.2, 3.49.1, and 3.44.2.
- Query Planner Enhancements: Expect improved query performance due to optimizations in query planning, especially for complex queries, star joins, and queries involving
Emscripten 4.x Upgrade: sql.js is now compiled withEmscripten 4. Seechanges in emscripten. This major update to the Emscripten toolchain brings several under-the-hood improvements:
- Modern JavaScript Output: Emscripten 4 generates more modern JavaScript code. While compatibility with older browsers is still maintained through transpilation where necessary, this move to modern JS internally can lead to performance improvements in modern environments.
- LLVM 19.1.6: The underlying compiler toolchain is updated to LLVM 19.1.6, which includes improvements to code generation, optimizations, and potentially better support for newer WebAssembly features.
- Minimum Node.js Version Increase (for Emscripten Toolchain): While sql.js itself aims for broad compatibility, the Emscripten toolchain now requiresNode.js v18.3 as a minimum (and is tested with Node.js 22 in this release). This is primarily relevant for developers building sql.js from source.
Node.js Worker Thread Compatibility: The worker scripts are now fully compatible with Node.js worker threads, allowing for seamless integration in Node.js environments leveraging worker threads. This is a significant step towards better performance and concurrency in Node.js.
Removal of Puppeteer Dev Dependency: The project no longer depends on Puppeteer for worker tests. Worker tests now utilize Node.js worker threads directly, simplifying the testing setup and removing an external dependency. This also speeds up the devcontainer installation.
✨ New Features
updateHookAPI (#604): This release introduces a new low-level API,Database.updateHook, providing a mechanism to register a callback function that is invoked whenever a row is updated, inserted, or deleted in the database.view docs- This feature wraps the native
sqlite3_update_hookfunctionality, allowing developers to monitor database modifications at a granular level. - Callbacks receive information about the operation type (update, insert, delete), the database name, table name, and rowid.
- This feature wraps the native
🛠️ Internal and Development Changes
- Worker Debug Script: Added a new debug script specifically for worker environments to aid in development and troubleshooting of worker-related issues.
Assets7
Uh oh!
There was an error while loading.Please reload this page.
Release v1.12.0
new getRowsModified action in web worker
Assets7
Uh oh!
There was an error while loading.Please reload this page.
Release v1.11.0
New emscripten compiler
Assets7
Uh oh!
There was an error while loading.Please reload this page.
Release v1.10.3
d58d741updated sqlite to v3.45.2
Assets7
Uh oh!
There was an error while loading.Please reload this page.
Release v1.10.2
fix memory error with long sql strings
Assets7
Uh oh!
There was an error while loading.Please reload this page.
Release v1.10.1
update deps
Assets7
Uh oh!
There was an error while loading.Please reload this page.
Release v1.10.0
sqlite 3.45 (new json functions)fixed regestered functions disappearing after exporting the database
Assets7
Uh oh!
There was an error while loading.Please reload this page.
Release v1.9.0
sqlite 3.44
Assets7
Uh oh!
There was an error while loading.Please reload this page.
Release v1.8.0
- SQLite 3.39.3
- emscripten 3.1.20
- addaggregate functions
Assets7
Uh oh!
There was an error while loading.Please reload this page.
Release v1.7.0
sqlite 3.38.5, size optimizations, more recent compiler
Assets7
Uh oh!
There was an error while loading.Please reload this page.
