Skip to content

Generate the TNumber value collections from the type relations#84

Merged
estebanzimanyi merged 1 commit into
MobilityDB:mainfrom
estebanzimanyi:feat/generate-tnumber-value-collections
Jul 23, 2026
Merged

Generate the TNumber value collections from the type relations#84
estebanzimanyi merged 1 commit into
MobilityDB:mainfrom
estebanzimanyi:feat/generate-tnumber-value-collections

Conversation

@estebanzimanyi

Copy link
Copy Markdown
Member

getValues and the other value-domain collection accessors return a base-typed collection: a tfloat's value range is a floatspanset, an intspanset for a tint. Their concrete wrapper is base-dependent.

This reads the base-to-collection type-relation registry the catalog carries, resolving each concrete class's base to its value set, span and span-set type, then to the layer's wrapper by the value-collection naming convention. valuespans (getValues) and toSpan are base-generic on the abstract TNumber, so they are specialised onto the concrete int and float surfaces where the base resolves the wrapper; valueBins folds the value-span array into that wrapper. A base whose wrapper the layer does not provide (bigint) defers rather than dangling, so the resolution stays honest.

GeneratedTInt and GeneratedTFloat return FloatSpanSet/IntSpanSet, their value spans and value-span bins. A parity test checks valuespans, toSpan and valueBins against direct GeneratedFunctions calls. The mapping is derived entirely from the catalog, with no per-class hand-coding.

getValues and the other value-domain collection accessors return a base-typed
collection — a tfloat's value range is a floatspanset, an intspanset for a tint.
The concrete wrapper is base-dependent, so these returns were held back.

Read the base-to-collection type-relation registry the catalog now carries, and
resolve each concrete class's base to its value set, span and span set type,
then to the layer's wrapper by the value-collection naming convention. valuespans
(getValues) and toSpan are base-generic on the abstract TNumber, so they are
specialised onto the concrete int and float surfaces where the base resolves the
wrapper; valueBins folds the value span array into that wrapper. A base whose
wrapper the layer does not provide (bigint) defers rather than dangling, so the
resolution stays honest.

GeneratedTInt and GeneratedTFloat now return FloatSpanSet/IntSpanSet, their value
spans and value span bins. A parity test checks valuespans, toSpan and valueBins
against direct GeneratedFunctions calls. The mapping is derived entirely from the
catalog, with no per-class hand-coding.
@estebanzimanyi
estebanzimanyi merged commit 384cd71 into MobilityDB:main Jul 23, 2026
1 of 2 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