Repository navigation
ci: test against msnodesqlv8 v6 - #1946
Merged
Merged
Conversation
msnodesqlv8 6 is released and is what npm now installs. It needs Node 22 or later, so it is tested on the Node 22 and 24 jobs, after v5. Its Node-API binary ships inside the npm package, so the step needs no prebuild download and no source build. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Reads float, real and decimal values with digits beyond the sixth decimal place, from a column and from an output parameter, on both drivers. msnodesqlv8 before 6 hands these over as text with six decimal places, so 1e-10 is read as 0; there the test is skipped with that reason. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Says that msnodesqlv8 6 needs Node.js 22 or later, and to install msnodesqlv8 5 on an older one. Notes that msnodesqlv8 5 and earlier round float, real and decimal values to six decimal places, which msnodesqlv8 6 does not. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
🟢 Approval recommended
The changes are limited to CI, tests, and documentation, with no identified blocking issues.
No open issues 🎉
What changed in this PR
Adds msnodesqlv8 v6 coverage to the SQL Server client's CI and documents its requirements, addressing part of #1940 without changing runtime adapter code.
Changes:
- Tests the latest msnodesqlv8 v6 on Windows with Node.js 22 and 24.
- Adds shared numeric-precision integration coverage for both drivers, skipped on msnodesqlv8 versions before v6.
- Documents v6 support, its Node.js requirement, and older drivers’ precision limitations.
| File | Description |
|---|---|
| test/tedious/tedious.js | Registers the numeric-precision test for tedious. |
| test/msnodesqlv8/msnodesqlv8.js | Registers the precision test with a v6 version gate. |
| test/common/tests.js | Checks numeric precision in columns and output parameters. |
| README.md | Documents v6 support, installation requirements, and precision behavior. |
| .github/workflows/nodejs.yml | Adds v6 installation and test steps on Node.js 22 and 24. |
Review effort: Balanced
|
🎉 This PR is included in version 12.7.13 🎉 The release is available on: Your semantic-release bot 📦🚀 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this does:
msnodesqlv8 6 is released, and
npm install msnodesqlv8now installs 6.2.0. node-mssql already works with it, but CI never tested it and the README still says v2–v5. Three commits:ci:amsnodesqlv8@^6install and test step intest-windows, on the Node 22 and 24 jobs only, after the v5 step. v6'senginesneeds Node 22 or later. Its Node-API binary ships inside the npm package, so the step needs no prebuild download and no source build.^5stays on Node 22/24 and5.2.1on Node 20. The range floats, so CI always tests the latest v6.test:numbers read at full precision, on both drivers. It reads float, real and decimal values with digits beyond the sixth decimal place (1e-10, 1.2345678901234567, a float32 real, decimal(38,10) 1.0123456789 and −1e-10), from a column and from an output parameter.docs:msnodesqlv8@5for older Node.float,realanddecimalvalues with more than six decimal places, so 1e-10 reads as 0.numeric,moneyandsmallmoneyare not affected.Verification:
npm run lintandnpm run test-unitpass.Known v6 issues, not covered here:
Related issues:
Pre/Post merge checklist:
🤖 Generated with Claude Code