shangxinli opened a new pull request, #648:
URL: https://github.com/apache/iceberg-cpp/pull/648

   Mirrors Java's IncrementalFileCleanup for the linear-ancestry case: each 
manifest is attributed to its writer snapshot, so two passes are enough instead 
of the full reachability scan. Cherry-pick protection via 
SnapshotSummaryFields::kSourceSnapshotId is preserved.
   
   Finalize() now picks IncrementalFileCleanup when the expiration is "simple" 
(no explicit snapshot IDs, no removed snapshots outside the current main 
ancestry, and no retained snapshots outside the current main ancestry), and 
falls back to ReachableFileCleanup otherwise. The dispatch matches Java 
RemoveSnapshots.cleanExpiredSnapshots.
   
   Two existing cleanup tests (DeletesExpiredFiles, 
IgnoresExpiredDeleteManifestReadFailures) used an empty current manifest list, 
which is an unreachable-orphan scenario that only ReachableFileCleanup can 
resolve. They now call ExpireSnapshotId() to force the reachable path, which 
keeps their original intent and matches Java behavior. New tests cover both 
dispatch branches.


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