raghav-reglobe opened a new pull request, #2754:
URL: https://github.com/apache/iceberg-rust/pull/2754

   ## Summary
   
   Adds a recursive file-listing capability to `FileIO`, the missing primitive 
for table-maintenance operations (orphan-file cleanup foremost) that need to 
enumerate everything under a table location and compare it against paths 
recorded in table metadata.
   
   - `ListEntry { path, size, last_modified_ms }` — paths come back **absolute, 
in the same form as the listed prefix**, so they round-trip directly to other 
`FileIO` operations and compare against metadata-recorded paths without 
normalization.
   - `last_modified_ms` is `Option`: storages that don't track modification 
times report `None`, and age-based callers must treat such files as not 
eligible (protects possibly-in-flight writes).
   - `Storage::list_prefix` ships with a `FeatureUnsupported` default and is 
implemented for the OpenDAL storages (recursive lister, entries mapped back to 
absolute form), the resolving router, local fs (recursive walk with real 
mtimes), and memory (which now stamps write times so age-based logic is 
unit-testable).
   
   ## Motivation
   
   First consumer is a `RemoveOrphanFilesAction` (Java/Go parity — cf. the 
maintenance-operations proposal in #1453), which I'll submit as a follow-up PR 
stacked on this one. Kept separate so this stays a small, standalone review.
   
   ## Validation
   
   - Unit tests for memory + local fs `list_prefix` (prefix-form round-trip, 
sizes, mtimes, empty-prefix behavior).
   - Full `iceberg` suite: 1377 passed. `cargo fmt` clean; `public-api.txt` 
regenerated.
   


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