Skip to content

State the SQL surface a family-naming tag hides - #116

Merged
estebanzimanyi merged 1 commit into
MobilityDB:masterfrom
estebanzimanyi:feat/backing-tag-sql-surface
Sep 2, 2026
Merged

State the SQL surface a family-naming tag hides#116
estebanzimanyi merged 1 commit into
MobilityDB:masterfrom
estebanzimanyi:feat/backing-tag-sql-surface

Conversation

@estebanzimanyi

Copy link
Copy Markdown
Member

The CREATE FUNCTION statements are what the extension deploys, so when an
unshared wrapper's signatures all carry one SQL name, that name is the
function's SQL surface whatever its @sqlfn tag spells. Comparing each
signature against the tag alone drops every one of them where the two
disagree, leaving an arity for a surface the catalog cannot state.

Two kinds of tag disagree with the name beside them. The five topological
bounding-box tags name a family rather than a function: MobilityDB exposes
Adjacent_temporal_tstzspan as adjacent and tags it adjacent_bbox, the suffix
separating contains from contains_rid in the tag namespace, and
tools/scripts/check_sqlfn_names.py keeps that spelling deliberately. A
laggard tag names what a function is to become rather than what it is, as
contains does over the deployed cbuffer_contains.

Seventy-two functions carry their signatures as a result, seventy of them
the bounding-box backings, and each entry names the SQL function it
registers. The five operators reach their operand pairing without a
consumer inferring it: adjacent_temporal_tstzspan states its twenty
adjacent(T, tstzspan) overloads rather than an arity of two.

Nothing is lost or altered — no function's signatures change and none are
withdrawn — and the 501 signatures added collide with no registration the
catalog already carries.

The CREATE FUNCTION statements are what the extension deploys, so when an
unshared wrapper's signatures all carry one SQL name, that name is the
function's SQL surface whatever its @sqlfn tag spells. Comparing each
signature against the tag alone drops every one of them where the two
disagree, leaving an arity for a surface the catalog cannot state.

Two kinds of tag disagree with the name beside them. The five topological
bounding-box tags name a family rather than a function: MobilityDB exposes
Adjacent_temporal_tstzspan as adjacent and tags it adjacent_bbox, the suffix
separating contains from contains_rid in the tag namespace, and
tools/scripts/check_sqlfn_names.py keeps that spelling deliberately. A
laggard tag names what a function is to become rather than what it is, as
contains does over the deployed cbuffer_contains.

Seventy-two functions carry their signatures as a result, seventy of them
the bounding-box backings, and each entry names the SQL function it
registers. The five operators reach their operand pairing without a
consumer inferring it: adjacent_temporal_tstzspan states its twenty
adjacent(T, tstzspan) overloads rather than an arity of two.

Nothing is lost or altered — no function's signatures change and none are
withdrawn — and the 501 signatures added collide with no registration the
catalog already carries.
@estebanzimanyi
estebanzimanyi merged commit aa6d81b into MobilityDB:master Sep 2, 2026
3 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