Sql driver: implement the §8.1 catalog identifier-validation gate (FF-1) #496

Open
opened 2026-07-24 21:00:09 -04:00 by dohertj2 · 0 comments
Owner

The Sql driver's ISqlDialect/SqlServerDialect docs describe a design-§8.1 gate that validates an authored table/column against the live catalog before it is ever quoted into SQL text, rejecting unknown identifiers. That gate is NOT implemented and no task on feat/sql-poll-driver scheduled it; QuoteIdentifier (bracket-quoting, Cc+Cf rejection) is currently the sole defence. Risk is bounded — a hostile identifier is quoted into one nonexistent object, the query fails post-open, and the tag Bad-codes (BadCommunicationError) rather than executing anything — but the defence-in-depth and doc-honesty gap should be closed. Also fixed the docs on-branch to stop over-claiming. Reference: docs/plans/2026-07-15-sql-poll-driver-design.md §8.1.

The Sql driver's ISqlDialect/SqlServerDialect docs describe a design-§8.1 gate that validates an authored table/column against the live catalog before it is ever quoted into SQL text, rejecting unknown identifiers. That gate is NOT implemented and no task on feat/sql-poll-driver scheduled it; QuoteIdentifier (bracket-quoting, Cc+Cf rejection) is currently the sole defence. Risk is bounded — a hostile identifier is quoted into one nonexistent object, the query fails post-open, and the tag Bad-codes (BadCommunicationError) rather than executing anything — but the defence-in-depth and doc-honesty gap should be closed. Also fixed the docs on-branch to stop over-claiming. Reference: docs/plans/2026-07-15-sql-poll-driver-design.md §8.1.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dohertj2/lmxopcua#496