Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions flink-processor/docs/parity-status.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Generated 2026-05-29 by `tools/parity/parity_audit.py`.

The MobilityFlink MEOS facade (`org.mobilitydb.flink.meos.MeosOps*`) exposes MEOS C functions to Flink through JMEOS. This audit measures, per type family, the share of the **MEOS public C API** that the facade exposes and that JMEOS binds.

**Headline.** The facade exposes **2153 of 2153 public MEOS functions (100.0%)**. The MEOS public surface (`meos/include/meos*.h`, excluding internal headers) is 2158 functions; JMEOS binds 2153 of them. 0 bindable functions are not exposed (listed in §3).
**Headline.** The facade exposes **2158 of 2158 public MEOS functions (100.0%)**. The MEOS public surface (`meos/include/meos*.h`, excluding internal headers) is 2158 functions; JMEOS binds 2158 of them. 0 bindable functions are not exposed (listed in §3).

Coverage is **static**: a function counts as covered when the facade declares a method of the same name and arity that delegates to a JMEOS export.

Expand All @@ -16,19 +16,19 @@ Per-family runtime behaviour is asserted by `src/test/java/org/mobilitydb/flink/

- **Numerator**: `public static` methods on the generated `MeosOps*` facade whose name is also a `functions.GeneratedFunctions` export in the bundled JMEOS jar.

- **JMEOS jar**: jar/JMEOS.jar exports 2699 static methods.
- **JMEOS jar**: jar/JMEOS.jar exports 2743 static methods.

## 2. Per-family coverage of the public MEOS surface

| Family (header) | Public ∩ JMEOS | Exposed | Missing | Coverage |
|---|---:|---:|---:|---:|
| core temporal / set / span / spanset / tbox (`meos.h`) | 1274 | 1274 | 0 | 100.0% |
| core temporal / set / span / spanset / tbox (`meos.h`) | 1279 | 1279 | 0 | 100.0% |
| geo (tgeo / tpoint / stbox) (`meos_geo.h`) | 419 | 419 | 0 | 100.0% |
| cbuffer (`meos_cbuffer.h`) | 173 | 173 | 0 | 100.0% |
| npoint (`meos_npoint.h`) | 118 | 118 | 0 | 100.0% |
| pose (`meos_pose.h`) | 101 | 101 | 0 | 100.0% |
| rgeo (`meos_rgeo.h`) | 68 | 68 | 0 | 100.0% |
| **total** | **2153** | **2153** | **0** | **100.0%** |
| **total** | **2158** | **2158** | **0** | **100.0%** |

## 3. Bindable MEOS functions not exposed by the facade

Expand All @@ -39,7 +39,7 @@ Per-family runtime behaviour is asserted by `src/test/java/org/mobilitydb/flink/

The facade is also matched against the underlying MEOS C symbol of each addressable `CREATE FUNCTION` in `mobilitydb/sql/**/*.in.sql` (PG-only sections and helper symbols bucketed out; 876 out-of-scope, 113 SQL/plpgsql-composed functions with no single C symbol). Functions the SQL layer implements through the internal MEOS headers (`meos_internal*.h`) are exposed via `MeosOpsSqlSurface`.

- Addressable distinct C symbols: **1336**; bound by JMEOS: **1065**; exposed by the facade: **1065** (100.0% of the JMEOS-bindable SQL surface).
- Addressable distinct C symbols: **1336**; bound by JMEOS: **1066**; exposed by the facade: **1066** (100.0% of the JMEOS-bindable SQL surface).

- The remaining **271** addressable C symbols are not exported by JMEOS under the name the SQL layer's extension wrapper uses; the wrapper names differ from the MEOS function names they call.
- The remaining **270** addressable C symbols are not exported by JMEOS under the name the SQL layer's extension wrapper uses; the wrapper names differ from the MEOS function names they call.

Binary file modified flink-processor/jar/JMEOS.jar
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ private MeosOpsBigintSet() { /* utility */ }
* <p>Object-model role: {@code constructor}.</p>
* <p>Classification: constructor of instant/scalar</p>
*/
public static Pointer bigintset_make(Pointer arg0, int arg1) {
public static jnr.ffi.Pointer bigintset_make(jnr.ffi.Pointer arg0, int arg1) {
if (!MEOS_AVAILABLE) {
throw new UnsupportedOperationException(
"bigintset_make requires libmeos — set -Dmobilityflink.meos.enabled=true");
Expand All @@ -35,7 +35,7 @@ public static Pointer bigintset_make(Pointer arg0, int arg1) {
* <p>Object-model role: {@code accessor}.</p>
* <p>Classification: role=accessor</p>
*/
public static int bigintset_end_value(Pointer arg0) {
public static long bigintset_end_value(jnr.ffi.Pointer arg0) {
if (!MEOS_AVAILABLE) {
throw new UnsupportedOperationException(
"bigintset_end_value requires libmeos — set -Dmobilityflink.meos.enabled=true");
Expand All @@ -49,7 +49,7 @@ public static int bigintset_end_value(Pointer arg0) {
* <p>Object-model role: {@code accessor}.</p>
* <p>Classification: role=accessor</p>
*/
public static Pointer bigintset_shift_scale(Pointer arg0, int arg1, int arg2, int arg3, int arg4) {
public static jnr.ffi.Pointer bigintset_shift_scale(jnr.ffi.Pointer arg0, long arg1, long arg2, boolean arg3, boolean arg4) {
if (!MEOS_AVAILABLE) {
throw new UnsupportedOperationException(
"bigintset_shift_scale requires libmeos — set -Dmobilityflink.meos.enabled=true");
Expand All @@ -63,7 +63,7 @@ public static Pointer bigintset_shift_scale(Pointer arg0, int arg1, int arg2, in
* <p>Object-model role: {@code accessor}.</p>
* <p>Classification: role=accessor</p>
*/
public static int bigintset_start_value(Pointer arg0) {
public static long bigintset_start_value(jnr.ffi.Pointer arg0) {
if (!MEOS_AVAILABLE) {
throw new UnsupportedOperationException(
"bigintset_start_value requires libmeos — set -Dmobilityflink.meos.enabled=true");
Expand All @@ -77,12 +77,12 @@ public static int bigintset_start_value(Pointer arg0) {
* <p>Object-model role: {@code accessor}.</p>
* <p>Classification: role=accessor</p>
*/
public static int bigintset_value_n(Pointer arg0, int arg1, Pointer arg2) {
public static jnr.ffi.Pointer bigintset_value_n(jnr.ffi.Pointer arg0, int arg1) {
if (!MEOS_AVAILABLE) {
throw new UnsupportedOperationException(
"bigintset_value_n requires libmeos — set -Dmobilityflink.meos.enabled=true");
}
return GeneratedFunctions.bigintset_value_n(arg0, arg1, arg2);
return GeneratedFunctions.bigintset_value_n(arg0, arg1);
}

/**
Expand All @@ -91,7 +91,7 @@ public static int bigintset_value_n(Pointer arg0, int arg1, Pointer arg2) {
* <p>Object-model role: {@code accessor}.</p>
* <p>Classification: role=accessor</p>
*/
public static Pointer bigintset_values(Pointer arg0) {
public static jnr.ffi.Pointer bigintset_values(jnr.ffi.Pointer arg0) {
if (!MEOS_AVAILABLE) {
throw new UnsupportedOperationException(
"bigintset_values requires libmeos — set -Dmobilityflink.meos.enabled=true");
Expand All @@ -105,7 +105,7 @@ public static Pointer bigintset_values(Pointer arg0) {
* <p>Object-model role: {@code constructor}.</p>
* <p>Classification: IO/serialization</p>
*/
public static Pointer bigintset_in(String arg0) {
public static jnr.ffi.Pointer bigintset_in(java.lang.String arg0) {
if (!MEOS_AVAILABLE) {
throw new UnsupportedOperationException(
"bigintset_in requires libmeos — set -Dmobilityflink.meos.enabled=true");
Expand All @@ -119,7 +119,7 @@ public static Pointer bigintset_in(String arg0) {
* <p>Object-model role: {@code output}.</p>
* <p>Classification: IO/serialization</p>
*/
public static String bigintset_out(Pointer arg0) {
public static java.lang.String bigintset_out(jnr.ffi.Pointer arg0) {
if (!MEOS_AVAILABLE) {
throw new UnsupportedOperationException(
"bigintset_out requires libmeos — set -Dmobilityflink.meos.enabled=true");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ private MeosOpsBigintSpan() { /* utility */ }
* <p>Object-model role: {@code constructor}.</p>
* <p>Classification: constructor of instant/scalar</p>
*/
public static Pointer bigintspan_make(int arg0, int arg1, int arg2, int arg3) {
public static jnr.ffi.Pointer bigintspan_make(long arg0, long arg1, boolean arg2, boolean arg3) {
if (!MEOS_AVAILABLE) {
throw new UnsupportedOperationException(
"bigintspan_make requires libmeos — set -Dmobilityflink.meos.enabled=true");
Expand All @@ -35,7 +35,7 @@ public static Pointer bigintspan_make(int arg0, int arg1, int arg2, int arg3) {
* <p>Object-model role: {@code accessor}.</p>
* <p>Classification: role=accessor</p>
*/
public static Pointer bigintspan_bins(Pointer arg0, int arg1, int arg2, Pointer arg3) {
public static jnr.ffi.Pointer bigintspan_bins(jnr.ffi.Pointer arg0, long arg1, long arg2, jnr.ffi.Pointer arg3) {
if (!MEOS_AVAILABLE) {
throw new UnsupportedOperationException(
"bigintspan_bins requires libmeos — set -Dmobilityflink.meos.enabled=true");
Expand All @@ -49,7 +49,7 @@ public static Pointer bigintspan_bins(Pointer arg0, int arg1, int arg2, Pointer
* <p>Object-model role: {@code accessor}.</p>
* <p>Classification: role=accessor</p>
*/
public static Pointer bigintspan_expand(Pointer arg0, int arg1) {
public static jnr.ffi.Pointer bigintspan_expand(jnr.ffi.Pointer arg0, long arg1) {
if (!MEOS_AVAILABLE) {
throw new UnsupportedOperationException(
"bigintspan_expand requires libmeos — set -Dmobilityflink.meos.enabled=true");
Expand All @@ -63,7 +63,7 @@ public static Pointer bigintspan_expand(Pointer arg0, int arg1) {
* <p>Object-model role: {@code accessor}.</p>
* <p>Classification: role=accessor</p>
*/
public static int bigintspan_lower(Pointer arg0) {
public static long bigintspan_lower(jnr.ffi.Pointer arg0) {
if (!MEOS_AVAILABLE) {
throw new UnsupportedOperationException(
"bigintspan_lower requires libmeos — set -Dmobilityflink.meos.enabled=true");
Expand All @@ -77,7 +77,7 @@ public static int bigintspan_lower(Pointer arg0) {
* <p>Object-model role: {@code accessor}.</p>
* <p>Classification: role=accessor</p>
*/
public static Pointer bigintspan_shift_scale(Pointer arg0, int arg1, int arg2, int arg3, int arg4) {
public static jnr.ffi.Pointer bigintspan_shift_scale(jnr.ffi.Pointer arg0, long arg1, long arg2, boolean arg3, boolean arg4) {
if (!MEOS_AVAILABLE) {
throw new UnsupportedOperationException(
"bigintspan_shift_scale requires libmeos — set -Dmobilityflink.meos.enabled=true");
Expand All @@ -91,7 +91,7 @@ public static Pointer bigintspan_shift_scale(Pointer arg0, int arg1, int arg2, i
* <p>Object-model role: {@code accessor}.</p>
* <p>Classification: role=accessor</p>
*/
public static int bigintspan_upper(Pointer arg0) {
public static long bigintspan_upper(jnr.ffi.Pointer arg0) {
if (!MEOS_AVAILABLE) {
throw new UnsupportedOperationException(
"bigintspan_upper requires libmeos — set -Dmobilityflink.meos.enabled=true");
Expand All @@ -105,7 +105,7 @@ public static int bigintspan_upper(Pointer arg0) {
* <p>Object-model role: {@code accessor}.</p>
* <p>Classification: role=accessor</p>
*/
public static int bigintspan_width(Pointer arg0) {
public static long bigintspan_width(jnr.ffi.Pointer arg0) {
if (!MEOS_AVAILABLE) {
throw new UnsupportedOperationException(
"bigintspan_width requires libmeos — set -Dmobilityflink.meos.enabled=true");
Expand All @@ -119,7 +119,7 @@ public static int bigintspan_width(Pointer arg0) {
* <p>Object-model role: {@code constructor}.</p>
* <p>Classification: IO/serialization</p>
*/
public static Pointer bigintspan_in(String arg0) {
public static jnr.ffi.Pointer bigintspan_in(java.lang.String arg0) {
if (!MEOS_AVAILABLE) {
throw new UnsupportedOperationException(
"bigintspan_in requires libmeos — set -Dmobilityflink.meos.enabled=true");
Expand All @@ -133,7 +133,7 @@ public static Pointer bigintspan_in(String arg0) {
* <p>Object-model role: {@code output}.</p>
* <p>Classification: IO/serialization</p>
*/
public static String bigintspan_out(Pointer arg0) {
public static java.lang.String bigintspan_out(jnr.ffi.Pointer arg0) {
if (!MEOS_AVAILABLE) {
throw new UnsupportedOperationException(
"bigintspan_out requires libmeos — set -Dmobilityflink.meos.enabled=true");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ private MeosOpsBigintSpanSet() { /* utility */ }
* <p>Object-model role: {@code accessor}.</p>
* <p>Classification: role=accessor</p>
*/
public static Pointer bigintspanset_bins(Pointer arg0, int arg1, int arg2, Pointer arg3) {
public static jnr.ffi.Pointer bigintspanset_bins(jnr.ffi.Pointer arg0, long arg1, long arg2, jnr.ffi.Pointer arg3) {
if (!MEOS_AVAILABLE) {
throw new UnsupportedOperationException(
"bigintspanset_bins requires libmeos — set -Dmobilityflink.meos.enabled=true");
Expand All @@ -35,7 +35,7 @@ public static Pointer bigintspanset_bins(Pointer arg0, int arg1, int arg2, Point
* <p>Object-model role: {@code accessor}.</p>
* <p>Classification: role=accessor</p>
*/
public static int bigintspanset_lower(Pointer arg0) {
public static long bigintspanset_lower(jnr.ffi.Pointer arg0) {
if (!MEOS_AVAILABLE) {
throw new UnsupportedOperationException(
"bigintspanset_lower requires libmeos — set -Dmobilityflink.meos.enabled=true");
Expand All @@ -49,7 +49,7 @@ public static int bigintspanset_lower(Pointer arg0) {
* <p>Object-model role: {@code accessor}.</p>
* <p>Classification: role=accessor</p>
*/
public static Pointer bigintspanset_shift_scale(Pointer arg0, int arg1, int arg2, int arg3, int arg4) {
public static jnr.ffi.Pointer bigintspanset_shift_scale(jnr.ffi.Pointer arg0, long arg1, long arg2, boolean arg3, boolean arg4) {
if (!MEOS_AVAILABLE) {
throw new UnsupportedOperationException(
"bigintspanset_shift_scale requires libmeos — set -Dmobilityflink.meos.enabled=true");
Expand All @@ -63,7 +63,7 @@ public static Pointer bigintspanset_shift_scale(Pointer arg0, int arg1, int arg2
* <p>Object-model role: {@code accessor}.</p>
* <p>Classification: role=accessor</p>
*/
public static int bigintspanset_upper(Pointer arg0) {
public static long bigintspanset_upper(jnr.ffi.Pointer arg0) {
if (!MEOS_AVAILABLE) {
throw new UnsupportedOperationException(
"bigintspanset_upper requires libmeos — set -Dmobilityflink.meos.enabled=true");
Expand All @@ -77,7 +77,7 @@ public static int bigintspanset_upper(Pointer arg0) {
* <p>Object-model role: {@code accessor}.</p>
* <p>Classification: role=accessor</p>
*/
public static int bigintspanset_width(Pointer arg0, int arg1) {
public static long bigintspanset_width(jnr.ffi.Pointer arg0, boolean arg1) {
if (!MEOS_AVAILABLE) {
throw new UnsupportedOperationException(
"bigintspanset_width requires libmeos — set -Dmobilityflink.meos.enabled=true");
Expand All @@ -91,7 +91,7 @@ public static int bigintspanset_width(Pointer arg0, int arg1) {
* <p>Object-model role: {@code constructor}.</p>
* <p>Classification: IO/serialization</p>
*/
public static Pointer bigintspanset_in(String arg0) {
public static jnr.ffi.Pointer bigintspanset_in(java.lang.String arg0) {
if (!MEOS_AVAILABLE) {
throw new UnsupportedOperationException(
"bigintspanset_in requires libmeos — set -Dmobilityflink.meos.enabled=true");
Expand All @@ -105,7 +105,7 @@ public static Pointer bigintspanset_in(String arg0) {
* <p>Object-model role: {@code output}.</p>
* <p>Classification: IO/serialization</p>
*/
public static String bigintspanset_out(Pointer arg0) {
public static java.lang.String bigintspanset_out(jnr.ffi.Pointer arg0) {
if (!MEOS_AVAILABLE) {
throw new UnsupportedOperationException(
"bigintspanset_out requires libmeos — set -Dmobilityflink.meos.enabled=true");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ private MeosOpsCbufferSet() { /* utility */ }
* <p>Object-model role: {@code constructor}.</p>
* <p>Classification: constructor of instant/scalar</p>
*/
public static Pointer cbufferset_make(Pointer arg0, int arg1) {
public static jnr.ffi.Pointer cbufferset_make(jnr.ffi.Pointer arg0, int arg1) {
if (!MEOS_AVAILABLE) {
throw new UnsupportedOperationException(
"cbufferset_make requires libmeos — set -Dmobilityflink.meos.enabled=true");
Expand All @@ -35,7 +35,7 @@ public static Pointer cbufferset_make(Pointer arg0, int arg1) {
* <p>Object-model role: {@code accessor}.</p>
* <p>Classification: role=accessor</p>
*/
public static Pointer cbufferset_end_value(Pointer arg0) {
public static jnr.ffi.Pointer cbufferset_end_value(jnr.ffi.Pointer arg0) {
if (!MEOS_AVAILABLE) {
throw new UnsupportedOperationException(
"cbufferset_end_value requires libmeos — set -Dmobilityflink.meos.enabled=true");
Expand All @@ -49,7 +49,7 @@ public static Pointer cbufferset_end_value(Pointer arg0) {
* <p>Object-model role: {@code accessor}.</p>
* <p>Classification: role=accessor</p>
*/
public static Pointer cbufferset_start_value(Pointer arg0) {
public static jnr.ffi.Pointer cbufferset_start_value(jnr.ffi.Pointer arg0) {
if (!MEOS_AVAILABLE) {
throw new UnsupportedOperationException(
"cbufferset_start_value requires libmeos — set -Dmobilityflink.meos.enabled=true");
Expand All @@ -63,12 +63,12 @@ public static Pointer cbufferset_start_value(Pointer arg0) {
* <p>Object-model role: {@code accessor}.</p>
* <p>Classification: role=accessor</p>
*/
public static int cbufferset_value_n(Pointer arg0, int arg1, Pointer arg2) {
public static jnr.ffi.Pointer cbufferset_value_n(jnr.ffi.Pointer arg0, int arg1) {
if (!MEOS_AVAILABLE) {
throw new UnsupportedOperationException(
"cbufferset_value_n requires libmeos — set -Dmobilityflink.meos.enabled=true");
}
return GeneratedFunctions.cbufferset_value_n(arg0, arg1, arg2);
return GeneratedFunctions.cbufferset_value_n(arg0, arg1);
}

/**
Expand All @@ -77,7 +77,7 @@ public static int cbufferset_value_n(Pointer arg0, int arg1, Pointer arg2) {
* <p>Object-model role: {@code accessor}.</p>
* <p>Classification: role=accessor</p>
*/
public static Pointer cbufferset_values(Pointer arg0) {
public static jnr.ffi.Pointer cbufferset_values(jnr.ffi.Pointer arg0) {
if (!MEOS_AVAILABLE) {
throw new UnsupportedOperationException(
"cbufferset_values requires libmeos — set -Dmobilityflink.meos.enabled=true");
Expand All @@ -91,7 +91,7 @@ public static Pointer cbufferset_values(Pointer arg0) {
* <p>Object-model role: {@code constructor}.</p>
* <p>Classification: IO/serialization</p>
*/
public static Pointer cbufferset_in(String arg0) {
public static jnr.ffi.Pointer cbufferset_in(java.lang.String arg0) {
if (!MEOS_AVAILABLE) {
throw new UnsupportedOperationException(
"cbufferset_in requires libmeos — set -Dmobilityflink.meos.enabled=true");
Expand All @@ -105,7 +105,7 @@ public static Pointer cbufferset_in(String arg0) {
* <p>Object-model role: {@code output}.</p>
* <p>Classification: IO/serialization</p>
*/
public static String cbufferset_out(Pointer arg0, int arg1) {
public static java.lang.String cbufferset_out(jnr.ffi.Pointer arg0, int arg1) {
if (!MEOS_AVAILABLE) {
throw new UnsupportedOperationException(
"cbufferset_out requires libmeos — set -Dmobilityflink.meos.enabled=true");
Expand Down
Loading