<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>RewriteFiles</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../script.js"></script>
<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../jquery/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="../../../jquery/jquery-ui.min.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="RewriteFiles";
        }
    }
    catch(err) {
    }
//-->
var data = {"i0":18,"i1":18,"i2":18,"i3":18,"i4":18,"i5":18,"i6":50,"i7":38,"i8":38,"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";
var pathtoroot = "../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../index.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" id="allclasses_navbar_top">
<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</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>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</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 id="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.iceberg</a></div>
<h2 title="Interface RewriteFiles" class="title">Interface RewriteFiles</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd><code><a href="PendingUpdate.html" title="interface in org.apache.iceberg">PendingUpdate</a>&lt;<a href="Snapshot.html" title="interface in org.apache.iceberg">Snapshot</a>&gt;</code>, <code><a href="SnapshotUpdate.html" title="interface in org.apache.iceberg">SnapshotUpdate</a>&lt;<a href="RewriteFiles.html" title="interface in org.apache.iceberg">RewriteFiles</a>&gt;</code></dd>
</dl>
<hr>
<pre>public interface <span class="typeNameLabel">RewriteFiles</span>
extends <a href="SnapshotUpdate.html" title="interface in org.apache.iceberg">SnapshotUpdate</a>&lt;<a href="RewriteFiles.html" title="interface in org.apache.iceberg">RewriteFiles</a>&gt;</pre>
<div class="block">API for replacing files in a table.

 <p>This API accumulates file additions and deletions, produces a new <a href="Snapshot.html" title="interface in org.apache.iceberg"><code>Snapshot</code></a> of the
 changes, 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.
 If any of the deleted files are no longer in the latest snapshot when reattempting, the commit
 will throw a <a href="exceptions/ValidationException.html" title="class in org.apache.iceberg.exceptions"><code>ValidationException</code></a>.

 <p>Note that the new state of the table after each rewrite must be logically equivalent to the
 original table state.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<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="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>default <a href="RewriteFiles.html" title="interface in org.apache.iceberg">RewriteFiles</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addFile(org.apache.iceberg.DataFile)">addFile</a></span>&#8203;(<a href="DataFile.html" title="interface in org.apache.iceberg">DataFile</a>&nbsp;dataFile)</code></th>
<td class="colLast">
<div class="block">Add a new data file.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>default <a href="RewriteFiles.html" title="interface in org.apache.iceberg">RewriteFiles</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addFile(org.apache.iceberg.DeleteFile)">addFile</a></span>&#8203;(<a href="DeleteFile.html" title="interface in org.apache.iceberg">DeleteFile</a>&nbsp;deleteFile)</code></th>
<td class="colLast">
<div class="block">Add a new delete file.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>default <a href="RewriteFiles.html" title="interface in org.apache.iceberg">RewriteFiles</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addFile(org.apache.iceberg.DeleteFile,long)">addFile</a></span>&#8203;(<a href="DeleteFile.html" title="interface in org.apache.iceberg">DeleteFile</a>&nbsp;deleteFile,
       long&nbsp;dataSequenceNumber)</code></th>
<td class="colLast">
<div class="block">Add a new delete file with the given data sequence number.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>default <a href="RewriteFiles.html" title="interface in org.apache.iceberg">RewriteFiles</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#dataSequenceNumber(long)">dataSequenceNumber</a></span>&#8203;(long&nbsp;sequenceNumber)</code></th>
<td class="colLast">
<div class="block">Configure the data sequence number for this rewrite operation.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>default <a href="RewriteFiles.html" title="interface in org.apache.iceberg">RewriteFiles</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#deleteFile(org.apache.iceberg.DataFile)">deleteFile</a></span>&#8203;(<a href="DataFile.html" title="interface in org.apache.iceberg">DataFile</a>&nbsp;dataFile)</code></th>
<td class="colLast">
<div class="block">Remove a data file from the current table state.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>default <a href="RewriteFiles.html" title="interface in org.apache.iceberg">RewriteFiles</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#deleteFile(org.apache.iceberg.DeleteFile)">deleteFile</a></span>&#8203;(<a href="DeleteFile.html" title="interface in org.apache.iceberg">DeleteFile</a>&nbsp;deleteFile)</code></th>
<td class="colLast">
<div class="block">Remove a delete file from the table state.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>default <a href="RewriteFiles.html" title="interface in org.apache.iceberg">RewriteFiles</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#rewriteFiles(java.util.Set,java.util.Set)">rewriteFiles</a></span>&#8203;(java.util.Set&lt;<a href="DataFile.html" title="interface in org.apache.iceberg">DataFile</a>&gt;&nbsp;filesToDelete,
            java.util.Set&lt;<a href="DataFile.html" title="interface in org.apache.iceberg">DataFile</a>&gt;&nbsp;filesToAdd)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">since 1.3.0, will be removed in 2.0.0</div>
</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="RewriteFiles.html" title="interface in org.apache.iceberg">RewriteFiles</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#rewriteFiles(java.util.Set,java.util.Set,long)">rewriteFiles</a></span>&#8203;(java.util.Set&lt;<a href="DataFile.html" title="interface in org.apache.iceberg">DataFile</a>&gt;&nbsp;filesToDelete,
            java.util.Set&lt;<a href="DataFile.html" title="interface in org.apache.iceberg">DataFile</a>&gt;&nbsp;filesToAdd,
            long&nbsp;sequenceNumber)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">since 1.3.0, will be removed in 2.0.0</div>
</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="RewriteFiles.html" title="interface in org.apache.iceberg">RewriteFiles</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#rewriteFiles(java.util.Set,java.util.Set,java.util.Set,java.util.Set)">rewriteFiles</a></span>&#8203;(java.util.Set&lt;<a href="DataFile.html" title="interface in org.apache.iceberg">DataFile</a>&gt;&nbsp;dataFilesToReplace,
            java.util.Set&lt;<a href="DeleteFile.html" title="interface in org.apache.iceberg">DeleteFile</a>&gt;&nbsp;deleteFilesToReplace,
            java.util.Set&lt;<a href="DataFile.html" title="interface in org.apache.iceberg">DataFile</a>&gt;&nbsp;dataFilesToAdd,
            java.util.Set&lt;<a href="DeleteFile.html" title="interface in org.apache.iceberg">DeleteFile</a>&gt;&nbsp;deleteFilesToAdd)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">since 1.3.0, will be removed in 2.0.0</div>
</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="RewriteFiles.html" title="interface in org.apache.iceberg">RewriteFiles</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateFromSnapshot(long)">validateFromSnapshot</a></span>&#8203;(long&nbsp;snapshotId)</code></th>
<td class="colLast">
<div class="block">Set the snapshot ID used in any reads for this operation.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.apache.iceberg.PendingUpdate">
<!--   -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.iceberg.<a href="PendingUpdate.html" title="interface in org.apache.iceberg">PendingUpdate</a></h3>
<code><a href="PendingUpdate.html#apply()">apply</a>, <a href="PendingUpdate.html#commit()">commit</a>, <a href="PendingUpdate.html#updateEvent()">updateEvent</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.apache.iceberg.SnapshotUpdate">
<!--   -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.iceberg.<a href="SnapshotUpdate.html" title="interface in org.apache.iceberg">SnapshotUpdate</a></h3>
<code><a href="SnapshotUpdate.html#deleteWith(java.util.function.Consumer)">deleteWith</a>, <a href="SnapshotUpdate.html#scanManifestsWith(java.util.concurrent.ExecutorService)">scanManifestsWith</a>, <a href="SnapshotUpdate.html#set(java.lang.String,java.lang.String)">set</a>, <a href="SnapshotUpdate.html#stageOnly()">stageOnly</a>, <a href="SnapshotUpdate.html#toBranch(java.lang.String)">toBranch</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a id="deleteFile(org.apache.iceberg.DataFile)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>deleteFile</h4>
<pre class="methodSignature">default&nbsp;<a href="RewriteFiles.html" title="interface in org.apache.iceberg">RewriteFiles</a>&nbsp;deleteFile&#8203;(<a href="DataFile.html" title="interface in org.apache.iceberg">DataFile</a>&nbsp;dataFile)</pre>
<div class="block">Remove a data file from the current table state.

 <p>This rewrite operation may change the size or layout of the data files. When applicable, it
 is also recommended to discard already deleted records while rewriting data files. However, the
 set of live data records must never change.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>dataFile</code> - a rewritten data file</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
</dl>
</li>
</ul>
<a id="deleteFile(org.apache.iceberg.DeleteFile)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>deleteFile</h4>
<pre class="methodSignature">default&nbsp;<a href="RewriteFiles.html" title="interface in org.apache.iceberg">RewriteFiles</a>&nbsp;deleteFile&#8203;(<a href="DeleteFile.html" title="interface in org.apache.iceberg">DeleteFile</a>&nbsp;deleteFile)</pre>
<div class="block">Remove a delete file from the table state.

 <p>This rewrite operation may change the size or layout of the delete files. When applicable,
 it is also recommended to discard delete records for files that are no longer part of the table
 state. However, the set of applicable delete records must never change.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>deleteFile</code> - a rewritten delete file</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
</dl>
</li>
</ul>
<a id="addFile(org.apache.iceberg.DataFile)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addFile</h4>
<pre class="methodSignature">default&nbsp;<a href="RewriteFiles.html" title="interface in org.apache.iceberg">RewriteFiles</a>&nbsp;addFile&#8203;(<a href="DataFile.html" title="interface in org.apache.iceberg">DataFile</a>&nbsp;dataFile)</pre>
<div class="block">Add a new data file.

 <p>This rewrite operation may change the size or layout of the data files. When applicable, it
 is also recommended to discard already deleted records while rewriting data files. However, the
 set of live data records must never change.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>dataFile</code> - a new data file</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
</dl>
</li>
</ul>
<a id="addFile(org.apache.iceberg.DeleteFile)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addFile</h4>
<pre class="methodSignature">default&nbsp;<a href="RewriteFiles.html" title="interface in org.apache.iceberg">RewriteFiles</a>&nbsp;addFile&#8203;(<a href="DeleteFile.html" title="interface in org.apache.iceberg">DeleteFile</a>&nbsp;deleteFile)</pre>
<div class="block">Add a new delete file.

 <p>This rewrite operation may change the size or layout of the delete files. When applicable,
 it is also recommended to discard delete records for files that are no longer part of the table
 state. However, the set of applicable delete records must never change.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>deleteFile</code> - a new delete file</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
</dl>
</li>
</ul>
<a id="addFile(org.apache.iceberg.DeleteFile,long)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addFile</h4>
<pre class="methodSignature">default&nbsp;<a href="RewriteFiles.html" title="interface in org.apache.iceberg">RewriteFiles</a>&nbsp;addFile&#8203;(<a href="DeleteFile.html" title="interface in org.apache.iceberg">DeleteFile</a>&nbsp;deleteFile,
                             long&nbsp;dataSequenceNumber)</pre>
<div class="block">Add a new delete file with the given data sequence number.

 <p>This rewrite operation may change the size or layout of the delete files. When applicable,
 it is also recommended to discard delete records for files that are no longer part of the table
 state. However, the set of applicable delete records must never change.

 <p>To ensure equivalence in the set of applicable delete records, the sequence number of the
 delete file must be the max sequence number of the delete files that it is replacing. Rewriting
 equality deletes that belong to different sequence numbers is not allowed.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>deleteFile</code> - a new delete file</dd>
<dd><code>dataSequenceNumber</code> - data sequence number to append on the file</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
</dl>
</li>
</ul>
<a id="dataSequenceNumber(long)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>dataSequenceNumber</h4>
<pre class="methodSignature">default&nbsp;<a href="RewriteFiles.html" title="interface in org.apache.iceberg">RewriteFiles</a>&nbsp;dataSequenceNumber&#8203;(long&nbsp;sequenceNumber)</pre>
<div class="block">Configure the data sequence number for this rewrite operation. This data sequence number will
 be used for all new data files that are added in this rewrite. This method is helpful to avoid
 commit conflicts between data compaction and adding equality deletes.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sequenceNumber</code> - a data sequence number</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
</dl>
</li>
</ul>
<a id="rewriteFiles(java.util.Set,java.util.Set)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rewriteFiles</h4>
<pre class="methodSignature">@Deprecated
default&nbsp;<a href="RewriteFiles.html" title="interface in org.apache.iceberg">RewriteFiles</a>&nbsp;rewriteFiles&#8203;(java.util.Set&lt;<a href="DataFile.html" title="interface in org.apache.iceberg">DataFile</a>&gt;&nbsp;filesToDelete,
                                  java.util.Set&lt;<a href="DataFile.html" title="interface in org.apache.iceberg">DataFile</a>&gt;&nbsp;filesToAdd)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">since 1.3.0, will be removed in 2.0.0</div>
</div>
<div class="block">Add a rewrite that replaces one set of data files with another set that contains the same data.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>filesToDelete</code> - files that will be replaced (deleted), cannot be null or empty.</dd>
<dd><code>filesToAdd</code> - files that will be added, cannot be null or empty.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
</dl>
</li>
</ul>
<a id="rewriteFiles(java.util.Set,java.util.Set,long)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rewriteFiles</h4>
<pre class="methodSignature">@Deprecated
<a href="RewriteFiles.html" title="interface in org.apache.iceberg">RewriteFiles</a>&nbsp;rewriteFiles&#8203;(java.util.Set&lt;<a href="DataFile.html" title="interface in org.apache.iceberg">DataFile</a>&gt;&nbsp;filesToDelete,
                          java.util.Set&lt;<a href="DataFile.html" title="interface in org.apache.iceberg">DataFile</a>&gt;&nbsp;filesToAdd,
                          long&nbsp;sequenceNumber)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">since 1.3.0, will be removed in 2.0.0</div>
</div>
<div class="block">Add a rewrite that replaces one set of data files with another set that contains the same data.
 The sequence number provided will be used for all the data files added.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>filesToDelete</code> - files that will be replaced (deleted), cannot be null or empty.</dd>
<dd><code>filesToAdd</code> - files that will be added, cannot be null or empty.</dd>
<dd><code>sequenceNumber</code> - sequence number to use for all data files added</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
</dl>
</li>
</ul>
<a id="rewriteFiles(java.util.Set,java.util.Set,java.util.Set,java.util.Set)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rewriteFiles</h4>
<pre class="methodSignature">@Deprecated
<a href="RewriteFiles.html" title="interface in org.apache.iceberg">RewriteFiles</a>&nbsp;rewriteFiles&#8203;(java.util.Set&lt;<a href="DataFile.html" title="interface in org.apache.iceberg">DataFile</a>&gt;&nbsp;dataFilesToReplace,
                          java.util.Set&lt;<a href="DeleteFile.html" title="interface in org.apache.iceberg">DeleteFile</a>&gt;&nbsp;deleteFilesToReplace,
                          java.util.Set&lt;<a href="DataFile.html" title="interface in org.apache.iceberg">DataFile</a>&gt;&nbsp;dataFilesToAdd,
                          java.util.Set&lt;<a href="DeleteFile.html" title="interface in org.apache.iceberg">DeleteFile</a>&gt;&nbsp;deleteFilesToAdd)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">since 1.3.0, will be removed in 2.0.0</div>
</div>
<div class="block">Add a rewrite that replaces one set of files with another set that contains the same data.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>dataFilesToReplace</code> - data files that will be replaced (deleted).</dd>
<dd><code>deleteFilesToReplace</code> - delete files that will be replaced (deleted).</dd>
<dd><code>dataFilesToAdd</code> - data files that will be added.</dd>
<dd><code>deleteFilesToAdd</code> - delete files that will be added.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining.</dd>
</dl>
</li>
</ul>
<a id="validateFromSnapshot(long)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>validateFromSnapshot</h4>
<pre class="methodSignature"><a href="RewriteFiles.html" title="interface in org.apache.iceberg">RewriteFiles</a>&nbsp;validateFromSnapshot&#8203;(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 this is not called, 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>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../index.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" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses.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>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</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 id="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>
