Repository navigation
Declare append and merge generic over every temporal type - #194
Merged
estebanzimanyi merged 1 commit intoOct 14, 2026
Merged
estebanzimanyi merged 1 commit into
estebanzimanyi merged 1 commit into
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.