You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Epic 19 (R2a function-library audit) — Story 19.4: capture the SQL that real BI tools actually put on the wire against SoftClient4ES, at a falsified seam, verbatim, and intersect it with 19.1's census (#248) to derive R2a's MINIMUM function set.
What ships in the repo
One main-bearing test source (deliberately NOT a ScalaTest suite — its input is a gitignored capture artefact, so a suite would either pass vacuously or stay permanently red):
sql/src/test/scala/app/softnetwork/elastic/sql/census/CapturedSqlProbe.scala — layer 2 of the two-layer extraction: reads the corpus CSV (RFC-4180, explicit UTF-8), runs the real Parser on every captured statement (Throwable-guarded — Parser.apply can throw ValidationError instead of returning Left on parenthesized WHERE clauses #250), emits per-row verdicts, debound re-parses for ?-bearing rows, census-id resolution (census_ids_for, form-level where decidable, ALL candidates token-level otherwise — the inflating, safe direction), and the unmatched_spellings scan backed by the real SQLKeywords registry. Run via sbt "sql/Test/runMain …"; sbt "sql/test" does not collect it (verified: 532/532, count unchanged).
Everything else (capture logs, pipeline scripts, corpora, deliverable) is local-only under the gitignored _bmad-output/ tree by design.
Result highlights (full deliverable: _bmad-output/planning-artifacts/epic-19-bi-emitted-sql-corpus.md)
Corpus: 99 captured statements from 2 tools / 2 venues (Superset 6.0.1 over Flight SQL; Tableau Desktop 2026.2.2 over JDBC, both dialects), 5 parses / 94 parse_error, byte-for-byte round-trip to the raw seam output on every row.
MINIMUM set: 49 census rows (17 form-confidence / 32 token-only), joined on spelling ∪ aliases, keyed on 19.1's id.
OQ-4: the Tableau dialect dropdown moves the MINIMUM set by 25 census ids (MySQL 41 vs SQL-92 30, intersection 23).
Epic 19 (R2a function-library audit) — Story 19.4: capture the SQL that real BI tools actually put on the wire against SoftClient4ES, at a falsified seam, verbatim, and intersect it with 19.1's census (#248) to derive R2a's MINIMUM function set.
What ships in the repo
One
main-bearing test source (deliberately NOT a ScalaTest suite — its input is a gitignored capture artefact, so a suite would either pass vacuously or stay permanently red):sql/src/test/scala/app/softnetwork/elastic/sql/census/CapturedSqlProbe.scala— layer 2 of the two-layer extraction: reads the corpus CSV (RFC-4180, explicit UTF-8), runs the realParseron every captured statement (Throwable-guarded — Parser.apply can throw ValidationError instead of returning Left on parenthesized WHERE clauses #250), emits per-row verdicts, debound re-parses for?-bearing rows, census-id resolution (census_ids_for, form-level where decidable, ALL candidates token-level otherwise — the inflating, safe direction), and theunmatched_spellingsscan backed by the realSQLKeywordsregistry. Run viasbt "sql/Test/runMain …";sbt "sql/test"does not collect it (verified: 532/532, count unchanged).Everything else (capture logs, pipeline scripts, corpora, deliverable) is local-only under the gitignored
_bmad-output/tree by design.Result highlights (full deliverable:
_bmad-output/planning-artifacts/epic-19-bi-emitted-sql-corpus.md)spelling∪aliases, keyed on 19.1'sid."schema"."table"), see Identifier quoting coverage: backticks rejected in every position; double-quoted table names unparseable in FROM #252;SELECT 1health checks, see Support FROM-less SELECT of literal expressions — SELECT 1 is the connection/health idiom of Tableau and Superset and is rejected #251.