From ed3bd82731757670cc431726ac36ae3cb3d818a8 Mon Sep 17 00:00:00 2001 From: Esteban Zimanyi Date: Sat, 10 Oct 2026 16:08:42 +0200 Subject: [PATCH] Name every hand-written class of MobilitySpark in its README The section of the README on how MobilitySpark is built names the hand-written classes of src/main. They are MeosMemory, which frees the native pointers MEOS returns, and the three classes of the package catalyst, which extend a Spark session: MobilitySparkExtensions registers the generated surface on every session and adds the optimizer rules OrderConjunctsByCost and MaterializeNestedLoopSides. None of them registers a function itself; the surface remains the generated one. --- README.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 00e51e9c..655ea1aa 100644 --- a/README.md +++ b/README.md @@ -42,8 +42,13 @@ MobilityDB (master) The generator is `tools/codegen_jvm.py --engine spark`, which **JMEOS owns**. This repository stages it: `tools/codegen_jvm.py`, `tools/codegen_spark_udfs.py` and `tools/meos-idl.json` are gitignored, and the refresh chain and CI copy them in. Nothing under `target/generated-sources` -is committed either. The one hand-written class in `src/main` is `MeosMemory`, which frees the -native pointers MEOS returns. +is committed either. The hand-written classes in `src/main` register no function themselves: +`MeosMemory` frees the native pointers MEOS returns, and the three classes of the package +`catalyst` extend a Spark session: `MobilitySparkExtensions`, named in `spark.sql.extensions`, +registers the generated surface on every session and adds the two optimizer rules +`OrderConjunctsByCost`, which evaluates a conjunct calling a user-defined function after the +conjuncts that do not, and `MaterializeNestedLoopSides`, which computes once each side of a +nested-loop join that calls one. `GENERATION.md` is the full contract.