Skip to content

feat(bindings): tgeometry + tgeography + tgeogpoint — full parity surface#104

Open
estebanzimanyi wants to merge 1 commit intomainfrom
consolidate/geo-types-parity
Open

feat(bindings): tgeometry + tgeography + tgeogpoint — full parity surface#104
estebanzimanyi wants to merge 1 commit intomainfrom
consolidate/geo-types-parity

Conversation

@estebanzimanyi
Copy link
Copy Markdown
Member

@estebanzimanyi estebanzimanyi commented May 4, 2026

👀 Reviewers: tier ranking, dependency chains and the standards checklist live in doc/contributing/reviewer-guide.md.

Summary

Consolidates PR #92 (previously 18 commits) into one squashed commit adding three new spatial temporal types.

tgeometry (rigid-body 2D geometry):

  • Foundational surface: accessors / restrict / modifiers / comparison
  • Cross-type predicate surface: boxops / posops / spatial-rels / temporal-rels / distance
  • Spatial functions: SRID / setSRID / transform / coercions / centroid / convexHull / traversedArea
  • Aggregate / tile / analytics extensions

tgeography (geodetic geometry):

  • Full surface mirroring tgeometry over geodetic coordinates

tgeogpoint (temporal geodetic point):

  • Full surface: all scalar functions, predicates, distance, I/O

Infrastructure:

  • TRTREE index extended to every bbox-bearing column type
  • Aggregate additions: MergeAgg, AppendSequence, SpanUnionAgg, SetUnionAgg, WcountAgg, window aggregates
  • kNN distance surface: NAD scalar, |=|, NAI, shortestLine
  • fix(aggregates): Float8ToDatum portable for 32-bit Datum builds

Test plan

  • test/sql/parity/040_tgeometry_parity.test
  • test/sql/parity/041_tgeography_parity.test
  • test/sql/parity/042_tgeogpoint_parity.test
  • test/sql/parity/050_index_types.test through test/sql/parity/064_alt_tile_emitters.test

🤖 Generated with Claude Code

…face

Add three new spatial temporal types mirroring PostGIS spatial types:

tgeometry (rigid-body 2D geometry):
  - Foundational surface: accessors / restrict / modifiers / comparison
  - Cross-type predicate surface: boxops / posops / spatial-rels / temporal-rels / distance
  - Spatial functions: SRID / setSRID / transform / coercions / centroid / convexHull / traversedArea
  - Aggregate / tile / analytics extensions
  - Tests: 040_tgeometry_parity.test

tgeography (geodetic geometry):
  - Full surface mirroring tgeometry over geodetic coordinates
  - Tests: 041_tgeography_parity.test

tgeogpoint (temporal geodetic point, mirrors tgeompoint):
  - Full surface: all scalar functions, predicates, distance, I/O
  - Tests: 042_tgeogpoint_parity.test

Infrastructure:
  - TRTREE index extended to every bbox-bearing column type (STBox, TBox, CBBuffer)
  - Aggregate additions: MergeAgg, AppendSequence, AppendSequenceGaps, SpanUnionAgg,
    SetUnionAgg (text + geometry), WcountAgg(tspatial), window aggregates (wmin/wmax/wsum/wavg)
  - TcentroidAgg 3D dispatch; SkipList aggregates renamed to *Agg per RFC #827
  - Single-tile getters: getValueTile / getTBoxTimeTile / getValueTimeTile + spatial variants
  - kNN distance: NAD scalar, |=| operator, NAI, shortestLine
  - fix(aggregates): make Float8ToDatum portable for 32-bit Datum builds
  - fix(index): rtree_index_create_physical — correct column-type dispatch
  - Tests: 025–031, 050–064 parity test files activated

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
estebanzimanyi added a commit that referenced this pull request May 10, 2026
Maps the file-level overlaps between commits already on main and the
open consolidate/* parity PRs (#97-#104) plus PR #111 (per-thread MEOS
init).  Each overlap row names the conflicting commit and PR; the
resolution-options section spells out the three viable paths
(rebase, revert+fold, keep both) so the maintainer can pick per PR.

Working artefact — delete once consolidations merge.
@estebanzimanyi
Copy link
Copy Markdown
Member Author

Cross-reference: docs/CONSOLIDATION-PLAN.md on #115

This PR's surface overlaps with parity commits already on main (e41c8d9 → c8cad6d). The overlap matrix and three resolution options per overlap (rebase / revert+fold / keep both) are documented in docs/CONSOLIDATION-PLAN.md on #115. Maintainer's call which path to take per PR.

estebanzimanyi added a commit that referenced this pull request May 10, 2026
Two new docs:
- docs/PR-COORDINATION.md — ecosystem policy: gh pr list is the first
  step before any code change; don't duplicate or conflict with
  in-flight PRs/policies. Cross-ecosystem variant. One PR = one commit
  = one feature consolidation rule with the git commit-tree squash
  recipe.
- docs/CONSOLIDATION-PLAN.md — working artefact mapping the file-level
  overlap between commits already on main and the open consolidate/*
  parity PRs (#97/#98/#99/#100/#102/#103/#104) plus PR #111
  (per-thread MEOS init). Three resolution options per overlap
  (rebase / revert+fold / keep both); maintainer picks per PR.

Pre-emptive policy preventing the duplication and policy-conflict
failures that produced the consolidate/* / main overlap and the
single-timezone / per-thread-MEOS-init clash.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant