sungwy opened a new issue, #3977:
URL: https://github.com/apache/iceberg-python/issues/3977
`_construct_parameters` in `pyiceberg/catalog/glue.py` builds the Glue
`Parameters` map by starting from whatever Glue already holds and layering the
current table properties on top:
```python
new_parameters = glue_table.get("Parameters", {}) if glue_table else {}
new_parameters.update({TABLE_TYPE: ICEBERG.upper(), METADATA_LOCATION:
metadata_location})
if prev_metadata_location:
new_parameters[PREVIOUS_METADATA_LOCATION] = prev_metadata_location
if metadata_properties:
for key, value in metadata_properties.items():
new_parameters[key] = str(value)
```
The operation is additive only. A key that exists in Glue but is no longer
present in the table's metadata is never deleted, so removing a property from
the table and committing leaves the old value in Glue permanently.
Glue `Parameters` and the table's property map therefore drift apart over
time, and the drift is one-directional: Glue accumulates every key the table
has ever had. Anything that reads table properties via Glue sees keys the table
no longer declares.
---
Issue investigation generated via claude, reviewed by Sung, Kevin, Fokko.
--
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]