Skip to content

feat(meos): expose the tbigint temporal family + always-covers; audit the full public surface (stacks on #18)#19

Closed
estebanzimanyi wants to merge 1 commit into
MobilityDB:feat/th3index-facadefrom
estebanzimanyi:feat/parity-tbigint-acovers
Closed

feat(meos): expose the tbigint temporal family + always-covers; audit the full public surface (stacks on #18)#19
estebanzimanyi wants to merge 1 commit into
MobilityDB:feat/th3index-facadefrom
estebanzimanyi:feat/parity-tbigint-acovers

Conversation

@estebanzimanyi

Copy link
Copy Markdown
Member

The MEOS facade exposes the tbigint temporal type (MeosOpsTBigint, emitted by tools/codegen/emit_tbigint_facade.py from the public meos.h tbigint surface intersected with the jar) alongside the existing bigint set/span classes, and the always-covers functions (acovers_*) via the gap forwarders. The parity audit counts meos_h3.h (the H3/th3index family) so the denominator is the full MEOS public C surface. The facade exposes 2296 of the 2296 JMEOS-bindable public MEOS functions across all families, and the SQL surface 1068 of 1068.

… the full public surface

The MEOS facade exposes the tbigint temporal type (MeosOpsTBigint, emitted by
tools/codegen/emit_tbigint_facade.py from the public meos.h tbigint surface
intersected with the jar) alongside the existing bigint set/span classes, and the
always-covers functions (acovers_*) via the gap forwarders. The parity audit
counts meos_h3.h (the H3/th3index family) so the denominator is the full MEOS
public C surface, not a subset. The facade exposes 2296 of the 2296 JMEOS-bindable
public MEOS functions across all families (core/geo/cbuffer/npoint/pose/rgeo/h3),
and the SQL surface 1068 of 1068.
estebanzimanyi added a commit to estebanzimanyi/MobilityFlink that referenced this pull request May 31, 2026
… surface

Add a generated, tier-aware Java facade over the MEOS public API,
organized as one Java class per MEOS object-model class plus one per
public-MEOS-header for free functions:

- 50 `MeosOps<Class>` classes (751 methods): one per MEOS object-model
  class (TFloat, TInt, TBool, TText, TGeomPoint, TGeogPoint, TCbuffer,
  TNpoint, TPose, TRGeometry, TBox, STBox, Set, Span, SpanSet, …).
- 6 `MeosOpsFree<Header>` classes (1,346 methods): one per public MEOS
  header for functions not assigned to any object-model class
  (MeosOpsFreeCore, MeosOpsFreeGeo, MeosOpsFreeCbuffer, MeosOpsFreeNpoint,
  MeosOpsFreePose, MeosOpsFreeRgeo).
- 1 shared `MeosOpsRuntime` (single `MEOS_AVAILABLE` static-init across
  all 56 facades).

Each emitted method forwards to `functions.GeneratedFunctions.<name>(...)`
after probing the shared `MeosOpsRuntime.MEOS_AVAILABLE` flag. Each
method carries a Javadoc tier marker (stateless / bounded-state /
windowed / cross-stream / io-meta) so consumers know the per-method
wiring shape.

Total emit: 2,097 of JMEOS PR MobilityDB#19's 2,699-method surface (77.7%);
remainder is the JMEOS-deliberately-omitted type-catalog helpers plus
the streaming-relevance-baseline ambiguous (59) and sequence-only (14)
buckets, both surfaced separately for design decisions before emit.

Two generators under flink-processor/tools/codegen/:
- codegen-oo.py: reads JMEOS jar signatures via javap-p +
  streaming-relevance baseline + MEOS object model → emits per-OO-class
  facades.
- codegen-free.py: same shape, but for functions not in the OO model →
  emits per-header facades.

Both are ~250 LOC, deterministic, audit-by-regeneration. Manifests
record provenance (JMEOS method total, baseline target count, emit
count, per-tier breakdown, per-class/per-header method count, sample
of functions absent from JMEOS).

Coexists with the existing berlinmod.MEOSBridge hand-written
BerlinMOD-scoped bridge (high-level, query-shaped); the generated
MeosOps* facades expose the raw MEOS surface tier-by-tier
(low-level, catalog-shaped). Both share the same MEOS_AVAILABLE
discipline and `functions.GeneratedFunctions` delegation.

Stacks on feat/jmeos-bridge-swap; additive-only; touches no existing
file. Locally compile-verified against the union of JMEOS PR MobilityDB#19's
jmeos-core + PR MobilityDB#18's utils.spatial (the latter needed by MEOSBridge,
separately tracked).

(cherry picked from commit e5707ac)
@estebanzimanyi estebanzimanyi force-pushed the feat/parity-tbigint-acovers branch from c086a78 to 01100f0 Compare May 31, 2026 07:49
@estebanzimanyi estebanzimanyi changed the base branch from main to feat/th3index-facade June 11, 2026 16:46
@estebanzimanyi

Copy link
Copy Markdown
Member Author

Superseded by the Path-B consolidation: the former 18-deep stack is collapsed into two reviewable topical PRs on top of the merged scaffold — MEOS integration #30 → benchmark #31 — each one clean squashed commit with the generated-facade bulk, dead family-flag profiles, committed target/ artifacts, and invented synthetic corpus removed. Closing as folded into #30/#31.

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