diqiu50 opened a new pull request, #14565: URL: https://github.com/apache/gravitino/pull/14565
### What changes were proposed in this pull request? - Fail a load when the Iceberg metadata cannot be read, instead of returning the Glue-derived table; map S3 errors on the Iceberg path by HTTP status. - Align Iceberg type conversion with the Iceberg catalog (nanosecond timestamps, variant, geometry, geography, unknown, `fixed(n)`); refuse `byte`, `short` and unsigned types. - Skip `void` partition fields on load, and report invalid partition transforms and sort terms as 400 with the expression the user sent. - Register tables with Iceberg's `registerTable`, so the metadata file is read first and Glue columns and location come from it; mark registered tables, and only change their Glue parameters on alter. - Apply column positions, refuse auto-increment and default values, and commit all changes of an alter in one Iceberg transaction. - Support purge for Iceberg tables; refuse partition operations on Iceberg tables. - Build the Iceberg Glue client with the catalog's call timeout and retry settings. This PR is based on #14561 and includes its commits. ### Why are the changes needed? Iceberg tables in a Glue catalog could be reported with the wrong shape, alters could be partly applied or silently skipped, and registered tables could fork the history of the table they were registered from. Fixes #14564 ### Does this PR introduce _any_ user-facing change? Yes. - A load of an Iceberg table whose metadata cannot be read now fails (404/403) instead of returning HTTP 200. - `byte`, `short` and unsigned types are refused for Iceberg tables; `fixed(n)` keeps its length. - Registered tables get the Glue parameter `gravitino.iceberg.registered=true`; only their properties can be changed. Tables registered before this change are not marked. - Purge is supported for Iceberg tables; partition operations on Iceberg tables return 501. - `aws-glue-api-call-timeout-ms` and `aws-glue-max-attempts` now also apply to Iceberg tables. ### How was this patch tested? - Added unit tests in `catalog-glue` (286 passed). - Ran `MotoGlueCatalogIT` locally (35 passed). - Added ITs for register, missing metadata, purge and atomic alter; ran `AwsGlueCatalogIT` against real AWS Glue (39 passed). -- 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]
