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]

Reply via email to