From 00e216b1a95602173f488714d3c45b9c2c4c68cd Mon Sep 17 00:00:00 2001 From: Esteban Zimanyi Date: Wed, 30 Sep 2026 15:31:09 +0200 Subject: [PATCH] Leave out of the Spark generator the result structs MEOS does not declare INTERNAL in codegen_spark_udfs.py lists the base types the Spark surface leaves out; it names Match, the one result struct a MEOS function returns, and none of TimeSplit, FloatSplit, FloatTimeSplit, IntSplit, IntTimeSplit and MvtGeom. Witness. None of those six appears as a return or parameter type in the catalog of MobilityDB 1f2769e1c5 with MEOS-API c663adc, nor in its meos/include headers; Match types 8 returns and parameters there. Measured. Over that catalog and the JMEOS jar built from it, the generator writes the same 281 group classes, UdfMarshal and GeneratedSpatioTemporalUDFs byte for byte, and its report differs only in the output directory it names. Why. The list states what MEOS declares, and a name MEOS does not declare decides nothing. --- tools/codegen_spark_udfs.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tools/codegen_spark_udfs.py b/tools/codegen_spark_udfs.py index b8e772ba7..0c4743880 100644 --- a/tools/codegen_spark_udfs.py +++ b/tools/codegen_spark_udfs.py @@ -145,8 +145,7 @@ def derive_codecs(cat, have): # genuinely-internal / non-user-facing base types -> legitimately OUT OF SCOPE. INTERNAL = {"Datum", "SkipList", "GBOX", "BOX3D", "void", "meosType", "MeosType", "uint8_t", "LWGEOM", "GEOSGeometry", "RTree", "interpType", "json_object", - "size_t", "Match", "TimeSplit", "FloatSplit", "FloatTimeSplit", - "IntSplit", "IntTimeSplit", "MvtGeom", "unsigned int", + "size_t", "Match", "unsigned int", "uint32", "Interval", "text", "char"} # (Interval/text/char START as harder marshalling — deferred to a follow-up pass; # counted as not-yet-emitted, NOT as a permanent exclusion. DateADT (->int) and