kevinjqliu opened a new pull request, #3187: URL: https://github.com/apache/iceberg-rust/pull/3187
## Which issue does this PR close? - Closes #3186. Rust counterpart of apache/iceberg-python#3924. ## What changes are included in this PR? Hive 4.0.1 removed the `get_table` thrift method from the metastore service, so the HMS catalog fails with `Invalid method name: 'get_table'` against any Hive 4 metastore. - `crates/catalog/hms/src/catalog.rs`: `load_table`, `table_exists`, and `rename_table` now call `get_table_req` with a `GetTableRequest`, and `table_exists` matches the corresponding exception variant. `get_table_req` exists in every Hive release since 2.3, which is the IDL the `hive_metastore` crate is generated from, so this is backward compatible with every metastore the crate could already talk to. No Hive 2 compatibility toggle is needed, unlike PyIceberg, because the Rust client never targeted Hive older than 2.3. - `dev/hms/Dockerfile`: the integration test metastore moves from `apache/hive:3.1.3` (Debian Bullseye, EOL, Java 8) to `apache/hive:4.2.1`, mirroring the PyIceberg Dockerfile. It links the hadoop-aws and AWS SDK jars the image already ships instead of downloading Hadoop 3.1.0 jars, and delivers `core-site.xml` through the entrypoint's `HIVE_CUSTOM_CONF_DIR`. Without this bump CI keeps running against a server that still serves `get_table` and can never catch this bug. Every other thrift method the catalog uses still exists in Hive 4.2.1. ## Are these changes tested? Covered by the existing HMS cases in the shared catalog suite (`crates/catalog/loader/tests`, 21 `hms_catalog` cases) plus the `hms` crate integration test, now running against Hive 4.2.1 in CI. Verified locally: - Unpatched `catalog.rs` against Hive 4.2.1: `table_lifecycle` fails with `Invalid method name: 'get_table'`. - Patched code against Hive 4.2.1: 21/21 pass. - Patched code against Hive 3.1.3 (the previous image): 21/21 pass. ## AI Disclosure Investigated, implemented, and verified with Claude Code. I reviewed the changes and the test results. 🤖 Generated with [Claude Code](https://claude.com/claude-code) -- 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]
