diff --git a/README.md b/README.md index 740f517..9e148dc 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,8 @@ For the first stable release, see [RELEASE_NOTE_v1.6.0.md](docs/RELEASE_NOTE_v1.6.0.md). For the v1.7.0 release, see [RELEASE_NOTE_v1.7.0.md](docs/RELEASE_NOTE_v1.7.0.md). For the v1.8.0 release, see [RELEASE_NOTE_v1.8.0.md](docs/RELEASE_NOTE_v1.8.0.md). For the v1.9.0 release, see -[RELEASE_NOTE_v1.9.0.md](docs/RELEASE_NOTE_v1.9.0.md). +[RELEASE_NOTE_v1.9.0.md](docs/RELEASE_NOTE_v1.9.0.md). For the v1.10.0 release, see +[RELEASE_NOTE_v1.10.0.md](docs/RELEASE_NOTE_v1.10.0.md). ## Start here @@ -68,7 +69,7 @@ For the first stable release, see ## 60-second quick start -1. Download the `v1.9.0` archive from +1. Download the `v1.10.0` archive from [GitHub Releases](https://github.com/ikelaiah/ProcFlow/releases) or clone this repository. 2. Extract the complete archive. Keep `index.html`, `styles.css`, `dist/`, and @@ -135,7 +136,7 @@ statements. analysis to another engineer. ProcFlow imports SQL text, not report-definition files. SSRS/RDL import is on -the roadmap; for v1.9.0, paste or export the dataset SQL itself. +the roadmap; for v1.10.0, paste or export the dataset SQL itself. ## What ProcFlow can show @@ -197,7 +198,8 @@ The analysis panel provides four release-safety signals: - **Coverage** is the percentage of body tokens consumed by the parser. - **Diagnostics** reports uncertain dialects, balance errors, missing block terminators, unconsumed input, invalid actions, opaque dynamic SQL, opaque - table expressions, heuristic `APPLY` targets, and catalogue problems + table expressions, heuristic `APPLY` targets, ambiguous and opaque column + references (v1.10.0), and catalogue problems (malformed or conflicting catalogue data, and unproven partial matches reported at the exact reference). Informational annotations (for example a correctly resolved recursive CTE) are displayed separately and @@ -220,7 +222,7 @@ than silently disappearing from the diagram. ## Supported SQL -ProcFlow v1.9.0 recognises: +ProcFlow v1.10.0 recognises: - Microsoft T-SQL - IBM DB2 SQL PL @@ -231,7 +233,7 @@ Supported inputs include procedures, functions, triggers, views, plain SQL statements, report dataset queries, and multi-object scripts where those object types apply to the selected dialect. -Dialect-specific v1.9.0 coverage includes: +Dialect-specific v1.10.0 coverage includes: - **T-SQL:** mixed one-line and block `IF`/`WHILE` control flow (single statement and `BEGIN`/`END` bodies in one AST), labelled `GOTO` and labels @@ -258,6 +260,16 @@ comma-separated `FROM` list, an `APPLY` or tabular function, a `MERGE…USING` / `DELETE…USING` source, a recursive CTE, and a derived-table inner table all appear as source nodes. +Since v1.10.0, each query-bearing `SELECT` statement also gets column-level +analysis (README roadmap item 6 foundations): qualified references, aliases, +projections, CTE and derived-table scopes, and catalogue-backed wildcard +expansion produce exact input→output column bindings with source spans. An +unqualified reference that matches several sources is reported as ambiguous and +never invents a binding, and unsupported expressions (for example a scalar +subquery) become opaque with a region-scoped diagnostic. Multi-statement +temporary-table column flow and inter-object column flow remain on the roadmap +(v1.11.0). + Detection is automatic and can be overridden from the **Dialect** selector. When detection is uncertain and several dialects score equally, an explicit `dialect_ambiguous` diagnostic is reported along with the usual @@ -356,7 +368,7 @@ endorsed by draw.io. ### Quick answers -| Question | ProcFlow v1.9.0 behavior | +| Question | ProcFlow v1.10.0 behavior | |---|---| | Is SQL uploaded? | No. Analysis and rendering happen in the browser tab. | | Does it connect to a database? | No. There is no driver, connection string, or query execution. | @@ -382,6 +394,7 @@ dist/src/catalogue.js dist/src/dialects.js dist/src/lineage.js dist/src/ir.js +dist/src/columns.js dist/src/exporters.js dist/src/workspace.js dist/src/app.js @@ -400,7 +413,7 @@ import/export uses the browser download API, which also requires an explicit action. The catalogue module (`dist/src/catalogue.js`) parses pasted or imported metadata in memory only; it never reads or writes storage. -The SHA-256 of `vendor/mermaid/mermaid.min.js` in v1.9.0 is: +The SHA-256 of `vendor/mermaid/mermaid.min.js` in v1.10.0 is: ```text 61B335A46DF05A7CE1C98378F60E5F3E77A7FB608A1056997E8A649304A936D6 @@ -411,7 +424,7 @@ so the release checksum remains reproducible across operating systems. ### Guidance for security review -1. Review and pin the `v1.9.0` tag or its exact commit. +1. Review and pin the `v1.10.0` tag or its exact commit. 2. Verify the vendored Mermaid checksum. 3. Review the runtime files listed above. 4. Open the reviewed files locally or serve them from an approved internal @@ -445,7 +458,9 @@ and contains no automatic data-submission path. authoritative and omitted semicolons are split by control keywords and statement grammar. Exceptionally malformed batches can still produce imperfect splits. -- Query lineage is object-level rather than column-level. +- Query lineage is object-level; since v1.10.0 a single query statement also + reports column-level scopes and bindings, while multi-statement + temporary-table and inter-object column flow remain on the roadmap (v1.11.0). - Some vendor-specific table expressions might not be detected. - Temporary-table data flow is shown within one object; cross-object temp flow remains unresolved. @@ -454,8 +469,10 @@ and contains no automatic data-submission path. without a catalogue synonym, and unknown linked-server layouts stay external (with a `catalogue_partial` diagnostic where a plausible but unproven candidate exists) until the catalogue proves them. -- Columns are parsed and validated by the catalogue import but not yet used; - column lineage is scheduled for v1.10.0+. +- Columns are parsed and validated by the catalogue import and, since v1.10.0, + drive wildcard expansion and column bindings inside a single statement. + Column flow across statements, objects, and CTE/view boundaries is scheduled + for v1.11.0. - SSRS/RDL files are not imported in v1.9.0. - draw.io layout is deterministic for the documented graph classes at documented size limits; very large or non-planar graphs are laid out without @@ -524,9 +541,9 @@ Then open: - `http://127.0.0.1:8000/tests/ui.html` — browser interaction and local-runtime tests -The v1.9.0 baseline is: +The v1.10.0 baseline is: -- 208 golden and boundary assertions +- 209 golden and boundary assertions - 400 deterministic mutation cases - 22 browser interaction tests - 20 export-parity checks (10 fixtures × TD + LR), 11 layout-budget fixtures, @@ -537,12 +554,16 @@ The v1.9.0 baseline is: - 13 catalogue fixtures (JSON and line import, synonym / linked-server / cross-database verification, conservative conflict and partial diagnostics, export metadata, workspace round-trip) +- 18 column-lineage fixtures (qualified references, aliases, projections, + CTE and derived-table scopes, catalogue-backed wildcard expansion, ambiguous + and opaque column references with exact spans) Fixture-corpus accuracy metrics (attribution, unresolved-token, tail-unconsumed, fallback, opaque-dynamic, semantic-edge coverage, provenance, region-diagnostic-to-span, export-parity, export-traceability, layout-budget, -workspace, and catalogue pass-rate ratios) are published from the checked-in -golden corpus in [docs/metrics-v1.9.0.json](docs/metrics-v1.9.0.json). Generation +workspace, catalogue, and column pass-rate ratios) are published from the +checked-in golden corpus in +[docs/metrics-v1.10.0.json](docs/metrics-v1.10.0.json). Generation is deterministic and fixture-only — no user inputs or runtime telemetry are collected — and CI refuses to merge when the snapshot is stale. Regenerate with `npm run metrics:write`. @@ -580,6 +601,7 @@ docs/ ├── PR_NOTE_1.7.0.md ├── PR_NOTE_1.8.0.md ├── PR_NOTE_1.9.0.md +├── PR_NOTE_1.10.0.md ├── RELEASE_NOTE_1.1.0.md ├── RELEASE_NOTE_1.2.0.md ├── RELEASE_NOTE_1.3.0.md @@ -593,7 +615,8 @@ docs/ ├── RELEASE_NOTE_v1.7.0.md ├── RELEASE_NOTE_v1.8.0.md ├── RELEASE_NOTE_v1.9.0.md -└── metrics-v1.9.0.json # deterministic fixture-only accuracy metrics snapshot +├── RELEASE_NOTE_v1.10.0.md +└── metrics-v1.10.0.json # deterministic fixture-only accuracy metrics snapshot examples/ ├── dbo.v110_demo.sql # per-release outcome demos ├── dbo.v120_demo.sql @@ -603,7 +626,8 @@ examples/ ├── dbo.v160_demo.sql ├── dbo.v170_demo.sql # v1.7.0: clear deterministic exports demo ├── dbo.v180_demo.sql # v1.8.0: usable local workspace demo -└── dbo.v190_demo.sql # v1.9.0: resolve by catalogue demo +├── dbo.v190_demo.sql # v1.9.0: resolve by catalogue demo +└── dbo.v1100_demo.sql # v1.10.0: column lineage foundations demo scripts/ ├── file-smoke.mjs # dependency-free local-file release smoke test └── metrics.mjs # generate/verify the fixture-corpus metric snapshot @@ -614,6 +638,7 @@ src/ ├── dialects.ts # dialect detection and procedural parsing ├── lineage.ts # CTE and query dependency extraction ├── ir.ts # graphs, diagnostics, confidence, and estate analysis +├── columns.ts # v1.10.0: single-statement column scopes and bindings ├── exporters.ts # Mermaid, draw.io, and narration output ├── workspace.ts # opt-in persistence + presentation-only dependency filtering └── app.ts # browser UI and workspace interaction @@ -631,6 +656,7 @@ tests/ ├── parity.ts ├── workspace.ts ├── catalogue.ts +├── columns.ts # v1.10.0: column lineage foundations fixtures ├── tests.ts ├── fuzz.ts ├── ui-tests.ts @@ -669,13 +695,13 @@ Then verify: 3. Generated `dist/` files match their TypeScript sources. 4. The Mermaid SHA-256 matches the value in this README and the workflow. 5. `npm run metrics` reports the metric snapshot is current. -6. `RELEASE_NOTE_v1.9.0.md` matches the final tag contents. +6. `RELEASE_NOTE_v1.10.0.md` matches the final tag contents. 7. The complete archive opens locally with `index.html`, and the local-file smoke test reports the opt-in workspace assertion. -8. The tag is named `v1.9.0`. +8. The tag is named `v1.10.0`. -The release can then be created manually from the `v1.9.0` tag using -[RELEASE_NOTE_v1.9.0.md](docs/RELEASE_NOTE_v1.9.0.md). +The release can then be created manually from the `v1.10.0` tag using +[RELEASE_NOTE_v1.10.0.md](docs/RELEASE_NOTE_v1.10.0.md). ## Roadmap after v1.0.0 @@ -686,6 +712,10 @@ The release can then be created manually from the `v1.9.0` tag using 5. Accept database catalogue metadata for more accurate object resolution. **Delivered in v1.9.0.** 6. Add column-level lineage where it can be resolved safely. + **Foundations delivered in v1.10.0** (column scopes, bindings, projections, + CTE/derived-table scopes, and catalogue-backed wildcard expansion within one + statement); full column-flow pipelines through temp tables and object + boundaries are scheduled for v1.11.0. 7. Add optional local workspace persistence and dependency filtering. **Delivered in v1.8.0.** 8. Separate graph, transaction, and estate-analysis internals while preserving diff --git a/ROADMAP.md b/ROADMAP.md index 011877f..7a61c13 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -346,6 +346,8 @@ v1.11.0, item 4 → v1.12.0.** ### v1.10.0 — Column lineage foundations +**Delivered in v1.10.0.** + - **Ships:** column scopes and bindings for qualified references, aliases, projections, CTEs, derived tables, and catalogue-backed wildcard expansion; expression-level provenance within one query statement; explicit ambiguous diff --git a/dist/src/columns.js b/dist/src/columns.js new file mode 100644 index 0000000..cfba2f1 --- /dev/null +++ b/dist/src/columns.js @@ -0,0 +1,842 @@ +"use strict"; +/* proc>flow: column lineage foundations (v1.10.0) + Column scopes and bindings for qualified references, aliases, projections, + CTEs, derived tables, and catalogue-backed wildcard expansion; expression- + level provenance within one query statement; explicit ambiguous and opaque + column references. + + This module analyses a single query statement. It never invents a binding a + reviewer could not prove: an unqualified reference that matches several + sources is left unresolvable (`column_ambiguous`, no edge), and an expression + or reference that cannot be resolved statically becomes opaque with a + region-scoped `column_opaque` diagnostic. Multi-statement temporary-table + flow and inter-object column flow (v1.11.0) and the final column export + contract are deferred. */ +var COL_CLAUSE_START = S(['FROM', 'WHERE', 'GROUP', 'HAVING', 'ORDER', 'LIMIT', + 'OFFSET', 'FETCH', 'UNION', 'EXCEPT', 'INTERSECT', + 'INTO', 'FOR', 'OPTION', 'RETURNING']); +var COL_ARM_SEP = S(['UNION', 'EXCEPT', 'INTERSECT']); +var COL_JOIN_PREFIX = S(['JOIN', 'APPLY', 'CROSS', 'INNER', 'LEFT', 'RIGHT', + 'FULL', 'OUTER', 'LATERAL']); +/* Words inside an expression that are never column references. */ +var COL_REF_SKIP = S(['SELECT', 'WHERE', 'GROUP', 'HAVING', 'ORDER', 'LIMIT', + 'OFFSET', 'FETCH', 'UNION', 'EXCEPT', 'INTERSECT', 'INTO', 'FOR', 'OPTION', 'RETURNING', + 'BY', 'ASC', 'DESC', 'ALL', 'ANY', 'AND', 'OR', 'NOT', 'AS', 'ON', 'IN', 'IS', 'NULL', 'WHEN', + 'THEN', 'ELSE', 'END', 'CASE', 'BETWEEN', 'LIKE', 'ILIKE', 'SIMILAR', 'DISTINCT', 'TOP', + 'VALUE', 'VALUES', 'EXISTS', 'LATERAL', 'OVER', 'PARTITION', 'WINDOW', 'CURRENT', + 'ROW', 'ROWS', 'RANGE', 'SET', 'FROM', 'JOIN', 'USING', 'ARRAY', 'FILTER', 'WITHIN', + 'TRUE', 'FALSE', 'INTERVAL', 'COLLATE', + /* data types cast inside expressions */ + 'INT', 'INTEGER', 'BIGINT', 'SMALLINT', 'TINYINT', 'DECIMAL', 'NUMERIC', 'FLOAT', 'REAL', + 'DOUBLE', 'PRECISION', 'CHAR', 'NCHAR', 'VARCHAR', 'NVARCHAR', 'TEXT', 'CLOB', 'DATE', + 'DATETIME', 'DATETIME2', 'SMALLDATETIME', 'TIMESTAMP', 'TIME', 'BOOLEAN', 'BOOL', 'BIT', + 'BINARY', 'VARBINARY', 'BYTEA', 'UUID', 'GUID', 'MONEY', 'SMALLMONEY', 'JSON', 'XML', 'BLOB']); +/* CTE split that retains the explicit column list so CTE scopes can carry + provable columns (`WITH r(n) AS …` → r has exactly [n]). */ +function splitCtesColumn(toks) { + var res = { ctes: [], finalStart: 0 }; + if (!toks.length || toks[0].u !== 'WITH') + return res; + var i = 1; + if (toks[i] && toks[i].u === 'RECURSIVE') { + res.recursive = true; + i++; + } + while (i < toks.length) { + var nameTok = toks[i]; + if (!nameTok || nameTok.type !== 'word') + break; + var name = nameTok.v; + i++; + var colToks = []; + if (toks[i] && toks[i].v === '(') { + var d0 = 0; + while (i < toks.length) { + var tk = toks[i]; + if (tk.v === '(') + d0++; + else if (tk.v === ')') { + d0--; + if (d0 === 0) { + i++; + break; + } + } + else if (d0 === 1) + colToks.push(tk); + i++; + } + } + if (!(toks[i] && toks[i].u === 'AS')) + break; + i++; + while (toks[i] && ['MATERIALIZED', 'NOT'].indexOf(toks[i].u) >= 0) + i++; + if (!(toks[i] && toks[i].v === '(')) + break; + var start = i, d = 0; + while (i < toks.length) { + if (toks[i].v === '(') + d++; + else if (toks[i].v === ')') { + d--; + if (d === 0) { + i++; + break; + } + } + i++; + } + var body = toks.slice(start + 1, i - 1); + res.ctes.push({ name: name, colToks: colToks, body: body, bodySpan: spanOfTokens(body) }); + if (toks[i] && toks[i].v === ',') { + i++; + continue; + } + break; + } + res.finalStart = i; + return res; +} +function colNamesOf(toks) { + var out = []; + for (var i = 0; i < toks.length; i++) { + var t = toks[i]; + if (t.type === 'word' && !(i > 0 && toks[i - 1].v === '.') && + t.v.charAt(0) !== '@' && COL_REF_SKIP[t.u] === undefined) { + out.push(t.v); + } + } + return out; +} +function catalogueColumnsFor(cat, tableName) { + if (!cat || !cat.columns || !cat.columns.length || !tableName) + return []; + var resolved = resolveCatalogue(cat, tableName); + var canonical = resolved.resolution === 'verified' && resolved.resolvedName + ? resolved.resolvedName : tableName; + var norm = normalizeCatalogueName(canonical); + var out = [], seen = {}; + cat.columns.forEach(function (c) { + if (normalizeCatalogueName(c.table) !== norm) + return; + var n = normalizeCatalogueName(c.name); + if (n && !seen[n]) { + seen[n] = 1; + out.push(c.name); + } + }); + return out; +} +function colTokensInSpan(toks, span) { + if (!span) + return 0; + var n = 0; + for (var i = 0; i < toks.length; i++) { + var t = toks[i]; + if (t.pos < span.end && t.end > span.start) + n++; + } + return n; +} +function colSplitArms(toks) { + var arms = [], cur = [], d = 0; + for (var i = 0; i < toks.length; i++) { + var t = toks[i]; + if (t.v === '(') { + d++; + cur.push(t); + continue; + } + if (t.v === ')') { + d--; + cur.push(t); + continue; + } + if (d === 0 && COL_ARM_SEP[t.u] === 1) { + arms.push(cur); + cur = []; + continue; + } + cur.push(t); + } + arms.push(cur); + return arms; +} +/* Locate the projection and FROM regions of one SELECT arm. */ +function colRegionsOf(toks) { + var proj = (function () { + var j = 1, guard = 0; + while (j < toks.length && guard++ < 40) { + var u = toks[j].u; + if (u === 'DISTINCT' || u === 'ALL') { + j++; + continue; + } + if (u === 'TOP') { + j++; + if (toks[j] && toks[j].v === '(') { + var dd = 0; + while (j < toks.length) { + if (toks[j].v === '(') + dd++; + else if (toks[j].v === ')') { + dd--; + if (dd === 0) { + j++; + break; + } + } + j++; + } + } + else { + if (toks[j] && toks[j].type === 'num') + j++; + if (toks[j] && toks[j].u === 'PERCENT') + j++; + } + continue; + } + break; + } + return j; + })(); + var projStart = proj, d2 = 0, projEnd = toks.length, fromStart = -1, firstBoundary = toks.length; + for (var k = proj; k < toks.length && d2 >= 0; k++) { + var t2 = toks[k]; + if (t2.v === '(') + d2++; + else if (t2.v === ')') + d2--; + if (d2 === 0 && k >= proj && COL_CLAUSE_START[t2.u] === 1) { + if (firstBoundary === toks.length) + firstBoundary = k; + if (t2.u === 'FROM') { + fromStart = k + 1; + break; + } + /* INTO / FOR / OPTION may be followed by FROM — keep scanning */ + } + } + projEnd = firstBoundary; + var fromEnd = toks.length; + if (fromStart >= 0) { + var d3 = 0; + for (var m = fromStart; m < toks.length; m++) { + var t3 = toks[m]; + if (t3.v === '(') + d3++; + else if (t3.v === ')') + d3--; + if (d3 === 0 && m > fromStart && COL_CLAUSE_START[t3.u] === 1) { + fromEnd = m; + break; + } + } + } + return { proj: [projStart, projEnd < projStart ? toks.length : projEnd], + from: [fromStart, fromStart < 0 ? toks.length : fromEnd] }; +} +/* Parse the FROM region into scope sources; returns ON/USING predicate regions + to scan as references. */ +function colParseSources(fromToks, ctx) { + var sources = [], predicates = []; + var i = 0, guard = 0; + function predEnd(after) { + var d = 0; + for (var k = after; k < fromToks.length; k++) { + var t = fromToks[k]; + if (t.v === '(') + d++; + else if (t.v === ')') + d--; + if (d === 0 && k > after && (COL_CLAUSE_START[t.u] === 1 || + (t.type === 'word' && COL_JOIN_PREFIX[t.u] === 1 && t.u !== 'CASCADE') || t.v === ',')) + return k; + } + return fromToks.length; + } + while (i < fromToks.length && guard++ < 400) { + var t = fromToks[i]; + if (t.type === 'word' && COL_JOIN_PREFIX[t.u] === 1) { + i++; + continue; + } + if (t.v === ',') { + i++; + continue; + } + var source = null; + var start = i; + if (t.v === '(') { + var d = 1, j = i + 1, innerStart = j; + while (j < fromToks.length && d > 0) { + if (fromToks[j].v === '(') + d++; + else if (fromToks[j].v === ')') + d--; + j++; + } + var inner = fromToks.slice(innerStart, j - 1); + var k2 = j; + while (k2 < fromToks.length && fromToks[k2].u === 'AS') + k2++; + var alias = null; + var colAliasTok = null; + if (k2 < fromToks.length && fromToks[k2].type === 'word' && + COL_CLAUSE_START[fromToks[k2].u] === undefined) { + alias = fromToks[k2].v; + k2++; + if (fromToks[k2] && fromToks[k2].v === '(') { + var dd = 1, g = k2 + 1; + var innerAlias = []; + while (g < fromToks.length && dd > 0) { + if (fromToks[g].v === '(') + dd++; + else if (fromToks[g].v === ')') + dd--; + if (dd >= 1) + innerAlias.push(fromToks[g]); + g++; + } + colAliasTok = innerAlias; + k2 = g; + } + } + var headT = inner[0] ? inner[0].u : ''; + var kind = 'derived'; + var derivedCols = []; + if (headT === 'SELECT') { + var innerRes = colAnalyseToks(inner, { cteColumns: ctx.cteColumns, + catalogue: ctx.catalogue, dialect: ctx.dialect, depth: ctx.depth + 1 }); + if (innerRes) + derivedCols = innerRes.outputs.map(function (o) { return o.name; }); + } + else if (headT === 'VALUES') { + kind = 'opaque'; + } + else { + kind = 'opaque'; + } + var columns = derivedCols.slice(); + if (colAliasTok && colAliasTok.length) { + columns = colNamesOf(colAliasTok); + if (headT !== 'SELECT' && columns.length) + kind = 'derived'; + } + source = { key: alias || '(derived)', name: alias || '(derived)', alias: alias, + kind: kind, columns: columns, + columnsKnown: kind === 'derived' || columns.length > 0, + span: spanOfTokens(fromToks.slice(start, k2)) }; + i = k2; + } + else { + var q = [], kq = i; + while (kq < fromToks.length && fromToks[kq].type === 'word') { + q.push(fromToks[kq].v); + if (fromToks[kq + 1] && fromToks[kq + 1].v === '.' && fromToks[kq + 2] && fromToks[kq + 2].type === 'word') { + kq += 2; + continue; + } + break; + } + if (!q.length) { + i++; + continue; + } + var name = q.join('.'); + var k3 = kq + 1; + while (k3 < fromToks.length && ['FULLTEXT', 'WINDOW'].indexOf(fromToks[k3].u) >= 0) + k3++; + var alias2 = null; + var colAlias2 = null; + if (fromToks[k3] && fromToks[k3].u === 'AS') + k3++; + if (fromToks[k3] && fromToks[k3].type === 'word' && + COL_CLAUSE_START[fromToks[k3].u] === undefined && + COL_JOIN_PREFIX[fromToks[k3].u] === undefined && fromToks[k3].v !== ';') { + alias2 = fromToks[k3].v; + k3++; + if (fromToks[k3] && fromToks[k3].v === '(') { + var dd2 = 1, g2 = k3 + 1, innerAlias2 = []; + while (g2 < fromToks.length && dd2 > 0) { + if (fromToks[g2].v === '(') + dd2++; + else if (fromToks[g2].v === ')') + dd2--; + if (dd2 >= 1) + innerAlias2.push(fromToks[g2]); + g2++; + } + colAlias2 = innerAlias2; + k3 = g2; + } + } + var kind2 = 'table'; + var cols2 = []; + var uppers = name.toUpperCase(); + if (ctx.cteColumns && ctx.cteColumns[uppers]) { + kind2 = 'cte'; + cols2 = ctx.cteColumns[uppers].slice(); + } + else if (TABULAR_FUNCS[uppers] === 1) { + kind2 = 'tabfunc'; + } + else if (ctx.catalogue) { + cols2 = catalogueColumnsFor(ctx.catalogue, name); + } + if (colAlias2 && colAlias2.length) + cols2 = colNamesOf(colAlias2); + source = { key: alias2 || name, name: name, alias: alias2, kind: kind2, + columns: cols2, + columnsKnown: kind2 === 'cte' || cols2.length > 0 || + (kind2 === 'tabfunc' && !!(colAlias2 && colAlias2.length)), + span: spanOfTokens(fromToks.slice(start, k3)) }; + i = k3; + } + if (source) + sources.push(source); + if (i < fromToks.length && (fromToks[i].u === 'ON' || fromToks[i].u === 'USING')) { + var isUsing = fromToks[i].u === 'USING' && fromToks[i + 1] && fromToks[i + 1].v === '('; + var predE = predEnd(i + 1); + var predToks = fromToks.slice(i + 1, predE); + if (isUsing) { + var pu = [], dd3 = 1, g3 = 1; + while (g3 < predToks.length && dd3 > 0) { + if (predToks[g3].v === '(') + dd3++; + else if (predToks[g3].v === ')') + dd3--; + if (dd3 >= 1) + pu.push(predToks[g3]); + g3++; + } + predToks = pu; + } + if (predToks.length) + predicates.push(predToks); + i = predE; + } + else if (i < fromToks.length && fromToks[i].v === ',') { + i++; + } + } + return { sources: sources, predicates: predicates }; +} +function colBind(qualifier, col, span, sources, diagnostics) { + var colUp = col.toUpperCase(); + if (qualifier) { + var qUp = qualifier.toUpperCase(); + var matches = sources.filter(function (s) { return s.key.toUpperCase() === qUp; }); + if (!matches.length) { + diagnostics.push({ severity: 'warning', code: 'column_opaque', + message: 'Column reference "' + qualifier + '.' + col + '" does not match any source in this query; its binding is opaque. Check the source alias or table name.', + span: span, scope: 'region' }); + return { resolution: 'opaque', source: null }; + } + if (matches.length > 1) { + diagnostics.push({ severity: 'warning', code: 'column_ambiguous', + message: 'Column reference "' + qualifier + '.' + col + '" matches more than one source; the binding is left unresolved.', + span: span, scope: 'region' }); + return { resolution: 'ambiguous', source: null }; + } + var src = matches[0]; + if (src.columnsKnown) { + var known = src.columns.some(function (c) { return c.toUpperCase() === colUp; }); + if (!known) { + diagnostics.push({ severity: 'warning', code: 'column_opaque', + message: 'Column "' + col + '" is not among the known columns of "' + src.name + '"; the binding is opaque.', + span: span, scope: 'region' }); + return { resolution: 'opaque', source: null }; + } + } + return { resolution: 'exact', source: src.key }; + } + var candidates = sources.filter(function (s) { + if (!s.columnsKnown) + return true; + return s.columns.some(function (c) { return c.toUpperCase() === colUp; }); + }); + if (candidates.length === 1) + return { resolution: 'exact', source: candidates[0].key }; + if (candidates.length === 0) { + diagnostics.push({ severity: 'warning', code: 'column_opaque', + message: 'Column reference "' + col + '" matches no provable column in this query; the binding is opaque.', + span: span, scope: 'region' }); + return { resolution: 'opaque', source: null }; + } + var names = candidates.slice(0, 4).map(function (s) { return '"' + s.key + '"'; }).join(', '); + diagnostics.push({ severity: 'warning', code: 'column_ambiguous', + message: 'Column reference "' + col + '" is ambiguous: it matches ' + candidates.length + + ' sources (' + names + '…); no binding is invented.', + span: span, scope: 'region' }); + return { resolution: 'ambiguous', source: null }; +} +/* Scan an expression region for column references, binding each against the + scope. Scalar subqueries are opaque and skipped. */ +function colScanRefs(toks, sources, diagnostics) { + var refs = [], bound = []; + var opaqueSpans = []; + function addRef(qualifier, name, span) { + var res = colBind(qualifier, name, span, sources, diagnostics); + refs.push({ qualifier: qualifier, name: name, span: span, resolution: res.resolution }); + bound.push({ qualifier: qualifier, name: name, span: span, resolution: res.resolution, + source: res.source }); + } + var i = 0; + while (i < toks.length) { + var t = toks[i]; + if (t.v === '(') { + if (toks[i + 1] && toks[i + 1].u === 'SELECT') { + var d = 1, e = i + 1; + while (e < toks.length && d > 0) { + if (toks[e].v === '(') + d++; + else if (toks[e].v === ')') + d--; + e++; + } + var subSpan = { start: t.pos, end: toks[e - 1].end }; + opaqueSpans.push(subSpan); + diagnostics.push({ severity: 'warning', code: 'column_opaque', + message: 'A subquery expression cannot be resolved at column level in this version; its binding is opaque.', + span: subSpan, scope: 'region' }); + i = e; + continue; + } + i++; + continue; + } + if (t.v === '*' || t.type !== 'word') { + i++; + continue; + } + var u = t.u; + if (t.v.charAt(0) === '@') { + i++; + continue; + } + if (COL_REF_SKIP[u] === 1) { + i++; + continue; + } + if (toks[i + 1] && toks[i + 1].v === '(') { + i++; + continue; + } /* function call */ + if (!(i > 0 && toks[i - 1].v === '.')) { + if (toks[i + 1] && toks[i + 1].v === '.' && toks[i + 2] && toks[i + 2].type === 'word') { + var parts = [t.v], k = i + 2; + while (toks[k + 1] && toks[k + 1].v === '.' && toks[k + 2] && toks[k + 2].type === 'word') { + parts.push(toks[k].v); + k += 2; + } + parts.push(toks[k].v); + var last = parts[parts.length - 1]; + var q = parts.slice(0, parts.length - 1).join('.'); + addRef(q, last, { start: t.pos, end: toks[k].end }); + i = k + 1; + continue; + } + addRef(null, t.v, { start: t.pos, end: t.end }); + } + i++; + } + return { refs: refs, bound: bound, opaqueSpans: opaqueSpans }; +} +function colParseItems(projToks) { + var items = []; + var cur = [], d = 0; + projToks.forEach(function (t) { + if (t.v === '(') + d++; + else if (t.v === ')') + d--; + if (t.v === ',' && d === 0) { + items.push({ expr: cur, alias: null, span: null }); + cur = []; + return; + } + cur.push(t); + }); + items.push({ expr: cur, alias: null, span: null }); + var out = []; + items.forEach(function (item) { + var toks = item.expr; + if (!toks.length) + return; + var alias = null, expr = toks.slice(); + var asIx = -1, d2 = 0; + for (var i = 0; i < toks.length; i++) { + if (toks[i].v === '(') + d2++; + else if (toks[i].v === ')') + d2--; + if (d2 === 0 && toks[i].u === 'AS') { + asIx = i; + break; + } + } + if (asIx >= 0 && toks[asIx + 1]) { + alias = toks[asIx + 1].v; + expr = toks.slice(0, asIx); + } + else if (toks.length >= 2) { + var last = toks[toks.length - 1]; + var prev = toks[toks.length - 2]; + if (last.type === 'word' && prev.v !== '.' && COL_REF_SKIP[last.u] === undefined && + COL_CLAUSE_START[last.u] === undefined && last.v !== ';') { + alias = last.v; + expr = toks.slice(0, toks.length - 1); + } + } + out.push({ expr: expr, alias: alias, span: spanOfTokens(toks) }); + }); + return out; +} +function colOutputName(expr, refs) { + if (!expr.length) + return ''; + if (expr.length === 1) + return expr[0].v; + var lastWord = null; + for (var i = 0; i < expr.length; i++) { + var t = expr[i]; + if (t.type === 'word' && COL_REF_SKIP[t.u] === undefined && + !(expr[i + 1] && expr[i + 1].v === '(')) + lastWord = t.v; + } + if (lastWord) + return lastWord; + return clip(joinToks(expr, 40), 40); +} +function colSourceByKey(sources, key) { + var up = key.toUpperCase(); + for (var i = 0; i < sources.length; i++) + if (sources[i].key.toUpperCase() === up) + return sources[i]; + return null; +} +/* Analyse one SELECT arm. */ +function colAnalyseArm(toks, ctx, first) { + if (!toks.length || toks[0].u !== 'SELECT') + return null; + var regions = colRegionsOf(toks); + var projToks = toks.slice(regions.proj[0], regions.proj[1]); + var fromToks = regions.from[0] >= 0 ? toks.slice(regions.from[0], regions.from[1]) : []; + var diagnostics = []; + var parsed = colParseSources(fromToks, ctx); + var sources = parsed.sources; + var references = []; + var wildcards = []; + var opaqueCount = 0; + var outputs = []; + function scanRegion(region) { + if (!region || !region.length) + return; + var scan = colScanRefs(region, sources, diagnostics); + references = references.concat(scan.refs); + scan.opaqueSpans.forEach(function (sp) { opaqueCount += Math.max(1, colTokensInSpan(toks, sp)); }); + } + if (regions.from[0] >= 0) { + parsed.predicates.forEach(function (pred) { scanRegion(pred); }); + var d = 0; + for (var cl = regions.from[1]; cl < toks.length; cl++) { + var t = toks[cl]; + if (t.type !== 'word') { + if (t.v === '(') + d++; + else if (t.v === ')') + d--; + continue; + } + if (d > 0) + continue; + if (COL_CLAUSE_START[t.u] === 1 && + ['WHERE', 'GROUP', 'HAVING', 'ORDER', 'LIMIT', 'OFFSET', 'FETCH'].indexOf(t.u) >= 0) { + var dd = 0, e = cl + 1; + while (e < toks.length) { + if (toks[e].v === '(') + dd++; + else if (toks[e].v === ')') + dd--; + if (dd === 0 && e > cl + 1 && ((toks[e].type === 'word' && COL_CLAUSE_START[toks[e].u] === 1) || + toks[e].v === ',')) + break; + e++; + } + while (e > cl + 1 && toks[e - 1].v === ',') + e--; + scanRegion(toks.slice(cl + 1, e)); + cl = e - 1; + } + } + } + var items = colParseItems(projToks); + items.forEach(function (item) { + var itemSpan = item.span || spanOfTokens(item.expr); + var starCount = 0; + for (var w = 0; w < item.expr.length; w++) { + var wt = item.expr[w]; + if (wt.v !== '*') + continue; + /* a `*` is a wildcard only at the start of an item or after '.'; + anywhere else it is the multiplication operator */ + if (w > 0 && item.expr[w - 1].v !== '.') + continue; + starCount++; + var srcName = null; + var exp = null; + if (w >= 1 && item.expr[w - 1].v === '.' && item.expr[w - 2] && item.expr[w - 2].type === 'word') { + srcName = item.expr[w - 2].v; + exp = colSourceByKey(sources, srcName); + if (!exp) { + diagnostics.push({ severity: 'warning', code: 'column_opaque', + message: 'Wildcard "' + srcName + '.*" does not match any source; it is not expanded.', + span: { start: item.expr[w - 2].pos, end: wt.end }, scope: 'region' }); + } + } + var span = { start: wt.pos, end: wt.end }; + var wc = { source: exp ? exp.key : null, span: span, expanded: false, columns: [] }; + if (exp && exp.columnsKnown) { + wc.expanded = true; + wc.columns = exp.columns.slice(); + } + else if (!exp) { + if (sources.length && sources.every(function (s) { return s.columnsKnown; })) { + wc.expanded = true; + var cols = [], seen = {}; + sources.forEach(function (s) { + s.columns.forEach(function (c) { + var cu = c.toUpperCase(); + if (!seen[cu]) { + seen[cu] = 1; + cols.push(c); + } + }); + }); + wc.columns = cols; + } + } + wildcards.push(wc); + if (wc.expanded) { + var owner = exp; + if (!owner && sources.length === 1) + owner = sources[0]; + if (owner) { + owner.columns.forEach(function (c) { + if (exp) { /* qualified expansion: provable per-source columns */ + outputs.push({ name: c, label: owner.key + '.*', span: itemSpan, resolution: 'exact', + bindings: [{ source: owner.key, column: c, span: span }] }); + } + else { + outputs.push({ name: c, label: '*', span: itemSpan, resolution: 'exact', + bindings: [{ source: owner.key, column: c, span: span }] }); + } + }); + } + } + } + if (starCount) + return; + if (!item.expr.length) + return; + var scan = colScanRefs(item.expr, sources, diagnostics); + references = references.concat(scan.refs); + var resolution = 'exact'; + var bindings = []; + var reason = undefined; + scan.bound.forEach(function (b) { + if (b.resolution === 'opaque') { + resolution = 'opaque'; + reason = 'unsupported or unresolvable expression'; + } + else if (b.resolution === 'ambiguous' && resolution === 'exact') { + resolution = 'ambiguous'; + reason = 'ambiguous column reference; no binding invented'; + } + if (b.resolution === 'exact' && b.source && b.span) + bindings.push({ source: b.source, column: b.name, span: b.span }); + }); + if (scan.opaqueSpans.length) { + resolution = 'opaque'; + reason = 'subquery expression is opaque'; + } + scan.opaqueSpans.forEach(function (sp) { opaqueCount += Math.max(1, colTokensInSpan(toks, sp)); }); + var name = item.alias || colOutputName(item.expr, scan.refs); + outputs.push({ name: name, label: item.alias || clip(joinToks(item.expr, 40), 40), + span: itemSpan, bindings: bindings, resolution: resolution, + reason: reason }); + }); + return { outputs: outputs, sources: sources, references: references, + wildcards: wildcards, opaqueCount: opaqueCount, diagnostics: diagnostics }; +} +/* Analyse one query (WITH … SELECT or plain SELECT) down to column level. */ +function colAnalyseToks(toks, ctx) { + if (!toks.length) + return null; + if (ctx.depth > 8) + return null; + var split = splitCtesColumn(toks); + var diagnostics = []; + var references = []; + var wildcards = []; + var opaqueCount = 0; + var sourcesAll = []; + var outputs = []; + var cteMap = {}; + if (ctx.cteColumns) + Object.keys(ctx.cteColumns).forEach(function (k) { cteMap[k] = ctx.cteColumns[k]; }); + split.ctes.forEach(function (cte) { + var child = { cteColumns: cteMap, catalogue: ctx.catalogue, + dialect: ctx.dialect, depth: ctx.depth + 1 }; + var inner = colAnalyseToks(cte.body, child); + var cols = cte.colToks && cte.colToks.length + ? colNamesOf(cte.colToks) + : ((inner && inner.outputs.map(function (o) { return o.name; })) || []); + cteMap[cte.name.toUpperCase()] = cols; + if (inner) { + references = references.concat(inner.references); + wildcards = wildcards.concat(inner.wildcards); + opaqueCount += inner.opaqueCount; + inner.diagnostics.forEach(function (d) { diagnostics.push(d); }); + inner.sources.forEach(function (s) { if (!colSourceByKey(sourcesAll, s.key)) + sourcesAll.push(s); }); + } + }); + var finalToks = toks.slice(split.finalStart); + if (!finalToks.length || finalToks[0].u !== 'SELECT') + return null; + var arms = colSplitArms(finalToks); + var firstDone = false; + for (var a = 0; a < arms.length; a++) { + var arm = colAnalyseArm(arms[a], { cteColumns: cteMap, catalogue: ctx.catalogue, + dialect: ctx.dialect, depth: ctx.depth + 1 }, a === 0); + if (!arm) + continue; + references = references.concat(arm.references); + wildcards = wildcards.concat(arm.wildcards); + opaqueCount += arm.opaqueCount; + arm.diagnostics.forEach(function (d) { diagnostics.push(d); }); + arm.sources.forEach(function (s) { if (!colSourceByKey(sourcesAll, s.key)) + sourcesAll.push(s); }); + if (!firstDone) { + outputs = arm.outputs; + firstDone = true; + } + } + return { sources: sourcesAll, outputs: outputs, wildcards: wildcards, + references: references, tokensConsumed: toks.length, + tokensOpaque: opaqueCount, opaqueCount: opaqueCount, + diagnostics: diagnostics }; +} +/* Public entry point: analyse one query statement's column lineage. Returns + null when the tokens do not represent a SELECT query. */ +function analyseColumns(toks, opts) { + opts = opts || {}; + var ctx = { cteColumns: {}, catalogue: opts.catalogue || null, + dialect: opts.dialect, depth: 0 }; + return colAnalyseToks(toks || [], ctx); +} +//# sourceMappingURL=columns.js.map \ No newline at end of file diff --git a/dist/src/columns.js.map b/dist/src/columns.js.map new file mode 100644 index 0000000..633db20 --- /dev/null +++ b/dist/src/columns.js.map @@ -0,0 +1 @@ +{"version":3,"file":"columns.js","sourceRoot":"","sources":["../../src/columns.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/src/ir.js b/dist/src/ir.js index 902c4ae..88892bf 100644 --- a/dist/src/ir.js +++ b/dist/src/ir.js @@ -2198,6 +2198,26 @@ function analyse(sql, opts) { var tempFlowEdges = (graph.stats && graph.stats.dataflow) || 0; for (var tfi = 0; tfi < tempFlowEdges; tfi++) trackC('temp_flow', true); + /* v1.10.0 — column lineage foundations. Every query-bearing SELECT statement + is analysed at column level: scopes and bindings plus explicit ambiguous + and opaque column references, surfaced as region-scoped diagnostics. + Unsupported or unresolved references never invent a binding. */ + var columnLineages = []; + walkAst(ast, function (st) { + if (st.type !== 'stmt' || !st.toks || !st.toks.length) + return; + var csplit = splitCTEs(st.toks); + var cwork = csplit.ctes.length || csplit.finalStart > 0 + ? st.toks.slice(csplit.finalStart) : st.toks; + var chead = cwork[0] ? cwork[0].u : ''; + if (chead !== 'SELECT') + return; + var cl = analyseColumns(st.toks, { catalogue: opts.catalogue, dialect: dialect }); + if (!cl) + return; + columnLineages.push(cl); + cl.diagnostics.forEach(function (d) { diagnostics.push(d); }); + }, 0); return { dialect: dialect, detected: det, confidence: confidence, confidenceFormulaVersion: confidenceFormulaVersion, confidenceSignals: confidenceSignals, @@ -2206,6 +2226,7 @@ function analyse(sql, opts) { diagnostics: diagnostics, header: header, ast: ast, mode: selectedMode, graph: selected, stats: selected.stats, mermaid: toMermaid(selected, opts.dir || 'TD'), - attribution: attribution, constructCoverage: constructCoverage }; + attribution: attribution, constructCoverage: constructCoverage, + columns: columnLineages }; } //# sourceMappingURL=ir.js.map \ No newline at end of file diff --git a/dist/src/ir.js.map b/dist/src/ir.js.map index 23053a2..1e813c2 100644 --- a/dist/src/ir.js.map +++ b/dist/src/ir.js.map @@ -1 +1 @@ -{"version":3,"file":"ir.js","sourceRoot":"","sources":["../../src/ir.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ir.js","sourceRoot":"","sources":["../../src/ir.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/tests/columns.js b/dist/tests/columns.js new file mode 100644 index 0000000..4390591 --- /dev/null +++ b/dist/tests/columns.js @@ -0,0 +1,348 @@ +"use strict"; +/* proc>flow v1.10.0 — column lineage foundations. + Fixtures assert exact input→output mappings and spans for qualified + references, aliases, projections, CTEs, derived tables, and catalogue-backed + wildcard expansion; that ambiguity never invents a column binding; and that + unsupported expressions become opaque with region-scoped diagnostics. + Multi-statement temp-table and inter-object column flow (v1.11.0) is out of + scope here; every fixture is a single query statement. + + After this suite runs, PROCFLOW_COLUMN_PASS and PROCFLOW_COLUMN_RESULT gate + the golden suite (tests/tests.ts) and feed the fixture-corpus metrics. */ +(function () { + var results = []; + function record(name, pass, detail) { + results.push({ name: name, pass: pass, detail: pass ? '' : detail }); + } + function hasDiag(list, code) { + return (list || []).some(function (d) { return d.code === code; }); + } + var PROCFLOW_COLUMN_FIXTURES = [ + { + name: 'qualified references, aliases, and JOIN predicates', + dialect: 'tsql', + sql: 'SELECT s.id AS sid, s.name, sc.name AS school FROM dbo.student s JOIN dbo.school sc ON sc.id = s.school_id;', + expect: { + sourceKeys: ['s', 'sc'], + outputs: [ + { name: 'sid', resolution: 'exact', bindings: ['s.id'], spanText: 's.id AS sid' }, + { name: 'name', resolution: 'exact', bindings: ['s.name'], spanText: 's.name' }, + { name: 'school', resolution: 'exact', bindings: ['sc.name'], spanText: 'sc.name AS school' } + ], + refs: [ + { text: 's.id', resolution: 'exact' }, + { text: 'sc.id', resolution: 'exact' }, + { text: 's.school_id', resolution: 'exact' } + ], + noDiagnostics: true + } + }, + { + name: 'unqualified reference to a single source binds exactly', + dialect: 'tsql', + sql: 'SELECT id FROM dbo.student;', + expect: { + outputs: [{ name: 'id', resolution: 'exact', bindings: ['dbo.student.id'] }], + refs: [{ text: 'id', resolution: 'exact' }], + noDiagnostics: true + } + }, + { + name: 'ambiguous unqualified reference invents no binding', + dialect: 'tsql', + sql: 'SELECT id FROM dbo.a a JOIN dbo.b b ON a.id = b.aid;', + expect: { + outputs: [{ name: 'id', resolution: 'ambiguous', bindings: [] }], + refs: [{ text: 'id', resolution: 'ambiguous' }], + diagnostics: ['column_ambiguous'] + } + }, + { + name: 'expression-level provenance maps every referenced column', + dialect: 'tsql', + sql: 'SELECT s.a + s.b AS total, s.a * 2 AS doubled, COUNT(*) AS n FROM dbo.t s;', + expect: { + outputs: [ + { name: 'total', resolution: 'exact', bindings: ['s.a', 's.b'], spanText: 's.a + s.b AS total' }, + { name: 'doubled', resolution: 'exact', bindings: ['s.a'] }, + { name: 'n', resolution: 'exact', bindings: [] } + ], + refs: [ + { text: 's.a', resolution: 'exact' }, + { text: 's.b', resolution: 'exact' } + ], + noDiagnostics: true + } + }, + { + name: 'CTE scopes carry explicit and computed column lists', + dialect: 'tsql', + sql: 'WITH c(i, j) AS (SELECT 1, 2), d AS (SELECT i AS a, j AS b FROM c) SELECT a, b FROM d;', + expect: { + sourceOf: { key: 'd', kind: 'cte', columns: ['a', 'b'] }, + outputs: [ + { name: 'a', resolution: 'exact', bindings: ['d.a'] }, + { name: 'b', resolution: 'exact', bindings: ['d.b'] } + ], + noDiagnostics: true + } + }, + { + name: 'derived-table inner sources provide the column scope', + dialect: 'tsql', + sql: 'SELECT x.id, x.name FROM (SELECT id, name FROM dbo.inner) x;', + expect: { + sourceOf: { key: 'x', kind: 'derived', columns: ['id', 'name'] }, + outputs: [ + { name: 'id', resolution: 'exact', bindings: ['x.id'] }, + { name: 'name', resolution: 'exact', bindings: ['x.name'] } + ], + noDiagnostics: true + } + }, + { + name: 'catalogue-backed wildcard expansion (qualified)', + dialect: 'tsql', + catalogue: 'dbo.student TABLE\nCOL dbo.student.Id\nCOL dbo.student.Name\nCOL dbo.student.Grade', + sql: 'SELECT s.* FROM dbo.student s;', + expect: { + wildcards: [{ source: 's', expanded: true, columns: ['Id', 'Name', 'Grade'] }], + outputs: [ + { name: 'Id', resolution: 'exact', bindings: ['s.Id'] }, + { name: 'Name', resolution: 'exact', bindings: ['s.Name'] }, + { name: 'Grade', resolution: 'exact', bindings: ['s.Grade'] } + ], + noDiagnostics: true + } + }, + { + name: 'catalogue-backed wildcard expansion (bare star)', + dialect: 'tsql', + catalogue: 'dbo.student TABLE\nCOL dbo.student.Id\nCOL dbo.student.Name', + sql: 'SELECT * FROM dbo.student;', + expect: { + wildcards: [{ source: null, expanded: true, columns: ['Id', 'Name'] }], + outputs: [ + { name: 'Id', resolution: 'exact', bindings: ['dbo.student.Id'] }, + { name: 'Name', resolution: 'exact', bindings: ['dbo.student.Name'] } + ], + noDiagnostics: true + } + }, + { + name: 'wildcard without catalogue stays unexpanded', + dialect: 'tsql', + sql: 'SELECT t.* FROM dbo.student t;', + expect: { + wildcards: [{ source: 't', expanded: false, columns: [] }], + outputCount: 0, + noDiagnostics: true + } + }, + { + name: 'scalar subquery projection is opaque with a region diagnostic', + dialect: 'tsql', + sql: 'SELECT s.id, (SELECT MAX(x) FROM dbo.meta) AS latest FROM dbo.student s;', + expect: { + outputs: [ + { name: 'id', resolution: 'exact', bindings: ['s.id'] }, + { name: 'latest', resolution: 'opaque', bindings: [] } + ], + diagnostics: ['column_opaque'] + } + }, + { + name: 'reference to a column outside a provable scope is opaque', + dialect: 'tsql', + sql: 'WITH c(i) AS (SELECT 1) SELECT c.nope FROM c;', + expect: { + outputs: [{ name: 'nope', resolution: 'opaque', bindings: [] }], + diagnostics: ['column_opaque'] + } + }, + { + name: 'predicate references bind with spans inside WHERE clauses', + dialect: 'tsql', + sql: 'SELECT s.id FROM dbo.student s WHERE s.active = 1 AND s.school_id IN (1, 2);', + expect: { + outputs: [{ name: 'id', resolution: 'exact', bindings: ['s.id'] }], + refs: [ + { text: 's.id', resolution: 'exact' }, + { text: 's.active', resolution: 'exact' }, + { text: 's.school_id', resolution: 'exact' } + ], + noDiagnostics: true + } + }, + { + name: 'recursive CTE binds its recursion column exactly', + dialect: 'tsql', + sql: 'WITH r(n) AS (SELECT 1 UNION ALL SELECT n + 1 FROM r WHERE n < 10) SELECT n FROM r;', + expect: { + outputs: [{ name: 'n', resolution: 'exact', bindings: ['r.n'] }], + refs: [{ text: 'n', resolution: 'exact' }], + noDiagnostics: true + } + }, + { + name: 'SELECT DISTINCT TOP projection region', + dialect: 'tsql', + sql: 'SELECT DISTINCT TOP 5 s.id FROM dbo.student s ORDER BY s.id;', + expect: { + outputs: [{ name: 'id', resolution: 'exact', bindings: ['s.id'] }], + noDiagnostics: true + } + }, + { + name: 'SELECT … INTO binds the projected columns', + dialect: 'tsql', + sql: 'SELECT id, name INTO #stage FROM dbo.student;', + expect: { + outputs: [ + { name: 'id', resolution: 'exact', bindings: ['dbo.student.id'] }, + { name: 'name', resolution: 'exact', bindings: ['dbo.student.name'] } + ], + noDiagnostics: true + } + } + ]; + function spanText(sql, span) { + return span ? sql.slice(span.start, span.end) : ''; + } + PROCFLOW_COLUMN_FIXTURES.forEach(function (f) { + try { + var cat = null; + if (f.catalogue) + cat = parseCatalogue(f.catalogue).catalogue; + var lin = analyseColumns(tokenize(f.sql), { catalogue: cat, dialect: f.dialect }); + if (!lin) { + record(f.name + ' · mappings', false, 'column lineage was not produced'); + return; + } + var e = f.expect, ok = true, detail = {}; + if (e.sourceKeys) { + var keys = lin.sources.map(function (s) { return s.key.toUpperCase(); }); + detail.sources = lin.sources.map(function (s) { return { key: s.key, kind: s.kind, cols: s.columns }; }); + ok = ok && e.sourceKeys.every(function (k) { return keys.indexOf(k.toUpperCase()) >= 0; }); + } + if (e.sourceOf) { + var src = null; + lin.sources.forEach(function (s) { if (s.key.toUpperCase() === e.sourceOf.key.toUpperCase()) + src = s; }); + detail.sourceOf = src && { key: src.key, kind: src.kind, cols: src.columns }; + ok = ok && !!src && src.kind === e.sourceOf.kind && + (e.sourceOf.columns === undefined || src.columns.join(',') === e.sourceOf.columns.join(',')); + } + if (e.outputCount !== undefined) { + detail.outputCount = lin.outputs.length; + ok = ok && lin.outputs.length === e.outputCount; + } + (e.outputs || []).forEach(function (exp) { + var out = null; + lin.outputs.forEach(function (o) { if (o.name === exp.name) + out = o; }); + var bindingTexts = (out ? out.bindings : []).map(function (b) { return b.source + '.' + b.column; }); + var outputOk = !!out && (exp.resolution === undefined || out.resolution === exp.resolution) && + (exp.bindings === undefined || bindingTexts.join('|') === exp.bindings.join('|')) && + (exp.spanText === undefined || spanText(f.sql, out.span) === exp.spanText); + ok = ok && outputOk; + detail['output:' + exp.name] = out && { res: out.resolution, bindings: bindingTexts, + span: spanText(f.sql, out.span) }; + }); + (e.refs || []).forEach(function (exp) { + var ref = null; + lin.references.forEach(function (r) { + if (spanText(f.sql, r.span) === exp.text) + ref = r; + }); + var refOk = !!ref && ref.resolution === exp.resolution && + !!ref.span && ref.span.start >= 0 && ref.span.end > ref.span.start && + ref.span.end <= f.sql.length; + ok = ok && refOk; + detail['ref:' + exp.text] = ref && { res: ref.resolution, + span: spanText(f.sql, ref.span) }; + }); + (e.wildcards || []).forEach(function (exp) { + var wc = null; + lin.wildcards.forEach(function (w) { + if ((w.source || null) === (exp.source || null)) + wc = w; + }); + var wcOk = !!wc && wc.expanded === exp.expanded && + (exp.columns === undefined || wc.columns.join(',') === exp.columns.join(',')) && + !!wc.span && wc.span.start >= 0 && wc.span.end > wc.span.start && + wc.span.end <= f.sql.length; + ok = ok && wcOk; + detail['wildcard:' + (exp.source || '*')] = wc && { expanded: wc.expanded, cols: wc.columns, + span: spanText(f.sql, wc.span) }; + }); + if (e.diagnostics) { + (e.diagnostics || []).forEach(function (code) { + ok = ok && hasDiag(lin.diagnostics, code); + }); + } + if (e.noDiagnostics) { + ok = ok && lin.diagnostics.length === 0; + detail.diagnostics = lin.diagnostics; + } + /* every region-scoped column diagnostic carries a valid span */ + var spanOk = lin.diagnostics.every(function (d) { + return d.scope === 'region' && !!d.span && d.span.start >= 0 && d.span.end > d.span.start && + d.span.end <= f.sql.length; + }); + ok = ok && spanOk; + record(f.name + ' · mappings', ok, JSON.stringify(detail)); + } + catch (err) { + record(f.name + ' · mappings', false, String(err && err.stack || err)); + } + }); + /* ---- integration: analyse() attaches column lineage and surfaces its + diagnostics as region-scoped findings ---- */ + try { + var r = analyse('SELECT id FROM dbo.a a JOIN dbo.b b ON a.id = b.aid;', { dialect: 'tsql', mode: 'auto', group: false, sources: true }); + var integrated = !!r.columns && r.columns.length === 1 && + r.diagnostics.some(function (d) { + return d.code === 'column_ambiguous' && d.scope === 'region' && + !!d.span && r.diagnostics.indexOf(d) >= 0 && + 'SELECT id FROM dbo.a a JOIN dbo.b b ON a.id = b.aid;' + .slice(d.span.start, d.span.end) === 'id'; + }); + record('v1.10.0 analyse() attaches column lineage and findings', integrated, JSON.stringify({ columnCount: r.columns && r.columns.length, + diagnostics: r.diagnostics.map(function (d) { return d.code; }) })); + } + catch (err) { + record('v1.10.0 analyse() attaches column lineage and findings', false, String(err && err.stack || err)); + } + try { + var clean = analyse('CREATE PROC dbo.clean_cols AS BEGIN\n' + + ' WITH r(n) AS (SELECT 1 UNION ALL SELECT n+1 FROM r WHERE n<10)\n' + + ' SELECT n FROM r;\n' + + 'END', { dialect: 'tsql', mode: 'flow', group: false, sources: true }); + var cleanOk = !clean.diagnostics.some(function (d) { + return d.code.indexOf('column_') === 0; + }) && (clean.columns || []).length === 1; + record('v1.10.0 clean single-statement column bindings emit no diagnostics', cleanOk, JSON.stringify({ diags: clean.diagnostics.map(function (d) { return d.code; }), + columns: clean.columns && clean.columns.length })); + } + catch (err) { + record('v1.10.0 clean single-statement column bindings emit no diagnostics', false, String(err && err.stack || err)); + } + try { + var probe = analyse('SELECT s.id FROM dbo.student s WHERE s.active = 1;', { dialect: 'tsql', mode: 'auto', group: false, sources: true }); + var columns = probe.columns && probe.columns[0]; + var binding = columns && columns.outputs[0] && columns.outputs[0].bindings[0]; + var provenanceOk = !!columns && columns.outputs.length === 1 && + columns.outputs[0].resolution === 'exact' && !!binding && + binding.source === 's' && binding.column === 'id' && !!binding.span; + record('v1.10.0 output binding carries source, column, and span', provenanceOk, JSON.stringify(columns && columns.outputs)); + } + catch (err) { + record('v1.10.0 output binding carries source, column, and span', false, String(err && err.stack || err)); + } + var passed = results.filter(function (r) { return r.pass; }).length; + window.PROCFLOW_COLUMN_RESULT = { passed: passed, total: results.length }; + window.PROCFLOW_COLUMN_PASS = passed === results.length; + window.PROCFLOW_COLUMN_DETAIL = results; +})(); +//# sourceMappingURL=columns.js.map \ No newline at end of file diff --git a/dist/tests/columns.js.map b/dist/tests/columns.js.map new file mode 100644 index 0000000..d64d6c1 --- /dev/null +++ b/dist/tests/columns.js.map @@ -0,0 +1 @@ +{"version":3,"file":"columns.js","sourceRoot":"","sources":["../../tests/columns.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/tests/metrics.js b/dist/tests/metrics.js index 32f2fe4..a189696 100644 --- a/dist/tests/metrics.js +++ b/dist/tests/metrics.js @@ -1,13 +1,14 @@ "use strict"; -/* v1.9.0 — fixture-corpus metric publishing. +/* v1.10.0 — fixture-corpus metric publishing. Aggregates the "Metrics that matter" over the checked-in golden corpus, including the v1.7.0 export-parity, export-traceability, and layout-budget pass rates reported by tests/parity.ts, the v1.8.0 workspace - persistence/dependency-filtering pass rate from tests/workspace.ts, and the - v1.9.0 catalogue pass rate from tests/catalogue.ts. + persistence/dependency-filtering pass rate from tests/workspace.ts, the + v1.9.0 catalogue pass rate from tests/catalogue.ts, and the v1.10.0 column + lineage pass rate from tests/columns.ts. Purely deterministic and fixture-only: no user inputs and no runtime telemetry are ever collected. scripts/metrics.mjs drives this page to - produce or verify docs/metrics-v1.9.0.json. */ + produce or verify docs/metrics-v1.10.0.json. */ (function () { var corpus = PROCFLOW_FIXTURES || []; var totalTokens = 0, attributedAll = 0, unresolvedTokens = 0, opaqueTokens = 0, tailUnconsumed = 0; @@ -92,7 +93,9 @@ workspace: window.PROCFLOW_WORKSPACE_RESULT ? window.PROCFLOW_WORKSPACE_RESULT.total : 0, catalogue: window.PROCFLOW_CATALOGUE_RESULT - ? window.PROCFLOW_CATALOGUE_RESULT.total : 0 + ? window.PROCFLOW_CATALOGUE_RESULT.total : 0, + columns: window.PROCFLOW_COLUMN_RESULT + ? window.PROCFLOW_COLUMN_RESULT.total : 0 }, attributionRate: rate(attributedAll, totalTokens), unresolvedTokenRate: rate(unresolvedTokens, totalTokens), @@ -128,6 +131,13 @@ cataloguePassRate: window.PROCFLOW_CATALOGUE_RESULT ? rate(window.PROCFLOW_CATALOGUE_RESULT.passed, window.PROCFLOW_CATALOGUE_RESULT.total) : 0, + /* v1.10.0 column lineage foundations: single-statement column fixtures + assert exact input→output mappings and spans, ambiguity never invents a + column binding, and unsupported expressions become opaque with + region-scoped diagnostics. */ + columnPassRate: window.PROCFLOW_COLUMN_RESULT + ? rate(window.PROCFLOW_COLUMN_RESULT.passed, window.PROCFLOW_COLUMN_RESULT.total) + : 0, aggregate: { totalTokens: totalTokens, accountedTokens: attributedAll, diff --git a/dist/tests/metrics.js.map b/dist/tests/metrics.js.map index 429684e..b2bc4a2 100644 --- a/dist/tests/metrics.js.map +++ b/dist/tests/metrics.js.map @@ -1 +1 @@ -{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../tests/metrics.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../tests/metrics.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/tests/tests.js b/dist/tests/tests.js index 81a856f..e27d10a 100644 --- a/dist/tests/tests.js +++ b/dist/tests/tests.js @@ -805,6 +805,19 @@ catch (err) { record('v1.9.0 catalogue import, resolution, diagnostics, and export fixtures', false, String(err && err.stack || err)); } + /* v1.10.0: column lineage foundations — scopes and bindings for qualified + references, aliases, projections, CTEs, derived tables, and catalogue-backed + wildcard expansion; expression-level provenance; explicit ambiguous and + opaque column references with region-scoped diagnostics. Runs ahead in + tests/columns.ts; gate the whole golden page on them. */ + try { + record('v1.10.0 column scopes, bindings, wildcards, and diagnostics fixtures', window.PROCFLOW_COLUMN_PASS === true && + !!window.PROCFLOW_COLUMN_RESULT && + window.PROCFLOW_COLUMN_RESULT.passed === window.PROCFLOW_COLUMN_RESULT.total, window.PROCFLOW_COLUMN_RESULT); + } + catch (err) { + record('v1.10.0 column scopes, bindings, wildcards, and diagnostics fixtures', false, String(err && err.stack || err)); + } var passed = results.filter(function (r) { return r.pass; }).length; document.body.className = passed === results.length ? 'pass' : 'fail'; document.getElementById('summary').textContent = passed + '/' + results.length + ' tests passed'; diff --git a/dist/tests/tests.js.map b/dist/tests/tests.js.map index ee4bd45..555c766 100644 --- a/dist/tests/tests.js.map +++ b/dist/tests/tests.js.map @@ -1 +1 @@ -{"version":3,"file":"tests.js","sourceRoot":"","sources":["../../tests/tests.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"tests.js","sourceRoot":"","sources":["../../tests/tests.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/docs/PR_NOTE_1.10.0.md b/docs/PR_NOTE_1.10.0.md new file mode 100644 index 0000000..69b54d5 --- /dev/null +++ b/docs/PR_NOTE_1.10.0.md @@ -0,0 +1,109 @@ +# PR: v1.10.0 — Column lineage foundations + +## Summary + +Implements the **v1.10.0 — Column lineage foundations** milestone from +`ROADMAP.md` in full and nothing from v1.11.0 onwards: column **scopes and +bindings** for qualified references, aliases, projections, CTEs, derived +tables, and catalogue-backed wildcard expansion; **expression-level +provenance** within one query statement; and **explicit ambiguous and opaque +column references**. The golden suite grows from 208 to 209; fuzz (400) and UI +(22) stay green; 18 column fixtures assert exact input→output mappings and +spans, that ambiguity never invents a column binding, and that unsupported +expressions become opaque with region-scoped diagnostics. Multi-statement +temporary-table column flow, inter-object column flow, the column export +contract (all v1.11.0), and RDL (v1.12.0) remain deferred. + +## What's included + +### Column-lineage module (`src/columns.ts`) + +A new runtime module (loaded after `ir.js`) that analyses one query statement +down to column level: + +- **Scope builder** (`colParseSources` / `colRegionsOf` / `colSplitArms`): + parses the projection and FROM regions of each `SELECT` arm, splitting + comma-separated sources and `JOIN`/`APPLY` items, and records each source's + alias, underlying name, kind (`table` / `cte` / `derived` / `tabfunc` / + `opaque`), provable columns, and span. +- **Provable scopes**: a CTE's explicit column list (`WITH r(n) AS …`) or + computed projection, a derived table's projection, a tabular function's + column-alias list, and catalogue columns (`catalogueColumnsFor` via + `resolveCatalogue`) turn into `columnsKnown` scope entries. Plain tables + without catalogue evidence stay `columnsKnown: false` (conservative). +- **Binding** (`colBind`): qualified references bind to the exact scope key; + unqualified references bind only when exactly one candidate exists. Multiple + candidates → `column_ambiguous` (region-scoped, span-attached, **no binding + invented**); zero candidates, unknown qualifiers, missing columns in a + provable scope, and scalar subqueries → `column_opaque`. +- **Projection items** (`colParseItems` / `colScanRefs`): aliases (`AS` and + bare trailing), expression-level provenance (`s.a + s.b AS total` maps + `total` to both inputs), `COUNT(*)` row aggregates (no invented column), and + predicate references (WHERE / GROUP BY / HAVING / ORDER BY / JOIN ON / + USING) all bind with spans. +- **Wildcards**: `*` / `t.*` expand only when the catalogue (or a provable + scope) proves every contributing source's columns; otherwise they are + recorded unexpanded and never invent columns. +- `analyseColumns(toks, opts)` is the public entry point; every region-scoped + diagnostic carries a valid source span. + +### Analysis integration (`src/ir.ts`) + +`analyse()` now walks the AST and column-analyses every query-bearing `SELECT` +statement (including inside control flow), attaches the results as +`result.columns: ColumnLineage[]`, and merges the region-scoped +`column_ambiguous` / `column_opaque` diagnostics into the findings panel. +Confidence, coverage, graphs, exports, and construct coverage are untouched: +clean queries produce no new diagnostics, so all existing object-level +fixtures remain green. + +### Types (`src/types.d.ts`) + +`ColumnSource`, `ColumnOutput`, `ColumnBinding`, `ColumnWildcard`, +`ColumnReference`, `ColumnLineage`, `ColumnResolution`, `ColumnSourceKind`; +`AnalysisResult.columns`; `PROCFLOW_COLUMN_PASS` / `_RESULT` / `_DETAIL` +globals. + +## Fixtures and tests + +- `tests/columns.ts` (+ `tests/index.html`, `tests/metrics.html`, and + `columns.js` wiring) — 18 fixture-corpus records plus 3 integration records + covering qualified/unqualified bindings, aliases, JOIN predicates, + expression provenance, CTE scopes (explicit + computed), derived tables, + catalogue-backed wildcard expansion (qualified and bare `*`), unexpanded + wildcards without catalogue, scalar-subquery opacity, out-of-scope + references, WHERE predicates, recursive-CTE bindings, `DISTINCT TOP`, and + `SELECT … INTO`, plus the `analyse()` integration (attach + findings) and + the clean-binding/no-noise guard. Gates the golden page via + `PROCFLOW_COLUMN_PASS`. +- `tests/tests.ts` — gates the golden page on the column suite. +- `tests/metrics.ts` → `docs/metrics-v1.10.0.json` — adds `columnPassRate` and + the `columns` corpus count (18/18); the v1.9.0 snapshot is renamed to + v1.10.0 (old snapshot removed). +- `examples/dbo.v1100_demo.sql` — a view + procedure + audit demo showing CTE + scopes, qualified/alias bindings, expression provenance, derived tables, the + ambiguous reference diagnostic, the opaque subquery diagnostic, and + catalogue-backed wildcard expansion (with a catalogue to paste). + +## Verification + +- `npm run typecheck` — passes +- `npm run build` — passes +- `npm run test:file` — passes (with `CHROME_PATH` set) +- Golden suite — 209/209 (was 208) +- Fuzz suite — 400 deterministic mutation cases +- UI suite — 22/22 +- `npm run metrics` — snapshot is current; `docs/metrics-v1.10.0.json` + committed (v1.9.0 snapshot renamed), 100 % column pass rate +- Local-only check clean; `dist/` committed in sync (adds + `dist/src/columns.js` and `dist/tests/columns.js`) + +## Not changed / deferred (per roadmap) + +- Everything from v1.11.0 onwards — multi-statement temporary-table column + flow, inter-object column flow through CTE/view boundaries, column export + parity/round-trip and layout, and RDL/report import — is out of scope. +- Existing v1.1.0–v1.9.0 semantics are untouched; the corpus aggregates in + `docs/metrics-v1.10.0.json` are byte-identical to v1.9.0's for every + pre-existing metric, confirming no parser regression, and the full golden + suite stays green. diff --git a/docs/RELEASE_NOTE_v1.10.0.md b/docs/RELEASE_NOTE_v1.10.0.md new file mode 100644 index 0000000..e228bb7 --- /dev/null +++ b/docs/RELEASE_NOTE_v1.10.0.md @@ -0,0 +1,94 @@ +# proc>flow v1.10.0 — Column lineage foundations + +**Release date:** 2026-08-09 + +ProcFlow v1.10.0 starts tracing **columns**, not just objects. Every +query-bearing `SELECT` statement is now analysed at column level: which input +columns each projected output derives from, with the exact source span. When a +column cannot be proven, ProcFlow says so explicitly instead of guessing — an +ambiguous reference never invents a binding, and an unsupported expression +becomes opaque with a region-scoped diagnostic. + +This is the **foundations** release (ROADMAP v1.10.0): scopes and bindings +within one query statement. Column flow across temporary tables, views, and +object boundaries — and the column export contract — remain on the roadmap +(v1.11.0). + +## Highlights + +- **Column scopes and bindings.** Qualified references (`s.id`), aliases, + unqualified references to a single source, `SELECT … INTO #temp`, and + expression-level provenance (`s.a + s.b AS total` maps `total` back to both + `s.a` and `s.b`) all bind to the exact input column with its span. +- **CTE and derived-table scopes.** A CTE's explicit column list (`WITH r(n) AS + …`) or its computed projection, and a derived table's projection, become + provable column sets; references are verified against them. +- **Catalogue-backed wildcard expansion.** With a catalogue loaded, + `SELECT t.*` expands to the catalogue's provable columns, each bound exactly. + Without catalogue evidence a wildcard stays unexpanded and never invents + columns. +- **Ambiguity never invents a column edge.** An unqualified reference that + matches several sources (for example `SELECT id FROM a JOIN b`) is left + unresolved with a region-scoped `column_ambiguous` diagnostic at the exact + reference. +- **Explicit opaque references.** Unresolvable references (an unknown qualifier, + a column outside a provable scope, a scalar subquery) become opaque with a + region-scoped `column_opaque` diagnostic. +- **Diagnostics flow into the findings panel.** Column findings appear in + **Diagnostics** and never inflate informational counts; clean bindings + produce no noise. + +## Correctness baseline + +- TypeScript type-checking and a clean generated build; +- 209 golden, graph, dependency, exporter, provenance, boundary, diagnostic, + confidence, export-parity, layout, workspace, catalogue, and column tests + (up from 208); +- 400 deterministic mutation cases; +- 22 browser interaction and local-runtime tests; +- catalogue fixtures 13/13, column-lineage fixtures 18/18, workspace + persistence/filtering fixtures 13/13, export parity 20/20, layout budgets + 11/11, export traceability 69/69; and +- the fixture-corpus metric snapshot in `docs/metrics-v1.10.0.json`: 100 % + attribution, 100 % semantic-edge coverage, 100 % provenance, 100 % region-span + ratio, 100 % export-parity, 100 % export-traceability, 100 % layout budgets, + 100 % workspace pass rate, 100 % catalogue pass rate, and 100 % column pass + rate. + +GitHub Actions continues to check that generated JavaScript is current, the +vendored Mermaid runtime remains pinned, runtime application files contain no +external URLs or network-submission APIs, browser storage is confined to the +opt-in persistence module, the local-file smoke test passes, and the metric +snapshot is current. + +## Compatibility and upgrade notes + +- The v1.10.0 analysis is a strict superset: object-level graphs, exports, + confidence, coverage, and diagnostics are unchanged for clean queries. + Column lineage adds bindings and findings, never renames or rewires existing + nodes and edges. +- Exported `.drawio` files from earlier releases remain valid; column exports + arrive with v1.11.0. +- Saved workspaces are unchanged (schema v2 from v1.9.0). +- The local-only browser security model is unchanged. + +## Security and privacy (v1.10.0) + +- Column analysis runs entirely in the browser tab on the pasted/imported SQL. + Nothing is uploaded, executed, or sent to any API. +- No new network, storage, or telemetry paths were added; the only runtime that + touches browser storage remains the opt-in workspace module. + +## Known limitations + +- Parsing is heuristic rather than compiler-grade. +- Dynamic SQL remains opaque. +- Column lineage is single-statement only: temporary-table producer→consumer + column flow, inter-object column flow through CTE/view boundaries, and the + final column export contract remain scheduled for v1.11.0. +- RDL/report import remains scheduled for v1.12.0. + +Verify critical column bindings and dependency conclusions against the original +SQL and the target database. + +See [README.md](../README.md) for usage and development guidance. diff --git a/docs/metrics-v1.9.0.json b/docs/metrics-v1.10.0.json similarity index 92% rename from docs/metrics-v1.9.0.json rename to docs/metrics-v1.10.0.json index d3a3852..b1bc5c0 100644 --- a/docs/metrics-v1.9.0.json +++ b/docs/metrics-v1.10.0.json @@ -8,7 +8,8 @@ "parity": 10, "layout": 11, "workspace": 13, - "catalogue": 13 + "catalogue": 13, + "columns": 18 }, "attributionRate": 1, "unresolvedTokenRate": 0.04432, @@ -23,6 +24,7 @@ "layoutBudgetPassRate": 1, "workspacePassRate": 1, "cataloguePassRate": 1, + "columnPassRate": 1, "aggregate": { "totalTokens": 2685, "accountedTokens": 2685, diff --git a/examples/dbo.v1100_demo.sql b/examples/dbo.v1100_demo.sql new file mode 100644 index 0000000..4e7b97f --- /dev/null +++ b/examples/dbo.v1100_demo.sql @@ -0,0 +1,104 @@ +/* + v1.10.0 demo — column lineage foundations. + + This script exercises the v1.10.0 territory (ROADMAP v1.10.0) in one + script: column scopes and bindings for qualified references, aliases, + projections, CTEs, derived tables, and catalogue-backed wildcard + expansion; expression-level provenance within one query statement; and + explicit ambiguous and opaque column references. + + Every query-bearing SELECT statement is now analysed at column level. + The findings panel reports region-scoped diagnostics only when a binding + cannot be proven: + + 1. Ambiguous — "SELECT StudentName FROM dbo.Student s JOIN dbo.Course c + ON ..." with no qualifier matches several sources; no binding is + invented (column_ambiguous). + 2. Opaque — a scalar subquery projection cannot be resolved at column + level in this release (column_opaque). + + To see catalogue-backed wildcard expansion, paste this catalogue in the + Catalogue menu and Apply it, then re-run: + + dbo.Student TABLE student + dbo.Course TABLE + COL dbo.Student.StudentId + COL dbo.Student.StudentName + COL dbo.Student.EnrolmentYear + COL dbo.Course.CourseId + COL dbo.Course.CourseName + + Now "SELECT s.* FROM dbo.Student s" expands to the catalogue's provable + columns (StudentId, StudentName, EnrolmentYear), each bound exactly to + its input column with its source span. Without catalogue evidence the + wildcard stays unexpanded and never invents columns. + + Multi-statement temporary-table column flow, inter-object column flow, + and the column export contract remain on the roadmap (v1.11.0). + + This demo is an illustration, not an input to the fixture-corpus metrics + (docs/metrics-v1.10.0.json). No user input or runtime telemetry is + collected. +*/ +CREATE VIEW dbo.v1100_student_courses AS +-- CTE scope: the explicit column list (StudentId, StudentName, CourseName) +-- is carried through, and each projected column binds to its exact input. +WITH detail(StudentId, StudentName, CourseName) AS ( + SELECT s.StudentId, s.StudentName, c.CourseName + FROM dbo.Student s + JOIN dbo.Course c ON c.CourseId = s.CourseId +) +SELECT d.StudentId, d.StudentName, d.CourseName +FROM detail d; + +GO + +CREATE PROCEDURE dbo.v1100_column_lineage @Year INT +AS +BEGIN + SET NOCOUNT ON; + + -- Qualified references and aliases bind exactly, with spans. + SELECT s.StudentId AS StudentNumber, + s.StudentName AS StudentName + FROM dbo.Student s + WHERE s.EnrolmentYear = @Year; + + -- Expression-level provenance: FullName maps back to both input columns. + SELECT s.FirstName + N' ' + s.LastName AS FullName + FROM dbo.Student s; + + -- Derived-table scope: x exposes exactly the inner projection's columns. + SELECT x.StudentId, x.EnrolmentYear + FROM (SELECT StudentId, EnrolmentYear FROM dbo.Student) x; + + -- Ambiguous: an unqualified column that matches several sources is left + -- unresolved with a region-scoped column_ambiguous diagnostic. No binding + -- is invented. + SELECT StudentId + FROM dbo.Student s + JOIN dbo.Course c ON c.CourseId = s.CourseId; + + -- Opaque: the scalar subquery cannot be resolved at column level in this + -- release; its projection is marked opaque with a column_opaque + -- diagnostic. The rest of the statement still binds. + SELECT s.StudentName, + (SELECT MAX(AuditId) FROM dbo.v1100_audit) AS LastAuditId + FROM dbo.Student s; + + -- Catalogue-backed wildcard expansion (paste the catalogue above): with + -- the catalogue applied, s.* expands to the provable columns, each bound + -- exactly. Without it, the wildcard stays unexpanded. + SELECT s.* + FROM dbo.Student s; + + RETURN 0; +END; + +GO + +CREATE PROCEDURE dbo.v1100_audit +AS +BEGIN + SELECT COUNT(*) AS Total FROM dbo.Student; +END; diff --git a/index.html b/index.html index 91fbc21..3f20930 100644 --- a/index.html +++ b/index.html @@ -212,6 +212,7 @@
Running…
Deterministic, fixture-only aggregates of the "Metrics that matter". No user inputs or runtime telemetry are collected.
@@ -20,6 +20,7 @@