Skip to content

[GH-3260] Add ST_EqualsIdentical across Sedona SQL engines - #3266

Draft
jiayuasu wants to merge 1 commit into
apache:feature/python-geometryudt-m-dimensionsfrom
jiayuasu:feature/st-equals-identical
Draft

[GH-3260] Add ST_EqualsIdentical across Sedona SQL engines#3266
jiayuasu wants to merge 1 commit into
apache:feature/python-geometryudt-m-dimensionsfrom
jiayuasu:feature/st-equals-identical

Conversation

@jiayuasu

Copy link
Copy Markdown
Member

Did you read the Contributor Guide?

Is this PR related to a ticket?

  • Yes, and the PR name follows the format [GH-XXX] my subject.

Part of #3260.

Depends on #3265.

What changes were proposed in this PR?

  • Add a common ST_EqualsIdentical implementation that compares exact geometry type, nested structure, component and coordinate order, dimensionality, and every XY/Z/M ordinate.
  • Treat corresponding NaN ordinates as equal, treat positive and negative zero as equal, and ignore SRID and other geometry metadata.
  • Register and expose the predicate through:
    • Spark SQL, DataFrame APIs, Spark Connect, and the Python Spark SQL API
    • Flink SQL
    • Snowflake WKB and native GEOMETRY UDF paths
  • Add SQL documentation for Spark, Flink, and Snowflake, including Snowflake's stored-geometry precision and dimensionality boundary.

This is the second PR in the #3260 stack and is based on the serializer branch from #3265.

How was this patch tested?

  • Full common test suite: 1,297 tests passed.
  • Spark predicate suite: 37 tests passed.
  • Spark DataFrame API suite: 261 tests passed.
  • Focused Flink predicate test passed.
  • Snowflake DDL tests passed, and both modified Snowflake tester suites compiled successfully.
  • Regression coverage includes XY/Z/M/ZM distinctions, NaN and infinity handling, typed empties, component and ring ordering, SRID independence, null propagation, and API argument validation.
  • The repository commit-hook suite, Spotless, documentation build, Markdown linting, and git diff --check passed.

Did this PR include necessary documentation updates?

  • Yes, I am adding a new API. I am using the current SNAPSHOT version, v2.0.0.
  • Yes, I added Spark, Flink, and Snowflake SQL documentation.

@jiayuasu
jiayuasu force-pushed the feature/st-equals-identical branch from 39a0544 to 799bc1e Compare August 16, 2026 05:42
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