rdblue commented on a change in pull request #2925:
URL: https://github.com/apache/iceberg/pull/2925#discussion_r711813362



##########
File path: api/src/main/java/org/apache/iceberg/ReplacePartitions.java
##########
@@ -49,4 +49,28 @@
    * @return this for method chaining
    */
   ReplacePartitions validateAppendOnly();
+
+  /**
+   * Set the snapshot ID used in any reads for this operation.
+   * <p>
+   * Validations will check changes after this snapshot ID. If the from 
snapshot is not set, all ancestor snapshots
+   * through the table's initial snapshot are validated.
+   *
+   * @param snapshotId a snapshot ID
+   * @return this for method chaining
+   */
+  ReplacePartitions validateFromSnapshot(long snapshotId);
+
+  /**
+   * Enables validation that files added concurrently do not conflict with 
this commit's operation.
+   * <p>
+   * This method should be called when the table is first queried to determine 
which files to overwrite.
+   * If a concurrent operation commits a new file after the data was read and 
that file might
+   * contain rows matching a partition marked for deletion, the overwrite 
operation will detect this and fail.
+   * <p>
+   * Validation applies to files added to the table since the snapshot passed 
to {@link #validateFromSnapshot(long)}.
+   *
+   * @return this for method chaining
+   */
+  ReplacePartitions validateNoConflictingAppends();

Review comment:
       After #3069 is in, I think this should also support 
`validateNoConflictingDeletes()` using the new validation in that PR.




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