Add the core tnpoint type port#150
Conversation
08a97a5 to
7d0d948
Compare
`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 tnpoint 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 #1082 (the MEOS-C Cross-link: the Linux arm64 build failure here is the Recommended sequence: wait for MobilityDB #1082 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 — this PR may already be unblockedStatic inspection of the current pinned MEOS ( Combined that's 105 npoint/tnpoint MEOS functions already on the pin — sufficient for the surface this PR registers ( ImplicationUnlike the other 5 Recommended sequencing: rebase this PR on This is the only one of the 6 |
Correction to my earlier MEOS-symbol-gap commentI posted earlier that this PR's MEOS dependencies are already satisfied by the current pin (50 Result: building this branch as-is still hits the same link-time gap as #148 (the Two paths forward
Either path works; option 1 is the one that delivers a buildable-today demonstration of tnpoint parity. Happy to attempt the rebase from the fork if you'd like — just ack and I'll open a separate PR with the de-stacked branch. |
`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).
Brings the temporal network point (tnpoint) type into the accumulate: construction, text/EWKT/MFJSON I/O, casts, and accessors, registered in LoadInternal after the tcbuffer surface. The network model resolves route geometries from a ways CSV; MEOS hardcodes its path (/usr/local/share/ways1000.csv) with no setter, so the canonical ways1000.csv is embedded (ways_csv.inc) and materialized there on load (best-effort). Fixes applied on top of the #150 branch: - getValue/startValue/endValue value executors renamed to tnpoint-unique names (Tnpoint_{get,start,end}_value). Generic names (Tinstant_value / Temporal_start_value / Temporal_end_value) are also defined at namespace scope in the other geo .cpp — an ODR violation that would otherwise dispatch these to the surviving (geometry) definition and render the npoint as a geometry ("Unknown geometry type: 0"). - Refresh the asEWKT test expecteds with the ways-network SRID prefix (SRID=5676;), matching MobilityDB's asEWKT(npoint) reference; asText omits it. Full sqllogictest suite green: 1799 assertions across 78 test cases.
5d0f3f9 to
94e01ad
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.
df3adbf to
66e1262
Compare
Brings the temporal network point (tnpoint) type into the accumulate: construction, text/EWKT/MFJSON I/O, casts, and accessors, registered in LoadInternal after the tcbuffer surface. The network model resolves route geometries from a ways CSV; MEOS hardcodes its path (/usr/local/share/ways1000.csv) with no setter, so the canonical ways1000.csv is embedded (ways_csv.inc) and materialized there on load (best-effort). Fixes applied on top of the #150 branch: - getValue/startValue/endValue value executors renamed to tnpoint-unique names (Tnpoint_{get,start,end}_value). Generic names (Tinstant_value / Temporal_start_value / Temporal_end_value) are also defined at namespace scope in the other geo .cpp — an ODR violation that would otherwise dispatch these to the surviving (geometry) definition and render the npoint as a geometry ("Unknown geometry type: 0"). - Refresh the asEWKT test expecteds with the ways-network SRID prefix (SRID=5676;), matching MobilityDB's asEWKT(npoint) reference; asText omits it. Full sqllogictest suite green: 1799 assertions across 78 test cases. (cherry picked from commit 94e01ad)
94e01ad to
0687726
Compare
Brings the temporal network point (tnpoint) type into the accumulate: construction, text/EWKT/MFJSON I/O, casts, and accessors, registered in LoadInternal after the tcbuffer surface. The network model resolves route geometries from a ways CSV; MEOS hardcodes its path (/usr/local/share/ways1000.csv) with no setter, so the canonical ways1000.csv is embedded (ways_csv.inc) and materialized there on load (best-effort). Fixes applied on top of the #150 branch: - getValue/startValue/endValue value executors renamed to tnpoint-unique names (Tnpoint_{get,start,end}_value). Generic names (Tinstant_value / Temporal_start_value / Temporal_end_value) are also defined at namespace scope in the other geo .cpp — an ODR violation that would otherwise dispatch these to the surviving (geometry) definition and render the npoint as a geometry ("Unknown geometry type: 0"). - Refresh the asEWKT test expecteds with the ways-network SRID prefix (SRID=5676;), matching MobilityDB's asEWKT(npoint) reference; asText omits it. Full sqllogictest suite green: 1799 assertions across 78 test cases. (cherry picked from commit 94e01ad)
66e1262 to
50003cc
Compare
Brings the temporal network point (tnpoint) type into the accumulate: construction, text/EWKT/MFJSON I/O, casts, and accessors, registered in LoadInternal after the tcbuffer surface. The network model resolves route geometries from a ways CSV; MEOS hardcodes its path (/usr/local/share/ways1000.csv) with no setter, so the canonical ways1000.csv is embedded (ways_csv.inc) and materialized there on load (best-effort). Fixes applied on top of the #150 branch: - getValue/startValue/endValue value executors renamed to tnpoint-unique names (Tnpoint_{get,start,end}_value). Generic names (Tinstant_value / Temporal_start_value / Temporal_end_value) are also defined at namespace scope in the other geo .cpp — an ODR violation that would otherwise dispatch these to the surviving (geometry) definition and render the npoint as a geometry ("Unknown geometry type: 0"). - Refresh the asEWKT test expecteds with the ways-network SRID prefix (SRID=5676;), matching MobilityDB's asEWKT(npoint) reference; asText omits it. Full sqllogictest suite green: 1799 assertions across 78 test cases. (cherry picked from commit 94e01ad)
0687726 to
e8a6e2f
Compare
50003cc to
61049d5
Compare
Brings the temporal network point (tnpoint) type into the accumulate: construction, text/EWKT/MFJSON I/O, casts, and accessors, registered in LoadInternal after the tcbuffer surface. The network model resolves route geometries from a ways CSV; MEOS hardcodes its path (/usr/local/share/ways1000.csv) with no setter, so the canonical ways1000.csv is embedded (ways_csv.inc) and materialized there on load (best-effort). Fixes applied on top of the #150 branch: - getValue/startValue/endValue value executors renamed to tnpoint-unique names (Tnpoint_{get,start,end}_value). Generic names (Tinstant_value / Temporal_start_value / Temporal_end_value) are also defined at namespace scope in the other geo .cpp — an ODR violation that would otherwise dispatch these to the surviving (geometry) definition and render the npoint as a geometry ("Unknown geometry type: 0"). - Refresh the asEWKT test expecteds with the ways-network SRID prefix (SRID=5676;), matching MobilityDB's asEWKT(npoint) reference; asText omits it. Full sqllogictest suite green: 1799 assertions across 78 test cases. (cherry picked from commit 94e01ad)
e8a6e2f to
a0c2f9e
Compare
61049d5 to
094218c
Compare
Brings the temporal network point (tnpoint) type into the accumulate: construction, text/EWKT/MFJSON I/O, casts, and accessors, registered in LoadInternal after the tcbuffer surface. The network model resolves route geometries from a ways CSV; MEOS hardcodes its path (/usr/local/share/ways1000.csv) with no setter, so the canonical ways1000.csv is embedded (ways_csv.inc) and materialized there on load (best-effort). Fixes applied on top of the #150 branch: - getValue/startValue/endValue value executors renamed to tnpoint-unique names (Tnpoint_{get,start,end}_value). Generic names (Tinstant_value / Temporal_start_value / Temporal_end_value) are also defined at namespace scope in the other geo .cpp — an ODR violation that would otherwise dispatch these to the surviving (geometry) definition and render the npoint as a geometry ("Unknown geometry type: 0"). - Refresh the asEWKT test expecteds with the ways-network SRID prefix (SRID=5676;), matching MobilityDB's asEWKT(npoint) reference; asText omits it. Full sqllogictest suite green: 1799 assertions across 78 test cases. (cherry picked from commit 94e01ad) (cherry picked from commit a0c2f9e)
a0c2f9e to
f42815a
Compare
094218c to
918b1bb
Compare
Brings the temporal network point (tnpoint) type into the accumulate: construction, text/EWKT/MFJSON I/O, casts, and accessors, registered in LoadInternal after the tcbuffer surface. The network model resolves route geometries from a ways CSV; MEOS hardcodes its path (/usr/local/share/ways1000.csv) with no setter, so the canonical ways1000.csv is embedded (ways_csv.inc) and materialized there on load (best-effort). Fixes applied on top of the #150 branch: - getValue/startValue/endValue value executors renamed to tnpoint-unique names (Tnpoint_{get,start,end}_value). Generic names (Tinstant_value / Temporal_start_value / Temporal_end_value) are also defined at namespace scope in the other geo .cpp — an ODR violation that would otherwise dispatch these to the surviving (geometry) definition and render the npoint as a geometry ("Unknown geometry type: 0"). - Refresh the asEWKT test expecteds with the ways-network SRID prefix (SRID=5676;), matching MobilityDB's asEWKT(npoint) reference; asText omits it. Full sqllogictest suite green: 1799 assertions across 78 test cases. (cherry picked from commit 94e01ad) (cherry picked from commit a0c2f9e)
f42815a to
fc86283
Compare
918b1bb to
a7c07a6
Compare
Brings the temporal network point (tnpoint) type into the accumulate: construction, text/EWKT/MFJSON I/O, casts, and accessors, registered in LoadInternal after the tcbuffer surface. The network model resolves route geometries from a ways CSV; MEOS hardcodes its path (/usr/local/share/ways1000.csv) with no setter, so the canonical ways1000.csv is embedded (ways_csv.inc) and materialized there on load (best-effort). Fixes applied on top of the #150 branch: - getValue/startValue/endValue value executors renamed to tnpoint-unique names (Tnpoint_{get,start,end}_value). Generic names (Tinstant_value / Temporal_start_value / Temporal_end_value) are also defined at namespace scope in the other geo .cpp — an ODR violation that would otherwise dispatch these to the surviving (geometry) definition and render the npoint as a geometry ("Unknown geometry type: 0"). - Refresh the asEWKT test expecteds with the ways-network SRID prefix (SRID=5676;), matching MobilityDB's asEWKT(npoint) reference; asText omits it. Full sqllogictest suite green: 1799 assertions across 78 test cases. (cherry picked from commit 94e01ad) (cherry picked from commit a0c2f9e)
fc86283 to
73e4600
Compare
a7c07a6 to
3ca2613
Compare
Brings the temporal network point (tnpoint) type into the accumulate: construction, text/EWKT/MFJSON I/O, casts, and accessors, registered in LoadInternal after the tcbuffer surface. The network model resolves route geometries from a ways CSV; MEOS hardcodes its path (/usr/local/share/ways1000.csv) with no setter, so the canonical ways1000.csv is embedded (ways_csv.inc) and materialized there on load (best-effort). Fixes applied on top of the #150 branch: - getValue/startValue/endValue value executors renamed to tnpoint-unique names (Tnpoint_{get,start,end}_value). Generic names (Tinstant_value / Temporal_start_value / Temporal_end_value) are also defined at namespace scope in the other geo .cpp — an ODR violation that would otherwise dispatch these to the surviving (geometry) definition and render the npoint as a geometry ("Unknown geometry type: 0"). - Refresh the asEWKT test expecteds with the ways-network SRID prefix (SRID=5676;), matching MobilityDB's asEWKT(npoint) reference; asText omits it. Full sqllogictest suite green: 1799 assertions across 78 test cases. (cherry picked from commit 94e01ad) (cherry picked from commit a0c2f9e)
e507001 to
ff325b7
Compare
Brings the temporal network point (tnpoint) type into the accumulate: construction, text/EWKT/MFJSON I/O, casts, and accessors, registered in LoadInternal after the tcbuffer surface. The network model resolves route geometries from a ways CSV; MEOS hardcodes its path (/usr/local/share/ways1000.csv) with no setter, so the canonical ways1000.csv is embedded (ways_csv.inc) and materialized there on load (best-effort). Fixes applied on top of the #150 branch: - getValue/startValue/endValue value executors renamed to tnpoint-unique names (Tnpoint_{get,start,end}_value). Generic names (Tinstant_value / Temporal_start_value / Temporal_end_value) are also defined at namespace scope in the other geo .cpp — an ODR violation that would otherwise dispatch these to the surviving (geometry) definition and render the npoint as a geometry ("Unknown geometry type: 0"). - Refresh the asEWKT test expecteds with the ways-network SRID prefix (SRID=5676;), matching MobilityDB's asEWKT(npoint) reference; asText omits it. Full sqllogictest suite green: 1799 assertions across 78 test cases. (cherry picked from commit 94e01ad) (cherry picked from commit a0c2f9e)
Port the temporal network point type into MobilityDuck as a clean clone of the canonical tgeometry/tcbuffer port, core scope only: the type, constructors, text/EWKT/MFJSON input, casts, the subtype-agnostic temporal accessor and modifier surface, and the tnpoint value model (npoint-text getValue/startValue/endValue plus a route accessor over the network-relative Npoint route-id-and-position value, which has no intrinsic coordinates). The boxops/positions/spatial-rels/distance ops layer is intentionally not ported and is a separate follow-up. Because the tnpoint network model resolves route geometries from a ways CSV that MEOS reads from a hardcoded path with no setter, the canonical ways1000.csv is embedded and materialized at that path on load, mirroring the existing embedded spatial_ref_sys handling. The pinned MEOS is set to a temporary provisional pin on a contributor-fork integration branch that composes MobilityDB PR #1051 (tcbuffer MF-JSON, which the stacked tcbuffer port needs) and PR #951 (tnpoint MF-JSON, wired through the generic temporal_from_mfjson dispatch) on top of MobilityDB master, because neither MF-JSON surface is on master yet; the portfile carries the flip-to-merged-master recipe and this is provisional pending the #134 to #145 chain plus #1051 and #951 merging. This stacks on PR #148, so #145's and #148's diffs show here until they merge.