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

   Add SnapshotUpdate<Derived> interface that extends 
PendingUpdateTyped<Snapshot> to provide common methods for all updates that 
create a new table snapshot. This follows the Java Iceberg API pattern where 
SnapshotUpdate<ThisT> provides a fluent API for operations like AppendFiles, 
DeleteFiles, and OverwriteFiles.
   
   Key features:
   - Uses CRTP pattern for type-safe fluent API and method chaining
   - Set() method to add summary properties to snapshots
   - StageOnly() method to stage snapshots without updating current
   - Extends PendingUpdateTyped<Snapshot> to inherit Apply() and Commit()
   - Protected members allow derived classes to access summary and stage_only 
state
   
   This interface will be extended by concrete snapshot operations like:
   - AppendFiles: Add new data files to the table
   - DeleteFiles: Remove data files from the table
   - OverwriteFiles: Replace data files in the table
   - RewriteFiles: Compact and optimize data files
   
   Changes:
   - Add src/iceberg/snapshot_update.h with SnapshotUpdate interface
   - Add forward declaration to type_fwd.h
   - Add comprehensive unit tests in snapshot_update_test.cc (10 test cases)
   - Update CMakeLists.txt to include new test file (alphabetically sorted)


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