Skip to content

feat: add mssql adapter - #29

Merged
Truta446 merged 1 commit into
Truta446:mainfrom
milekv:agent/mssql-adapter
Aug 22, 2026
Merged

Truta446 merged 1 commit into
Truta446:mainfrom
milekv:agent/mssql-adapter

Conversation

@milekv

@milekv milekv commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Closes #20.

What changed

  • add instrumentMssql through the new nplusone/mssql export
  • record parameters accumulated through Request.input
  • support Request.query strings and tagged templates
  • record stored procedure execution as kind other
  • document SQL Server in the compatibility table

Verification

  • npm test - 181 passing
  • npm run typecheck
  • npm run lint
  • git diff --check

@Truta446
Truta446 merged commit 4f8600b into Truta446:main Aug 22, 2026
2 checks passed
Truta446 added a commit that referenced this pull request Aug 22, 2026
…terpolated N+1s

Follow-up to #29. Three things the adapter was missing:

- `parameterValues()` returned `[]` for a request with no `.input()` calls.
  A scope tells an N+1 apart from a statement that merely runs twice by
  watching the values vary, and falls back to the raw SQL only when the driver
  reports *no* parameters — so `[]` handed it a discriminator that was
  identical on every iteration. A loop building its SQL by interpolation, which
  is the code most likely to have an N+1 in it, was never reported. It now
  returns undefined when nothing was bound.
- `Request.prototype.batch()` was not patched, so a T-SQL batch went unseen.
- `PreparedStatement` was not patched. Executing one in a loop is an N+1 that
  costs less per iteration and is therefore easier to miss. The statement is
  captured at `prepare()` rather than read off an internal property, so a
  rename in the driver cannot silently break it.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add an adapter for mssql (SQL Server)

2 participants