dhruvarya-db opened a new pull request, #2664:
URL: https://github.com/apache/iceberg-rust/pull/2664

   ## Which issue does this PR close?
   
   - Part of #2145.
   
   ## What changes are included in this PR?
   
   Defaults snapshot expiry to the table's `history.expire.*` properties when 
the corresponding knob is not set explicitly, completing the default fallback 
that #2591 deferred (its `plan()` carried two `TODO`s for exactly this).
   
   - `TableProperties` gains three fields (and their consts/defaults), in the 
same shape as the existing `commit.retry.*` properties:
     - `history.expire.max-snapshot-age-ms` (default 5 days)
     - `history.expire.min-snapshots-to-keep` (default 1)
     - `history.expire.max-ref-age-ms` (default `i64::MAX`, i.e. never)
   - `ExpireSnapshotsAction::plan()` now mirrors Java `RemoveSnapshots`' 
constructor:
     - the age cutoff defaults to `now - max-snapshot-age-ms`, so age-based 
selection **always runs** even for an explicit-id-only call (only file cleanup, 
out of scope here, keys off an explicit id in Java);
     - `retain_last` defaults to `min-snapshots-to-keep`;
     - refs without their own `max_ref_age_ms` age out against `max-ref-age-ms` 
(default never).
   
   Defaults and names mirror Java's `TableProperties` 
(`MAX_SNAPSHOT_AGE_MS_DEFAULT = 5 days`, `MIN_SNAPSHOTS_TO_KEEP_DEFAULT = 1`, 
`MAX_REF_AGE_MS_DEFAULT = Long.MAX_VALUE`).
   
   ## Are these changes tested?
   
   Yes — unit tests in `expire_snapshots.rs` (27 total, up from 25). Two new 
tests cover the always-on default cutoff (a >5-day-old snapshot is expired with 
no args while a recent one is kept) and the 
`history.expire.min-snapshots-to-keep` floor (the whole chain is retained 
despite age). Explicit-id-only tests pin the cutoff off to isolate that 
behavior now that the default age path always runs. `public-api.txt` 
regenerated for the new public fields/consts; clippy and fmt are clean.
   


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