CTTY commented on PR #2590:
URL: https://github.com/apache/iceberg-rust/pull/2590#issuecomment-4664874599

   
   - ManifestMergeManager: This should be handled by the existing 
[ManifestProcess](https://github.com/apache/iceberg-rust/blob/main/crates/iceberg/src/transaction/snapshot.rs#L104),
 we can implement a `MergingManifestProcess`
   - ManifestFilterManager: It should live in each transaction operation imo. 
We can add another trait `ManifestFilterManagement` and some accessors like `fn 
filter_manager()` and `fn delete_filter_manager` to standardize it. But I think 
this is more of an implementation details. Basically the filter manager can be 
built in each operation similar to what we have in Java
   ```
   struct RowDelta {
     fn removeRows(file: DataFile) {
      ...
      self.delete_data_file(file)
   }
   }
   
   impl ManifestFilterManagement for RowDelta {
     fn delete_data_file(file: DataFile) {
      self.filter_manager().delete_data_file(file);
     }
   }
   ```
   - If we are adding `RowDelta` in the future, it can implements its own 
validation logic by implementing the `SnapshotValidator` trait. These 
validation flags can also be set in the action like the following. It will 
still be additive
   ```rust
   row_delta.validate_deleted_files() // set the flag to be true in operation
   
   ...
   impl SnapshotValidator for RowDelta {
    fn validate() {
       if self.validate_deleted_files {...}
    }
   }
   ```


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