Skip to content

Store one SQL name per catalog function; drop the sqlfnAll/mdbCAll lists#51

Merged
estebanzimanyi merged 1 commit into
masterfrom
feat/remove-sqlfnall-field
Jul 11, 2026
Merged

Store one SQL name per catalog function; drop the sqlfnAll/mdbCAll lists#51
estebanzimanyi merged 1 commit into
masterfrom
feat/remove-sqlfnall-field

Conversation

@estebanzimanyi

Copy link
Copy Markdown
Member

Each catalog function entry carries a single sqlfn (primary SQL name) and mdbC (primary wrapper). The catalog omits the sqlfnAll/mdbCAll lists — the extra SQL names/wrappers one function resolves to when a shared wrapper or ever/always pair fans out.

No binding generator reads those lists: every binding consumes only the singular sqlfn/mdbC. They are dead surface that invites a lossy 1:1 read of a genuine 1:N fan-out (one MEOS primitive backing several external functions, per prefer-parameter).

  • mdbCAll has no reader, so it is dropped outright.
  • sqlfnAll has one internal reader, the case-collision lint, which needs every spelling. attach_sqlfn_map returns that fan-out as a transient map handed to lint_sqlfn_case_collisions, so collision coverage holds while the names stay out of the catalog.

The regenerated catalog differs from the prior output by exactly the sqlfnAll/mdbCAll keys — all 4545 functions byte-identical otherwise — so every binding's output is unchanged. Stacked on #50.

@estebanzimanyi estebanzimanyi changed the base branch from feat/catalog-source-commit-stamp to master July 11, 2026 11:03
Every catalog function entry now carries a single `sqlfn` (its primary SQL
name) and `mdbC` (its primary wrapper). The `sqlfnAll`/`mdbCAll` lists — the
extra SQL names and wrappers a shared wrapper or ever/always pair resolves to —
are no longer written to the catalog: no binding generator reads them (every
binding consumes only the singular `sqlfn`/`mdbC`), so they are dead surface
that invites a lossy 1:1 read of a 1:N fan-out.

`mdbCAll` had no reader at all, so it is simply dropped. `sqlfnAll` had one
internal reader, the case-collision lint, which must still see every spelling (a
straggler can appear only as a secondary name); `attach_sqlfn_map` now returns
that fan-out as a transient map handed straight to `lint_sqlfn_case_collisions`,
so collision coverage is unchanged while the names never reach the serialized
catalog.

The regenerated catalog differs from the previous output by exactly the
`sqlfnAll`/`mdbCAll` keys and nothing else (all 4545 functions byte-identical
otherwise); the lint still catches both primary and secondary-only collisions.
@estebanzimanyi estebanzimanyi force-pushed the feat/remove-sqlfnall-field branch from 3d33fc6 to 377a63e Compare July 11, 2026 11:04
@estebanzimanyi estebanzimanyi merged commit 6904551 into master Jul 11, 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