Add the core tpose type port#151
Conversation
`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).
Reviewer's quickstart — ~5 minutesWhat this PR does in one sentence: adds the core MobilityDuck port of the tpose 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):
Upstream dependency: depends on MobilityDB #1083 (the MEOS-C Cross-link: the Linux arm64 build failure here is the Recommended sequence: wait for MobilityDB #1083 to land → bump the MEOS pin in Why it's safe to merge (when the upstream dependency is satisfied): strictly additive — new type, new functions, new tests. No existing functionality changed. |
Static MEOS-symbol analysis — confirmed gated on MobilityDB #1083Static inspection of the current pinned MEOS ( These are the Order of operations
Until step 2, this PR's CI cannot go green even if everything else here is correct. |
`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).
`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).
`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).
`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).
`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).
`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).
`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).
`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).
`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).
`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).
`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).
`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).
`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).
`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).
`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).
`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).
`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).
`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).
`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).
`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).
Brings the temporal pose (tpose) type into the accumulate: construction, text/EWKT/MFJSON/WKB I/O, casts, and accessors, registered in LoadInternal after the tnpoint surface. Fixes applied on top of the MobilityDB#151 branch: - getValue/startValue/endValue value executors renamed to tpose-unique names (Tpose_{get,start,end}_value) and rendered via pose_as_text (WKT form "Pose(POINT(x y),r)"). Generic names collide with the other geo .cpp (ODR violation -> geometry renderer -> "Unknown geometry type: 0"); pose_out emits the HexWKB/uppercase "POSE (...)" form, not what asText/getValue want. - Close the output-serialization gap the MobilityDB#151 test exercises but the port omitted: register asMFJSON (via temporal_as_mfjson) and asBinary / asEWKB / asHexWKB / asHexEWKB (via temporal_as_wkb / temporal_as_hexwkb), with tpose-unique exec names. MobilityDB exposes all of these for tpose. - Fix the setInterp-to-discrete test: a multi-instant continuous sequence cannot be discretized (MEOS errors); lift an instant instead, matching MobilityDB's 102_tpose reference. Full sqllogictest suite green: 1830 assertions across 79 test cases.
The MobilityDB#148 / MobilityDB#150 ports registered only the From{MFJSON,Binary,EWKB,HexWKB, HexEWKB} parsers; MobilityDB also exposes the matching emitters for both types. Add asMFJSON (temporal_as_mfjson) and asBinary / asEWKB / asHexWKB / asHexEWKB (temporal_as_wkb / temporal_as_hexwkb), with type-unique exec names (generic names collide across the geo .cpp — the ODR caveat). Mirrors the emitters folded into tpose (MobilityDB#151). Adds asMFJSON/asBinary round-trip identity tests for both types. Full sqllogictest suite green: 1834 assertions across 79 test cases.
757f880 to
0b7c6af
Compare
2b4bc5b to
a5af848
Compare
0b7c6af to
d801cc3
Compare
Brings the temporal pose (tpose) type into the accumulate: construction, text/EWKT/MFJSON/WKB I/O, casts, and accessors, registered in LoadInternal after the tnpoint surface. Fixes applied on top of the #151 branch: - getValue/startValue/endValue value executors renamed to tpose-unique names (Tpose_{get,start,end}_value) and rendered via pose_as_text (WKT form "Pose(POINT(x y),r)"). Generic names collide with the other geo .cpp (ODR violation -> geometry renderer -> "Unknown geometry type: 0"); pose_out emits the HexWKB/uppercase "POSE (...)" form, not what asText/getValue want. - Close the output-serialization gap the #151 test exercises but the port omitted: register asMFJSON (via temporal_as_mfjson) and asBinary / asEWKB / asHexWKB / asHexEWKB (via temporal_as_wkb / temporal_as_hexwkb), with tpose-unique exec names. MobilityDB exposes all of these for tpose. - Fix the setInterp-to-discrete test: a multi-instant continuous sequence cannot be discretized (MEOS errors); lift an instant instead, matching MobilityDB's 102_tpose reference. Full sqllogictest suite green: 1830 assertions across 79 test cases.
a5af848 to
2c43ae9
Compare
The #148 / #150 ports registered only the From{MFJSON,Binary,EWKB,HexWKB, HexEWKB} parsers; MobilityDB also exposes the matching emitters for both types. Add asMFJSON (temporal_as_mfjson) and asBinary / asEWKB / asHexWKB / asHexEWKB (temporal_as_wkb / temporal_as_hexwkb), with type-unique exec names (generic names collide across the geo .cpp — the ODR caveat). Mirrors the emitters folded into tpose (#151). Adds asMFJSON/asBinary round-trip identity tests for both types. Full sqllogictest suite green: 1834 assertions across 79 test cases.
d801cc3 to
5d0f3f9
Compare
Brings the temporal pose (tpose) type into the accumulate: construction, text/EWKT/MFJSON/WKB I/O, casts, and accessors, registered in LoadInternal after the tnpoint surface. Fixes applied on top of the #151 branch: - getValue/startValue/endValue value executors renamed to tpose-unique names (Tpose_{get,start,end}_value) and rendered via pose_as_text (WKT form "Pose(POINT(x y),r)"). Generic names collide with the other geo .cpp (ODR violation -> geometry renderer -> "Unknown geometry type: 0"); pose_out emits the HexWKB/uppercase "POSE (...)" form, not what asText/getValue want. - Close the output-serialization gap the #151 test exercises but the port omitted: register asMFJSON (via temporal_as_mfjson) and asBinary / asEWKB / asHexWKB / asHexEWKB (via temporal_as_wkb / temporal_as_hexwkb), with tpose-unique exec names. MobilityDB exposes all of these for tpose. - Fix the setInterp-to-discrete test: a multi-instant continuous sequence cannot be discretized (MEOS errors); lift an instant instead, matching MobilityDB's 102_tpose reference. Full sqllogictest suite green: 1830 assertions across 79 test cases.
2c43ae9 to
0ecbc5f
Compare
The #148 / #150 ports registered only the From{MFJSON,Binary,EWKB,HexWKB, HexEWKB} parsers; MobilityDB also exposes the matching emitters for both types. Add asMFJSON (temporal_as_mfjson) and asBinary / asEWKB / asHexWKB / asHexEWKB (temporal_as_wkb / temporal_as_hexwkb), with type-unique exec names (generic names collide across the geo .cpp — the ODR caveat). Mirrors the emitters folded into tpose (#151). Adds asMFJSON/asBinary round-trip identity tests for both types. Full sqllogictest suite green: 1834 assertions across 79 test cases.
5d0f3f9 to
94e01ad
Compare
Brings the temporal pose (tpose) type into the accumulate: construction, text/EWKT/MFJSON/WKB I/O, casts, and accessors, registered in LoadInternal after the tnpoint surface. Fixes applied on top of the #151 branch: - getValue/startValue/endValue value executors renamed to tpose-unique names (Tpose_{get,start,end}_value) and rendered via pose_as_text (WKT form "Pose(POINT(x y),r)"). Generic names collide with the other geo .cpp (ODR violation -> geometry renderer -> "Unknown geometry type: 0"); pose_out emits the HexWKB/uppercase "POSE (...)" form, not what asText/getValue want. - Close the output-serialization gap the #151 test exercises but the port omitted: register asMFJSON (via temporal_as_mfjson) and asBinary / asEWKB / asHexWKB / asHexEWKB (via temporal_as_wkb / temporal_as_hexwkb), with tpose-unique exec names. MobilityDB exposes all of these for tpose. - Fix the setInterp-to-discrete test: a multi-instant continuous sequence cannot be discretized (MEOS errors); lift an instant instead, matching MobilityDB's 102_tpose reference. Full sqllogictest suite green: 1830 assertions across 79 test cases.
0ecbc5f to
ec74d58
Compare
The #148 / #150 ports registered only the From{MFJSON,Binary,EWKB,HexWKB, HexEWKB} parsers; MobilityDB also exposes the matching emitters for both types. Add asMFJSON (temporal_as_mfjson) and asBinary / asEWKB / asHexWKB / asHexEWKB (temporal_as_wkb / temporal_as_hexwkb), with type-unique exec names (generic names collide across the geo .cpp — the ODR caveat). Mirrors the emitters folded into tpose (#151). Adds asMFJSON/asBinary round-trip identity tests for both types. Full sqllogictest suite green: 1834 assertions across 79 test cases.
94e01ad to
0687726
Compare
Brings the temporal pose (tpose) type into the accumulate: construction, text/EWKT/MFJSON/WKB I/O, casts, and accessors, registered in LoadInternal after the tnpoint surface. Fixes applied on top of the #151 branch: - getValue/startValue/endValue value executors renamed to tpose-unique names (Tpose_{get,start,end}_value) and rendered via pose_as_text (WKT form "Pose(POINT(x y),r)"). Generic names collide with the other geo .cpp (ODR violation -> geometry renderer -> "Unknown geometry type: 0"); pose_out emits the HexWKB/uppercase "POSE (...)" form, not what asText/getValue want. - Close the output-serialization gap the #151 test exercises but the port omitted: register asMFJSON (via temporal_as_mfjson) and asBinary / asEWKB / asHexWKB / asHexEWKB (via temporal_as_wkb / temporal_as_hexwkb), with tpose-unique exec names. MobilityDB exposes all of these for tpose. - Fix the setInterp-to-discrete test: a multi-instant continuous sequence cannot be discretized (MEOS errors); lift an instant instead, matching MobilityDB's 102_tpose reference. Full sqllogictest suite green: 1830 assertions across 79 test cases. (cherry picked from commit ec74d58)
ec74d58 to
34092c1
Compare
Brings the temporal pose (tpose) type into the accumulate: construction, text/EWKT/MFJSON/WKB I/O, casts, and accessors, registered in LoadInternal after the tnpoint surface. Fixes applied on top of the #151 branch: - getValue/startValue/endValue value executors renamed to tpose-unique names (Tpose_{get,start,end}_value) and rendered via pose_as_text (WKT form "Pose(POINT(x y),r)"). Generic names collide with the other geo .cpp (ODR violation -> geometry renderer -> "Unknown geometry type: 0"); pose_out emits the HexWKB/uppercase "POSE (...)" form, not what asText/getValue want. - Close the output-serialization gap the #151 test exercises but the port omitted: register asMFJSON (via temporal_as_mfjson) and asBinary / asEWKB / asHexWKB / asHexEWKB (via temporal_as_wkb / temporal_as_hexwkb), with tpose-unique exec names. MobilityDB exposes all of these for tpose. - Fix the setInterp-to-discrete test: a multi-instant continuous sequence cannot be discretized (MEOS errors); lift an instant instead, matching MobilityDB's 102_tpose reference. Full sqllogictest suite green: 1830 assertions across 79 test cases. (cherry picked from commit ec74d58)
0687726 to
e8a6e2f
Compare
Brings the temporal pose (tpose) type into the accumulate: construction, text/EWKT/MFJSON/WKB I/O, casts, and accessors, registered in LoadInternal after the tnpoint surface. Fixes applied on top of the #151 branch: - getValue/startValue/endValue value executors renamed to tpose-unique names (Tpose_{get,start,end}_value) and rendered via pose_as_text (WKT form "Pose(POINT(x y),r)"). Generic names collide with the other geo .cpp (ODR violation -> geometry renderer -> "Unknown geometry type: 0"); pose_out emits the HexWKB/uppercase "POSE (...)" form, not what asText/getValue want. - Close the output-serialization gap the #151 test exercises but the port omitted: register asMFJSON (via temporal_as_mfjson) and asBinary / asEWKB / asHexWKB / asHexEWKB (via temporal_as_wkb / temporal_as_hexwkb), with tpose-unique exec names. MobilityDB exposes all of these for tpose. - Fix the setInterp-to-discrete test: a multi-instant continuous sequence cannot be discretized (MEOS errors); lift an instant instead, matching MobilityDB's 102_tpose reference. Full sqllogictest suite green: 1830 assertions across 79 test cases. (cherry picked from commit ec74d58)
34092c1 to
c73d103
Compare
e8a6e2f to
a0c2f9e
Compare
Brings the temporal pose (tpose) type into the accumulate: construction, text/EWKT/MFJSON/WKB I/O, casts, and accessors, registered in LoadInternal after the tnpoint surface. Fixes applied on top of the #151 branch: - getValue/startValue/endValue value executors renamed to tpose-unique names (Tpose_{get,start,end}_value) and rendered via pose_as_text (WKT form "Pose(POINT(x y),r)"). Generic names collide with the other geo .cpp (ODR violation -> geometry renderer -> "Unknown geometry type: 0"); pose_out emits the HexWKB/uppercase "POSE (...)" form, not what asText/getValue want. - Close the output-serialization gap the #151 test exercises but the port omitted: register asMFJSON (via temporal_as_mfjson) and asBinary / asEWKB / asHexWKB / asHexEWKB (via temporal_as_wkb / temporal_as_hexwkb), with tpose-unique exec names. MobilityDB exposes all of these for tpose. - Fix the setInterp-to-discrete test: a multi-instant continuous sequence cannot be discretized (MEOS errors); lift an instant instead, matching MobilityDB's 102_tpose reference. Full sqllogictest suite green: 1830 assertions across 79 test cases. (cherry picked from commit ec74d58)
c73d103 to
b52d0a4
Compare
a0c2f9e to
f42815a
Compare
Brings the temporal pose (tpose) type into the accumulate: construction, text/EWKT/MFJSON/WKB I/O, casts, and accessors, registered in LoadInternal after the tnpoint surface. Fixes applied on top of the #151 branch: - getValue/startValue/endValue value executors renamed to tpose-unique names (Tpose_{get,start,end}_value) and rendered via pose_as_text (WKT form "Pose(POINT(x y),r)"). Generic names collide with the other geo .cpp (ODR violation -> geometry renderer -> "Unknown geometry type: 0"); pose_out emits the HexWKB/uppercase "POSE (...)" form, not what asText/getValue want. - Close the output-serialization gap the #151 test exercises but the port omitted: register asMFJSON (via temporal_as_mfjson) and asBinary / asEWKB / asHexWKB / asHexEWKB (via temporal_as_wkb / temporal_as_hexwkb), with tpose-unique exec names. MobilityDB exposes all of these for tpose. - Fix the setInterp-to-discrete test: a multi-instant continuous sequence cannot be discretized (MEOS errors); lift an instant instead, matching MobilityDB's 102_tpose reference. Full sqllogictest suite green: 1830 assertions across 79 test cases. (cherry picked from commit ec74d58) (cherry picked from commit b52d0a4)
b52d0a4 to
4acef74
Compare
Clones the canonical tgeometry MobilityDuck port for the temporal pose type: type registration, text/EWKT/MFJSON I/O, constructors and the basic accessor surface. The Pose value is a 2D point plus a rotation (3D adds a quaternion); its MEOS MF-JSON support is already on MobilityDB master, so there is no MEOS prerequisite PR and the inherited composed provisional pin is left unchanged. The ops layer is deferred to a later stacked follow-up. Stacks on the tnpoint core port; the #145/#148/#150 diffs and the temporary composed MEOS pin show in the diff until that chain merges.