Skip to content

Pair a restriction's operands from the overloads the catalog declares - #361

Merged
estebanzimanyi merged 1 commit into
MobilityDB:mainfrom
estebanzimanyi:feat/retire-flav-heuristic
Sep 2, 2026
Merged

Pair a restriction's operands from the overloads the catalog declares#361
estebanzimanyi merged 1 commit into
MobilityDB:mainfrom
estebanzimanyi:feat/retire-flav-heuristic

Conversation

@estebanzimanyi

Copy link
Copy Markdown
Member

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.

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.
@estebanzimanyi
estebanzimanyi merged commit 70ee106 into MobilityDB:main Sep 2, 2026
10 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