-
Notifications
You must be signed in to change notification settings - Fork 147
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
Catalog: Return consistent metadata-location for Iceberg REST APIs #10508
base: main
Are you sure you want to change the base?
Catalog: Return consistent metadata-location for Iceberg REST APIs #10508
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for your contribution @jshmchenxi !
I believe the /catalog/v1
URIs are a remnant of early days... @snazy : Do you think they are still relevant?
...vice/rest/src/main/java/org/projectnessie/catalog/service/rest/IcebergApiV1ResourceBase.java
Outdated
Show resolved
Hide resolved
@jshmchenxi : Could you make sure the |
6af6bd6
to
5658881
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 👍
@dimas-b Since we're modifying the logic in the |
We run the usual Iceberg Catalog Test suite, but I guess it does not assert that metadata locations in the loadTable response are the same as in the updateTable response. Could you add a specific test for that?... Maybe to |
IIUC, the test suite uses a |
Right, it looks like the However, given that the discrepancy before this fix affected WDYT about adding a new method to |
Problem
Different Nessie Iceberg REST APIs return metadata locations inconsistently:
loadTable
→ a metadata location with a filesystem schema, e.g.,s3://bucket/table/metadata/xxx.metadata.json
.updateTable
→ a metadata location pointing to a Nessie API endpoint, e.g.,http://nessie-host:port/catalog/v1/trees/main%some-hash-value/snapshot/my.table?format=iceberg
.This causes issues for clients like
iceberg-rust
, which doesn’t support HTTP metadata locations.Fix
Standardizes metadata location responses to always use the filesystem schema.