anoopj commented on code in PR #2998:
URL: https://github.com/apache/iceberg-rust/pull/2998#discussion_r3797728686


##########
crates/iceberg/src/transaction/mod.rs:
##########
@@ -151,6 +151,66 @@ impl Transaction {
         FastAppendAction::new()
     }
 
+    /// Stage a **fast-append** of `data_files` to `table` and return the
+    /// `(updates, requirements)` it produces, **without** advancing any 
catalog
+    /// pointer.
+    ///
+    /// This runs the identical [`FastAppendAction`] path that
+    /// `tx.fast_append().add_data_files(..).apply(..).commit(catalog)` runs: 
the
+    /// same manifest and manifest-list files are written to `table`'s storage
+    /// and the same `AddSnapshot` / `SetSnapshotRef` [`TableUpdate`]s plus
+    /// `UuidMatch` / `RefSnapshotIdMatch` [`TableRequirement`]s are returned, 
so
+    /// the resulting snapshot is byte-identical to a standalone fast-append.
+    /// Only the catalog step is left to the caller.
+    ///
+    /// It exists so a caller that owns its own commit path can fold several
+    /// tables' fast appends into ONE atomic catalog commit instead of one
+    /// catalog round-trip per table. `FastAppendAction::commit` is
+    /// `pub(crate)`; this is its public projection to
+    /// `(updates, requirements)`.
+    pub async fn stage_fast_append(

Review Comment:
   These are public API changes. This will need changes to `public-api.txt`.  
This is causing the CI failure I think



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