james-willis opened a new pull request, #927:
URL: https://github.com/apache/sedona-db/pull/927

   Converts the raster band `source_shape` / visible-shape surface from `u64` 
to `i64` — both the in-memory representation and the Arrow `source_shape` 
column (`List<UInt64>` → `List<Int64>`).
   
   ### Why
   
   The view/stride machinery (`ViewEntry`, byte strides) is already `i64` 
(signed, for negative-step / reverse views). Keeping `source_shape` as `u64` 
forces mixed signed/unsigned arithmetic at every shape↔stride boundary; making 
the shape `i64` end-to-end removes those casts and lets view composition use 
uniform signed math.
   
   This is an **Arrow schema change** to the raster type (`source_shape` column 
element type `UInt64` → `Int64`), landed before the format stabilizes so we 
don't ship `u64` and break it later.
   
   ### Scope
   
   - In-memory: `NdBuffer.shape`, `BandRef::shape()` / `raw_source_shape()` / 
`dim_size()`, and `RasterLoadRequest`/`RasterLoadResult.source_shape`.
   - Arrow column: `RasterSchema::source_shape_type()` → `List<Int64>`; the 
builder writes `Int64`, the reader downcasts `Int64Array`.
   - `spatial_shape` was already `i64` and is untouched.
   - Behavior-preserving — shape values are non-negative. `u64`/`usize` casts 
are confined to byte-cap checks and buffer-index boundaries; the zarrs 
`chunk_shape` (`u64`) is cast at the `start_band_nd` call site.
   
   ### Tests
   
   All raster-crate suites pass (`sedona-schema` / `sedona-raster` / `-gdal` / 
`-functions` / `-zarr` / `-testing`), clippy clean, fmt clean.


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