Skip to content

feat(oracle): harden parser coverage gates#118

Merged
rebelice merged 1 commit intomainfrom
codex/oracle-parser-hardening
Apr 29, 2026
Merged

feat(oracle): harden parser coverage gates#118
rebelice merged 1 commit intomainfrom
codex/oracle-parser-hardening

Conversation

@rebelice
Copy link
Copy Markdown
Collaborator

Summary

  • Convert Oracle parser foundation to dual-return error propagation, harden lexer/parser error handling, and enforce Loc sentinel/location contracts.
  • Add Oracle soft-fail and strictness coverage, parser progress gates, BNF/Loc/keyword coverage manifests, and Oracle 26ai reserved-word audit coverage.
  • Add optional real Oracle reference validation through DSN or Oracle Free testcontainer, including V$RESERVED_WORDS keyword audit.

Current Coverage Accounting

  • Parser methods: 445/445 return errors, with 0 bare parse methods and 0 silent parser error discards.
  • Coverage gates: 62 soft-fail scenarios, 121 strictness rows, 344 keyword rows, 171 classified BNF rows, and 249 classified Loc-node rows.
  • Direct Loc fixture coverage: 152 covered rows, 97 deferred rows with approval metadata.
  • BNF implementation debt is explicit: 11 covered, 86 partial, 47 deferred, 27 catalog rows.

Verification

  • go test -count=1 ./oracle/...
  • go test -run 'TestOracleParserProgress|TestOracleCoverage|TestOracleBNFImplementationDebtRequiresApproval|TestOracleKeywordOfficialSQLReserved26aiAudit|TestOracleLocNodeCoverage|TestOracleLocNodeFixtureCoverageRequiresApproval|TestVerifyCorpus|TestSoftFail|TestStrict' -count=1 ./oracle/parser
  • ORACLE_PARSER_REF_CONTAINER=1 go test -tags oracle_ref -run 'TestOracleReference|TestOracleVReservedWordsKeywordAudit' -count=1 -v ./oracle/parser
  • git diff --cached --check

Notes

  • This PR makes Oracle parser gaps auditable and enforced by tests; it does not claim complete Oracle grammar coverage.
  • The remaining parser scope is tracked as partial/deferred/catalog rows in the BNF and Loc manifests.

@rebelice rebelice merged commit d4a1c98 into main Apr 29, 2026
2 checks passed
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.

1 participant