zakariya-s opened a new issue, #2775:
URL: https://github.com/apache/iceberg-rust/issues/2775

   ### Is your feature request related to a problem or challenge?
   
   Iceberg's `write.metadata.path` table property lets a table place its 
metadata files somewhere other than the default `<table-location>/metadata`. 
Iceberg's Java implementation honors this via 
[`BaseMetastoreTableOperations.metadataFileLocation`](https://github.com/apache/iceberg/blob/d303514b4a9e90e62ffe136dcea3eed624eab288/core/src/main/java/org/apache/iceberg/BaseMetastoreTableOperations.java#L218-L226),
 but iceberg-rust always writes metadata files to `<table-location>/metadata`, 
ignoring the property.
   
   This breaks setups where object-store credentials are prefix-scoped. A REST 
catalog that vends credentials scoped to the table's configured 
`write.data.path` and `write.metadata.path` prefixes will deny `PutObject` to 
`<table-location>/metadata` when `write.metadata.path` points elsewhere, so a 
commit fails with `AccessDenied` on the manifest write. Data files are 
unaffected, because `write.data.path` is already honored by 
[`DefaultLocationGenerator`](https://github.com/apache/iceberg-rust/blob/22e80a63dbb4e58e034672b4ff665a6eae82fa02/crates/iceberg/src/writer/file_writer/location_generator.rs#L60-L67).
   
   ### Describe the solution you'd like
   
   Honor `write.metadata.path` when generating metadata file locations, 
mirroring how `write.data.path` is honored for data files and matching 
Iceberg's Java implementation:
   
   - Resolve the metadata directory as `write.metadata.path` when set, 
otherwise default to `<location>/metadata`.
   - Apply it to the manifest and manifest-list paths written by the snapshot 
producer, and to the table metadata JSON path (`MetadataLocation`).
   
   Behavior is unchanged when the property is unset (default 
`<location>/metadata`).
   
   ### Willingness to contribute
   
   I can contribute to this feature independently


-- 
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