Skip to content

[finding] The same false "this repo runs two dialects" claim survives in metadata-protocol's driver-text-disclosure test — in a test NAME, where it reads as an assertion #8822

Description

@qq9340100

Filed unassigned, finding only — grading and routing are triage's field. Surfaced by the bounding sweep #8739 asked for and its dispatch authorized; the fix for it lands outside that card's packages/types file surface, so it is filed rather than ridden along. Duplicate-searched first (keyword + file path over open issues): no existing card.

The instance

packages/metadata-protocol/src/protocol.driver-text-disclosure.test.ts carries the same claim #8739 corrected in packages/types/src/error-leak.ts, in two places:

wheretext
module note (~line 35)"#8132 measured its hole for Postgres and #8263 taught it the two dialects this repo runs"
test name (~line 276)recognises the two engines this repo runs, and none of the three it does not

"The three it does not [run]" is, per that file's own DIALECTS array, mysql / mssql / oracle. MySQL is measurably run here — driver-sql branches on mysql/mysql2, CI stands up a live mysql:8.0 service for the required Temporal Conformance (live PG + MySQL) check, and live MySQL 8.0.46 measurements landed merged driver fixes (#8621, #8622).

Why this one is worth recording separately, and why it is NOT urgent

Two things pull in opposite directions, and both belong in the triage note:

  • The claim is in a test NAME. That is the most quotable surface a claim can sit on — it shows up in CI output and in every reviewer's terminal, unattached to the paragraph that would qualify it. [finding] error-leak.ts asserts "nobody here runs" MySQL — but CI stands up a live mysql:8.0 for a required check, and the claim is load-bearing for security reasoning #8739's whole argument is that this class of assertion gets consulted and believed; a test name is consulted more casually than a doc comment.
  • The file's SUBSTANCE is already right, and is arguably the best answer in the repo. Its DIALECTS matrix deliberately includes dialects the predicate does not recognise, asserts looksLikeInternalErrorLeak returns false for them, and then asserts the text is withheld anyway — precisely so correctness does not depend on having enumerated the world's SQL engines. Nothing it tests is wrong. Only the word "runs" is, where "the predicate covers" is what was meant.

So this is a wording correction, not a behaviour one. The suggested shape is the one #8739 landed: say COVERAGE where the text currently says what the repo runs, and let the reachability question stay where it belongs.

Not claimed

Related

Metadata

Metadata

Assignees

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions