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).
e102186 to
e495320
Compare
757f880 to
0b7c6af
Compare
e495320 to
9e4a975
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.
0b7c6af to
d801cc3
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.
9e4a975 to
c30fdde
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.
d801cc3 to
5d0f3f9
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.
c30fdde to
df3adbf
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.
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
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.