anuragmantri opened a new pull request, #18401:
URL: https://github.com/apache/iceberg/pull/18401

   Maintenance commits such as rewrite data files and rewrite manifests build 
their snapshot summary only from the operation, so custom properties written by 
the producer of the replaced snapshot are lost after compaction. This adds an 
opt-in table property, `commit.snapshot-property-carry-forward.enabled`, that 
makes replace commits copy non-reserved summary properties from the branch head 
they replace. Iceberg-owned keys are never copied. Properties set on the commit 
itself take precedence. Engine-specific keys that core cannot name, such as 
`spark.app.id`, are still copied. The reserved set could also back the `set()` 
validation discussed in #17009.
   
   Test plan: Core tests in `TestSnapshotSummary`, across format versions 1–4
   - Replace commits copy custom properties only when the table property is 
enabled
   - Explicitly set properties win
   - Reserved keys (computed metrics, WAP and cherry-pick markers, engine and 
app identity) are never copied, guarded by a test over all `SnapshotSummary` 
constants
   - Values come from the target branch head at commit time
   - Appends don't inherit
   
   ---
   **AI Disclosure**
   - Model: Claude Opus 5.5
   - Platform/Tool: Claude Code
   - Human Oversight: Fully reviewed by me
   - Prompt Summary: Make Iceberg replace commits (compaction, manifest 
rewrites) optionally keep the replaced snapshot's custom summary properties, 
excluding Iceberg-owned keys.


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