feat(bindings): tgeompoint distance + temporal-position predicates batch#64
Closed
estebanzimanyi wants to merge 2 commits into
Closed
feat(bindings): tgeompoint distance + temporal-position predicates batch#64estebanzimanyi wants to merge 2 commits into
estebanzimanyi wants to merge 2 commits into
Conversation
New SQL surface added in this batch:
tgeompoint distance:
- tdistance(tgeompoint, geometry) and (geometry, tgeompoint) — both directions
- nearestApproachInstant — 3 overloads on tgeompoint × {geometry, tgeompoint}
- nearestApproachDistance / nad — 10 overloads on tgeompoint × {geometry,
stbox, tgeompoint} both directions
stbox split functions on tgeompoint:
- stboxes(tgeompoint) -> LIST(stbox)
- splitNStboxes(tgeompoint, INTEGER) -> LIST(stbox)
- splitEachNStboxes(tgeompoint, INTEGER) -> LIST(stbox)
Temporal-position predicates on (tstzspan, temporal) and (temporal, tstzspan):
- before, after, overbefore, overafter — registered as named functions
(DuckDB's parser does not accept `<<#` / `#>>` / `&<#` / `#&>`).
Serialization on temporal:
- as_wkb, as_hexwkb (binary serialization round-trip).
Tnumber tableFunction surface:
- valueSplit, similarityPath — first TableFunction registrations in
the temporal subsystem (RegisterTnumberValueSplit /
RegisterSimilarityPath split out from RegisterScalarFunctions).
setSRID / asMFJSON on tspatial:
- Tspatial_set_srid, Tspatial_as_mfjson.
Parity tests added:
- 025_temporal_tile.test (22 assertions) — tile / split surface
- 038_temporal_similarity.test (15 assertions) — Frechet / DTW / Hausdorff
- 064_tpoint_distance.test (7 assertions) — tdistance / NAI / NAD
Docs:
- docs/DuckDB-Parity-Gaps.md catalogs structural divergences (parser-
rejected operators, GEOMETRY type-trip, SRS resolution) so future
parity audits don't try to re-close them.
Suite: 796 assertions across 16 test cases passing (TZ=UTC).
2 tasks
This was referenced Apr 30, 2026
nhungoc1508
pushed a commit
that referenced
this pull request
May 4, 2026
scripts/parity-audit.py walks MobilityDB's CREATE FUNCTION surface
across mobilitydb/sql/**/*.in.sql and MobilityDuck's RegisterFunction
calls in src/**/*.cpp, then writes a per-section coverage table and a
list of unregistered function names.
Match is by name only — overload-level parity is not verified.
docs/parity-status.md is the latest snapshot. Regenerate with:
python3 scripts/parity-audit.py --mdb ../MobilityDB --mduck . \
--out docs/parity-status.md
Snapshot 2026-04-30: 1017/2054 names covered (49.5%). High-level
gaps include all aggregate sections, all gist/spgist support, the
*_compops / *_posops operator surfaces (where DuckDB-rejected
multi-char operators are partially covered by named-function
equivalents documented in docs/DuckDB-Parity-Gaps.md once PR #64
lands), and the npoint base type itself.
Member
Author
|
Superseded by the consolidated PR branch |
Closed
3 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Salvaged from an interrupted parity-audit session. Adds a coherent slice of the MobilityDB SQL surface that MobilityDuck did not yet expose, plus a docs page cataloguing structural gaps that won't be closed.
New SQL surface
tgeompoint distance
stbox split functions
Temporal-position predicates on (tstzspan, temporal) and (temporal, tstzspan)
Serialization on temporal
Tnumber TableFunction surface (first table-returning surface in the temporal subsystem)
setSRID / asMFJSON on tspatial
Tests
Full suite: 796 assertions / 16 test cases passing under `TZ=UTC`.
Docs
`docs/DuckDB-Parity-Gaps.md` catalogues:
This is a structural inventory, not an open work list.
Test plan