ump45nose opened a new pull request, #18685: URL: https://github.com/apache/iceberg/pull/18685
## What changes? `GeometryType` / `GeographyType` equality treated CRS identifiers as equal only with a case-insensitive string match. After #17578, Parquet files written through arrow-rs / Arrow C++ (and therefore iceberg-rust) carry the WGS84 lon/lat default as `OGC:CRS84`, while Iceberg tables are often declared as `EPSG:4326`. Validation then rejected those files even though both names refer to the same lon/lat WGS84 reference. This change adds `Types.crsEquivalent` / `crsHashKey` so the `OGC:CRS84` ↔ `EPSG:4326` pair is interchangeable for equals and hashCode (still case-insensitive). Other schemes such as `srid:4326` stay distinct. `crs()` / `toString()` still return the original identifier. Closes #18680. ## Test plan - `./gradlew :iceberg-api:test --tests org.apache.iceberg.types.TestTypes` - `./gradlew :iceberg-api:checkstyleMain :iceberg-api:checkstyleTest spotlessCheck` --- **AI Disclosure** - Model: Grok Bot - Platform/Tool: Cursor - Human Oversight: [unknown - human to fill in] - Prompt Summary: Fix apache/iceberg#18680 by treating EPSG:4326 and OGC:CRS84 as equivalent CRS identifiers in GeometryType/GeographyType equals and hashCode, with unit tests; leave srid:4326 distinct. -- 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] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
