Skip to content

Sync the object-model lattice with the current temporal-type catalog#57

Merged
estebanzimanyi merged 1 commit into
MobilityDB:masterfrom
estebanzimanyi:fix/lattice-tbigint-tjsonb
Jul 15, 2026
Merged

Sync the object-model lattice with the current temporal-type catalog#57
estebanzimanyi merged 1 commit into
MobilityDB:masterfrom
estebanzimanyi:fix/lattice-tbigint-tjsonb

Conversation

@estebanzimanyi

Copy link
Copy Markdown
Member

Brings the curated class lattice in meta/object-model.json into agreement with the MEOS catalog, so the drift gate tests/test_object_model.py::DriftGate — which compares each node's temptypes against the live predicate body in meos_catalog.c — holds when MobilityDB sources are present (it is skipUnless source, so CI stays green while the model can otherwise lag).

The number and alpha families gain the leaf classes their in-scope families imply:

  • TBigint (parent TNumber, base T_INT8), classified from the tbigint_* prefix.
  • TJsonb (parent TAlpha, base T_JSONB), classified from the tjsonb_* prefix.

The abstract nodes' membership lists match their predicates exactly: Temporal (temporal_type, 18 members), TSpatial (tspatial_type, including th3index and tquadbin), TNumber (including tbigint), TAlpha (including tjsonb); the geodetic trait includes th3index (the H3 cells are geodetic).

The cell and point-cloud types are membership only, not yet leaf classes, so the model still reconciles against the manual Figure 7.1 spatial tree (test_matches_manual_figure_7_1). Promoting them to first-class leaves (with a Tcell/TPointcloud intermediate) is a follow-up once the figure and scope are extended.

The derived object model exposes 91 classes with the two new leaves populated. The pre-existing test_enums_match_source failure (its meos.h enum-block marker resolves against a partial header) is unrelated and untouched.

The curated class lattice had drifted from the MEOS catalog: the temporal
types tbigint, tjsonb, th3index, tquadbin, tpcpoint and tpcpatch were absent,
so the drift gate (test_object_model.py, which compares each node's temptypes
to the live predicate body) failed once MobilityDB sources were present.

Add the two in-scope leaf classes whose families are already modelled:

- TBigint (parent TNumber, base T_INT8)
- TJsonb  (parent TAlpha,  base T_JSONB)

and record their exact-prefix classification (tbigint_*, tjsonb_*).

Extend the membership lists of the abstract nodes to match their predicates
exactly: Temporal (temporal_type, now 18 members), TSpatial (tspatial_type,
+th3index +tquadbin), TNumber (+tbigint), TAlpha (+tjsonb); and the geodetic
trait (+th3index, the H3 cells being geodetic). The cell and point-cloud types
are carried as membership only, not yet as leaf classes, matching the manual
Figure 7.1 spatial tree that the model still reconciles against.

The pre-existing test_enums_match_source failure (its meos.h enum-block marker
resolves against a partial header) is unrelated and unchanged.
@estebanzimanyi estebanzimanyi merged commit b6d0fdc into MobilityDB:master Jul 15, 2026
2 checks passed
@estebanzimanyi estebanzimanyi deleted the fix/lattice-tbigint-tjsonb branch July 15, 2026 18:51
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