Skip to content

Add the temporal-covering projection generator#25

Merged
estebanzimanyi merged 1 commit into
MobilityDB:masterfrom
estebanzimanyi:feat/covering-projection
Jul 7, 2026
Merged

Add the temporal-covering projection generator#25
estebanzimanyi merged 1 commit into
MobilityDB:masterfrom
estebanzimanyi:feat/covering-projection

Conversation

@estebanzimanyi

@estebanzimanyi estebanzimanyi commented Jun 26, 2026

Copy link
Copy Markdown
Member

Projects the catalog's temporalCovering block onto the canonical, language-agnostic covering-column contract — per temporal type, the ordered covering columns with the fully-composed MEOS expression that derives each from the value. This is the reference rendering every binding generator (PyMEOS, JMEOS, MobilityDuck, MobilitySpark, …) reproduces in its own idiom, so a temporal table prunes the same way on every platform (Iceberg manifest + Parquet row-group min/max).

python run.py                 # enriched catalog with the temporalCovering block
python generate_covering.py   # output/meos-idl.json -> output/meos-covering-projection.json

generator/covering.py renders the projection; tests/test_covering_projection.py holds the worked examples.

Project the catalog's temporalCovering block onto the canonical,
language-agnostic covering-column contract: per temporal type, the ordered
covering columns with the fully-composed MEOS expression that derives each
from the value (e.g. tgeompoint xmin = stbox_xmin(tspatial_to_stbox(VALUE)),
srid = tspatial_srid(VALUE); tfloat vmin = tbox_xmin(tnumber_to_tbox(VALUE))).

Every binding generator renders this same contract in its own idiom — a
DuckDB GENERATED column, a Spark UDF projection, a PyMEOS writer — so a
temporal table prunes the same way on every platform (Iceberg manifest +
Parquet row-group min/max). The VALUE placeholder is the temporal column
reference the binding substitutes.

generator/covering.py is the pure dict->dict projection; generate_covering.py
is the CLI writing output/meos-covering-projection.json. Mirrors the
generate_movfeat_openapi.py / generator/movfeat.py projection idiom.
@estebanzimanyi estebanzimanyi force-pushed the feat/covering-projection branch from 16f7d69 to b1de65f Compare July 7, 2026 12:49
@estebanzimanyi estebanzimanyi merged commit bb9c464 into MobilityDB:master Jul 7, 2026
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