Repository navigation
Render the compositions the catalog states on the typed SQL surfaces - #161
Merged
estebanzimanyi merged 1 commit intoOct 8, 2026
Merged
Conversation
Both typed surfaces register every composition of the catalog's top-level compositions beside the signatures of its functions, through one list _sql_overloads yields for both engines. An operand is decoded as an argument is and passed through the MEOS functions of its casts, a value operand passes its literal, and the function call takes the operands in the order of its C parameters. A composition without a call answers the last cast of its operand; a restore answers the argument at the time of the call's answer; a set-returning composition reads its rows through the columns of the call's own set-returning signature and restores the column it names in each row, and one returning an array reads the elements the call writes, as _signature_overload reads an array return. Witness: over MobilityDB e30ef41657 and MEOS-API 0438baabc6 the catalog states 335 compositions, the relationships of tpose, tnpoint, the cells and the point clouds through a cast, expandSpace and the grid functions of tpose and tpcpoint among them, and neither surface registers any: eDisjoint(tpose, geometry) does not exist on Spark. Measured over the same pair: all 335 compositions render; both engines register 8627 overloads where main registers 8231, 164 of them set-returning signatures where main has 144, the refusals of main's signatures unchanged. Through MobilitySpark's typed surface eDisjoint(tpose, geometry) answers true for a pose trip from Point(1 1) to Point(2 2) against Point(10 10), and spaceSplit of that trip in tiles of size 1 answers 2 rows whose tpose column is the trip restricted to the time of its tile. Why: a composition is a function the catalog states in steps every step of which is a public MEOS function, so both engines answer it as PostgreSQL does without reading SQL.
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.
Both typed surfaces register every composition of the catalog's top-level compositions beside
the signatures of its functions, through one list _sql_overloads yields for both engines. An
operand is decoded as an argument is and passed through the MEOS functions of its casts, a value
operand passes its literal, and the function call takes the operands in the order of its C
parameters. A composition without a call answers the last cast of its operand; a restore
answers the argument at the time of the call's answer; a set-returning composition reads its
rows through the columns of the call's own set-returning signature and restores the column it
names in each row, and one returning an array reads the elements the call writes, as
_signature_overload reads an array return.
Witness: over MobilityDB e30ef41657 and MEOS-API 0438baabc6 the catalog states 335
compositions, the relationships of tpose, tnpoint, the cells and the point clouds through a
cast, expandSpace and the grid functions of tpose and tpcpoint among them, and neither surface
registers any: eDisjoint(tpose, geometry) does not exist on Spark.
Measured over the same pair: all 335 compositions render; both engines register 8627 overloads
where main registers 8231, 164 of them set-returning signatures where main has 144, the refusals
of main's signatures unchanged. Through MobilitySpark's typed surface eDisjoint(tpose, geometry)
answers true for a pose trip from Point(1 1) to Point(2 2) against Point(10 10), and spaceSplit
of that trip in tiles of size 1 answers 2 rows whose tpose column is the trip restricted to the
time of its tile.
Why: a composition is a function the catalog states in steps every step of which is a public
MEOS function, so both engines answer it as PostgreSQL does without reading SQL.