The GitHub Actions job "C++ Linter" on iceberg-cpp.git/ExpireSnapshots has 
succeeded.
Run started by GitHub user shangxinli (triggered by shangxinli).

Head commit for run:
36755e3dbfcb12b3a895470b619a8fd71eeeb4f1 / Xinli Shang <[email protected]>
feat: add ExpireSnapshots following 3-goal update pattern

Add ExpireSnapshots as a concrete implementation in iceberg/update/
directory, following the 3-goal architecture for table updates.

Goals accomplished:
1. TableMetadataBuilder::RemoveSnapshots() methods exist
2. table::RemoveSnapshots TableUpdate class exists
3. Expose via Table::ExpireSnapshots() and Transaction::ExpireSnapshots()

Implementation details:
- ExpireSnapshots extends PendingUpdateTyped<vector<shared_ptr<Snapshot>>>
- Fluent API with builder methods: ExpireSnapshotId, ExpireOlderThan,
  RetainLast, DeleteWith, SetCleanupLevel
- Table::ExpireSnapshots() factory method creates instances
- Transaction::ExpireSnapshots() interface method added
- Organized in src/iceberg/update/ subdirectory structure

Builder methods:
- ExpireSnapshotId: Mark specific snapshots for removal by ID
- ExpireOlderThan: Expire snapshots older than timestamp
- RetainLast: Keep N most recent snapshots
- DeleteWith: Custom file deletion callback
- SetCleanupLevel: Control cleanup scope (None/MetadataOnly/All)

Apply() and Commit() have placeholder implementations that will be
completed when snapshot expiration logic is fully implemented.

Report URL: https://github.com/apache/iceberg-cpp/actions/runs/19785401707

With regards,
GitHub Actions via GitBox

Reply via email to