Skip to content

Share one JVM code generator across the bindings#40

Merged
estebanzimanyi merged 1 commit into
MobilityDB:mainfrom
estebanzimanyi:jvmgen/unify-generator
Jul 16, 2026
Merged

Share one JVM code generator across the bindings#40
estebanzimanyi merged 1 commit into
MobilityDB:mainfrom
estebanzimanyi:jvmgen/unify-generator

Conversation

@estebanzimanyi

Copy link
Copy Markdown
Member

Introduce tools/codegen_jvm.py, a single MEOS-surface generator selected by --engine {spark|flink|kafka} and vendored identically by every JVM binding (MobilitySpark, MobilityFlink, MobilityKafka), so the generated surface cannot drift between engines.

  • --engine spark delegates verbatim to the existing tools/codegen_spark_udfs.py (unchanged), so the emitted UDF surface is byte-identical to what that generator produces on its own (226 files, diff -rq clean).
  • --engine flink|kafka emit the MeosOps* streaming forwarder facades over the full jar surface (used by the Flink and Kafka bindings; not exercised here).

The build invokes codegen_jvm.py --engine spark; codegen_spark_udfs.py remains the vendored spark back-end it delegates to.

Introduce tools/codegen_jvm.py, the single MEOS-surface generator vendored
identically by every JVM binding, selected by --engine {spark|flink|kafka}.
The spark engine delegates verbatim to the existing tools/codegen_spark_udfs.py,
so the emitted UDF surface is byte-identical; the flink/kafka engines emit the
MeosOps* streaming facades. Wire the build to codegen_jvm.py --engine spark.
@estebanzimanyi
estebanzimanyi force-pushed the jvmgen/unify-generator branch from c62ed46 to aa7f520 Compare July 16, 2026 10:35
@estebanzimanyi
estebanzimanyi merged commit 315a501 into MobilityDB:main Jul 16, 2026
1 check 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