This is an automated email from the ASF dual-hosted git repository.

paleolimbot pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/sedona-db.git


The following commit(s) were added to refs/heads/main by this push:
     new 0ef61b6e chore(rust): Change aggregate function names (#325)
0ef61b6e is described below

commit 0ef61b6eeb8b1110186417e4ca3c4bc287479ee1
Author: jp <[email protected]>
AuthorDate: Fri Nov 21 20:38:10 2025 -0800

    chore(rust): Change aggregate function names (#325)
---
 python/sedonadb/tests/functions/test_aggregate.py  | 36 ++++++++-------
 rust/sedona-functions/benches/native-functions.rs  | 12 ++---
 rust/sedona-functions/src/lib.rs                   | 10 ++---
 rust/sedona-functions/src/register.rs              | 10 ++---
 .../src/{st_analyze_aggr.rs => st_analyze_agg.rs}  | 52 +++++++++++-----------
 .../src/{st_collect.rs => st_collect_agg.rs}       | 31 ++++++-------
 .../{st_envelope_aggr.rs => st_envelope_agg.rs}    | 26 +++++------
 ...intersection_aggr.rs => st_intersection_agg.rs} | 18 ++++----
 .../src/{st_union_aggr.rs => st_union_agg.rs}      | 18 ++++----
 rust/sedona-geo/benches/geo-functions.rs           |  4 +-
 rust/sedona-geo/src/lib.rs                         |  4 +-
 rust/sedona-geo/src/register.rs                    |  8 ++--
 ...intersection_aggr.rs => st_intersection_agg.rs} | 24 +++++-----
 .../src/{st_union_aggr.rs => st_union_agg.rs}      | 24 +++++-----
 .../src/index/build_side_collector.rs              |  2 +-
 rust/sedona-spatial-join/src/stream.rs             |  2 +-
 16 files changed, 144 insertions(+), 137 deletions(-)

diff --git a/python/sedonadb/tests/functions/test_aggregate.py 
b/python/sedonadb/tests/functions/test_aggregate.py
index 5fddd9ad..6f6344d1 100644
--- a/python/sedonadb/tests/functions/test_aggregate.py
+++ b/python/sedonadb/tests/functions/test_aggregate.py
@@ -19,16 +19,17 @@ import pytest
 from sedonadb.testing import PostGIS, SedonaDB
 
 
-def polygonize_fn_suffix(eng):
-    """Return the appropriate suffix for the polygonize function for the given 
engine."""
+def agg_fn_suffix(eng):
+    """Return the appropriate suffix for the aggregate function for the given 
engine."""
     return "" if isinstance(eng, PostGIS) else "_Agg"
 
 
 @pytest.mark.parametrize("eng", [SedonaDB, PostGIS])
 def test_st_collect_points(eng):
     eng = eng.create_or_skip()
+    suffix = agg_fn_suffix(eng)
     eng.assert_query_result(
-        """SELECT ST_Collect(ST_GeomFromText(geom)) FROM (
+        f"""SELECT ST_Collect{suffix}(ST_GeomFromText(geom)) FROM (
             VALUES
                 ('POINT (1 2)'),
                 ('POINT (3 4)'),
@@ -41,8 +42,9 @@ def test_st_collect_points(eng):
 @pytest.mark.parametrize("eng", [SedonaDB, PostGIS])
 def test_st_collect_linestrings(eng):
     eng = eng.create_or_skip()
+    suffix = agg_fn_suffix(eng)
     eng.assert_query_result(
-        """SELECT ST_Collect(ST_GeomFromText(geom)) FROM (
+        f"""SELECT ST_Collect{suffix}(ST_GeomFromText(geom)) FROM (
             VALUES
                 ('LINESTRING (1 2, 3 4)'),
                 ('LINESTRING (5 6, 7 8)'),
@@ -55,8 +57,9 @@ def test_st_collect_linestrings(eng):
 @pytest.mark.parametrize("eng", [SedonaDB, PostGIS])
 def test_st_collect_polygons(eng):
     eng = eng.create_or_skip()
+    suffix = agg_fn_suffix(eng)
     eng.assert_query_result(
-        """SELECT ST_Collect(ST_GeomFromText(geom)) FROM (
+        f"""SELECT ST_Collect{suffix}(ST_GeomFromText(geom)) FROM (
             VALUES
                 ('POLYGON ((0 0, 1 0, 0 1, 0 0))'),
                 ('POLYGON ((10 10, 11 10, 10 11, 10 10))'),
@@ -69,8 +72,9 @@ def test_st_collect_polygons(eng):
 @pytest.mark.parametrize("eng", [SedonaDB, PostGIS])
 def test_st_collect_mixed_types(eng):
     eng = eng.create_or_skip()
+    suffix = agg_fn_suffix(eng)
     eng.assert_query_result(
-        """SELECT ST_Collect(ST_GeomFromText(geom)) FROM (
+        f"""SELECT ST_Collect{suffix}(ST_GeomFromText(geom)) FROM (
             VALUES
                 ('POINT (1 2)'),
                 ('LINESTRING (3 4, 5 6)'),
@@ -83,10 +87,10 @@ def test_st_collect_mixed_types(eng):
 @pytest.mark.parametrize("eng", [SedonaDB, PostGIS])
 def test_st_collect_mixed_dimensions(eng):
     eng = eng.create_or_skip()
-
+    suffix = agg_fn_suffix(eng)
     with pytest.raises(Exception, match="mixed dimension geometries"):
         eng.assert_query_result(
-            """SELECT ST_Collect(ST_GeomFromText(geom)) FROM (
+            f"""SELECT ST_Collect{suffix}(ST_GeomFromText(geom)) FROM (
                 VALUES
                     ('POINT (1 2)'),
                     ('POINT Z (3 4 5)'),
@@ -99,8 +103,9 @@ def test_st_collect_mixed_dimensions(eng):
 @pytest.mark.parametrize("eng", [SedonaDB, PostGIS])
 def test_st_collect_all_null(eng):
     eng = eng.create_or_skip()
+    suffix = agg_fn_suffix(eng)
     eng.assert_query_result(
-        """SELECT ST_Collect(geom) FROM (
+        f"""SELECT ST_Collect{suffix}(geom) FROM (
             VALUES
                 (NULL),
                 (NULL),
@@ -113,8 +118,9 @@ def test_st_collect_all_null(eng):
 @pytest.mark.parametrize("eng", [SedonaDB, PostGIS])
 def test_st_collect_zero_input(eng):
     eng = eng.create_or_skip()
+    suffix = agg_fn_suffix(eng)
     eng.assert_query_result(
-        """SELECT ST_Collect(ST_GeomFromText(geom)) AS empty FROM (
+        f"""SELECT ST_Collect{suffix}(ST_GeomFromText(geom)) AS empty FROM (
             VALUES
                 ('POINT (1 2)')
         ) AS t(geom) WHERE false""",
@@ -125,7 +131,7 @@ def test_st_collect_zero_input(eng):
 @pytest.mark.parametrize("eng", [SedonaDB, PostGIS])
 def test_st_polygonize_basic_triangle(eng):
     eng = eng.create_or_skip()
-    suffix = polygonize_fn_suffix(eng)
+    suffix = agg_fn_suffix(eng)
     eng.assert_query_result(
         f"""SELECT ST_Polygonize{suffix}(ST_GeomFromText(geom)) FROM (
             VALUES
@@ -140,7 +146,7 @@ def test_st_polygonize_basic_triangle(eng):
 @pytest.mark.parametrize("eng", [SedonaDB, PostGIS])
 def test_st_polygonize_with_nulls(eng):
     eng = eng.create_or_skip()
-    suffix = polygonize_fn_suffix(eng)
+    suffix = agg_fn_suffix(eng)
     eng.assert_query_result(
         f"""SELECT ST_Polygonize{suffix}(ST_GeomFromText(geom)) FROM (
             VALUES
@@ -157,7 +163,7 @@ def test_st_polygonize_with_nulls(eng):
 @pytest.mark.parametrize("eng", [SedonaDB, PostGIS])
 def test_st_polygonize_no_polygons_formed(eng):
     eng = eng.create_or_skip()
-    suffix = polygonize_fn_suffix(eng)
+    suffix = agg_fn_suffix(eng)
     eng.assert_query_result(
         f"""SELECT ST_Polygonize{suffix}(ST_GeomFromText(geom)) FROM (
             VALUES
@@ -171,7 +177,7 @@ def test_st_polygonize_no_polygons_formed(eng):
 @pytest.mark.parametrize("eng", [SedonaDB, PostGIS])
 def test_st_polygonize_multiple_polygons(eng):
     eng = eng.create_or_skip()
-    suffix = polygonize_fn_suffix(eng)
+    suffix = agg_fn_suffix(eng)
     eng.assert_query_result(
         f"""SELECT ST_Polygonize{suffix}(ST_GeomFromText(geom)) FROM (
             VALUES
@@ -214,7 +220,7 @@ def test_st_polygonize_multiple_polygons(eng):
 )
 def test_st_polygonize_single_geom(eng, geom, expected):
     eng = eng.create_or_skip()
-    suffix = polygonize_fn_suffix(eng)
+    suffix = agg_fn_suffix(eng)
     eng.assert_query_result(
         f"""SELECT ST_Polygonize{suffix}(ST_GeomFromText(geom)) FROM (
             VALUES ('{geom}')
diff --git a/rust/sedona-functions/benches/native-functions.rs 
b/rust/sedona-functions/benches/native-functions.rs
index 80611302..2a68dc48 100644
--- a/rust/sedona-functions/benches/native-functions.rs
+++ b/rust/sedona-functions/benches/native-functions.rs
@@ -189,14 +189,14 @@ fn criterion_benchmark(c: &mut Criterion) {
         BenchmarkArgs::ArrayArray(Point, Point),
     );
 
-    benchmark::aggregate(c, &f, "native", "st_envelope_aggr", Point);
-    benchmark::aggregate(c, &f, "native", "st_envelope_aggr", LineString(10));
+    benchmark::aggregate(c, &f, "native", "st_envelope_agg", Point);
+    benchmark::aggregate(c, &f, "native", "st_envelope_agg", LineString(10));
 
-    benchmark::aggregate(c, &f, "native", "st_analyze_aggr", Point);
-    benchmark::aggregate(c, &f, "native", "st_analyze_aggr", LineString(10));
+    benchmark::aggregate(c, &f, "native", "st_analyze_agg", Point);
+    benchmark::aggregate(c, &f, "native", "st_analyze_agg", LineString(10));
 
-    benchmark::aggregate(c, &f, "native", "st_collect", Point);
-    benchmark::aggregate(c, &f, "native", "st_collect", LineString(10));
+    benchmark::aggregate(c, &f, "native", "st_collect_agg", Point);
+    benchmark::aggregate(c, &f, "native", "st_collect_agg", LineString(10));
 }
 
 criterion_group!(benches, criterion_benchmark);
diff --git a/rust/sedona-functions/src/lib.rs b/rust/sedona-functions/src/lib.rs
index 7a7a9585..a6003043 100644
--- a/rust/sedona-functions/src/lib.rs
+++ b/rust/sedona-functions/src/lib.rs
@@ -22,26 +22,26 @@ mod predicates;
 mod referencing;
 pub mod register;
 mod sd_format;
-pub mod st_analyze_aggr;
+pub mod st_analyze_agg;
 mod st_area;
 mod st_asbinary;
 mod st_astext;
 mod st_azimuth;
 mod st_buffer;
 mod st_centroid;
-mod st_collect;
+mod st_collect_agg;
 mod st_dimension;
 mod st_dump;
 mod st_dwithin;
 pub mod st_envelope;
-pub mod st_envelope_aggr;
+pub mod st_envelope_agg;
 pub mod st_flipcoordinates;
 mod st_geometryn;
 mod st_geometrytype;
 mod st_geomfromwkb;
 mod st_geomfromwkt;
 mod st_haszm;
-pub mod st_intersection_aggr;
+pub mod st_intersection_agg;
 pub mod st_isclosed;
 mod st_iscollection;
 pub mod st_isempty;
@@ -59,7 +59,7 @@ mod st_srid;
 mod st_start_point;
 mod st_transform;
 mod st_translate;
-pub mod st_union_aggr;
+pub mod st_union_agg;
 mod st_xyzm;
 mod st_xyzm_minmax;
 mod st_zmflag;
diff --git a/rust/sedona-functions/src/register.rs 
b/rust/sedona-functions/src/register.rs
index 68f4ed54..cdae47b8 100644
--- a/rust/sedona-functions/src/register.rs
+++ b/rust/sedona-functions/src/register.rs
@@ -120,12 +120,12 @@ pub fn default_function_set() -> FunctionSet {
 
     register_aggregate_udfs!(
         function_set,
-        crate::st_analyze_aggr::st_analyze_aggr_udf,
-        crate::st_collect::st_collect_udf,
-        crate::st_envelope_aggr::st_envelope_aggr_udf,
-        crate::st_intersection_aggr::st_intersection_aggr_udf,
+        crate::st_analyze_agg::st_analyze_agg_udf,
+        crate::st_collect_agg::st_collect_agg_udf,
+        crate::st_envelope_agg::st_envelope_agg_udf,
+        crate::st_intersection_agg::st_intersection_agg_udf,
         crate::st_polygonize_agg::st_polygonize_agg_udf,
-        crate::st_union_aggr::st_union_aggr_udf,
+        crate::st_union_agg::st_union_agg_udf,
     );
 
     function_set
diff --git a/rust/sedona-functions/src/st_analyze_aggr.rs 
b/rust/sedona-functions/src/st_analyze_agg.rs
similarity index 94%
rename from rust/sedona-functions/src/st_analyze_aggr.rs
rename to rust/sedona-functions/src/st_analyze_agg.rs
index a3c6d8c2..c574ca97 100644
--- a/rust/sedona-functions/src/st_analyze_aggr.rs
+++ b/rust/sedona-functions/src/st_analyze_agg.rs
@@ -41,40 +41,40 @@ use wkb::reader::Wkb;
 
 use crate::executor::WkbExecutor;
 
-/// ST_Analyze_Aggr() aggregate UDF implementation
+/// ST_Analyze_Agg() aggregate UDF implementation
 ///
 /// This function computes comprehensive statistics for a collection of 
geometries.
 /// It returns a struct containing various metrics such as count, min/max 
coordinates,
 /// mean size, and geometry type counts.
-pub fn st_analyze_aggr_udf() -> SedonaAggregateUDF {
+pub fn st_analyze_agg_udf() -> SedonaAggregateUDF {
     SedonaAggregateUDF::new(
-        "st_analyze_aggr",
-        vec![Arc::new(STAnalyzeAggr {})],
+        "st_analyze_agg",
+        vec![Arc::new(STAnalyzeAgg {})],
         Volatility::Immutable,
-        Some(st_analyze_aggr_doc()),
+        Some(st_analyze_agg_doc()),
     )
 }
 
-fn st_analyze_aggr_doc() -> Documentation {
+fn st_analyze_agg_doc() -> Documentation {
     Documentation::builder(
         DOC_SECTION_OTHER,
         "Return Return the statistics of geometries for geom.",
-        "ST_Analyze_Aggr (A: Geometry)",
+        "ST_Analyze_Agg (A: Geometry)",
     )
     .with_argument("geom", "geometry: Input geometry or geography")
     .with_sql_example("
-        SELECT ST_Analyze_Aggr(ST_GeomFromText('MULTIPOINT(1.1 101.1,2.1 
102.1,3.1 103.1,4.1 104.1,5.1 105.1,6.1 106.1,7.1 107.1,8.1 108.1,9.1 
109.1,10.1 110.1)'))")
+        SELECT ST_Analyze_Agg(ST_GeomFromText('MULTIPOINT(1.1 101.1,2.1 
102.1,3.1 103.1,4.1 104.1,5.1 105.1,6.1 106.1,7.1 107.1,8.1 108.1,9.1 
109.1,10.1 110.1)'))")
     .build()
 }
-/// ST_Analyze_Aggr() implementation
-pub fn st_analyze_aggr_impl() -> SedonaAccumulatorRef {
-    Arc::new(STAnalyzeAggr {})
+/// ST_Analyze_Agg() implementation
+pub fn st_analyze_agg_impl() -> SedonaAccumulatorRef {
+    Arc::new(STAnalyzeAgg {})
 }
 
 #[derive(Debug)]
-struct STAnalyzeAggr {}
+struct STAnalyzeAgg {}
 
-impl SedonaAccumulator for STAnalyzeAggr {
+impl SedonaAccumulator for STAnalyzeAgg {
     fn return_type(&self, args: &[SedonaType]) -> Result<Option<SedonaType>> {
         let output_fields = Self::output_fields();
 
@@ -103,7 +103,7 @@ impl SedonaAccumulator for STAnalyzeAggr {
     }
 }
 
-impl STAnalyzeAggr {
+impl STAnalyzeAgg {
     fn create_float64_array(value: Option<f64>) -> Float64Array {
         match value {
             Some(v) => Float64Array::from(vec![v]),
@@ -202,7 +202,7 @@ impl STAnalyzeAggr {
         };
 
         // Define output fields
-        let fields = STAnalyzeAggr::output_fields();
+        let fields = STAnalyzeAgg::output_fields();
 
         // Create arrays with proper null handling
         let values = vec![
@@ -390,7 +390,7 @@ impl Accumulator for AnalyzeAccumulator {
     }
 
     fn evaluate(&mut self) -> Result<ScalarValue> {
-        let field_array_pairs = 
STAnalyzeAggr::output_arrays(self.stats.clone());
+        let field_array_pairs = 
STAnalyzeAgg::output_arrays(self.stats.clone());
 
         // Create the struct array with field values
         let struct_array = StructArray::from(field_array_pairs);
@@ -498,8 +498,8 @@ mod test {
 
     #[rstest]
     fn basic_analyze_cases(#[values(WKB_GEOMETRY, WKB_VIEW_GEOMETRY)] 
sedona_type: SedonaType) {
-        let mut udaf = st_analyze_aggr_udf();
-        udaf.add_kernel(st_analyze_aggr_impl());
+        let mut udaf = st_analyze_agg_udf();
+        udaf.add_kernel(st_analyze_agg_impl());
 
         let tester = AggregateUdfTester::new(udaf.into(), 
vec![sedona_type.clone()]);
 
@@ -538,8 +538,8 @@ mod test {
 
     #[rstest]
     fn analyze_linestring(#[values(WKB_GEOMETRY, WKB_VIEW_GEOMETRY)] 
sedona_type: SedonaType) {
-        let mut udaf = st_analyze_aggr_udf();
-        udaf.add_kernel(st_analyze_aggr_impl());
+        let mut udaf = st_analyze_agg_udf();
+        udaf.add_kernel(st_analyze_agg_impl());
 
         let tester = AggregateUdfTester::new(udaf.into(), 
vec![sedona_type.clone()]);
 
@@ -578,8 +578,8 @@ mod test {
 
     #[rstest]
     fn analyze_polygon(#[values(WKB_GEOMETRY, WKB_VIEW_GEOMETRY)] sedona_type: 
SedonaType) {
-        let mut udaf = st_analyze_aggr_udf();
-        udaf.add_kernel(st_analyze_aggr_impl());
+        let mut udaf = st_analyze_agg_udf();
+        udaf.add_kernel(st_analyze_agg_impl());
 
         let tester = AggregateUdfTester::new(udaf.into(), 
vec![sedona_type.clone()]);
 
@@ -620,8 +620,8 @@ mod test {
     fn analyze_mixed_geometries(
         #[values(WKB_GEOMETRY, WKB_VIEW_GEOMETRY)] sedona_type: SedonaType,
     ) {
-        let mut udaf = st_analyze_aggr_udf();
-        udaf.add_kernel(st_analyze_aggr_impl());
+        let mut udaf = st_analyze_agg_udf();
+        udaf.add_kernel(st_analyze_agg_impl());
 
         let tester = AggregateUdfTester::new(udaf.into(), 
vec![sedona_type.clone()]);
 
@@ -662,8 +662,8 @@ mod test {
 
     #[rstest]
     fn analyze_empty_input(#[values(WKB_GEOMETRY, WKB_VIEW_GEOMETRY)] 
sedona_type: SedonaType) {
-        let mut udaf = st_analyze_aggr_udf();
-        udaf.add_kernel(st_analyze_aggr_impl());
+        let mut udaf = st_analyze_agg_udf();
+        udaf.add_kernel(st_analyze_agg_impl());
 
         let tester = AggregateUdfTester::new(udaf.into(), 
vec![sedona_type.clone()]);
 
diff --git a/rust/sedona-functions/src/st_collect.rs 
b/rust/sedona-functions/src/st_collect_agg.rs
similarity index 94%
rename from rust/sedona-functions/src/st_collect.rs
rename to rust/sedona-functions/src/st_collect_agg.rs
index 7eed4b3e..dfd91940 100644
--- a/rust/sedona-functions/src/st_collect.rs
+++ b/rust/sedona-functions/src/st_collect_agg.rs
@@ -42,26 +42,26 @@ use sedona_schema::{
     matchers::ArgMatcher,
 };
 
-/// ST_Collect() aggregate UDF implementation
+/// ST_Collect_Agg() aggregate UDF implementation
 ///
 /// An implementation of envelope (bounding shape) calculation.
-pub fn st_collect_udf() -> SedonaAggregateUDF {
+pub fn st_collect_agg_udf() -> SedonaAggregateUDF {
     SedonaAggregateUDF::new(
-        "st_collect",
+        "st_collect_agg",
         vec![Arc::new(STCollectAggr {})],
         Volatility::Immutable,
-        Some(st_collect_doc()),
+        Some(st_collect_agg_doc()),
     )
 }
 
-fn st_collect_doc() -> Documentation {
+fn st_collect_agg_doc() -> Documentation {
     Documentation::builder(
         DOC_SECTION_OTHER,
         "Return the entire envelope boundary of all geometries in geom",
-        "ST_Collect (geom: Geometry)",
+        "ST_Collect_Agg (geom: Geometry)",
     )
     .with_argument("geom", "geometry: Input geometry or geography")
-    .with_sql_example("SELECT ST_Collect(ST_GeomFromWKT('MULTIPOINT (0 1, 10 
11)'))")
+    .with_sql_example("SELECT ST_Collect_Agg(ST_GeomFromWKT('MULTIPOINT (0 1, 
10 11)'))")
     .build()
 }
 
@@ -136,7 +136,7 @@ impl CollectionAccumulator {
         let count_usize = self.count.try_into().unwrap();
 
         if self.unique_dimensions.len() != 1 {
-            return exec_err!("Can't ST_Collect() mixed dimension geometries");
+            return exec_err!("Can't ST_Collect_Agg() mixed dimension 
geometries");
         }
 
         let dimensions = *self.unique_dimensions.iter().next().unwrap();
@@ -169,7 +169,7 @@ impl CollectionAccumulator {
             out[0..WKB_HEADER_SIZE].copy_from_slice(&new_header);
             Ok(Some(out))
         } else {
-            sedona_internal_err!("Unexpected internal state in ST_Collect()")
+            sedona_internal_err!("Unexpected internal state in 
ST_Collect_Agg()")
         }
     }
 }
@@ -179,7 +179,7 @@ impl Accumulator for CollectionAccumulator {
         let item_ref = if let Some(item_ref) = self.item.as_mut() {
             item_ref
         } else {
-            return sedona_internal_err!("Unexpected internal state in 
ST_Collect()");
+            return sedona_internal_err!("Unexpected internal state in 
ST_Collect_Agg()");
         };
 
         let arg_types = [self.input_type.clone()];
@@ -247,7 +247,7 @@ impl Accumulator for CollectionAccumulator {
         let item_ref = if let Some(item_ref) = self.item.as_mut() {
             item_ref
         } else {
-            return sedona_internal_err!("Unexpected internal state in 
ST_Collect()");
+            return sedona_internal_err!("Unexpected internal state in 
ST_Collect_Agg()");
         };
 
         let mut geometry_types_iter = as_string_array(&states[0])?.into_iter();
@@ -306,14 +306,15 @@ mod test {
 
     #[test]
     fn udf_metadata() {
-        let udf: AggregateUDF = st_collect_udf().into();
-        assert_eq!(udf.name(), "st_collect");
+        let udf: AggregateUDF = st_collect_agg_udf().into();
+        assert_eq!(udf.name(), "st_collect_agg");
         assert!(udf.documentation().is_some());
     }
 
     #[rstest]
     fn udf(#[values(WKB_GEOMETRY, WKB_VIEW_GEOMETRY)] sedona_type: SedonaType) 
{
-        let tester = AggregateUdfTester::new(st_collect_udf().into(), 
vec![sedona_type.clone()]);
+        let tester =
+            AggregateUdfTester::new(st_collect_agg_udf().into(), 
vec![sedona_type.clone()]);
         assert_eq!(tester.return_type().unwrap(), WKB_GEOMETRY);
 
         // Finite point input with nulls
@@ -367,7 +368,7 @@ mod test {
         let err = tester.aggregate_wkt(batches).unwrap_err();
         assert_eq!(
             err.message(),
-            "Can't ST_Collect() mixed dimension geometries"
+            "Can't ST_Collect_Agg() mixed dimension geometries"
         );
     }
 }
diff --git a/rust/sedona-functions/src/st_envelope_aggr.rs 
b/rust/sedona-functions/src/st_envelope_agg.rs
similarity index 91%
rename from rust/sedona-functions/src/st_envelope_aggr.rs
rename to rust/sedona-functions/src/st_envelope_agg.rs
index 159d0171..c077ac01 100644
--- a/rust/sedona-functions/src/st_envelope_aggr.rs
+++ b/rust/sedona-functions/src/st_envelope_agg.rs
@@ -38,33 +38,33 @@ use sedona_schema::{
     matchers::ArgMatcher,
 };
 
-/// ST_Envelope_Aggr() aggregate UDF implementation
+/// ST_Envelope_Agg() aggregate UDF implementation
 ///
 /// An implementation of envelope (bounding shape) calculation.
-pub fn st_envelope_aggr_udf() -> SedonaAggregateUDF {
+pub fn st_envelope_agg_udf() -> SedonaAggregateUDF {
     SedonaAggregateUDF::new(
-        "st_envelope_aggr",
-        vec![Arc::new(STEnvelopeAggr {})],
+        "st_envelope_agg",
+        vec![Arc::new(STEnvelopeAgg {})],
         Volatility::Immutable,
-        Some(st_envelope_aggr_doc()),
+        Some(st_envelope_agg_doc()),
     )
 }
 
-fn st_envelope_aggr_doc() -> Documentation {
+fn st_envelope_agg_doc() -> Documentation {
     Documentation::builder(
         DOC_SECTION_OTHER,
         "Return the entire envelope boundary of all geometries in geom",
-        "ST_Envelope_Aggr (geom: Geometry)",
+        "ST_Envelope_Agg (geom: Geometry)",
     )
     .with_argument("geom", "geometry: Input geometry or geography")
-    .with_sql_example("SELECT ST_Envelope_Aggr(ST_GeomFromWKT('MULTIPOINT (0 
1, 10 11)'))")
+    .with_sql_example("SELECT ST_Envelope_Agg(ST_GeomFromWKT('MULTIPOINT (0 1, 
10 11)'))")
     .build()
 }
 
 #[derive(Debug)]
-struct STEnvelopeAggr {}
+struct STEnvelopeAgg {}
 
-impl SedonaAccumulator for STEnvelopeAggr {
+impl SedonaAccumulator for STEnvelopeAgg {
     fn return_type(&self, args: &[SedonaType]) -> Result<Option<SedonaType>> {
         let matcher = ArgMatcher::new(vec![ArgMatcher::is_geometry()], 
WKB_GEOMETRY);
         matcher.match_args(args)
@@ -189,15 +189,15 @@ mod test {
 
     #[test]
     fn udf_metadata() {
-        let udf: AggregateUDF = st_envelope_aggr_udf().into();
-        assert_eq!(udf.name(), "st_envelope_aggr");
+        let udf: AggregateUDF = st_envelope_agg_udf().into();
+        assert_eq!(udf.name(), "st_envelope_agg");
         assert!(udf.documentation().is_some());
     }
 
     #[rstest]
     fn udf(#[values(WKB_GEOMETRY, WKB_VIEW_GEOMETRY)] sedona_type: SedonaType) 
{
         let tester =
-            AggregateUdfTester::new(st_envelope_aggr_udf().into(), 
vec![sedona_type.clone()]);
+            AggregateUdfTester::new(st_envelope_agg_udf().into(), 
vec![sedona_type.clone()]);
         assert_eq!(tester.return_type().unwrap(), WKB_GEOMETRY);
 
         // Finite input with nulls
diff --git a/rust/sedona-functions/src/st_intersection_aggr.rs 
b/rust/sedona-functions/src/st_intersection_agg.rs
similarity index 77%
rename from rust/sedona-functions/src/st_intersection_aggr.rs
rename to rust/sedona-functions/src/st_intersection_agg.rs
index 3c7212d1..fe4aa4f8 100644
--- a/rust/sedona-functions/src/st_intersection_aggr.rs
+++ b/rust/sedona-functions/src/st_intersection_agg.rs
@@ -23,31 +23,31 @@ use sedona_schema::{
     matchers::ArgMatcher,
 };
 
-/// ST_Intersection_Aggr() aggregate UDF implementation
+/// ST_Intersection_Agg() aggregate UDF implementation
 ///
 /// An implementation of intersection calculation.
-pub fn st_intersection_aggr_udf() -> SedonaAggregateUDF {
+pub fn st_intersection_agg_udf() -> SedonaAggregateUDF {
     SedonaAggregateUDF::new_stub(
-        "st_intersection_aggr",
+        "st_intersection_agg",
         ArgMatcher::new(
             vec![ArgMatcher::is_geometry_or_geography()],
             SedonaType::Wkb(Edges::Planar, None),
         ),
         Volatility::Immutable,
-        Some(st_intersection_aggr_doc()),
+        Some(st_intersection_agg_doc()),
     )
 }
 
-fn st_intersection_aggr_doc() -> Documentation {
+fn st_intersection_agg_doc() -> Documentation {
     Documentation::builder(
         DOC_SECTION_OTHER,
         "Return the polygon intersection of all polygons in geom.",
-        "ST_Intersection_Aggr (A: Geometry, B: Geometry)",
+        "ST_Intersection_Agg (A: Geometry, B: Geometry)",
     )
     .with_argument("geom", "geometry: Input geometry or geography")
     .with_sql_example(
         "
-            SELECT ST_Intersection_Aggr(ST_GeomFromText('POLYGON((0 0, 2 0, 2 
2, 0 2, 0 0))')),
+            SELECT ST_Intersection_Agg(ST_GeomFromText('POLYGON((0 0, 2 0, 2 
2, 0 2, 0 0))')),
                    ST_GeomFromText('POLYGON((1 1, 3 1, 3 3, 1 3, 1 1))')",
     )
     .build()
@@ -61,8 +61,8 @@ mod test {
 
     #[test]
     fn udf_metadata() {
-        let udf: AggregateUDF = st_intersection_aggr_udf().into();
-        assert_eq!(udf.name(), "st_intersection_aggr");
+        let udf: AggregateUDF = st_intersection_agg_udf().into();
+        assert_eq!(udf.name(), "st_intersection_agg");
         assert!(udf.documentation().is_some());
     }
 }
diff --git a/rust/sedona-functions/src/st_union_aggr.rs 
b/rust/sedona-functions/src/st_union_agg.rs
similarity index 79%
rename from rust/sedona-functions/src/st_union_aggr.rs
rename to rust/sedona-functions/src/st_union_agg.rs
index 764ffab0..63f5195c 100644
--- a/rust/sedona-functions/src/st_union_aggr.rs
+++ b/rust/sedona-functions/src/st_union_agg.rs
@@ -23,29 +23,29 @@ use sedona_schema::{
     matchers::ArgMatcher,
 };
 
-/// ST_Union_Aggr() aggregate UDF implementation
+/// ST_Union_Agg() aggregate UDF implementation
 ///
 /// An implementation of union calculation.
-pub fn st_union_aggr_udf() -> SedonaAggregateUDF {
+pub fn st_union_agg_udf() -> SedonaAggregateUDF {
     SedonaAggregateUDF::new_stub(
-        "st_union_aggr",
+        "st_union_agg",
         ArgMatcher::new(
             vec![ArgMatcher::is_geometry_or_geography()],
             SedonaType::Wkb(Edges::Planar, None),
         ),
         Volatility::Immutable,
-        Some(st_union_aggr_doc()),
+        Some(st_union_agg_doc()),
     )
 }
 
-fn st_union_aggr_doc() -> Documentation {
+fn st_union_agg_doc() -> Documentation {
     Documentation::builder(
         DOC_SECTION_OTHER,
         "Return the geometric union of all geometries in the input column.",
-        "ST_Union_Aggr (geom: Geometry)",
+        "ST_Union_Agg (geom: Geometry)",
     )
     .with_argument("geom", "geometry: Input geometry or geography")
-    .with_sql_example("SELECT ST_Union_Aggr(ST_GeomFromWKT('POLYGON ((0 0, 2 
0, 2 2, 0 2, 0 0))'))")
+    .with_sql_example("SELECT ST_Union_Agg(ST_GeomFromWKT('POLYGON ((0 0, 2 0, 
2 2, 0 2, 0 0))'))")
     .build()
 }
 
@@ -57,8 +57,8 @@ mod test {
 
     #[test]
     fn udf_metadata() {
-        let udf: AggregateUDF = st_union_aggr_udf().into();
-        assert_eq!(udf.name(), "st_union_aggr");
+        let udf: AggregateUDF = st_union_agg_udf().into();
+        assert_eq!(udf.name(), "st_union_agg");
         assert!(udf.documentation().is_some());
     }
 }
diff --git a/rust/sedona-geo/benches/geo-functions.rs 
b/rust/sedona-geo/benches/geo-functions.rs
index 2630e6c9..16259edf 100644
--- a/rust/sedona-geo/benches/geo-functions.rs
+++ b/rust/sedona-geo/benches/geo-functions.rs
@@ -76,9 +76,9 @@ fn criterion_benchmark_aggr(c: &mut Criterion) {
         f.add_aggregate_udf_kernel(name, kernel).unwrap();
     }
 
-    // st_intersection_aggr would need its own configuration because most of 
the generated
+    // st_intersection_agg would need its own configuration because most of 
the generated
     // polygons would not intersect and result in empty output almost 
immediately
-    benchmark::aggregate(c, &f, "geo", "st_union_aggr", Polygon(10));
+    benchmark::aggregate(c, &f, "geo", "st_union_agg", Polygon(10));
 }
 
 criterion_group!(benches, criterion_benchmark);
diff --git a/rust/sedona-geo/src/lib.rs b/rust/sedona-geo/src/lib.rs
index 0a5224ab..f06a98b1 100644
--- a/rust/sedona-geo/src/lib.rs
+++ b/rust/sedona-geo/src/lib.rs
@@ -20,10 +20,10 @@ mod st_area;
 mod st_centroid;
 mod st_distance;
 mod st_dwithin;
-mod st_intersection_aggr;
+mod st_intersection_agg;
 mod st_intersects;
 mod st_length;
 mod st_line_interpolate_point;
 mod st_perimeter;
-mod st_union_aggr;
+mod st_union_agg;
 pub mod to_geo;
diff --git a/rust/sedona-geo/src/register.rs b/rust/sedona-geo/src/register.rs
index 9041c2dc..b28239f0 100644
--- a/rust/sedona-geo/src/register.rs
+++ b/rust/sedona-geo/src/register.rs
@@ -17,9 +17,9 @@
 use sedona_expr::aggregate_udf::SedonaAccumulatorRef;
 use sedona_expr::scalar_udf::ScalarKernelRef;
 
-use crate::st_intersection_aggr::st_intersection_aggr_impl;
+use crate::st_intersection_agg::st_intersection_agg_impl;
 use crate::st_line_interpolate_point::st_line_interpolate_point_impl;
-use crate::st_union_aggr::st_union_aggr_impl;
+use crate::st_union_agg::st_union_agg_impl;
 use crate::{
     st_area::st_area_impl, st_centroid::st_centroid_impl, 
st_distance::st_distance_impl,
     st_dwithin::st_dwithin_impl, st_intersects::st_intersects_impl, 
st_length::st_length_impl,
@@ -41,7 +41,7 @@ pub fn scalar_kernels() -> Vec<(&'static str, 
ScalarKernelRef)> {
 
 pub fn aggregate_kernels() -> Vec<(&'static str, SedonaAccumulatorRef)> {
     vec![
-        ("st_intersection_aggr", st_intersection_aggr_impl()),
-        ("st_union_aggr", st_union_aggr_impl()),
+        ("st_intersection_agg", st_intersection_agg_impl()),
+        ("st_union_agg", st_union_agg_impl()),
     ]
 }
diff --git a/rust/sedona-geo/src/st_intersection_aggr.rs 
b/rust/sedona-geo/src/st_intersection_agg.rs
similarity index 95%
rename from rust/sedona-geo/src/st_intersection_aggr.rs
rename to rust/sedona-geo/src/st_intersection_agg.rs
index b9cad44b..72fafb91 100644
--- a/rust/sedona-geo/src/st_intersection_aggr.rs
+++ b/rust/sedona-geo/src/st_intersection_agg.rs
@@ -35,15 +35,15 @@ use wkb::writer::write_geometry;
 use wkb::Endianness;
 use wkb::{reader::Wkb, writer::WriteOptions};
 
-/// ST_Intersection_Aggr() implementation
-pub fn st_intersection_aggr_impl() -> SedonaAccumulatorRef {
-    Arc::new(STIntersectionAggr {})
+/// ST_Intersection_Agg() implementation
+pub fn st_intersection_agg_impl() -> SedonaAccumulatorRef {
+    Arc::new(STIntersectionAgg {})
 }
 
 #[derive(Debug)]
-struct STIntersectionAggr {}
+struct STIntersectionAgg {}
 
-impl SedonaAccumulator for STIntersectionAggr {
+impl SedonaAccumulator for STIntersectionAgg {
     fn return_type(&self, args: &[SedonaType]) -> Result<Option<SedonaType>> {
         let matcher = ArgMatcher::new(vec![ArgMatcher::is_geometry()], 
WKB_GEOMETRY);
         matcher.match_args(args)
@@ -227,7 +227,7 @@ impl Accumulator for IntersectionAccumulator {
 mod test {
     use super::*;
     use rstest::rstest;
-    use sedona_functions::st_intersection_aggr::st_intersection_aggr_udf;
+    use sedona_functions::st_intersection_agg::st_intersection_agg_udf;
     use sedona_schema::datatypes::WKB_VIEW_GEOMETRY;
     use sedona_testing::{
         compare::assert_scalar_equal_wkb_geometry_topologically, 
testers::AggregateUdfTester,
@@ -235,8 +235,8 @@ mod test {
 
     #[rstest]
     fn polygon_polygon_cases(#[values(WKB_GEOMETRY, WKB_VIEW_GEOMETRY)] 
sedona_type: SedonaType) {
-        let mut udaf = st_intersection_aggr_udf();
-        udaf.add_kernel(st_intersection_aggr_impl());
+        let mut udaf = st_intersection_agg_udf();
+        udaf.add_kernel(st_intersection_agg_impl());
 
         let tester = AggregateUdfTester::new(udaf.into(), 
vec![sedona_type.clone()]);
         assert_eq!(tester.return_type().unwrap(), WKB_GEOMETRY);
@@ -300,8 +300,8 @@ mod test {
     fn polygon_multipolygon_cases(
         #[values(WKB_GEOMETRY, WKB_VIEW_GEOMETRY)] sedona_type: SedonaType,
     ) {
-        let mut udaf = st_intersection_aggr_udf();
-        udaf.add_kernel(st_intersection_aggr_impl());
+        let mut udaf = st_intersection_agg_udf();
+        udaf.add_kernel(st_intersection_agg_impl());
 
         let tester = AggregateUdfTester::new(udaf.into(), 
vec![sedona_type.clone()]);
 
@@ -348,8 +348,8 @@ mod test {
     fn multipolygon_multipolygon_cases(
         #[values(WKB_GEOMETRY, WKB_VIEW_GEOMETRY)] sedona_type: SedonaType,
     ) {
-        let mut udaf = st_intersection_aggr_udf();
-        udaf.add_kernel(st_intersection_aggr_impl());
+        let mut udaf = st_intersection_agg_udf();
+        udaf.add_kernel(st_intersection_agg_impl());
 
         let tester = AggregateUdfTester::new(udaf.into(), 
vec![sedona_type.clone()]);
 
diff --git a/rust/sedona-geo/src/st_union_aggr.rs 
b/rust/sedona-geo/src/st_union_agg.rs
similarity index 96%
rename from rust/sedona-geo/src/st_union_aggr.rs
rename to rust/sedona-geo/src/st_union_agg.rs
index 2462e48c..5b780bd0 100644
--- a/rust/sedona-geo/src/st_union_aggr.rs
+++ b/rust/sedona-geo/src/st_union_agg.rs
@@ -35,15 +35,15 @@ use wkb::writer::write_geometry;
 use wkb::Endianness;
 use wkb::{reader::Wkb, writer::WriteOptions};
 
-/// ST_Union_Aggr() implementation
-pub fn st_union_aggr_impl() -> SedonaAccumulatorRef {
-    Arc::new(STUnionAggr {})
+/// ST_Union_Agg() implementation
+pub fn st_union_agg_impl() -> SedonaAccumulatorRef {
+    Arc::new(STUnionAgg {})
 }
 
 #[derive(Debug)]
-struct STUnionAggr {}
+struct STUnionAgg {}
 
-impl SedonaAccumulator for STUnionAggr {
+impl SedonaAccumulator for STUnionAgg {
     fn return_type(&self, args: &[SedonaType]) -> Result<Option<SedonaType>> {
         let matcher = ArgMatcher::new(vec![ArgMatcher::is_geometry()], 
WKB_GEOMETRY);
         matcher.match_args(args)
@@ -221,7 +221,7 @@ impl Accumulator for UnionAccumulator {
 mod test {
     use super::*;
     use rstest::rstest;
-    use sedona_functions::st_union_aggr::st_union_aggr_udf;
+    use sedona_functions::st_union_agg::st_union_agg_udf;
     use sedona_schema::datatypes::WKB_VIEW_GEOMETRY;
     use sedona_testing::{
         compare::assert_scalar_equal_wkb_geometry_topologically, 
testers::AggregateUdfTester,
@@ -229,8 +229,8 @@ mod test {
 
     #[rstest]
     fn polygon_polygon_cases(#[values(WKB_GEOMETRY, WKB_VIEW_GEOMETRY)] 
sedona_type: SedonaType) {
-        let mut udaf = st_union_aggr_udf();
-        udaf.add_kernel(st_union_aggr_impl());
+        let mut udaf = st_union_agg_udf();
+        udaf.add_kernel(st_union_agg_impl());
 
         let tester = AggregateUdfTester::new(udaf.into(), 
vec![sedona_type.clone()]);
         assert_eq!(tester.return_type().unwrap(), WKB_GEOMETRY);
@@ -292,8 +292,8 @@ mod test {
     fn polygon_multipolygon_cases(
         #[values(WKB_GEOMETRY, WKB_VIEW_GEOMETRY)] sedona_type: SedonaType,
     ) {
-        let mut udaf = st_union_aggr_udf();
-        udaf.add_kernel(st_union_aggr_impl());
+        let mut udaf = st_union_agg_udf();
+        udaf.add_kernel(st_union_agg_impl());
 
         let tester = AggregateUdfTester::new(udaf.into(), 
vec![sedona_type.clone()]);
 
@@ -340,8 +340,8 @@ mod test {
     fn multipolygon_multipolygon_cases(
         #[values(WKB_GEOMETRY, WKB_VIEW_GEOMETRY)] sedona_type: SedonaType,
     ) {
-        let mut udaf = st_union_aggr_udf();
-        udaf.add_kernel(st_union_aggr_impl());
+        let mut udaf = st_union_agg_udf();
+        udaf.add_kernel(st_union_agg_impl());
 
         let tester = AggregateUdfTester::new(udaf.into(), 
vec![sedona_type.clone()]);
 
diff --git a/rust/sedona-spatial-join/src/index/build_side_collector.rs 
b/rust/sedona-spatial-join/src/index/build_side_collector.rs
index 5efc6c35..6fafa441 100644
--- a/rust/sedona-spatial-join/src/index/build_side_collector.rs
+++ b/rust/sedona-spatial-join/src/index/build_side_collector.rs
@@ -23,7 +23,7 @@ use datafusion_execution::{memory_pool::MemoryReservation, 
SendableRecordBatchSt
 use datafusion_physical_plan::metrics::{self, ExecutionPlanMetricsSet, 
MetricBuilder};
 use futures::StreamExt;
 use sedona_expr::statistics::GeoStatistics;
-use sedona_functions::st_analyze_aggr::AnalyzeAccumulator;
+use sedona_functions::st_analyze_agg::AnalyzeAccumulator;
 use sedona_schema::datatypes::WKB_GEOMETRY;
 
 use crate::{
diff --git a/rust/sedona-spatial-join/src/stream.rs 
b/rust/sedona-spatial-join/src/stream.rs
index 67b73064..cb8a4e3d 100644
--- a/rust/sedona-spatial-join/src/stream.rs
+++ b/rust/sedona-spatial-join/src/stream.rs
@@ -27,7 +27,7 @@ use futures::stream::StreamExt;
 use futures::{ready, task::Poll};
 use parking_lot::Mutex;
 use sedona_common::sedona_internal_err;
-use sedona_functions::st_analyze_aggr::AnalyzeAccumulator;
+use sedona_functions::st_analyze_agg::AnalyzeAccumulator;
 use sedona_schema::datatypes::WKB_GEOMETRY;
 use std::collections::HashMap;
 use std::ops::Range;


Reply via email to