hreddygayam opened a new pull request, #18537: URL: https://github.com/apache/iceberg/pull/18537
## Why The File Format API TCK (apache/iceberg#15415) has no concrete binding for the generic (`Record`) object model — only Spark and Flink, whose engine row types cannot represent several Iceberg types. As a result, type coverage that only the file formats + generic model support (for example geospatial) could not be exercised at all. This adds the generic binding and closes the V3 **geometry/geography** coverage gap. ## What - **`TestGenericFormatModel`** — a `BaseFormatModelTests<Record>` binding that runs the full TCK matrix against Avro, ORC and Parquet with the generic object model. - **`Geometry` / `Geography` data generators** (default `OGC:CRS84`), registered in `DataGenerators.ALL`. - **`FEATURE_GEOSPATIAL`** feature gate: ORC has no geospatial object-model support (`IllegalArgumentException: Unhandled type GEOMETRY`), so it is declared missing and `supportsGenerator` skips the geo generators for ORC. Avro and Parquet round-trip geospatial values and are covered. - Spark/Flink engine bindings add `GEOMETRY`/`GEOGRAPHY` to `UNSUPPORTED_TYPE_IDS` so the geo-only generators are cleanly skipped there (via the existing `assumeThat` path). - The generic binding normalizes nested non-`Record` structs — the `_partition` metadata column materializes as `PartitionData` — back into `GenericRecord` for comparison. ## Testing `./gradlew :iceberg-data:test --tests "*TestGenericFormatModel"` → **420 tests, 0 failures, 26 skipped**. All 28 geometry/geography parameterizations pass on Avro and Parquet; ORC is gated out. `:iceberg-data:spotlessJavaCheck` passes. Empirically-confirmed geo round-trip support (generic engine): | Format | geometry | geography | |--------|----------|-----------| | Avro | PASS | PASS | | ORC | unsupported (gated) | unsupported (gated) | | Parquet | PASS | PASS | > Note: the data module is verified here. The Spark/Flink changes are two-constant additions to existing `Set.of(...)` exclusion sets; their module test suites should be run before merge. ## Follow-ups (not in this PR) - Non-default CRS / `EdgeAlgorithm` round-trip coverage. - Wire ORC geospatial object-model support, then drop `FEATURE_GEOSPATIAL` from ORC's missing set. Relates to apache/iceberg#15415. -- 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]
