Pair a restriction's operands from the overloads the catalog declares - #361
Merged
estebanzimanyi merged 1 commit intoSep 2, 2026
Merged
Conversation
Each sqlSignatures entry is one CREATE FUNCTION overload, so its two argument types name the temporal type and the container that pair. The two-operand restrictions now register from those entries, and the port advances to the commit the catalog is derived from so the surface and the libmeos it links against continue to name one upstream commit. Reading the pairing off the function name answers a different question, and gets three things wrong at once. It cannot see which temporal types an overload set covers, so the time arm takes a blanket list and the value arm a two-entry table: the blanket omits tjsonb, tpcpatch and tpcpoint, and the table omits tbigint, carrying no bigintspan row at all. It cannot see that a family owning its own time restriction — trgeometry does, its varlena appending the reference geometry the generic walker would drop — must register over its own type alone, so that has to be re-derived from a type scope beside it. The catalog states all three where the SQL is declared, which is the move that already retired the class-prefix list from the array-return shape. The registrations go 6078 to 6264: 186 added, NONE removed, each addition an overload MobilityDB declares and this surface did not carry. The generated files also reorder, the catalog listing an overload set in its own order rather than the blanket's, which is what makes the line count move far more than the registrations do. Regenerating at this catalog with the pairing unchanged reproduces the committed surface byte for byte, so the whole of this diff is the pairing and none of it is refresh drift. The name is still what decides WHICH functions this shape claims. Claiming on the argument shape alone reaches sixteen more, among them temporal_at_values and the tnumber span restrictions that a second signature-driven path already registers, and a function registered twice is refused at load. Unifying the two paths is what that needs.
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.
Each sqlSignatures entry is one CREATE FUNCTION overload, so its two argument
types name the temporal type and the container that pair. The two-operand
restrictions now register from those entries, and the port advances to the
commit the catalog is derived from so the surface and the libmeos it links
against continue to name one upstream commit.
Reading the pairing off the function name answers a different question, and
gets three things wrong at once. It cannot see which temporal types an
overload set covers, so the time arm takes a blanket list and the value arm a
two-entry table: the blanket omits tjsonb, tpcpatch and tpcpoint, and the
table omits tbigint, carrying no bigintspan row at all. It cannot see that a
family owning its own time restriction — trgeometry does, its varlena
appending the reference geometry the generic walker would drop — must register
over its own type alone, so that has to be re-derived from a type scope beside
it. The catalog states all three where the SQL is declared, which is the move
that already retired the class-prefix list from the array-return shape.
The registrations go 6078 to 6264: 186 added, NONE removed, each addition an
overload MobilityDB declares and this surface did not carry. The generated
files also reorder, the catalog listing an overload set in its own order
rather than the blanket's, which is what makes the line count move far more
than the registrations do.
Regenerating at this catalog with the pairing unchanged reproduces the
committed surface byte for byte, so the whole of this diff is the pairing and
none of it is refresh drift.
The name is still what decides WHICH functions this shape claims. Claiming on
the argument shape alone reaches sixteen more, among them temporal_at_values
and the tnumber span restrictions that a second signature-driven path already
registers, and a function registered twice is refused at load. Unifying the
two paths is what that needs.