Skip to content

Bump GoMEOS to MEOS 1.4#3

Open
estebanzimanyi wants to merge 5 commits into
refactor/codegen-meos-idlfrom
bump/meos-1.4
Open

Bump GoMEOS to MEOS 1.4#3
estebanzimanyi wants to merge 5 commits into
refactor/codegen-meos-idlfrom
bump/meos-1.4

Conversation

@estebanzimanyi
Copy link
Copy Markdown
Member

Vendors the MEOS 1.4 IDL (3544 functions, +1149 over 1.3) on top of #2 and adds meos_cbuffer.h, meos_pose.h, and meos_rgeo.h to the codegen header list. Regenerates tools/_preview/ against the new catalog. Updates the hand-written wrappers in main_tpoint.go to match the MEOS 1.4 signatures: the tspatial-rel family (tcontains/tdisjoint/tdwithin/tintersects/ttouches) dropped the restr and atvalue parameters, and tpoint_at_geom/tpoint_minus_geom dropped the trailing z-span filter.

Vendor the MEOS 1.4 IDL (3544 functions, +1149 over 1.3) and the three
new public headers (meos_cbuffer.h, meos_pose.h, meos_rgeo.h) to
HEADER_FILES. Regenerate the tools/_preview/ wrappers against the new
catalog.

Update the hand-written wrappers in main_tpoint.go to match the MEOS
1.4 signatures: the tspatial-rel family (tcontains/tdisjoint/tdwithin/
tintersects/ttouches) dropped the restr/atvalue parameters and
tpoint_at_geom/tpoint_minus_geom dropped the trailing z-span filter.
estebanzimanyi and others added 4 commits May 14, 2026 15:36
The previous IDL was parsed from the MobilityDB source tree which
duplicates GSERIALIZED across build/postgis headers. Libclang
canonicalised the type to int * for ~400 geometry-bearing functions.
Regenerated against /usr/local/include and the codegen now emits
proper GSERIALIZED * wrappers.

TODO counts on the public surface dropped:
  meos_geo.h:          200 -> 0
  meos.h:              157 -> 10
  meos_internal.h:      22 -> 13
  meos_internal_geo.h:  12 -> 0
  meos_npoint.h:        15 -> 0

The remaining cbuffer/pose TODOs need shape metadata in MEOS-API for
the *_in/_out/_round families before they can be wrapped without
human intervention.
The MEOS 1.4 surface adds the cbuffer, pose, and rgeo temporal type
families.  Add them to WRAPPER_TYPES so the generator emits proper
*Cbuffer / *Pose / *Rgeo wrappers instead of leaving 277 TODO stubs.

TODO counts on the new headers drop to:
  meos_cbuffer.h: 105 -> 1
  meos_pose.h:     77 -> 2
  meos_rgeo.h:      1 -> 0

The three remaining (cbufferset_values, poseset_values, pose_orientation)
need shape metadata in MEOS-API before they can be wrapped without
hand-rolling the length-from-accessor pattern.
MEOS-API now carries arrayReturn metadata for cbufferset_values and
poseset_values, mirroring geoset_values. cbuffer TODO drops 1 -> 0;
pose TODO drops 2 -> 1 (only pose_orientation remains, which returns a
fixed-size 4-element quaternion that needs its own shape kind).
State that GoMEOS tracks MEOS 1.4 and that the wrappers are generated
from the MEOS-API meos-idl.json catalog, pointing at tools/README.md for
regeneration, and fix the MobilityDB link to the source repository.
@estebanzimanyi estebanzimanyi requested a review from Davichet-e May 15, 2026 05:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant