Skip to content

feat: add support for hive 4.0.1 #2217

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 11 commits into
base: main
Choose a base branch
from

Conversation

kevinjqliu
Copy link
Contributor

@kevinjqliu kevinjqliu commented Jul 16, 2025

Rationale for this change

This PR tries to make pyiceberg compatible with hive 4.0.1 which deprecated a few functions we're using in the hive client.

See the hive 4.0.1 changelog and [HIVE-26537] - Deprecate older APIs in the HMS. Specifically both get_table and get_table_objects_by_name functions were removed
Note that we're already using hive 4.0.0, these functions were only deprecate in 4.0.1

We're replacing

  • get_table -> get_table_req
  • get_table_objects_by_name -> get_table_objects_by_name_req

Several changes to integration setup are also made to test hive 4.0.1:

  • use the hive 4.0.1 image in integration tests
  • build pyiceberg from resource in integration tests to pick up latest changes to hive client, instead of using older versions
  • regenerate vendor/ to pick up latest changes to thrift client and hms client
  • added Makefile to vendor/
  • update pyiceberg hive client to use the non-deprecated functions

Using hive 4.0.1 is blocked now due to apache/iceberg#12878 since spark hms connector is not yet compatible

Are these changes tested?

Are there any user-facing changes?

@kevinjqliu kevinjqliu changed the title try integration test with hive 4.0.1 and local pyiceberg feat: add support for hive 4.0.1 Jul 16, 2025
kevinjqliu added a commit that referenced this pull request Jul 18, 2025
<!--
Thanks for opening a pull request!
-->

<!-- In the case this PR will resolve an issue, please replace
${GITHUB_ISSUE_ID} below with the actual Github issue id. -->
<!-- Closes #${GITHUB_ISSUE_ID} -->

# Rationale for this change
Add a Makefile to `vendor/`. This helps with running commands to
regenerate `vendor/`
```
# Generate all vendor packages:
make all

# Generate individual packages:
make fb303           # FB303 Thrift client only
make hive-metastore  # Hive Metastore Thrift definitions only
```
Pulled this change out of #2217

# Are these changes tested?
Yes, ran `make all` locally

# Are there any user-facing changes?

<!-- In the case of user-facing changes, please add the changelog label.
-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants