jiayuasu opened a new issue, #2885:
URL: https://github.com/apache/sedona/issues/2885

   Sub-task of #2877.
   
   ## Scope
   
   Two related conversions:
   
   1. **CAST(box2d AS geometry)** — convert a `Box2D` to a closed rectangular 
`Polygon` (PostGIS `box2d::geometry`). Decision point: register as a Catalyst 
implicit cast, or expose as an explicit function (e.g. `ST_Geometry(box2d)` or 
reuse `ST_Polygon(box2d)`). PostGIS uses an implicit cast; Spark Catalyst makes 
UDT-to-UDT implicit casts non-trivial. Pick the cleanest path during 
implementation.
   2. **ST_AsText(box2d)** — format as `BOX(x1 y1, x2 y2)`. PostGIS-compatible 
string. Overload the existing `ST_AsText` to accept a `Box2D` argument.
   
   ## Implementation
   
   - Polygon construction helper either as a static method on `Box2D` (revives 
the prior `toPolygon()`) or next to the cast expression.
   - Cast registration via Catalyst (`Cast.canCast` extension or rule), or 
function registration if we go the explicit-function route.
   - `ST_AsText` overload in `Functions.scala` (already polymorphic for 
Geometry/Geography); add a `Box2D` branch.
   - Tests: cast round-trip (`ST_Box2D(geom).cast(Geometry)` ≈ 
`ST_Envelope(geom)` for valid geometries), ST_AsText format, NULL propagation.
   
   ## Out of scope
   
   `ST_GeomFromText('BOX(...)')` reverse parser — separate need, not part of 
this issue.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to