feat(rust/sedona-functions,c/sedona-geos): Add remaining required sedona bench functions#11
Merged
jiayuasu merged 19 commits intoapache:mainfrom Sep 9, 2025
Merged
Conversation
ce9e777 to
8d28885
Compare
4f66951 to
81988e0
Compare
paleolimbot
commented
Sep 8, 2025
Contributor
There was a problem hiding this comment.
Pull Request Overview
This PR adds three remaining sedona bench functions: ST_Collect(), ST_MakeLine(), and ST_ConvexHull() to support benchmark completeness. It also addresses technical requirements for NULL array iteration and adds MultiPoint benchmark configuration.
- Implements ST_Collect() aggregate function for collecting geometries into multi-geometry types
- Implements ST_MakeLine() scalar function for creating linestrings from points and other geometries
- Implements ST_ConvexHull() scalar function using GEOS for computing convex hulls
Reviewed Changes
Copilot reviewed 16 out of 16 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| rust/sedona-testing/src/benchmark_util.rs | Adds MultiPoint benchmark configuration and updates geometry building methods |
| rust/sedona-geometry/src/types.rs | Adds try_from_geom() method for GeometryTypeAndDimensions |
| rust/sedona-geometry/src/analyze.rs | Refactors geometry analysis to use new try_from_geom() method |
| rust/sedona-functions/src/st_makeline.rs | New ST_MakeLine() scalar function implementation |
| rust/sedona-functions/src/st_collect.rs | New ST_Collect() aggregate function implementation |
| rust/sedona-functions/src/sd_format.rs | Fixes trailing comma in assertion |
| rust/sedona-functions/src/register.rs | Registers new functions in function set |
| rust/sedona-functions/src/lib.rs | Adds module declarations for new functions |
| rust/sedona-functions/src/executor.rs | Adds NULL array type handling for iteration |
| rust/sedona-functions/benches/native-functions.rs | Adds benchmarks for new functions |
| python/sedonadb/tests/functions/test_functions.py | Adds tests for ST_ConvexHull and ST_MakeLine |
| python/sedonadb/tests/functions/test_aggregate.py | New test file for ST_Collect aggregate function |
| c/sedona-geos/src/st_convexhull.rs | New ST_ConvexHull() implementation using GEOS |
| c/sedona-geos/src/register.rs | Registers ST_ConvexHull in GEOS function set |
| c/sedona-geos/src/lib.rs | Adds module declaration for ST_ConvexHull |
| c/sedona-geos/benches/geos-functions.rs | Adds benchmark for ST_ConvexHull |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
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.
Apologies for stuffing these all in the same PR (I didn't think they would be as complicated as they were!). This PR adds ST_Collect(), ST_MakeLine(), and ST_ConvexHull().
A few other things were required to make these cleanly implemented:
.to_array(num_iterations).