Skip to content

Declare append and merge generic over every temporal type - #194

Merged
estebanzimanyi merged 1 commit into
MobilityDB:masterfrom
estebanzimanyi:meta/append-merge-generic-scope
Oct 14, 2026
Merged

estebanzimanyi merged 1 commit into
MobilityDB:masterfrom
estebanzimanyi:meta/append-merge-generic-scope

Conversation

@estebanzimanyi

Copy link
Copy Markdown
Member

temporal_append_tsequence, temporal_merge and temporal_merge_array back appendSequence and merge,
which MobilityDB declares over all 20 temporal types, each through one wrapper shared with
trgeometry_append_tsequence, trgeometry_merge and trgeometry_merge_array. A claimant of a shared
wrapper keeps the signatures of its type scope, and the scope signals read the wrong fact for
these three: the C parameter type of the bool expand parameter of temporal_append_tsequence
(tbool), and the trgeometry branch of the bodies of temporal_merge and temporal_merge_array
(trgeometry). Each kept one signature, and a binding generated from the catalog registers
appendSequence over tbool and merge over trgeometry alone. They are declared in
meta/type-scope.json with the scope "*", as temporal_append_tinstant is.

Witness: tests/test_typescope.py requires each of the three to serve tbool, tint, tfloat, ttext,
tgeompoint, tgeogpoint and trgeometry in the generated catalog; it fails over the catalog of
master and passes here.

Measured: over MobilityDB f935759e00, the catalog differs from master's in these three functions
alone, each going from 1 signature to 20 and losing none (sqlSignatures, and the return type it
states); the 6557 others are identical, as are the other sections. The suite fails the three
tests it fails on master at the same commit (test_representative_symbols_land_in_their_family and
two struct layout tests), and no other.

Why: a binding registers the signatures the catalog attributes to a function, so a generic
function whose scope is misread loses every type but one on every surface generated from it.

temporal_append_tsequence, temporal_merge and temporal_merge_array back appendSequence and merge,
which MobilityDB declares over all 20 temporal types, each through one wrapper shared with
trgeometry_append_tsequence, trgeometry_merge and trgeometry_merge_array. A claimant of a shared
wrapper keeps the signatures of its type scope, and the scope signals read the wrong fact for
these three: the C parameter type of the bool expand parameter of temporal_append_tsequence
(tbool), and the trgeometry branch of the bodies of temporal_merge and temporal_merge_array
(trgeometry). Each kept one signature, and a binding generated from the catalog registers
appendSequence over tbool and merge over trgeometry alone. They are declared in
meta/type-scope.json with the scope "*", as temporal_append_tinstant is.

Witness: tests/test_typescope.py requires each of the three to serve tbool, tint, tfloat, ttext,
tgeompoint, tgeogpoint and trgeometry in the generated catalog; it fails over the catalog of
master and passes here.

Measured: over MobilityDB f935759e00, the catalog differs from master's in these three functions
alone, each going from 1 signature to 20 and losing none (sqlSignatures, and the return type it
states); the 6557 others are identical, as are the other sections. The suite fails the three
tests it fails on master at the same commit (test_representative_symbols_land_in_their_family and
two struct layout tests), and no other.

Why: a binding registers the signatures the catalog attributes to a function, so a generic
function whose scope is misread loses every type but one on every surface generated from it.
@estebanzimanyi
estebanzimanyi merged commit f8d8326 into MobilityDB:master Oct 14, 2026
3 checks passed
@estebanzimanyi
estebanzimanyi deleted the meta/append-merge-generic-scope branch October 14, 2026 10:00
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