Skip to content

Add the core trgeometry type port#153

Open
estebanzimanyi wants to merge 1 commit into
feat/tpose-port-corefrom
feat/trgeometry-port-core
Open

Add the core trgeometry type port#153
estebanzimanyi wants to merge 1 commit into
feat/tpose-port-corefrom
feat/trgeometry-port-core

Conversation

@estebanzimanyi
Copy link
Copy Markdown
Member

Port the temporal rigid geometry type into MobilityDuck by cloning the core tpose port and substituting trgeometry. A trgeometry value is a moving rigid geometry: a reference geometry rigidly rotated and translated over time by an embedded temporal pose, written as 'Geometry;Pose@timestamp'. The renamed trgeometry_in, trgeometry_from_mfjson and trgeometry_out symbols are exported from meos_rgeo.h after the cross-type C-API uniformization, so text, EWKT and MF-JSON I/O route through the type-specific entry points the canonical MobilityDB SQL binds, making this a clean clone of the template rather than the tspatial_parse work-around the earlier superseded attempt used. meos_rgeo.h is deliberately not included because its trgeometry_append_tinstant prototype takes a MEOS Interval that collides with duckdb::Interval; the few trgeometry_* symbols are declared locally instead. The rigid value model adds the geometry/pose/timestamptz and geometry/tpose constructors, the geometry accessor that surfaces the reference geometry via trgeometry_geom, and startValue/endValue that surface the moved rigid-geometry snapshot via trgeometry_start_value/trgeometry_end_value, while getValue surfaces the underlying pose. The cloned instant-array helper is suffixed temparr_extract_rg to avoid an ODR clash with the tpose, tnpoint and tcbuffer siblings in the same extension library. Generic subtype-agnostic accessors, time-domain restrictions, modifiers and comparison reuse the shared temporal handlers. Core scope only, no operators layer, mirroring the tcbuffer, tnpoint and tpose core ports. The provisional MEOS pin is moved to the verified integration branch that exposes the renamed trgeometry_* MEOS surface alongside the tcbuffer/tnpoint MF-JSON and tpose surfaces. Stacks on the core tpose type port #151 and targets its branch as base.

estebanzimanyi added a commit to estebanzimanyi/MobilityDuck that referenced this pull request May 20, 2026
`meosType` (lower-case) is the **pre-consolidation** MEOS type name;
`MeosType` (upper-case) is the **post-consolidation** target that the
upstream rename sweep has not yet reached.  The current vcpkg pin
(`vcpkg_ports/meos/portfile.cmake` REF f11b7443ee98…) is still
pre-consolidation: `meos/include/temporal/meos_catalog.h` line 121
declares the typedef as `} meosType;` and every MEOS API uses the
lower-case spelling.  MobilityDuck's source code consistently uses
`meosType` to match — `grep -rn '\bMeosType\b' src/` finds the name
only on the alias line and its comment, nowhere else.

c8cad6d added `using meosType = MeosType;` as a forward-looking
bridge for the eventual consolidation bump.  That bridge points at
`MeosType`, which the current pin does NOT yet expose, so it
breaks every PR's Linux arm64 build with:

  /duckdb_build_dir/src/include/tydef.hpp:18:18:
    error: ‘MeosType’ does not name a type; did you mean ‘meosType’?

The fix is to drop the premature alias and replace the misleading
comment with one that documents the pre/post-consolidation distinction
and the resume path for the next pin bump — at that point a reviewer
can either restore the bridge (this time it'll be valid because
`MeosType` will exist) or sweep the MobilityDuck source from
`meosType` to `MeosType` in a single PR.

Unblocks every in-flight PR's Linux arm64 build: MobilityDB#126, MobilityDB#130, MobilityDB#149,
MobilityDB#158, MobilityDB#159, MobilityDB#160, plus the entire `feat/*_port_core` extended-type
stack (MobilityDB#148/MobilityDB#150/MobilityDB#151/MobilityDB#153/MobilityDB#155/MobilityDB#156).
@estebanzimanyi
Copy link
Copy Markdown
Member Author

Reviewer's quickstart — ~5 minutes

What this PR does in one sentence: adds the core MobilityDuck port of the trgeometry extended temporal type — a thin trampoline layer over the matching MEOS C surface, registering the type, its constructors, accessors, and operators as DuckDB scalar functions.

Files to read (priority order):

  1. src/mobilityduck_extension.cpp — registration block: TrgeometryType::RegisterType(loader) + RegisterScalarFunctions(loader) etc.
  2. src/geo/trgeometry.cpp — the trampoline implementations. Each scalar is the same shape: deserialize → call MEOS → serialize.
  3. test/sql/trgeometry.test — assertions for the constructor / accessor / operator coverage.

Upstream dependency: depends on MobilityDB #1084 (the MEOS-C trgeometry typed surface) reaching master. Without that, the trampoline targets don't exist in the linked libmeos and the build fails on undefined-symbol.

Cross-link: the Linux arm64 build failure here is the MeosType alias bug — resolves when #161 lands. The remaining gate is the MEOS-side dependency above.

Recommended sequence: wait for MobilityDB #1084 to land → bump the MEOS pin in vcpkg_ports/meos/portfile.cmake → rebuild this PR's branch → CI green.

Why it's safe to merge (when the upstream dependency is satisfied): strictly additive — new type, new functions, new tests. No existing functionality changed.

@estebanzimanyi
Copy link
Copy Markdown
Member Author

Static MEOS-symbol analysis — confirmed gated on MobilityDB #1084

Static inspection of the current pinned MEOS (vcpkg_ports/meos/portfile.cmake REF f11b7443ee98…) confirms this PR's expected backing symbols are not yet in the pin:

- `trgeometry*`: 0 exported in current pin
- `trgeo_*`: 0 exported in current pin
- `rgeo_*`: 0 exported in current pin

These are the *_meos.c constructor / ctor-from-base / typed-accessor / mfjson surfaces being delivered by MobilityDB #1084. Once that PR reaches master and the MobilityDuck MEOS pin is bumped past it, this PR's link step will go green.

Order of operations

  1. fix: drop broken using meosType = MeosType; alias in tydef.hpp #161 lands → Linux arm64 build clears the MeosType alias bug
  2. MobilityDB #1084 reaches master
  3. Bump the pin in vcpkg_ports/meos/portfile.cmake (separate small PR, ~3 lines)
  4. Rebase this PR; expect green CI

Until step 2, this PR's CI cannot go green even if everything else here is correct.

estebanzimanyi added a commit to estebanzimanyi/MobilityDuck that referenced this pull request May 21, 2026
`meosType` (lower-case) is the **pre-consolidation** MEOS type name;
`MeosType` (upper-case) is the **post-consolidation** target that the
upstream rename sweep has not yet reached.  The current vcpkg pin
(`vcpkg_ports/meos/portfile.cmake` REF f11b7443ee98…) is still
pre-consolidation: `meos/include/temporal/meos_catalog.h` line 121
declares the typedef as `} meosType;` and every MEOS API uses the
lower-case spelling.  MobilityDuck's source code consistently uses
`meosType` to match — `grep -rn '\bMeosType\b' src/` finds the name
only on the alias line and its comment, nowhere else.

c8cad6d added `using meosType = MeosType;` as a forward-looking
bridge for the eventual consolidation bump.  That bridge points at
`MeosType`, which the current pin does NOT yet expose, so it
breaks every PR's Linux arm64 build with:

  /duckdb_build_dir/src/include/tydef.hpp:18:18:
    error: ‘MeosType’ does not name a type; did you mean ‘meosType’?

The fix is to drop the premature alias and replace the misleading
comment with one that documents the pre/post-consolidation distinction
and the resume path for the next pin bump — at that point a reviewer
can either restore the bridge (this time it'll be valid because
`MeosType` will exist) or sweep the MobilityDuck source from
`meosType` to `MeosType` in a single PR.

Unblocks every in-flight PR's Linux arm64 build: MobilityDB#126, MobilityDB#130, MobilityDB#149,
MobilityDB#158, MobilityDB#159, MobilityDB#160, plus the entire `feat/*_port_core` extended-type
stack (MobilityDB#148/MobilityDB#150/MobilityDB#151/MobilityDB#153/MobilityDB#155/MobilityDB#156).
estebanzimanyi added a commit to estebanzimanyi/MobilityDuck that referenced this pull request May 21, 2026
`meosType` (lower-case) is the **pre-consolidation** MEOS type name;
`MeosType` (upper-case) is the **post-consolidation** target that the
upstream rename sweep has not yet reached.  The current vcpkg pin
(`vcpkg_ports/meos/portfile.cmake` REF f11b7443ee98…) is still
pre-consolidation: `meos/include/temporal/meos_catalog.h` line 121
declares the typedef as `} meosType;` and every MEOS API uses the
lower-case spelling.  MobilityDuck's source code consistently uses
`meosType` to match — `grep -rn '\bMeosType\b' src/` finds the name
only on the alias line and its comment, nowhere else.

c8cad6d added `using meosType = MeosType;` as a forward-looking
bridge for the eventual consolidation bump.  That bridge points at
`MeosType`, which the current pin does NOT yet expose, so it
breaks every PR's Linux arm64 build with:

  /duckdb_build_dir/src/include/tydef.hpp:18:18:
    error: ‘MeosType’ does not name a type; did you mean ‘meosType’?

The fix is to drop the premature alias and replace the misleading
comment with one that documents the pre/post-consolidation distinction
and the resume path for the next pin bump — at that point a reviewer
can either restore the bridge (this time it'll be valid because
`MeosType` will exist) or sweep the MobilityDuck source from
`meosType` to `MeosType` in a single PR.

Unblocks every in-flight PR's Linux arm64 build: MobilityDB#126, MobilityDB#130, MobilityDB#149,
MobilityDB#158, MobilityDB#159, MobilityDB#160, plus the entire `feat/*_port_core` extended-type
stack (MobilityDB#148/MobilityDB#150/MobilityDB#151/MobilityDB#153/MobilityDB#155/MobilityDB#156).
estebanzimanyi added a commit to estebanzimanyi/MobilityDuck that referenced this pull request May 21, 2026
`meosType` (lower-case) is the **pre-consolidation** MEOS type name;
`MeosType` (upper-case) is the **post-consolidation** target that the
upstream rename sweep has not yet reached.  The current vcpkg pin
(`vcpkg_ports/meos/portfile.cmake` REF f11b7443ee98…) is still
pre-consolidation: `meos/include/temporal/meos_catalog.h` line 121
declares the typedef as `} meosType;` and every MEOS API uses the
lower-case spelling.  MobilityDuck's source code consistently uses
`meosType` to match — `grep -rn '\bMeosType\b' src/` finds the name
only on the alias line and its comment, nowhere else.

c8cad6d added `using meosType = MeosType;` as a forward-looking
bridge for the eventual consolidation bump.  That bridge points at
`MeosType`, which the current pin does NOT yet expose, so it
breaks every PR's Linux arm64 build with:

  /duckdb_build_dir/src/include/tydef.hpp:18:18:
    error: ‘MeosType’ does not name a type; did you mean ‘meosType’?

The fix is to drop the premature alias and replace the misleading
comment with one that documents the pre/post-consolidation distinction
and the resume path for the next pin bump — at that point a reviewer
can either restore the bridge (this time it'll be valid because
`MeosType` will exist) or sweep the MobilityDuck source from
`meosType` to `MeosType` in a single PR.

Unblocks every in-flight PR's Linux arm64 build: MobilityDB#126, MobilityDB#130, MobilityDB#149,
MobilityDB#158, MobilityDB#159, MobilityDB#160, plus the entire `feat/*_port_core` extended-type
stack (MobilityDB#148/MobilityDB#150/MobilityDB#151/MobilityDB#153/MobilityDB#155/MobilityDB#156).
estebanzimanyi added a commit to estebanzimanyi/MobilityDuck that referenced this pull request May 21, 2026
`meosType` (lower-case) is the **pre-consolidation** MEOS type name;
`MeosType` (upper-case) is the **post-consolidation** target that the
upstream rename sweep has not yet reached.  The current vcpkg pin
(`vcpkg_ports/meos/portfile.cmake` REF f11b7443ee98…) is still
pre-consolidation: `meos/include/temporal/meos_catalog.h` line 121
declares the typedef as `} meosType;` and every MEOS API uses the
lower-case spelling.  MobilityDuck's source code consistently uses
`meosType` to match — `grep -rn '\bMeosType\b' src/` finds the name
only on the alias line and its comment, nowhere else.

c8cad6d added `using meosType = MeosType;` as a forward-looking
bridge for the eventual consolidation bump.  That bridge points at
`MeosType`, which the current pin does NOT yet expose, so it
breaks every PR's Linux arm64 build with:

  /duckdb_build_dir/src/include/tydef.hpp:18:18:
    error: ‘MeosType’ does not name a type; did you mean ‘meosType’?

The fix is to drop the premature alias and replace the misleading
comment with one that documents the pre/post-consolidation distinction
and the resume path for the next pin bump — at that point a reviewer
can either restore the bridge (this time it'll be valid because
`MeosType` will exist) or sweep the MobilityDuck source from
`meosType` to `MeosType` in a single PR.

Unblocks every in-flight PR's Linux arm64 build: MobilityDB#126, MobilityDB#130, MobilityDB#149,
MobilityDB#158, MobilityDB#159, MobilityDB#160, plus the entire `feat/*_port_core` extended-type
stack (MobilityDB#148/MobilityDB#150/MobilityDB#151/MobilityDB#153/MobilityDB#155/MobilityDB#156).
estebanzimanyi added a commit to estebanzimanyi/MobilityDuck that referenced this pull request May 21, 2026
`meosType` (lower-case) is the **pre-consolidation** MEOS type name;
`MeosType` (upper-case) is the **post-consolidation** target that the
upstream rename sweep has not yet reached.  The current vcpkg pin
(`vcpkg_ports/meos/portfile.cmake` REF f11b7443ee98…) is still
pre-consolidation: `meos/include/temporal/meos_catalog.h` line 121
declares the typedef as `} meosType;` and every MEOS API uses the
lower-case spelling.  MobilityDuck's source code consistently uses
`meosType` to match — `grep -rn '\bMeosType\b' src/` finds the name
only on the alias line and its comment, nowhere else.

c8cad6d added `using meosType = MeosType;` as a forward-looking
bridge for the eventual consolidation bump.  That bridge points at
`MeosType`, which the current pin does NOT yet expose, so it
breaks every PR's Linux arm64 build with:

  /duckdb_build_dir/src/include/tydef.hpp:18:18:
    error: ‘MeosType’ does not name a type; did you mean ‘meosType’?

The fix is to drop the premature alias and replace the misleading
comment with one that documents the pre/post-consolidation distinction
and the resume path for the next pin bump — at that point a reviewer
can either restore the bridge (this time it'll be valid because
`MeosType` will exist) or sweep the MobilityDuck source from
`meosType` to `MeosType` in a single PR.

Unblocks every in-flight PR's Linux arm64 build: MobilityDB#126, MobilityDB#130, MobilityDB#149,
MobilityDB#158, MobilityDB#159, MobilityDB#160, plus the entire `feat/*_port_core` extended-type
stack (MobilityDB#148/MobilityDB#150/MobilityDB#151/MobilityDB#153/MobilityDB#155/MobilityDB#156).
estebanzimanyi added a commit that referenced this pull request May 21, 2026
`meosType` (lower-case) is the **pre-consolidation** MEOS type name;
`MeosType` (upper-case) is the **post-consolidation** target that the
upstream rename sweep has not yet reached.  The current vcpkg pin
(`vcpkg_ports/meos/portfile.cmake` REF f11b7443ee98…) is still
pre-consolidation: `meos/include/temporal/meos_catalog.h` line 121
declares the typedef as `} meosType;` and every MEOS API uses the
lower-case spelling.  MobilityDuck's source code consistently uses
`meosType` to match — `grep -rn '\bMeosType\b' src/` finds the name
only on the alias line and its comment, nowhere else.

c8cad6d added `using meosType = MeosType;` as a forward-looking
bridge for the eventual consolidation bump.  That bridge points at
`MeosType`, which the current pin does NOT yet expose, so it
breaks every PR's Linux arm64 build with:

  /duckdb_build_dir/src/include/tydef.hpp:18:18:
    error: ‘MeosType’ does not name a type; did you mean ‘meosType’?

The fix is to drop the premature alias and replace the misleading
comment with one that documents the pre/post-consolidation distinction
and the resume path for the next pin bump — at that point a reviewer
can either restore the bridge (this time it'll be valid because
`MeosType` will exist) or sweep the MobilityDuck source from
`meosType` to `MeosType` in a single PR.

Unblocks every in-flight PR's Linux arm64 build: #126, #130, #149,
#158, #159, #160, plus the entire `feat/*_port_core` extended-type
stack (#148/#150/#151/#153/#155/#156).
estebanzimanyi added a commit that referenced this pull request May 21, 2026
`meosType` (lower-case) is the **pre-consolidation** MEOS type name;
`MeosType` (upper-case) is the **post-consolidation** target that the
upstream rename sweep has not yet reached.  The current vcpkg pin
(`vcpkg_ports/meos/portfile.cmake` REF f11b7443ee98…) is still
pre-consolidation: `meos/include/temporal/meos_catalog.h` line 121
declares the typedef as `} meosType;` and every MEOS API uses the
lower-case spelling.  MobilityDuck's source code consistently uses
`meosType` to match — `grep -rn '\bMeosType\b' src/` finds the name
only on the alias line and its comment, nowhere else.

c8cad6d added `using meosType = MeosType;` as a forward-looking
bridge for the eventual consolidation bump.  That bridge points at
`MeosType`, which the current pin does NOT yet expose, so it
breaks every PR's Linux arm64 build with:

  /duckdb_build_dir/src/include/tydef.hpp:18:18:
    error: ‘MeosType’ does not name a type; did you mean ‘meosType’?

The fix is to drop the premature alias and replace the misleading
comment with one that documents the pre/post-consolidation distinction
and the resume path for the next pin bump — at that point a reviewer
can either restore the bridge (this time it'll be valid because
`MeosType` will exist) or sweep the MobilityDuck source from
`meosType` to `MeosType` in a single PR.

Unblocks every in-flight PR's Linux arm64 build: #126, #130, #149,
#158, #159, #160, plus the entire `feat/*_port_core` extended-type
stack (#148/#150/#151/#153/#155/#156).
estebanzimanyi added a commit that referenced this pull request May 21, 2026
`meosType` (lower-case) is the **pre-consolidation** MEOS type name;
`MeosType` (upper-case) is the **post-consolidation** target that the
upstream rename sweep has not yet reached.  The current vcpkg pin
(`vcpkg_ports/meos/portfile.cmake` REF f11b7443ee98…) is still
pre-consolidation: `meos/include/temporal/meos_catalog.h` line 121
declares the typedef as `} meosType;` and every MEOS API uses the
lower-case spelling.  MobilityDuck's source code consistently uses
`meosType` to match — `grep -rn '\bMeosType\b' src/` finds the name
only on the alias line and its comment, nowhere else.

c8cad6d added `using meosType = MeosType;` as a forward-looking
bridge for the eventual consolidation bump.  That bridge points at
`MeosType`, which the current pin does NOT yet expose, so it
breaks every PR's Linux arm64 build with:

  /duckdb_build_dir/src/include/tydef.hpp:18:18:
    error: ‘MeosType’ does not name a type; did you mean ‘meosType’?

The fix is to drop the premature alias and replace the misleading
comment with one that documents the pre/post-consolidation distinction
and the resume path for the next pin bump — at that point a reviewer
can either restore the bridge (this time it'll be valid because
`MeosType` will exist) or sweep the MobilityDuck source from
`meosType` to `MeosType` in a single PR.

Unblocks every in-flight PR's Linux arm64 build: #126, #130, #149,
#158, #159, #160, plus the entire `feat/*_port_core` extended-type
stack (#148/#150/#151/#153/#155/#156).
estebanzimanyi added a commit that referenced this pull request May 21, 2026
`meosType` (lower-case) is the **pre-consolidation** MEOS type name;
`MeosType` (upper-case) is the **post-consolidation** target that the
upstream rename sweep has not yet reached.  The current vcpkg pin
(`vcpkg_ports/meos/portfile.cmake` REF f11b7443ee98…) is still
pre-consolidation: `meos/include/temporal/meos_catalog.h` line 121
declares the typedef as `} meosType;` and every MEOS API uses the
lower-case spelling.  MobilityDuck's source code consistently uses
`meosType` to match — `grep -rn '\bMeosType\b' src/` finds the name
only on the alias line and its comment, nowhere else.

c8cad6d added `using meosType = MeosType;` as a forward-looking
bridge for the eventual consolidation bump.  That bridge points at
`MeosType`, which the current pin does NOT yet expose, so it
breaks every PR's Linux arm64 build with:

  /duckdb_build_dir/src/include/tydef.hpp:18:18:
    error: ‘MeosType’ does not name a type; did you mean ‘meosType’?

The fix is to drop the premature alias and replace the misleading
comment with one that documents the pre/post-consolidation distinction
and the resume path for the next pin bump — at that point a reviewer
can either restore the bridge (this time it'll be valid because
`MeosType` will exist) or sweep the MobilityDuck source from
`meosType` to `MeosType` in a single PR.

Unblocks every in-flight PR's Linux arm64 build: #126, #130, #149,
#158, #159, #160, plus the entire `feat/*_port_core` extended-type
stack (#148/#150/#151/#153/#155/#156).
estebanzimanyi added a commit that referenced this pull request May 21, 2026
`meosType` (lower-case) is the **pre-consolidation** MEOS type name;
`MeosType` (upper-case) is the **post-consolidation** target that the
upstream rename sweep has not yet reached.  The current vcpkg pin
(`vcpkg_ports/meos/portfile.cmake` REF f11b7443ee98…) is still
pre-consolidation: `meos/include/temporal/meos_catalog.h` line 121
declares the typedef as `} meosType;` and every MEOS API uses the
lower-case spelling.  MobilityDuck's source code consistently uses
`meosType` to match — `grep -rn '\bMeosType\b' src/` finds the name
only on the alias line and its comment, nowhere else.

c8cad6d added `using meosType = MeosType;` as a forward-looking
bridge for the eventual consolidation bump.  That bridge points at
`MeosType`, which the current pin does NOT yet expose, so it
breaks every PR's Linux arm64 build with:

  /duckdb_build_dir/src/include/tydef.hpp:18:18:
    error: ‘MeosType’ does not name a type; did you mean ‘meosType’?

The fix is to drop the premature alias and replace the misleading
comment with one that documents the pre/post-consolidation distinction
and the resume path for the next pin bump — at that point a reviewer
can either restore the bridge (this time it'll be valid because
`MeosType` will exist) or sweep the MobilityDuck source from
`meosType` to `MeosType` in a single PR.

Unblocks every in-flight PR's Linux arm64 build: #126, #130, #149,
#158, #159, #160, plus the entire `feat/*_port_core` extended-type
stack (#148/#150/#151/#153/#155/#156).
estebanzimanyi added a commit that referenced this pull request May 21, 2026
`meosType` (lower-case) is the **pre-consolidation** MEOS type name;
`MeosType` (upper-case) is the **post-consolidation** target that the
upstream rename sweep has not yet reached.  The current vcpkg pin
(`vcpkg_ports/meos/portfile.cmake` REF f11b7443ee98…) is still
pre-consolidation: `meos/include/temporal/meos_catalog.h` line 121
declares the typedef as `} meosType;` and every MEOS API uses the
lower-case spelling.  MobilityDuck's source code consistently uses
`meosType` to match — `grep -rn '\bMeosType\b' src/` finds the name
only on the alias line and its comment, nowhere else.

c8cad6d added `using meosType = MeosType;` as a forward-looking
bridge for the eventual consolidation bump.  That bridge points at
`MeosType`, which the current pin does NOT yet expose, so it
breaks every PR's Linux arm64 build with:

  /duckdb_build_dir/src/include/tydef.hpp:18:18:
    error: ‘MeosType’ does not name a type; did you mean ‘meosType’?

The fix is to drop the premature alias and replace the misleading
comment with one that documents the pre/post-consolidation distinction
and the resume path for the next pin bump — at that point a reviewer
can either restore the bridge (this time it'll be valid because
`MeosType` will exist) or sweep the MobilityDuck source from
`meosType` to `MeosType` in a single PR.

Unblocks every in-flight PR's Linux arm64 build: #126, #130, #149,
#158, #159, #160, plus the entire `feat/*_port_core` extended-type
stack (#148/#150/#151/#153/#155/#156).
estebanzimanyi added a commit that referenced this pull request May 21, 2026
`meosType` (lower-case) is the **pre-consolidation** MEOS type name;
`MeosType` (upper-case) is the **post-consolidation** target that the
upstream rename sweep has not yet reached.  The current vcpkg pin
(`vcpkg_ports/meos/portfile.cmake` REF f11b7443ee98…) is still
pre-consolidation: `meos/include/temporal/meos_catalog.h` line 121
declares the typedef as `} meosType;` and every MEOS API uses the
lower-case spelling.  MobilityDuck's source code consistently uses
`meosType` to match — `grep -rn '\bMeosType\b' src/` finds the name
only on the alias line and its comment, nowhere else.

c8cad6d added `using meosType = MeosType;` as a forward-looking
bridge for the eventual consolidation bump.  That bridge points at
`MeosType`, which the current pin does NOT yet expose, so it
breaks every PR's Linux arm64 build with:

  /duckdb_build_dir/src/include/tydef.hpp:18:18:
    error: ‘MeosType’ does not name a type; did you mean ‘meosType’?

The fix is to drop the premature alias and replace the misleading
comment with one that documents the pre/post-consolidation distinction
and the resume path for the next pin bump — at that point a reviewer
can either restore the bridge (this time it'll be valid because
`MeosType` will exist) or sweep the MobilityDuck source from
`meosType` to `MeosType` in a single PR.

Unblocks every in-flight PR's Linux arm64 build: #126, #130, #149,
#158, #159, #160, plus the entire `feat/*_port_core` extended-type
stack (#148/#150/#151/#153/#155/#156).
estebanzimanyi added a commit that referenced this pull request May 21, 2026
`meosType` (lower-case) is the **pre-consolidation** MEOS type name;
`MeosType` (upper-case) is the **post-consolidation** target that the
upstream rename sweep has not yet reached.  The current vcpkg pin
(`vcpkg_ports/meos/portfile.cmake` REF f11b7443ee98…) is still
pre-consolidation: `meos/include/temporal/meos_catalog.h` line 121
declares the typedef as `} meosType;` and every MEOS API uses the
lower-case spelling.  MobilityDuck's source code consistently uses
`meosType` to match — `grep -rn '\bMeosType\b' src/` finds the name
only on the alias line and its comment, nowhere else.

c8cad6d added `using meosType = MeosType;` as a forward-looking
bridge for the eventual consolidation bump.  That bridge points at
`MeosType`, which the current pin does NOT yet expose, so it
breaks every PR's Linux arm64 build with:

  /duckdb_build_dir/src/include/tydef.hpp:18:18:
    error: ‘MeosType’ does not name a type; did you mean ‘meosType’?

The fix is to drop the premature alias and replace the misleading
comment with one that documents the pre/post-consolidation distinction
and the resume path for the next pin bump — at that point a reviewer
can either restore the bridge (this time it'll be valid because
`MeosType` will exist) or sweep the MobilityDuck source from
`meosType` to `MeosType` in a single PR.

Unblocks every in-flight PR's Linux arm64 build: #126, #130, #149,
#158, #159, #160, plus the entire `feat/*_port_core` extended-type
stack (#148/#150/#151/#153/#155/#156).
estebanzimanyi added a commit that referenced this pull request May 21, 2026
`meosType` (lower-case) is the **pre-consolidation** MEOS type name;
`MeosType` (upper-case) is the **post-consolidation** target that the
upstream rename sweep has not yet reached.  The current vcpkg pin
(`vcpkg_ports/meos/portfile.cmake` REF f11b7443ee98…) is still
pre-consolidation: `meos/include/temporal/meos_catalog.h` line 121
declares the typedef as `} meosType;` and every MEOS API uses the
lower-case spelling.  MobilityDuck's source code consistently uses
`meosType` to match — `grep -rn '\bMeosType\b' src/` finds the name
only on the alias line and its comment, nowhere else.

c8cad6d added `using meosType = MeosType;` as a forward-looking
bridge for the eventual consolidation bump.  That bridge points at
`MeosType`, which the current pin does NOT yet expose, so it
breaks every PR's Linux arm64 build with:

  /duckdb_build_dir/src/include/tydef.hpp:18:18:
    error: ‘MeosType’ does not name a type; did you mean ‘meosType’?

The fix is to drop the premature alias and replace the misleading
comment with one that documents the pre/post-consolidation distinction
and the resume path for the next pin bump — at that point a reviewer
can either restore the bridge (this time it'll be valid because
`MeosType` will exist) or sweep the MobilityDuck source from
`meosType` to `MeosType` in a single PR.

Unblocks every in-flight PR's Linux arm64 build: #126, #130, #149,
#158, #159, #160, plus the entire `feat/*_port_core` extended-type
stack (#148/#150/#151/#153/#155/#156).
estebanzimanyi added a commit that referenced this pull request May 21, 2026
`meosType` (lower-case) is the **pre-consolidation** MEOS type name;
`MeosType` (upper-case) is the **post-consolidation** target that the
upstream rename sweep has not yet reached.  The current vcpkg pin
(`vcpkg_ports/meos/portfile.cmake` REF f11b7443ee98…) is still
pre-consolidation: `meos/include/temporal/meos_catalog.h` line 121
declares the typedef as `} meosType;` and every MEOS API uses the
lower-case spelling.  MobilityDuck's source code consistently uses
`meosType` to match — `grep -rn '\bMeosType\b' src/` finds the name
only on the alias line and its comment, nowhere else.

c8cad6d added `using meosType = MeosType;` as a forward-looking
bridge for the eventual consolidation bump.  That bridge points at
`MeosType`, which the current pin does NOT yet expose, so it
breaks every PR's Linux arm64 build with:

  /duckdb_build_dir/src/include/tydef.hpp:18:18:
    error: ‘MeosType’ does not name a type; did you mean ‘meosType’?

The fix is to drop the premature alias and replace the misleading
comment with one that documents the pre/post-consolidation distinction
and the resume path for the next pin bump — at that point a reviewer
can either restore the bridge (this time it'll be valid because
`MeosType` will exist) or sweep the MobilityDuck source from
`meosType` to `MeosType` in a single PR.

Unblocks every in-flight PR's Linux arm64 build: #126, #130, #149,
#158, #159, #160, plus the entire `feat/*_port_core` extended-type
stack (#148/#150/#151/#153/#155/#156).
estebanzimanyi added a commit that referenced this pull request May 21, 2026
`meosType` (lower-case) is the **pre-consolidation** MEOS type name;
`MeosType` (upper-case) is the **post-consolidation** target that the
upstream rename sweep has not yet reached.  The current vcpkg pin
(`vcpkg_ports/meos/portfile.cmake` REF f11b7443ee98…) is still
pre-consolidation: `meos/include/temporal/meos_catalog.h` line 121
declares the typedef as `} meosType;` and every MEOS API uses the
lower-case spelling.  MobilityDuck's source code consistently uses
`meosType` to match — `grep -rn '\bMeosType\b' src/` finds the name
only on the alias line and its comment, nowhere else.

c8cad6d added `using meosType = MeosType;` as a forward-looking
bridge for the eventual consolidation bump.  That bridge points at
`MeosType`, which the current pin does NOT yet expose, so it
breaks every PR's Linux arm64 build with:

  /duckdb_build_dir/src/include/tydef.hpp:18:18:
    error: ‘MeosType’ does not name a type; did you mean ‘meosType’?

The fix is to drop the premature alias and replace the misleading
comment with one that documents the pre/post-consolidation distinction
and the resume path for the next pin bump — at that point a reviewer
can either restore the bridge (this time it'll be valid because
`MeosType` will exist) or sweep the MobilityDuck source from
`meosType` to `MeosType` in a single PR.

Unblocks every in-flight PR's Linux arm64 build: #126, #130, #149,
#158, #159, #160, plus the entire `feat/*_port_core` extended-type
stack (#148/#150/#151/#153/#155/#156).
estebanzimanyi added a commit that referenced this pull request May 21, 2026
`meosType` (lower-case) is the **pre-consolidation** MEOS type name;
`MeosType` (upper-case) is the **post-consolidation** target that the
upstream rename sweep has not yet reached.  The current vcpkg pin
(`vcpkg_ports/meos/portfile.cmake` REF f11b7443ee98…) is still
pre-consolidation: `meos/include/temporal/meos_catalog.h` line 121
declares the typedef as `} meosType;` and every MEOS API uses the
lower-case spelling.  MobilityDuck's source code consistently uses
`meosType` to match — `grep -rn '\bMeosType\b' src/` finds the name
only on the alias line and its comment, nowhere else.

c8cad6d added `using meosType = MeosType;` as a forward-looking
bridge for the eventual consolidation bump.  That bridge points at
`MeosType`, which the current pin does NOT yet expose, so it
breaks every PR's Linux arm64 build with:

  /duckdb_build_dir/src/include/tydef.hpp:18:18:
    error: ‘MeosType’ does not name a type; did you mean ‘meosType’?

The fix is to drop the premature alias and replace the misleading
comment with one that documents the pre/post-consolidation distinction
and the resume path for the next pin bump — at that point a reviewer
can either restore the bridge (this time it'll be valid because
`MeosType` will exist) or sweep the MobilityDuck source from
`meosType` to `MeosType` in a single PR.

Unblocks every in-flight PR's Linux arm64 build: #126, #130, #149,
#158, #159, #160, plus the entire `feat/*_port_core` extended-type
stack (#148/#150/#151/#153/#155/#156).
estebanzimanyi added a commit that referenced this pull request May 21, 2026
`meosType` (lower-case) is the **pre-consolidation** MEOS type name;
`MeosType` (upper-case) is the **post-consolidation** target that the
upstream rename sweep has not yet reached.  The current vcpkg pin
(`vcpkg_ports/meos/portfile.cmake` REF f11b7443ee98…) is still
pre-consolidation: `meos/include/temporal/meos_catalog.h` line 121
declares the typedef as `} meosType;` and every MEOS API uses the
lower-case spelling.  MobilityDuck's source code consistently uses
`meosType` to match — `grep -rn '\bMeosType\b' src/` finds the name
only on the alias line and its comment, nowhere else.

c8cad6d added `using meosType = MeosType;` as a forward-looking
bridge for the eventual consolidation bump.  That bridge points at
`MeosType`, which the current pin does NOT yet expose, so it
breaks every PR's Linux arm64 build with:

  /duckdb_build_dir/src/include/tydef.hpp:18:18:
    error: ‘MeosType’ does not name a type; did you mean ‘meosType’?

The fix is to drop the premature alias and replace the misleading
comment with one that documents the pre/post-consolidation distinction
and the resume path for the next pin bump — at that point a reviewer
can either restore the bridge (this time it'll be valid because
`MeosType` will exist) or sweep the MobilityDuck source from
`meosType` to `MeosType` in a single PR.

Unblocks every in-flight PR's Linux arm64 build: #126, #130, #149,
#158, #159, #160, plus the entire `feat/*_port_core` extended-type
stack (#148/#150/#151/#153/#155/#156).
estebanzimanyi added a commit that referenced this pull request May 21, 2026
`meosType` (lower-case) is the **pre-consolidation** MEOS type name;
`MeosType` (upper-case) is the **post-consolidation** target that the
upstream rename sweep has not yet reached.  The current vcpkg pin
(`vcpkg_ports/meos/portfile.cmake` REF f11b7443ee98…) is still
pre-consolidation: `meos/include/temporal/meos_catalog.h` line 121
declares the typedef as `} meosType;` and every MEOS API uses the
lower-case spelling.  MobilityDuck's source code consistently uses
`meosType` to match — `grep -rn '\bMeosType\b' src/` finds the name
only on the alias line and its comment, nowhere else.

c8cad6d added `using meosType = MeosType;` as a forward-looking
bridge for the eventual consolidation bump.  That bridge points at
`MeosType`, which the current pin does NOT yet expose, so it
breaks every PR's Linux arm64 build with:

  /duckdb_build_dir/src/include/tydef.hpp:18:18:
    error: ‘MeosType’ does not name a type; did you mean ‘meosType’?

The fix is to drop the premature alias and replace the misleading
comment with one that documents the pre/post-consolidation distinction
and the resume path for the next pin bump — at that point a reviewer
can either restore the bridge (this time it'll be valid because
`MeosType` will exist) or sweep the MobilityDuck source from
`meosType` to `MeosType` in a single PR.

Unblocks every in-flight PR's Linux arm64 build: #126, #130, #149,
#158, #159, #160, plus the entire `feat/*_port_core` extended-type
stack (#148/#150/#151/#153/#155/#156).
estebanzimanyi added a commit that referenced this pull request May 21, 2026
`meosType` (lower-case) is the **pre-consolidation** MEOS type name;
`MeosType` (upper-case) is the **post-consolidation** target that the
upstream rename sweep has not yet reached.  The current vcpkg pin
(`vcpkg_ports/meos/portfile.cmake` REF f11b7443ee98…) is still
pre-consolidation: `meos/include/temporal/meos_catalog.h` line 121
declares the typedef as `} meosType;` and every MEOS API uses the
lower-case spelling.  MobilityDuck's source code consistently uses
`meosType` to match — `grep -rn '\bMeosType\b' src/` finds the name
only on the alias line and its comment, nowhere else.

c8cad6d added `using meosType = MeosType;` as a forward-looking
bridge for the eventual consolidation bump.  That bridge points at
`MeosType`, which the current pin does NOT yet expose, so it
breaks every PR's Linux arm64 build with:

  /duckdb_build_dir/src/include/tydef.hpp:18:18:
    error: ‘MeosType’ does not name a type; did you mean ‘meosType’?

The fix is to drop the premature alias and replace the misleading
comment with one that documents the pre/post-consolidation distinction
and the resume path for the next pin bump — at that point a reviewer
can either restore the bridge (this time it'll be valid because
`MeosType` will exist) or sweep the MobilityDuck source from
`meosType` to `MeosType` in a single PR.

Unblocks every in-flight PR's Linux arm64 build: #126, #130, #149,
#158, #159, #160, plus the entire `feat/*_port_core` extended-type
stack (#148/#150/#151/#153/#155/#156).
estebanzimanyi added a commit that referenced this pull request May 21, 2026
`meosType` (lower-case) is the **pre-consolidation** MEOS type name;
`MeosType` (upper-case) is the **post-consolidation** target that the
upstream rename sweep has not yet reached.  The current vcpkg pin
(`vcpkg_ports/meos/portfile.cmake` REF f11b7443ee98…) is still
pre-consolidation: `meos/include/temporal/meos_catalog.h` line 121
declares the typedef as `} meosType;` and every MEOS API uses the
lower-case spelling.  MobilityDuck's source code consistently uses
`meosType` to match — `grep -rn '\bMeosType\b' src/` finds the name
only on the alias line and its comment, nowhere else.

c8cad6d added `using meosType = MeosType;` as a forward-looking
bridge for the eventual consolidation bump.  That bridge points at
`MeosType`, which the current pin does NOT yet expose, so it
breaks every PR's Linux arm64 build with:

  /duckdb_build_dir/src/include/tydef.hpp:18:18:
    error: ‘MeosType’ does not name a type; did you mean ‘meosType’?

The fix is to drop the premature alias and replace the misleading
comment with one that documents the pre/post-consolidation distinction
and the resume path for the next pin bump — at that point a reviewer
can either restore the bridge (this time it'll be valid because
`MeosType` will exist) or sweep the MobilityDuck source from
`meosType` to `MeosType` in a single PR.

Unblocks every in-flight PR's Linux arm64 build: #126, #130, #149,
#158, #159, #160, plus the entire `feat/*_port_core` extended-type
stack (#148/#150/#151/#153/#155/#156).
estebanzimanyi added a commit that referenced this pull request May 21, 2026
`meosType` (lower-case) is the **pre-consolidation** MEOS type name;
`MeosType` (upper-case) is the **post-consolidation** target that the
upstream rename sweep has not yet reached.  The current vcpkg pin
(`vcpkg_ports/meos/portfile.cmake` REF f11b7443ee98…) is still
pre-consolidation: `meos/include/temporal/meos_catalog.h` line 121
declares the typedef as `} meosType;` and every MEOS API uses the
lower-case spelling.  MobilityDuck's source code consistently uses
`meosType` to match — `grep -rn '\bMeosType\b' src/` finds the name
only on the alias line and its comment, nowhere else.

c8cad6d added `using meosType = MeosType;` as a forward-looking
bridge for the eventual consolidation bump.  That bridge points at
`MeosType`, which the current pin does NOT yet expose, so it
breaks every PR's Linux arm64 build with:

  /duckdb_build_dir/src/include/tydef.hpp:18:18:
    error: ‘MeosType’ does not name a type; did you mean ‘meosType’?

The fix is to drop the premature alias and replace the misleading
comment with one that documents the pre/post-consolidation distinction
and the resume path for the next pin bump — at that point a reviewer
can either restore the bridge (this time it'll be valid because
`MeosType` will exist) or sweep the MobilityDuck source from
`meosType` to `MeosType` in a single PR.

Unblocks every in-flight PR's Linux arm64 build: #126, #130, #149,
#158, #159, #160, plus the entire `feat/*_port_core` extended-type
stack (#148/#150/#151/#153/#155/#156).
estebanzimanyi added a commit that referenced this pull request May 26, 2026
Brings the temporal rigid geometry (trgeometry) type into the accumulate:
a reference geometry rigidly moved over time by an embedded temporal pose,
written 'Geometry;Pose@t...'. Registered in LoadInternal after the tpose
surface.

This type exposed a cluster of incomplete-rename gaps in the pinned MEOS
(bb659c693, "the complete trgeo->trgeometry rename") where the public
meos_rgeo.h API is missing or mis-wired; each is routed to the correct,
exported function with a clear note for the upstream fix:
- WKT input: the public trgeometry_in calls tspatial_parse (no reference-
  geometry handling), so any literal failed "parse error - invalid geometry".
  Route to the correct exported parser trgeo_parse(&str, T_TRGEOMETRY).
- asText/asEWKT: trgeometry_out emits the HexWKB geom form; the WKT form
  (POLYGON(...);Pose(...)) needs trgeo_wkt_out(temp, maxdd, extended), which
  meos_rgeo.h does not expose but libmeos exports.
- startInstant/endInstant/instantN: the generic temporal_*_instant return a
  bare pose instant without the sequence-level shared reference geometry
  ("Cannot access geometry ..."); use the public geometry-preserving
  trgeometry_{start,end}_instant / trgeometry_instant_n.
- value executors (getValue/startValue/endValue), asText/asEWKT and the
  instant accessors are given trgeometry-unique exec names: the generic names
  collide across the geo/rgeo .cpp (ODR violation -> a single surviving
  geometry definition). getValue renders the pose via pose_as_text (WKT).
- trgeometry(geometry, tpose) constructor: register the second argument as
  TPOSE (a registered type in the accumulate), not VARCHAR.
- Close the output-serialization gap (asMFJSON / asBinary / asEWKB /
  asHexWKB / asHexEWKB via temporal_as_mfjson / temporal_as_wkb / hexwkb).
- setInterp-to-discrete test lifts an instant (a multi-instant continuous
  sequence cannot be discretized; MEOS errors).

Full sqllogictest suite green: 1864 assertions across 80 test cases.
@estebanzimanyi estebanzimanyi force-pushed the feat/tpose-port-core branch from 2c43ae9 to 0ecbc5f Compare May 27, 2026 00:26
estebanzimanyi added a commit that referenced this pull request May 27, 2026
Brings the temporal rigid geometry (trgeometry) type into the accumulate:
a reference geometry rigidly moved over time by an embedded temporal pose,
written 'Geometry;Pose@t...'. Registered in LoadInternal after the tpose
surface.

This type exposed a cluster of incomplete-rename gaps in the pinned MEOS
(bb659c693, "the complete trgeo->trgeometry rename") where the public
meos_rgeo.h API is missing or mis-wired; each is routed to the correct,
exported function with a clear note for the upstream fix:
- WKT input: the public trgeometry_in calls tspatial_parse (no reference-
  geometry handling), so any literal failed "parse error - invalid geometry".
  Route to the correct exported parser trgeo_parse(&str, T_TRGEOMETRY).
- asText/asEWKT: trgeometry_out emits the HexWKB geom form; the WKT form
  (POLYGON(...);Pose(...)) needs trgeo_wkt_out(temp, maxdd, extended), which
  meos_rgeo.h does not expose but libmeos exports.
- startInstant/endInstant/instantN: the generic temporal_*_instant return a
  bare pose instant without the sequence-level shared reference geometry
  ("Cannot access geometry ..."); use the public geometry-preserving
  trgeometry_{start,end}_instant / trgeometry_instant_n.
- value executors (getValue/startValue/endValue), asText/asEWKT and the
  instant accessors are given trgeometry-unique exec names: the generic names
  collide across the geo/rgeo .cpp (ODR violation -> a single surviving
  geometry definition). getValue renders the pose via pose_as_text (WKT).
- trgeometry(geometry, tpose) constructor: register the second argument as
  TPOSE (a registered type in the accumulate), not VARCHAR.
- Close the output-serialization gap (asMFJSON / asBinary / asEWKB /
  asHexWKB / asHexEWKB via temporal_as_mfjson / temporal_as_wkb / hexwkb).
- setInterp-to-discrete test lifts an instant (a multi-instant continuous
  sequence cannot be discretized; MEOS errors).

Full sqllogictest suite green: 1864 assertions across 80 test cases.
@estebanzimanyi estebanzimanyi force-pushed the feat/trgeometry-port-core branch from 811018d to 8f4d1b9 Compare May 27, 2026 00:26
@estebanzimanyi estebanzimanyi force-pushed the feat/tpose-port-core branch from 0ecbc5f to ec74d58 Compare May 27, 2026 01:43
@estebanzimanyi estebanzimanyi force-pushed the feat/trgeometry-port-core branch from 8f4d1b9 to 8db3629 Compare May 27, 2026 01:43
estebanzimanyi added a commit that referenced this pull request May 27, 2026
Brings the temporal rigid geometry (trgeometry) type into the accumulate:
a reference geometry rigidly moved over time by an embedded temporal pose,
written 'Geometry;Pose@t...'. Registered in LoadInternal after the tpose
surface.

This type exposed a cluster of incomplete-rename gaps in the pinned MEOS
(bb659c693, "the complete trgeo->trgeometry rename") where the public
meos_rgeo.h API is missing or mis-wired; each is routed to the correct,
exported function with a clear note for the upstream fix:
- WKT input: the public trgeometry_in calls tspatial_parse (no reference-
  geometry handling), so any literal failed "parse error - invalid geometry".
  Route to the correct exported parser trgeo_parse(&str, T_TRGEOMETRY).
- asText/asEWKT: trgeometry_out emits the HexWKB geom form; the WKT form
  (POLYGON(...);Pose(...)) needs trgeo_wkt_out(temp, maxdd, extended), which
  meos_rgeo.h does not expose but libmeos exports.
- startInstant/endInstant/instantN: the generic temporal_*_instant return a
  bare pose instant without the sequence-level shared reference geometry
  ("Cannot access geometry ..."); use the public geometry-preserving
  trgeometry_{start,end}_instant / trgeometry_instant_n.
- value executors (getValue/startValue/endValue), asText/asEWKT and the
  instant accessors are given trgeometry-unique exec names: the generic names
  collide across the geo/rgeo .cpp (ODR violation -> a single surviving
  geometry definition). getValue renders the pose via pose_as_text (WKT).
- trgeometry(geometry, tpose) constructor: register the second argument as
  TPOSE (a registered type in the accumulate), not VARCHAR.
- Close the output-serialization gap (asMFJSON / asBinary / asEWKB /
  asHexWKB / asHexEWKB via temporal_as_mfjson / temporal_as_wkb / hexwkb).
- setInterp-to-discrete test lifts an instant (a multi-instant continuous
  sequence cannot be discretized; MEOS errors).

Full sqllogictest suite green: 1864 assertions across 80 test cases.
@estebanzimanyi estebanzimanyi force-pushed the feat/tpose-port-core branch from ec74d58 to 34092c1 Compare May 28, 2026 21:38
@estebanzimanyi estebanzimanyi force-pushed the feat/trgeometry-port-core branch from 8db3629 to 2a6634e Compare May 28, 2026 21:48
estebanzimanyi added a commit that referenced this pull request May 29, 2026
Brings the temporal rigid geometry (trgeometry) type into the accumulate:
a reference geometry rigidly moved over time by an embedded temporal pose,
written 'Geometry;Pose@t...'. Registered in LoadInternal after the tpose
surface.

This type exposed a cluster of incomplete-rename gaps in the pinned MEOS
(bb659c693, "the complete trgeo->trgeometry rename") where the public
meos_rgeo.h API is missing or mis-wired; each is routed to the correct,
exported function with a clear note for the upstream fix:
- WKT input: the public trgeometry_in calls tspatial_parse (no reference-
  geometry handling), so any literal failed "parse error - invalid geometry".
  Route to the correct exported parser trgeo_parse(&str, T_TRGEOMETRY).
- asText/asEWKT: trgeometry_out emits the HexWKB geom form; the WKT form
  (POLYGON(...);Pose(...)) needs trgeo_wkt_out(temp, maxdd, extended), which
  meos_rgeo.h does not expose but libmeos exports.
- startInstant/endInstant/instantN: the generic temporal_*_instant return a
  bare pose instant without the sequence-level shared reference geometry
  ("Cannot access geometry ..."); use the public geometry-preserving
  trgeometry_{start,end}_instant / trgeometry_instant_n.
- value executors (getValue/startValue/endValue), asText/asEWKT and the
  instant accessors are given trgeometry-unique exec names: the generic names
  collide across the geo/rgeo .cpp (ODR violation -> a single surviving
  geometry definition). getValue renders the pose via pose_as_text (WKT).
- trgeometry(geometry, tpose) constructor: register the second argument as
  TPOSE (a registered type in the accumulate), not VARCHAR.
- Close the output-serialization gap (asMFJSON / asBinary / asEWKB /
  asHexWKB / asHexEWKB via temporal_as_mfjson / temporal_as_wkb / hexwkb).
- setInterp-to-discrete test lifts an instant (a multi-instant continuous
  sequence cannot be discretized; MEOS errors).

Full sqllogictest suite green: 1864 assertions across 80 test cases.

(cherry picked from commit 8db3629)
@estebanzimanyi estebanzimanyi force-pushed the feat/tpose-port-core branch from 34092c1 to c73d103 Compare May 29, 2026 21:33
@estebanzimanyi estebanzimanyi force-pushed the feat/trgeometry-port-core branch from 2a6634e to cb39d26 Compare May 29, 2026 21:33
@estebanzimanyi estebanzimanyi force-pushed the feat/tpose-port-core branch from c73d103 to b52d0a4 Compare May 29, 2026 22:55
@estebanzimanyi estebanzimanyi force-pushed the feat/trgeometry-port-core branch from cb39d26 to 744b0df Compare May 29, 2026 22:56
@estebanzimanyi estebanzimanyi force-pushed the feat/tpose-port-core branch from b52d0a4 to 4acef74 Compare June 2, 2026 14:09
@estebanzimanyi estebanzimanyi force-pushed the feat/trgeometry-port-core branch from 744b0df to f053543 Compare June 2, 2026 14:14
@estebanzimanyi estebanzimanyi force-pushed the feat/tpose-port-core branch from 4acef74 to d0d5c5b Compare June 5, 2026 16:02
@estebanzimanyi estebanzimanyi force-pushed the feat/trgeometry-port-core branch from f053543 to 9fba6b8 Compare June 5, 2026 16:02
@estebanzimanyi estebanzimanyi force-pushed the feat/tpose-port-core branch from d0d5c5b to 7d1b2b8 Compare June 5, 2026 17:15
@estebanzimanyi estebanzimanyi force-pushed the feat/trgeometry-port-core branch from 9fba6b8 to 80e5b50 Compare June 5, 2026 17:15
@estebanzimanyi estebanzimanyi force-pushed the feat/tpose-port-core branch from 7d1b2b8 to bbc5d6e Compare June 5, 2026 18:42
@estebanzimanyi estebanzimanyi force-pushed the feat/trgeometry-port-core branch from 80e5b50 to 2914789 Compare June 5, 2026 18:42
@estebanzimanyi estebanzimanyi force-pushed the feat/tpose-port-core branch from bbc5d6e to bd0aa1d Compare June 6, 2026 04:38
@estebanzimanyi estebanzimanyi force-pushed the feat/trgeometry-port-core branch from 2914789 to 201a740 Compare June 6, 2026 04:38
@estebanzimanyi estebanzimanyi force-pushed the feat/tpose-port-core branch from bd0aa1d to e418f17 Compare June 6, 2026 06:10
@estebanzimanyi estebanzimanyi force-pushed the feat/trgeometry-port-core branch 2 times, most recently from e8f021a to b22b977 Compare June 6, 2026 06:35
Bring the temporal rigid geometry (trgeometry) type into MobilityDuck:
construction, text/EWKT/WKB I/O, casts and accessors, gated by the RGEO config
flag that mirrors the MEOS RGEO build module. Disabling RGEO drops the
trgeometry sources and its registration in LoadInternal. The MEOS calls use the
trgeo_* names exported by the pinned MEOS; MFJSON input binds to a MEOS symbol
the pinned MEOS does not yet expose, so it is omitted here.

(cherry picked from commit 744b0df)
@estebanzimanyi estebanzimanyi force-pushed the feat/trgeometry-port-core branch from b22b977 to 9d0e670 Compare June 6, 2026 07:15
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