Skip to content

test(dla): 125-table large Postgres fixture + e2e findings report - #16

Merged
udaybhan05 merged 2 commits into
mainfrom
feat/l1-large-fixture
Jul 9, 2026
Merged

test(dla): 125-table large Postgres fixture + e2e findings report#16
udaybhan05 merged 2 commits into
mainfrom
feat/l1-large-fixture

Conversation

@udaybhan05

Copy link
Copy Markdown
Collaborator

What

A second, much larger test fixture at apps/dla/tests/fixtures/postgres_large/ (docker-compose on port 55433, container name distinct from the small fixture — the two coexist), plus ready-to-run configs and the findings report from a full end-to-end pipeline run against it.

Fixture contents (125 tables / 673 columns / 5 schemas / ~130k rows):

  • Two star+snowflake regions with conformed dimensions; 9 true junction tables
  • A zero-FK staging schema (simulates cloud-warehouse dumps; relationship inference only)
  • 25 distractor tables sharing generic column names (id/name/status/created_at) — makes schema linking genuinely hard for downstream retrieval evals
  • Text-heavy tables (vector signal), a 110-column wide table, a 100k-row tall table
  • Structural edge cases: composite PKs, self-referencing FK, multi-column FK, reserved-word/quoted/63-char identifiers, jsonb/uuid/arrays/enums/ranges
  • All 8 seeded quality-issue classes incl. a NOT VALID broken FK
  • README.md documents every region and seeded issue; FINDINGS.md is the e2e report

Why

The L2 gap analysis (G4) showed the 15-table fixture cannot prove or disprove any retrieval claim — full-schema prompt-stuffing is indistinguishable from retrieval at that scale. This fixture is the precondition for L2's schema-linking eval, and running L1 end-to-end against it was the first real-scale exercise of the shipped pipeline.

Headline e2e results (full detail in FINDINGS.md)

  • Performance: connect+discover+profile ≈ 15s (org target < 2h); full offline dla run 17.4s; bundle 13MB / 3,350 files
  • Idempotency: PASS — zero file/mtime diffs across 7 re-run commands
  • Readiness caught every seeded issue class; quoted/reserved/long identifiers survive the whole pipeline
  • 18 defects found and ranked, top ones: manifest artifact-count overcount on multi-schema sources (contract-breaking for L2's input gate) · jsonb/array columns fail profiling and error-status profiles raise no readiness issue · dla run swallows SIGINT · recommender scores vector(6) over knowledge_graph(4) on a junction-rich 125-table schema (density diluted by table count) · broken-fk check lacks type coercion (350 false orphans) · two exit-code deviations

No production code is changed in this PR — fixture, configs, and findings only. Defect fixes can be triaged from FINDINGS.md into the hardening backlog.

…configs

- new fixture at apps/dla/tests/fixtures/postgres_large (port 55433,
  container dla_fixture_postgres_large) with 5 schemas: star/snowflake
  regions, conformed dims, 9 junction tables, a no-FK staging zone,
  25 generic distractor tables, text-heavy tables, and structural edge
  cases (reserved-word/quoted/60-char identifiers, composite and
  multi-column FKs, self-referencing FKs, 110-column wide table,
  100k-row tall table, jsonb/uuid/array/enum/range types)
- seeded data-quality ground truth: empty tables, all-null and
  constant columns, 70% null rate, inferred and declared-NOT-VALID
  broken FKs, orphaned staging joins, mixed-case status values
- example configs: postgres_large.yaml (all schemas) and
  postgres_large_staging_only.yaml (inference-only slice)
- fixture README documents every region and expected detection
Full results of running the complete offline pipeline against the
125-table fixture: per-command results, performance numbers, idempotency
verdict, and 18 ranked defects (manifest overcount on multi-schema
sources, jsonb/array profiling failures with no readiness issue,
SIGINT swallowed by dla run, recommender junction-vs-text scoring tie
behavior, broken-fk type coercion, exit-code deviations, inference and
pattern-detector false positives).
@udaybhan05
udaybhan05 merged commit cbfd170 into main Jul 9, 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