add hive catalog table properties docs and refactor#2941
Merged
kevinjqliu merged 5 commits intoapache:mainfrom Jan 25, 2026
Merged
add hive catalog table properties docs and refactor#2941kevinjqliu merged 5 commits intoapache:mainfrom
kevinjqliu merged 5 commits intoapache:mainfrom
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This pull request adds comprehensive documentation explaining the interaction between Iceberg table properties and HMS (Hive Metastore) table properties, along with a minor refactoring to improve variable naming clarity.
Changes:
- Added detailed documentation comments explaining how Iceberg and HMS properties are synchronized during table commits
- Refactored variable names to be more explicit (
new_parameters→new_iceberg_properties,removed_keys→deleted_iceberg_properties,merged_params→existing_hms_parameters) - Updated inline comments to better describe the merge operation
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
bharos
reviewed
Jan 22, 2026
pyiceberg/catalog/hive.py
Outdated
| # | ||
| # While it is possible to modify HMS table properties through this API, it is not recommended: | ||
| # - New/Updated HMS table properties will also be stored in Iceberg metadata (even though it's HMS-specific) | ||
| # - HMS properties cannot be deleted since they are not visible to Iceberg |
Contributor
There was a problem hiding this comment.
Can we be more explicit here like
HMS-native properties (set outside Iceberg) cannot be deleted since they are not visible to Iceberg
because in cases like below, it can actually delete HMS properties?
# Set via Iceberg
table.updateProperties().set("hive.table_prop", "true").commit()
# → Goes to BOTH Iceberg metadata AND HMS
# → Now it's "visible" to Iceberg (tracked in Iceberg metadata)
# Unset via Iceberg
table.updateProperties().remove("hive.table_prop").commit()
# → deleted_iceberg_properties = {"hive.table_prop"}
# → Removed from BOTH Iceberg metadata AND HMS ✅
Fokko
approved these changes
Jan 23, 2026
Contributor
Fokko
left a comment
There was a problem hiding this comment.
Thanks for clarifying this @kevinjqliu 👍
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
geruh
reviewed
Jan 23, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Rationale for this change
Follow up to #2927
Add notes on updating iceberg table properties and hive table properties when using the hive catalog (HMS)
Minor refactor on variable naming to be more explicit
I added a test for the new edge case as well
Are these changes tested?
Are there any user-facing changes?