Skip to content

feat(vortex-geo): add make-line and length scalar functions - #9201

Open
HarukiMoriarty wants to merge 2 commits into
nemo/geo-scalar-executionfrom
nemo/geo-native-bbox-precheck
Open

feat(vortex-geo): add make-line and length scalar functions#9201
HarukiMoriarty wants to merge 2 commits into
nemo/geo-scalar-executionfrom
nemo/geo-native-bbox-precheck

Conversation

@HarukiMoriarty

@HarukiMoriarty HarukiMoriarty commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Stack

This PR is stacked on #9215, which introduces the shared unary and binary geometry scalar execution layer. Review that PR first; this diff contains only the ST_MakeLine / ST_Length feature work and its InterleaveArray dependency.

Rationale for this change

Vortex's native geometry extension types should support constructing two-point line strings and measuring line-string length without an Arrow or WKB round trip.

What changes are included in this PR?

  • Add generic primitive InterleaveArray execution, used to assemble MakeLine coordinate buffers from paired point columns.
  • Add vortex.geo.make_line for pairs of native Point arrays, paired row-by-row.
  • Promote mixed XY, XYZ, XYM, and XYZM inputs and fill missing ordinates with zero.
  • Preserve constant execution when both MakeLine operands are constant.
  • Add vortex.geo.length with planar Euclidean semantics, restricted to native LineString inputs.
  • Build MakeLine results directly as native columnar LineString storage.
  • Add coverage for primitive interleave execution, operand ordering, constants, null propagation, mixed dimensions, CRS handling, and invalid operand types.

What APIs are changed? Are there any user-facing changes?

The Vortex geometry session now registers and exports GeoMakeLine and GeoLength.

@codspeed-hq

codspeed-hq Bot commented Aug 5, 2026

Copy link
Copy Markdown

Merging this PR will improve performance by 19.96%

⚠️ Different runtime environments detected

Some benchmarks with significant performance changes were compared across different runtime environments,
which may affect the accuracy of the results.

Open the report in CodSpeed to investigate

⚡ 2 improved benchmarks
✅ 1893 untouched benchmarks
🆕 6 new benchmarks
⏩ 43 skipped benchmarks1

Performance Changes

Mode Benchmark BASE HEAD Efficiency
Simulation decode_varbin[(1000, 2)] 78.6 µs 62 µs +26.61%
Simulation compress_fsst[(1000, 64, 8)] 1.2 ms 1 ms +13.66%
🆕 Simulation nullable_two_vertex_lines N/A 1 ms N/A
🆕 Simulation sixteen_vertex_lines N/A 1.9 ms N/A
🆕 Simulation two_vertex_lines N/A 668.3 µs N/A
🆕 Simulation column_x_column N/A 272 µs N/A
🆕 Simulation column_x_constant N/A 647.3 µs N/A
🆕 Simulation nullable_columns N/A 292.5 µs N/A

Tip

Curious why this is faster? Comment @codspeedbot explain why this is faster on this PR, or directly use the CodSpeed MCP with your agent.


Comparing nemo/geo-native-bbox-precheck (72a4ae1) with nemo/geo-scalar-execution (09f16ff)

Open in CodSpeed

Footnotes

  1. 43 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

@HarukiMoriarty
HarukiMoriarty force-pushed the nemo/geo-native-bbox-precheck branch from a9ca3bf to 7a91f2d Compare August 5, 2026 18:56
@HarukiMoriarty
HarukiMoriarty changed the base branch from develop to nemo/geo-scalar-execution August 5, 2026 19:13
@HarukiMoriarty
HarukiMoriarty force-pushed the nemo/geo-native-bbox-precheck branch from 7a91f2d to 351f3be Compare August 5, 2026 19:17
Signed-off-by: Nemo Yu <zyu379@wisc.edu>
@HarukiMoriarty
HarukiMoriarty force-pushed the nemo/geo-native-bbox-precheck branch from 351f3be to fe549e1 Compare August 5, 2026 19:33
@connortsui20

Copy link
Copy Markdown
Member

@claude review this PR, and look for potential regressions as well as inconsistencies with other code that is not in this PR

@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Claude encountered an error after 2s —— View job


I'll analyze this and get back to you.

Signed-off-by: Nemo Yu <zyu379@wisc.edu>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog/feature A new feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants