jiayuasu opened a new pull request, #3037:
URL: https://github.com/apache/sedona/pull/3037

   ## Did you read the Contributor Guide?
   
   - [x] Yes
   
   ## Is this PR related to a ticket?
   
   - [x] Yes — closes [#3036](https://github.com/apache/sedona/issues/3036); 
follow-up to the Box3D EPIC 
([#2973](https://github.com/apache/sedona/issues/2973)).
   
   ## What changes were proposed in this PR?
   
   The Spark + Python Box3D surface is shipped, but the Flink module had no 
Box3D support at all — only Box2D. This is the **foundation slice** of porting 
Box3D to Flink, mirroring the Box2D structure. It lands the serializer plus the 
two constructors so a Box3D value can be produced and round-tripped through 
Flink's type system.
   
   - `Box3DTypeSerializer` — Flink `TypeSerializer<Box3D>` mirroring 
`Box2DTypeSerializer`. Presence byte + six doubles (xmin, ymin, zmin, xmax, 
ymax, zmax); 49-byte payload for a non-null value. Includes the 
`Box3DSerializerSnapshot` for state compatibility.
   - `Functions.ST_Box3D(geom) → Box3D` — wraps 
`org.apache.sedona.common.Functions.box3D`.
   - `Constructors.ST_3DMakeBox(pointZ, pointZ) → Box3D` — wraps 
`org.apache.sedona.common.Constructors.make3DBox`.
   - Registered all three in `Catalog`.
   
   ## How was this patch tested?
   
   - `ConstructorTest.testMake3DBox` — build a Box3D from two POINT Z corners, 
assert all six bounds.
   - `FunctionTest.testBox3D` — `ST_Box3D` over an XYZ linestring, the XY-only 
fold to Z=0, and NULL / empty propagation.
   - Full `ConstructorTest` + `FunctionTest` run: 238 tests pass locally.
   
   ## Did this PR include necessary documentation updates?
   
   - [x] No — Box3D documentation is tracked separately under the Box3D EPIC.
   
   ## Out of scope (later Flink slices)
   
   - Box3D accessors (`ST_XMin` … `ST_ZMax`), `ST_AsText(box3d)`, 
`ST_Expand(box3d)`.
   - `ST_3DExtent` aggregate.
   - Box3D overloads on `ST_Intersects` / `ST_Contains`; `ST_3DDWithin`.


-- 
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