<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>RowDelta</title>
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="RowDelta";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":50,"i8":6,"i9":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default Methods"],32:["t6","Deprecated Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../org/apache/iceberg/Rollback.html" title="interface in org.apache.iceberg"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../org/apache/iceberg/RowLevelOperationMode.html" title="enum in org.apache.iceberg"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?org/apache/iceberg/RowDelta.html" target="_top">Frames</a></li>
<li><a href="RowDelta.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.iceberg</div>
<h2 title="Interface RowDelta" class="title">Interface RowDelta</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd><a href="../../../org/apache/iceberg/PendingUpdate.html" title="interface in org.apache.iceberg">PendingUpdate</a>&lt;<a href="../../../org/apache/iceberg/Snapshot.html" title="interface in org.apache.iceberg">Snapshot</a>&gt;, <a href="../../../org/apache/iceberg/SnapshotUpdate.html" title="interface in org.apache.iceberg">SnapshotUpdate</a>&lt;<a href="../../../org/apache/iceberg/RowDelta.html" title="interface in org.apache.iceberg">RowDelta</a>&gt;</dd>
</dl>
<hr>
<br>
<pre>public interface <span class="typeNameLabel">RowDelta</span>
extends <a href="../../../org/apache/iceberg/SnapshotUpdate.html" title="interface in org.apache.iceberg">SnapshotUpdate</a>&lt;<a href="../../../org/apache/iceberg/RowDelta.html" title="interface in org.apache.iceberg">RowDelta</a>&gt;</pre>
<div class="block">API for encoding row-level changes to a table.
 <p>
 This API accumulates data and delete file changes, produces a new <a href="../../../org/apache/iceberg/Snapshot.html" title="interface in org.apache.iceberg"><code>Snapshot</code></a> of the table, and commits
 that snapshot as the current.
 <p>
 When committing, these changes will be applied to the latest table snapshot. Commit conflicts
 will be resolved by applying the changes to the new latest snapshot and reattempting the commit.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t5" class="tableTab"><span><a href="javascript:show(16);">Default Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="../../../org/apache/iceberg/RowDelta.html" title="interface in org.apache.iceberg">RowDelta</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/iceberg/RowDelta.html#addDeletes-org.apache.iceberg.DeleteFile-">addDeletes</a></span>(<a href="../../../org/apache/iceberg/DeleteFile.html" title="interface in org.apache.iceberg">DeleteFile</a>&nbsp;deletes)</code>
<div class="block">Add a <a href="../../../org/apache/iceberg/DeleteFile.html" title="interface in org.apache.iceberg"><code>DeleteFile</code></a> to the table.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="../../../org/apache/iceberg/RowDelta.html" title="interface in org.apache.iceberg">RowDelta</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/iceberg/RowDelta.html#addRows-org.apache.iceberg.DataFile-">addRows</a></span>(<a href="../../../org/apache/iceberg/DataFile.html" title="interface in org.apache.iceberg">DataFile</a>&nbsp;inserts)</code>
<div class="block">Add a <a href="../../../org/apache/iceberg/DataFile.html" title="interface in org.apache.iceberg"><code>DataFile</code></a> to the table.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="../../../org/apache/iceberg/RowDelta.html" title="interface in org.apache.iceberg">RowDelta</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/iceberg/RowDelta.html#caseSensitive-boolean-">caseSensitive</a></span>(boolean&nbsp;caseSensitive)</code>
<div class="block">Enables or disables case sensitive expression binding for validations that accept expressions.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../../../org/apache/iceberg/RowDelta.html" title="interface in org.apache.iceberg">RowDelta</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/iceberg/RowDelta.html#conflictDetectionFilter-org.apache.iceberg.expressions.Expression-">conflictDetectionFilter</a></span>(<a href="../../../org/apache/iceberg/expressions/Expression.html" title="interface in org.apache.iceberg.expressions">Expression</a>&nbsp;conflictDetectionFilter)</code>
<div class="block">Sets a conflict detection filter used to validate concurrently added data and delete files.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="../../../org/apache/iceberg/RowDelta.html" title="interface in org.apache.iceberg">RowDelta</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/iceberg/RowDelta.html#validateDataFilesExist-java.lang.Iterable-">validateDataFilesExist</a></span>(java.lang.Iterable&lt;? extends java.lang.CharSequence&gt;&nbsp;referencedFiles)</code>
<div class="block">Add data file paths that must not be removed by conflicting commits for this RowDelta to succeed.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="../../../org/apache/iceberg/RowDelta.html" title="interface in org.apache.iceberg">RowDelta</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/iceberg/RowDelta.html#validateDeletedFiles--">validateDeletedFiles</a></span>()</code>
<div class="block">Enable validation that referenced data files passed to <a href="../../../org/apache/iceberg/RowDelta.html#validateDataFilesExist-java.lang.Iterable-"><code>validateDataFilesExist(Iterable)</code></a> have not been
 removed by a delete operation.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="../../../org/apache/iceberg/RowDelta.html" title="interface in org.apache.iceberg">RowDelta</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/iceberg/RowDelta.html#validateFromSnapshot-long-">validateFromSnapshot</a></span>(long&nbsp;snapshotId)</code>
<div class="block">Set the snapshot ID used in any reads for this operation.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>default <a href="../../../org/apache/iceberg/RowDelta.html" title="interface in org.apache.iceberg">RowDelta</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/iceberg/RowDelta.html#validateNoConflictingAppends-org.apache.iceberg.expressions.Expression-">validateNoConflictingAppends</a></span>(<a href="../../../org/apache/iceberg/expressions/Expression.html" title="interface in org.apache.iceberg.expressions">Expression</a>&nbsp;conflictDetectionFilter)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">since 0.13.0, will be removed in 0.14.0; use <a href="../../../org/apache/iceberg/RowDelta.html#conflictDetectionFilter-org.apache.iceberg.expressions.Expression-"><code>conflictDetectionFilter(Expression)</code></a> and
             <a href="../../../org/apache/iceberg/RowDelta.html#validateNoConflictingDataFiles--"><code>validateNoConflictingDataFiles()</code></a> instead.</span></div>
</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="../../../org/apache/iceberg/RowDelta.html" title="interface in org.apache.iceberg">RowDelta</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/iceberg/RowDelta.html#validateNoConflictingDataFiles--">validateNoConflictingDataFiles</a></span>()</code>
<div class="block">Enables validation that data files added concurrently do not conflict with this commit's operation.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="../../../org/apache/iceberg/RowDelta.html" title="interface in org.apache.iceberg">RowDelta</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/iceberg/RowDelta.html#validateNoConflictingDeleteFiles--">validateNoConflictingDeleteFiles</a></span>()</code>
<div class="block">Enables validation that delete files added concurrently do not conflict with this commit's operation.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.iceberg.SnapshotUpdate">
<!--   -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.iceberg.<a href="../../../org/apache/iceberg/SnapshotUpdate.html" title="interface in org.apache.iceberg">SnapshotUpdate</a></h3>
<code><a href="../../../org/apache/iceberg/SnapshotUpdate.html#deleteWith-java.util.function.Consumer-">deleteWith</a>, <a href="../../../org/apache/iceberg/SnapshotUpdate.html#set-java.lang.String-java.lang.String-">set</a>, <a href="../../../org/apache/iceberg/SnapshotUpdate.html#stageOnly--">stageOnly</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.iceberg.PendingUpdate">
<!--   -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.iceberg.<a href="../../../org/apache/iceberg/PendingUpdate.html" title="interface in org.apache.iceberg">PendingUpdate</a></h3>
<code><a href="../../../org/apache/iceberg/PendingUpdate.html#apply--">apply</a>, <a href="../../../org/apache/iceberg/PendingUpdate.html#commit--">commit</a>, <a href="../../../org/apache/iceberg/PendingUpdate.html#updateEvent--">updateEvent</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="addRows-org.apache.iceberg.DataFile-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addRows</h4>
<pre><a href="../../../org/apache/iceberg/RowDelta.html" title="interface in org.apache.iceberg">RowDelta</a>&nbsp;addRows(<a href="../../../org/apache/iceberg/DataFile.html" title="interface in org.apache.iceberg">DataFile</a>&nbsp;inserts)</pre>
<div class="block">Add a <a href="../../../org/apache/iceberg/DataFile.html" title="interface in org.apache.iceberg"><code>DataFile</code></a> to the table.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>inserts</code> - a data file of rows to insert</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
</dl>
</li>
</ul>
<a name="addDeletes-org.apache.iceberg.DeleteFile-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addDeletes</h4>
<pre><a href="../../../org/apache/iceberg/RowDelta.html" title="interface in org.apache.iceberg">RowDelta</a>&nbsp;addDeletes(<a href="../../../org/apache/iceberg/DeleteFile.html" title="interface in org.apache.iceberg">DeleteFile</a>&nbsp;deletes)</pre>
<div class="block">Add a <a href="../../../org/apache/iceberg/DeleteFile.html" title="interface in org.apache.iceberg"><code>DeleteFile</code></a> to the table.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>deletes</code> - a delete file of rows to delete</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
</dl>
</li>
</ul>
<a name="validateFromSnapshot-long-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateFromSnapshot</h4>
<pre><a href="../../../org/apache/iceberg/RowDelta.html" title="interface in org.apache.iceberg">RowDelta</a>&nbsp;validateFromSnapshot(long&nbsp;snapshotId)</pre>
<div class="block">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.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>snapshotId</code> - a snapshot ID</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
</dl>
</li>
</ul>
<a name="caseSensitive-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>caseSensitive</h4>
<pre><a href="../../../org/apache/iceberg/RowDelta.html" title="interface in org.apache.iceberg">RowDelta</a>&nbsp;caseSensitive(boolean&nbsp;caseSensitive)</pre>
<div class="block">Enables or disables case sensitive expression binding for validations that accept expressions.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>caseSensitive</code> - whether expression binding should be case sensitive</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
</dl>
</li>
</ul>
<a name="validateDataFilesExist-java.lang.Iterable-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateDataFilesExist</h4>
<pre><a href="../../../org/apache/iceberg/RowDelta.html" title="interface in org.apache.iceberg">RowDelta</a>&nbsp;validateDataFilesExist(java.lang.Iterable&lt;? extends java.lang.CharSequence&gt;&nbsp;referencedFiles)</pre>
<div class="block">Add data file paths that must not be removed by conflicting commits for this RowDelta to succeed.
 <p>
 If any path has been removed by a conflicting commit in the table since the snapshot passed to
 <a href="../../../org/apache/iceberg/RowDelta.html#validateFromSnapshot-long-"><code>validateFromSnapshot(long)</code></a>, the operation will fail with a
 <a href="../../../org/apache/iceberg/exceptions/ValidationException.html" title="class in org.apache.iceberg.exceptions"><code>ValidationException</code></a>.
 <p>
 By default, this validation checks only rewrite and overwrite commits. To apply validation to delete commits, call
 <a href="../../../org/apache/iceberg/RowDelta.html#validateDeletedFiles--"><code>validateDeletedFiles()</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>referencedFiles</code> - file paths that are referenced by a position delete file</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
</dl>
</li>
</ul>
<a name="validateDeletedFiles--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateDeletedFiles</h4>
<pre><a href="../../../org/apache/iceberg/RowDelta.html" title="interface in org.apache.iceberg">RowDelta</a>&nbsp;validateDeletedFiles()</pre>
<div class="block">Enable validation that referenced data files passed to <a href="../../../org/apache/iceberg/RowDelta.html#validateDataFilesExist-java.lang.Iterable-"><code>validateDataFilesExist(Iterable)</code></a> have not been
 removed by a delete operation.
 <p>
 If a data file has a row deleted using a position delete file, rewriting or overwriting the data file concurrently
 would un-delete the row. Deleting the data file is normally allowed, but a delete may be part of a transaction
 that reads and re-appends a row. This method is used to validate deletes for the transaction case.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
</dl>
</li>
</ul>
<a name="validateNoConflictingAppends-org.apache.iceberg.expressions.Expression-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateNoConflictingAppends</h4>
<pre>@Deprecated
default&nbsp;<a href="../../../org/apache/iceberg/RowDelta.html" title="interface in org.apache.iceberg">RowDelta</a>&nbsp;validateNoConflictingAppends(<a href="../../../org/apache/iceberg/expressions/Expression.html" title="interface in org.apache.iceberg.expressions">Expression</a>&nbsp;conflictDetectionFilter)</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">since 0.13.0, will be removed in 0.14.0; use <a href="../../../org/apache/iceberg/RowDelta.html#conflictDetectionFilter-org.apache.iceberg.expressions.Expression-"><code>conflictDetectionFilter(Expression)</code></a> and
             <a href="../../../org/apache/iceberg/RowDelta.html#validateNoConflictingDataFiles--"><code>validateNoConflictingDataFiles()</code></a> instead.</span></div>
<div class="block">Enables validation that data files added concurrently do not conflict with this commit's operation.
 <p>
 This method should be called when the table is queried to determine which files to delete/append.
 If a concurrent operation commits a new file after the data was read and that file might
 contain rows matching the specified conflict detection filter, the overwrite operation
 will detect this during retries and fail.
 <p>
 Calling this method with a correct conflict detection filter is required to maintain
 serializable isolation for update/delete operations. Otherwise, the isolation level
 will be snapshot isolation.
 <p>
 Validation applies to files added to the table since the snapshot passed to <a href="../../../org/apache/iceberg/RowDelta.html#validateFromSnapshot-long-"><code>validateFromSnapshot(long)</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>conflictDetectionFilter</code> - an expression on rows in the table</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
</dl>
</li>
</ul>
<a name="conflictDetectionFilter-org.apache.iceberg.expressions.Expression-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>conflictDetectionFilter</h4>
<pre><a href="../../../org/apache/iceberg/RowDelta.html" title="interface in org.apache.iceberg">RowDelta</a>&nbsp;conflictDetectionFilter(<a href="../../../org/apache/iceberg/expressions/Expression.html" title="interface in org.apache.iceberg.expressions">Expression</a>&nbsp;conflictDetectionFilter)</pre>
<div class="block">Sets a conflict detection filter used to validate concurrently added data and delete files.
 <p>
 If not called, a true literal will be used as the conflict detection filter.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>conflictDetectionFilter</code> - an expression on rows in the table</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
</dl>
</li>
</ul>
<a name="validateNoConflictingDataFiles--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateNoConflictingDataFiles</h4>
<pre><a href="../../../org/apache/iceberg/RowDelta.html" title="interface in org.apache.iceberg">RowDelta</a>&nbsp;validateNoConflictingDataFiles()</pre>
<div class="block">Enables validation that data files added concurrently do not conflict with this commit's operation.
 <p>
 This method should be called when the table is queried to determine which files to delete/append.
 If a concurrent operation commits a new file after the data was read and that file might
 contain rows matching the specified conflict detection filter, this operation
 will detect this during retries and fail.
 <p>
 Calling this method is required to maintain serializable isolation for update/delete operations.
 Otherwise, the isolation level will be snapshot isolation.
 <p>
 Validation uses the conflict detection filter passed to <a href="../../../org/apache/iceberg/RowDelta.html#conflictDetectionFilter-org.apache.iceberg.expressions.Expression-"><code>conflictDetectionFilter(Expression)</code></a> and
 applies to operations that happened after the snapshot passed to <a href="../../../org/apache/iceberg/RowDelta.html#validateFromSnapshot-long-"><code>validateFromSnapshot(long)</code></a>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
</dl>
</li>
</ul>
<a name="validateNoConflictingDeleteFiles--">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>validateNoConflictingDeleteFiles</h4>
<pre><a href="../../../org/apache/iceberg/RowDelta.html" title="interface in org.apache.iceberg">RowDelta</a>&nbsp;validateNoConflictingDeleteFiles()</pre>
<div class="block">Enables validation that delete files added concurrently do not conflict with this commit's operation.
 <p>
 This method must be called when the table is queried to produce a row delta for UPDATE and
 MERGE operations independently of the isolation level. Calling this method isn't required
 for DELETE operations as it is OK to delete a record that is also deleted concurrently.
 <p>
 Validation uses the conflict detection filter passed to <a href="../../../org/apache/iceberg/RowDelta.html#conflictDetectionFilter-org.apache.iceberg.expressions.Expression-"><code>conflictDetectionFilter(Expression)</code></a> and
 applies to operations that happened after the snapshot passed to <a href="../../../org/apache/iceberg/RowDelta.html#validateFromSnapshot-long-"><code>validateFromSnapshot(long)</code></a>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../org/apache/iceberg/Rollback.html" title="interface in org.apache.iceberg"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../org/apache/iceberg/RowLevelOperationMode.html" title="enum in org.apache.iceberg"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?org/apache/iceberg/RowDelta.html" target="_top">Frames</a></li>
<li><a href="RowDelta.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
