From 4210fdee2d78c5da0f8d80d224563e393ce89b6f Mon Sep 17 00:00:00 2001 From: Hiroaki Yutani Date: Fri, 23 Jan 2026 21:58:37 +0900 Subject: [PATCH 1/2] docs: Remove unnecessary ST_SRID in example queries --- README.md | 2 +- docs/crs-examples.ipynb | 2 +- docs/crs-examples.md | 2 +- docs/overture-examples.ipynb | 4 ++-- docs/overture-examples.md | 4 ++-- docs/programming-guide.ipynb | 2 +- docs/programming-guide.md | 2 +- docs/reference/sql.md | 4 ++-- python/sedonadb/python/sedonadb/udf.py | 4 ++-- python/sedonadb/tests/test_datasource.py | 6 +++--- python/sedonadb/tests/test_udf.py | 4 ++-- r/sedonadb/R/dataframe.R | 2 +- r/sedonadb/README.Rmd | 2 +- r/sedonadb/README.md | 2 +- r/sedonadb/man/sd_write_parquet.Rd | 2 +- r/sedonadb/tests/testthat/test-dataframe.R | 4 ++-- rust/sedona-functions/src/st_setsrid.rs | 4 +--- 17 files changed, 25 insertions(+), 27 deletions(-) diff --git a/README.md b/README.md index a87add7ba..c909a419f 100644 --- a/README.md +++ b/README.md @@ -144,7 +144,7 @@ WHERE is_underground = FALSE AND height IS NOT NULL AND height > 20 - AND ST_Intersects(geometry, ST_SetSRID(ST_GeomFromText('{nyc_bbox_wkt}'), 4326)) + AND ST_Intersects(geometry, ST_GeomFromText('{nyc_bbox_wkt}', 4326)) LIMIT 5; """).show() ``` diff --git a/docs/crs-examples.ipynb b/docs/crs-examples.ipynb index c48751c1f..c63877ffb 100644 --- a/docs/crs-examples.ipynb +++ b/docs/crs-examples.ipynb @@ -110,7 +110,7 @@ "outputs": [], "source": [ "cities = sd.sql(\"\"\"\n", - "SELECT city, ST_SetSRID(ST_GeomFromText(wkt), 3857) AS geometry FROM (VALUES\n", + "SELECT city, ST_GeomFromText(wkt, 3857) AS geometry FROM (VALUES\n", " ('New York', 'POINT(-8238310.24 4969803.34)'),\n", " ('Los Angeles', 'POINT(-13153204.78 4037636.04)'),\n", " ('Chicago', 'POINT(-9757148.04 5138517.44)'))\n", diff --git a/docs/crs-examples.md b/docs/crs-examples.md index 85e93b705..e8c5b86eb 100644 --- a/docs/crs-examples.md +++ b/docs/crs-examples.md @@ -79,7 +79,7 @@ We use the `ST_SetSRID` function to assign the correct CRS identifier to our geo ```python cities = sd.sql(""" -SELECT city, ST_SetSRID(ST_GeomFromText(wkt), 3857) AS geometry FROM (VALUES +SELECT city, ST_GeomFromText(wkt, 3857) AS geometry FROM (VALUES ('New York', 'POINT(-8238310.24 4969803.34)'), ('Los Angeles', 'POINT(-13153204.78 4037636.04)'), ('Chicago', 'POINT(-9757148.04 5138517.44)')) diff --git a/docs/overture-examples.ipynb b/docs/overture-examples.ipynb index fa716942a..f542a6d08 100644 --- a/docs/overture-examples.ipynb +++ b/docs/overture-examples.ipynb @@ -302,7 +302,7 @@ " AND height > 20\n", " AND ST_Intersects(\n", " geometry,\n", - " ST_SetSRID(ST_GeomFromText('{nyc_bbox_wkt}'), 4326)\n", + " ST_GeomFromText('{nyc_bbox_wkt}', 4326)\n", " )\n", "LIMIT 5;\n", "\"\"\").show()" @@ -459,7 +459,7 @@ "WHERE\n", " ST_Intersects(\n", " geometry,\n", - " ST_SetSRID(ST_GeomFromText('{nova_scotia_bbox_wkt}'), 4326)\n", + " ST_GeomFromText('{nova_scotia_bbox_wkt}', 4326)\n", " )\n", "\"\"\").to_memtable()" ] diff --git a/docs/overture-examples.md b/docs/overture-examples.md index 3f61d93d4..0762b3b87 100644 --- a/docs/overture-examples.md +++ b/docs/overture-examples.md @@ -202,7 +202,7 @@ WHERE AND height > 20 AND ST_Intersects( geometry, - ST_SetSRID(ST_GeomFromText('{nyc_bbox_wkt}'), 4326) + ST_GeomFromText('{nyc_bbox_wkt}', 4326) ) LIMIT 5; """).show() @@ -325,7 +325,7 @@ FROM division_area WHERE ST_Intersects( geometry, - ST_SetSRID(ST_GeomFromText('{nova_scotia_bbox_wkt}'), 4326) + ST_GeomFromText('{nova_scotia_bbox_wkt}', 4326) ) """).to_memtable() ``` diff --git a/docs/programming-guide.ipynb b/docs/programming-guide.ipynb index 6a3459c4a..fba2f7236 100644 --- a/docs/programming-guide.ipynb +++ b/docs/programming-guide.ipynb @@ -244,7 +244,7 @@ "ns = sd.sql(f\"\"\"\n", "SELECT country, region, geometry\n", "FROM division_area\n", - "WHERE ST_Intersects(geometry, ST_SetSRID(ST_GeomFromText('{nova_scotia_bbox_wkt}'), 4326))\n", + "WHERE ST_Intersects(geometry, ST_GeomFromText('{nova_scotia_bbox_wkt}', 4326))\n", "\"\"\")\n", "\n", "ns.show(3)" diff --git a/docs/programming-guide.md b/docs/programming-guide.md index 1dfe982a8..b36e4a89b 100644 --- a/docs/programming-guide.md +++ b/docs/programming-guide.md @@ -133,7 +133,7 @@ nova_scotia_bbox_wkt = ( ns = sd.sql(f""" SELECT country, region, geometry FROM division_area -WHERE ST_Intersects(geometry, ST_SetSRID(ST_GeomFromText('{nova_scotia_bbox_wkt}'), 4326)) +WHERE ST_Intersects(geometry, ST_GeomFromText('{nova_scotia_bbox_wkt}', 4326)) """) ns.show(3) diff --git a/docs/reference/sql.md b/docs/reference/sql.md index 9881c4e48..077a97369 100644 --- a/docs/reference/sql.md +++ b/docs/reference/sql.md @@ -1419,7 +1419,7 @@ Since: v0.1. #### SQL Example ```sql -SELECT ST_SetSRID(ST_GeomFromWKT('POINT (-64.363049 45.091501)'), 4326); +SELECT ST_GeomFromWKT('POINT (-64.363049 45.091501)', 4326); ``` ## ST_SRID @@ -1531,7 +1531,7 @@ Since: v0.1. ```sql -- Transform a WGS84 polygon to UTM zone 49N -SELECT ST_Transform(ST_SetSRID(ST_GeomFromWkt('POLYGON((170 50,170 72,-130 72,-130 50,170 50))'), 4326), 'EPSG:32649'); +SELECT ST_Transform(ST_GeomFromWkt('POLYGON((170 50,170 72,-130 72,-130 50,170 50))', 4326), 'EPSG:32649'); ``` ## ST_Translate diff --git a/python/sedonadb/python/sedonadb/udf.py b/python/sedonadb/python/sedonadb/udf.py index 236243c72..8eb3f1d13 100644 --- a/python/sedonadb/python/sedonadb/udf.py +++ b/python/sedonadb/python/sedonadb/udf.py @@ -16,7 +16,7 @@ # under the License. import inspect -from typing import Any, Literal, Optional, List, Union +from typing import Any, List, Literal, Optional, Union from sedonadb._lib import sedona_scalar_udf from sedonadb.utility import sedona # noqa: F401 @@ -172,7 +172,7 @@ def arrow_udf( │ 0 │ └────────┘ - >>> sd.sql("SELECT ST_SRID(shapely_udf(ST_SetSRID(ST_Point(0, 0), 3857), 2.0)) as col").show() + >>> sd.sql("SELECT ST_SRID(shapely_udf(ST_Point(0, 0, 3857), 2.0)) as col").show() ┌────────┐ │ col │ │ uint32 │ diff --git a/python/sedonadb/tests/test_datasource.py b/python/sedonadb/tests/test_datasource.py index 59578949e..4640adfd5 100644 --- a/python/sedonadb/tests/test_datasource.py +++ b/python/sedonadb/tests/test_datasource.py @@ -15,15 +15,15 @@ # specific language governing permissions and limitations # under the License. -from pathlib import Path import tempfile +from pathlib import Path import geopandas import geopandas.testing import pandas as pd import pytest -import shapely import sedonadb +import shapely def test_read_ogr_projection(con): @@ -120,7 +120,7 @@ def test_read_ogr_filter(con): con.sql( """ SELECT * FROM test_fgb - WHERE ST_Equals(wkb_geometry, ST_SetSRID(ST_Point(1, 2), 3857)) + WHERE ST_Equals(wkb_geometry, ST_Point(1, 2, 3857)) """ ).to_pandas(), gdf[gdf.geometry.geom_equals(shapely.Point(1, 2))].reset_index(drop=True), diff --git a/python/sedonadb/tests/test_udf.py b/python/sedonadb/tests/test_udf.py index 3dea72673..ab019f9bd 100644 --- a/python/sedonadb/tests/test_udf.py +++ b/python/sedonadb/tests/test_udf.py @@ -95,9 +95,9 @@ def test_udf_name(): def test_shapely_udf(con): - import shapely import geoarrow.pyarrow as ga import numpy as np + import shapely @udf.arrow_udf(ga.wkb(), [udf.GEOMETRY, udf.NUMERIC]) def shapely_udf(geom, distance): @@ -117,7 +117,7 @@ def shapely_udf(geom, distance): # Ensure we can propagate a crs pd.testing.assert_frame_equal( con.sql( - "SELECT ST_SRID(shapely_udf(ST_SetSRID(ST_Point(0, 0), 3857), 2.0)) as col" + "SELECT ST_SRID(shapely_udf(ST_Point(0, 0, 3857), 2.0)) as col" ).to_pandas(), pd.DataFrame({"col": [3857]}, dtype=np.uint32), ) diff --git a/r/sedonadb/R/dataframe.R b/r/sedonadb/R/dataframe.R index fefc3a3d2..b11e02ff0 100644 --- a/r/sedonadb/R/dataframe.R +++ b/r/sedonadb/R/dataframe.R @@ -231,7 +231,7 @@ sd_preview <- function(.data, n = NULL, ascii = NULL, width = NULL) { #' @examples #' tmp_parquet <- tempfile(fileext = ".parquet") #' -#' sd_sql("SELECT ST_SetSRID(ST_Point(1, 2), 4326) as geom") |> +#' sd_sql("SELECT ST_Point(1, 2, 4326) as geom") |> #' sd_write_parquet(tmp_parquet) #' #' sd_read_parquet(tmp_parquet) diff --git a/r/sedonadb/README.Rmd b/r/sedonadb/README.Rmd index 013ef4bba..d2a2b93ff 100644 --- a/r/sedonadb/README.Rmd +++ b/r/sedonadb/README.Rmd @@ -71,7 +71,7 @@ filter <- "POLYGON ((-73.4341 44.0087, -73.4341 43.7981, -73.2531 43.7981, -73.2 sd_sql(glue::glue(" SELECT * FROM buildings - WHERE ST_Intersects(ST_SetSRID(ST_GeomFromText('{filter}'), 4326), geometry) + WHERE ST_Intersects(ST_GeomFromText('{filter}', 4326), geometry) ")) |> sd_preview() ``` diff --git a/r/sedonadb/README.md b/r/sedonadb/README.md index 74afc1561..ea08c1e6f 100644 --- a/r/sedonadb/README.md +++ b/r/sedonadb/README.md @@ -69,7 +69,7 @@ filter <- "POLYGON ((-73.4341 44.0087, -73.4341 43.7981, -73.2531 43.7981, -73.2 sd_sql(glue::glue(" SELECT * FROM buildings - WHERE ST_Intersects(ST_SetSRID(ST_GeomFromText('{filter}'), 4326), geometry) + WHERE ST_Intersects(ST_GeomFromText('{filter}', 4326), geometry) ")) |> sd_preview() #> ┌─────────────────────────────────┐ #> │ geometry │ diff --git a/r/sedonadb/man/sd_write_parquet.Rd b/r/sedonadb/man/sd_write_parquet.Rd index afd483849..07a7f0281 100644 --- a/r/sedonadb/man/sd_write_parquet.Rd +++ b/r/sedonadb/man/sd_write_parquet.Rd @@ -58,7 +58,7 @@ fewer row groups when only a subset of the file is needed for a given query. \examples{ tmp_parquet <- tempfile(fileext = ".parquet") -sd_sql("SELECT ST_SetSRID(ST_Point(1, 2), 4326) as geom") |> +sd_sql("SELECT ST_Point(1, 2, 4326) as geom") |> sd_write_parquet(tmp_parquet) sd_read_parquet(tmp_parquet) diff --git a/r/sedonadb/tests/testthat/test-dataframe.R b/r/sedonadb/tests/testthat/test-dataframe.R index 0bc3c4c1c..dec3c59a1 100644 --- a/r/sedonadb/tests/testthat/test-dataframe.R +++ b/r/sedonadb/tests/testthat/test-dataframe.R @@ -241,7 +241,7 @@ test_that("sd_write_parquet can sort data", { test_that("sd_write_parquet can write geometry data", { df <- sd_sql( - "SELECT ST_SetSRID(ST_Point(1, 2), 4326) as geom, 'test' as name" + "SELECT ST_Point(1, 2, 4326) as geom, 'test' as name" ) tmp_parquet_file <- tempfile(fileext = ".parquet") @@ -261,7 +261,7 @@ test_that("sd_write_parquet can write geometry data", { test_that("sd_write_parquet validates geoparquet_version parameter", { df <- sd_sql( - "SELECT ST_SetSRID(ST_Point(1, 2), 4326) as geom, 'test' as name" + "SELECT ST_Point(1, 2, 4326) as geom, 'test' as name" ) tmp_parquet_file <- tempfile(fileext = ".parquet") on.exit(unlink(tmp_parquet_file)) diff --git a/rust/sedona-functions/src/st_setsrid.rs b/rust/sedona-functions/src/st_setsrid.rs index 8af08beb7..3e9fd0b3d 100644 --- a/rust/sedona-functions/src/st_setsrid.rs +++ b/rust/sedona-functions/src/st_setsrid.rs @@ -95,9 +95,7 @@ fn set_srid_doc() -> Documentation { ) .with_argument("geom", "geometry: Input geometry or geography") .with_argument("srid", "srid: EPSG code to set (e.g., 4326)") - .with_sql_example( - "SELECT ST_SetSRID(ST_GeomFromWKT('POINT (-64.363049 45.091501)'), 4326)".to_string(), - ) + .with_sql_example("SELECT ST_GeomFromWKT('POINT (-64.363049 45.091501)', 4326)".to_string()) .build() } From d42f5d6db0d938d1b686f5592b729619fb41f95a Mon Sep 17 00:00:00 2001 From: Dewey Dunnington Date: Mon, 26 Jan 2026 16:25:53 -0600 Subject: [PATCH 2/2] don't use st_point for our exported scalar udf test --- r/sedonadb/tests/testthat/test-context.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/r/sedonadb/tests/testthat/test-context.R b/r/sedonadb/tests/testthat/test-context.R index 3050e0932..f84055c35 100644 --- a/r/sedonadb/tests/testthat/test-context.R +++ b/r/sedonadb/tests/testthat/test-context.R @@ -41,11 +41,11 @@ test_that("views can be created and dropped", { }) test_that("scalar udfs can be registered", { - udf <- ctx()$scalar_udf_xptr("st_point") + udf <- ctx()$scalar_udf_xptr("st_envelope") expect_s3_class(udf, "datafusion_scalar_udf") sd_register_udf(udf) - df <- sd_sql("SELECT ST_Point(0, 1) as geom") |> sd_collect() + df <- sd_sql("SELECT ST_Envelope(ST_Point(0, 1)) as geom") |> sd_collect() expect_identical( wk::as_wkt(df$geom), wk::wkt("POINT (0 1)")