Skip to content

Conversation

@uros-db
Copy link
Contributor

@uros-db uros-db commented Oct 26, 2025

What changes were proposed in this pull request?

Introduce internal server-side Geography and Geometry execution classes in catalyst.

Note that the corresponding low-level physical holders (GeographyVal and GeometryVal) for geospatial types have been previously added as part of #52629.

Why are the changes needed?

Establishing a clear internal execution layer for geospatial operations in catalyst and unblocking downstream work for implementing built-in ST functions and geospatial storage support.

Does this PR introduce any user-facing change?

No. This PR does not introduce any new public API, catalyst expressions, nor user-facing SQL functions. Those will be added in the future.

How was this patch tested?

Added new Java test suites for the execution classes:

  • GeographyExecutionSuite
  • GeometryExecutionSuite

Was this patch authored or co-authored using generative AI tooling?

No.

@github-actions github-actions bot added the SQL label Oct 26, 2025
@uros-db
Copy link
Contributor Author

uros-db commented Oct 26, 2025

@mkaravel @szehon-ho @cloud-fan Please review.

Copy link
Contributor Author

@uros-db uros-db left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@cloud-fan This PR is ready for review.

@cloud-fan
Copy link
Contributor

thanks, merging to master!

@cloud-fan cloud-fan closed this in 317773a Oct 28, 2025
cloud-fan pushed a commit that referenced this pull request Oct 31, 2025
…classes

### What changes were proposed in this pull request?
Introduce client-side `Geography` and `Geometry` geospatial classes in external API.

Note that the Catalyst internal server-side geospatial execution classes have already been introduced separately, as part of: #52737.

### Why are the changes needed?
Introducing geospatial classes to client API, which will allow various clients (JDBC, Hive, Thrift server, Spark Connect, etc.) to consume geospatial objects.

### Does this PR introduce _any_ user-facing change?
No.

### How was this patch tested?
Added new Java unit test suites for the client classes:
- `GeographyClientSuite`
- `GeometryClientSuite`

### Was this patch authored or co-authored using generative AI tooling?
No.

Closes #52804 from uros-db/geo-client-classes.

Authored-by: Uros Bojanic <[email protected]>
Signed-off-by: Wenchen Fan <[email protected]>
zhengruifeng pushed a commit that referenced this pull request Oct 31, 2025
…atial execution classes

### What changes were proposed in this pull request?
Following up on the original PR (#52737), this PR fixes Java test suite names.

### Why are the changes needed?
Java test classes should be named same as the corresponding test suite files.

### Does this PR introduce _any_ user-facing change?
No.

### How was this patch tested?
Existing tests suffice.

### Was this patch authored or co-authored using generative AI tooling?
No.

Closes #52805 from uros-db/geo-server-suites.

Authored-by: Uros Bojanic <[email protected]>
Signed-off-by: Ruifeng Zheng <[email protected]>
cloud-fan pushed a commit that referenced this pull request Nov 3, 2025
…metry types

### What changes were proposed in this pull request?
This PR introduces type encoders for `Geography` and `Geometry`.

Note that the server-side geospatial classes have already been introduced as part of: #52737; while client-side geospatial classes in external API have subsequently been introduced as part of: #52804.

### Why are the changes needed?
These encoders are used to translate between (server) Spark Catalyst types and (client) Java/Scala types.

### Does this PR introduce _any_ user-facing change?
No.

### How was this patch tested?
Added new Scala unit test suites for data frames:
- `GeographyDataFrameSuite`
- `GeometryDataFrameSuite`

Also, added appropriate test cases to:
- `RowSuite`

### Was this patch authored or co-authored using generative AI tooling?
No.

Closes #52813 from uros-db/geo-expression-encoders.

Authored-by: Uros Bojanic <[email protected]>
Signed-off-by: Wenchen Fan <[email protected]>
cloud-fan pushed a commit that referenced this pull request Nov 3, 2025
…metry types

### What changes were proposed in this pull request?
This PR introduces type encoders for `Geography` and `Geometry`.

Note that the server-side geospatial classes have already been introduced as part of: #52737; while client-side geospatial classes in external API have subsequently been introduced as part of: #52804.

### Why are the changes needed?
These encoders are used to translate between (server) Spark Catalyst types and (client) Java/Scala types.

### Does this PR introduce _any_ user-facing change?
No.

### How was this patch tested?
Added new Scala unit test suites for data frames:
- `GeographyDataFrameSuite`
- `GeometryDataFrameSuite`

Also, added appropriate test cases to:
- `RowSuite`

### Was this patch authored or co-authored using generative AI tooling?
No.

Closes #52813 from uros-db/geo-expression-encoders.

Authored-by: Uros Bojanic <[email protected]>
Signed-off-by: Wenchen Fan <[email protected]>
(cherry picked from commit 2f94313)
Signed-off-by: Wenchen Fan <[email protected]>
huangxiaopingRD pushed a commit to huangxiaopingRD/spark that referenced this pull request Nov 25, 2025
…cution classes

### What changes were proposed in this pull request?
Introduce internal server-side `Geography` and `Geometry` execution classes in catalyst.

Note that the corresponding low-level physical holders (`GeographyVal` and `GeometryVal`) for geospatial types have been previously added as part of apache#52629.

### Why are the changes needed?
Establishing a clear internal execution layer for geospatial operations in catalyst and unblocking downstream work for implementing built-in ST functions and geospatial storage support.

### Does this PR introduce _any_ user-facing change?
No. This PR does not introduce any new public API, catalyst expressions, nor user-facing SQL functions. Those will be added in the future.

### How was this patch tested?
Added new Java test suites for the execution classes:
- `GeographyExecutionSuite`
- `GeometryExecutionSuite`

### Was this patch authored or co-authored using generative AI tooling?
No.

Closes apache#52737 from uros-db/geo-server-classes.

Authored-by: Uros Bojanic <[email protected]>
Signed-off-by: Wenchen Fan <[email protected]>
huangxiaopingRD pushed a commit to huangxiaopingRD/spark that referenced this pull request Nov 25, 2025
…classes

### What changes were proposed in this pull request?
Introduce client-side `Geography` and `Geometry` geospatial classes in external API.

Note that the Catalyst internal server-side geospatial execution classes have already been introduced separately, as part of: apache#52737.

### Why are the changes needed?
Introducing geospatial classes to client API, which will allow various clients (JDBC, Hive, Thrift server, Spark Connect, etc.) to consume geospatial objects.

### Does this PR introduce _any_ user-facing change?
No.

### How was this patch tested?
Added new Java unit test suites for the client classes:
- `GeographyClientSuite`
- `GeometryClientSuite`

### Was this patch authored or co-authored using generative AI tooling?
No.

Closes apache#52804 from uros-db/geo-client-classes.

Authored-by: Uros Bojanic <[email protected]>
Signed-off-by: Wenchen Fan <[email protected]>
huangxiaopingRD pushed a commit to huangxiaopingRD/spark that referenced this pull request Nov 25, 2025
…atial execution classes

### What changes were proposed in this pull request?
Following up on the original PR (apache#52737), this PR fixes Java test suite names.

### Why are the changes needed?
Java test classes should be named same as the corresponding test suite files.

### Does this PR introduce _any_ user-facing change?
No.

### How was this patch tested?
Existing tests suffice.

### Was this patch authored or co-authored using generative AI tooling?
No.

Closes apache#52805 from uros-db/geo-server-suites.

Authored-by: Uros Bojanic <[email protected]>
Signed-off-by: Ruifeng Zheng <[email protected]>
huangxiaopingRD pushed a commit to huangxiaopingRD/spark that referenced this pull request Nov 25, 2025
…metry types

### What changes were proposed in this pull request?
This PR introduces type encoders for `Geography` and `Geometry`.

Note that the server-side geospatial classes have already been introduced as part of: apache#52737; while client-side geospatial classes in external API have subsequently been introduced as part of: apache#52804.

### Why are the changes needed?
These encoders are used to translate between (server) Spark Catalyst types and (client) Java/Scala types.

### Does this PR introduce _any_ user-facing change?
No.

### How was this patch tested?
Added new Scala unit test suites for data frames:
- `GeographyDataFrameSuite`
- `GeometryDataFrameSuite`

Also, added appropriate test cases to:
- `RowSuite`

### Was this patch authored or co-authored using generative AI tooling?
No.

Closes apache#52813 from uros-db/geo-expression-encoders.

Authored-by: Uros Bojanic <[email protected]>
Signed-off-by: Wenchen Fan <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants