Skip to content

feat(build): select MEOS type families with MobilityDB/MEOS-style build flags (stacks on #19)#22

Open
estebanzimanyi wants to merge 7 commits into
MobilityDB:mainfrom
estebanzimanyi:feat/family-build-flags
Open

feat(build): select MEOS type families with MobilityDB/MEOS-style build flags (stacks on #19)#22
estebanzimanyi wants to merge 7 commits into
MobilityDB:mainfrom
estebanzimanyi:feat/family-build-flags

Conversation

@estebanzimanyi

Copy link
Copy Markdown
Member

The functions.GeneratedFunctions facade is generated at build time from the MEOS IDL with the optional type families selected by the same flag names and ON|OFF (also 1|0) values as the MobilityDB/MEOS build: -DCBUFFER, -DNPOINT, -DPOSE, -DRGEO, -DH3. Every family is included by default; passing -DCBUFFER=OFF (or =0) drops that family's functions from the generated binding so a subset jar ships without it (RGEO needs POSE). FunctionsGenerator maps each function's source header to its family and omits excluded families; jmeos-core runs the generator at generate-sources (so the flag flows through mvn) and compiles the generated functions.GeneratedFunctions.

… surface

Bump codegen/input/meos-idl.json to the MEOS-API IDL and regenerate
functions.GeneratedFunctions over the full consolidated superset: mul_* (incl.
tbigint); minDistance; the circular-buffer and network-point MF-JSON readers; the
ever- and always-covers families (ecovers_*/acovers_*); trgeo_*; the H3 /
th3index family (ever_eq_h3indexset_th3index, h3index_in/out, H3Index lowered to
long); PostgreSQL type I/O; tgeogpoint_great_circle_distance;
meos_initialize_noexit_error_handler. 2916 functions.
Add the codegen exec step to jmeos-core so functions/GeneratedFunctions.java is
produced from codegen/input/meos-idl.json during the build, and drop the
committed copy.
Run meos_initialize() from the binding's load path so the allocator and
collation are installed before any call. MEOS splits startup into granular
steps; without the collation step, text comparisons route into varstr_cmp with
an uninitialized collation and crash.
Call the generated functions class from TText and TextSet instead of the
hand-maintained facade, so the text conversions use the canonical master names
(cstring_to_text, text_to_cstring).
Resolve each function's family from the IDL family field that MEOS-API derives
from the declaring header's meos/include/<family>/ subdirectory, falling back to
the header-basename map for IDLs generated before that field existed. Extend the
optional set to every family the surface exposes — CBUFFER, NPOINT, POSE, RGEO,
H3, QUADBIN, POINTCLOUD, JSON, ARROW, RASTER — so an edge build drops any unused
family with -D<FAMILY>=OFF (e.g. POINTCLOUD) to shrink its footprint. CORE is
always emitted.
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