Kontinuation opened a new pull request, #630: URL: https://github.com/apache/sedona-db/pull/630
## Summary - Add `RS_SetSRID` and `RS_SetCRS` raster functions that set the CRS on raster values, with null-input semantics: null SRID/CRS input nulls the entire raster, while SRID=0/CRS="0" clears the CRS but preserves the raster. - Introduce `CachedSRIDToCrs` and `CachedCrsNormalization` batch-local cache structs in `sedona-schema/src/crs.rs`, shared by both ST_ (geometry) and RS_ (raster) setter functions. - Refactor `ST_SetSRID`/`ST_SetCRS` to use the new shared cache types instead of inline caching. ## Details ### RS_SetSRID / RS_SetCRS - Kernel structs carry `engine: Option<Arc<dyn CrsEngine + Send + Sync>>` matching the ST_ pattern - Both `_with_engine_udf(engine)` and `_udf()` (delegates with `None`) constructors - `extract_input_nulls()` captures the null buffer from the original input argument before any conversion, then `replace_raster_crs()` merges input nulls into the struct's null buffer via `NullBuffer::union()` - 17 tests including 4 null-input tests covering scalar and array cases ### Batch-local caches - `CachedSRIDToCrs`: caches SRID integer → CRS string conversion (e.g. 4326 → "OGC:CRS84") - `CachedCrsNormalization`: caches CRS string → abbreviated `authority:code` form via deserialization - Both use `#[derive(Default)]` and are used identically by ST_ and RS_ functions -- 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]
