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]

Reply via email to