blob: 604c585a4d516ac4b06b1cff65b47313e8d3d589 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.12) on Mon Nov 08 18:33:49 PST 2021 -->
<title>SnapshotManager</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2021-11-08">
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.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.5.1.js"></script>
<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="SnapshotManager";
}
}
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete 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="Class SnapshotManager" class="title">Class SnapshotManager</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.iceberg.SnapshotManager</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="ManageSnapshots.html" title="interface in org.apache.iceberg">ManageSnapshots</a></code>, <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="ManageSnapshots.html" title="interface in org.apache.iceberg">ManageSnapshots</a>&gt;</code></dd>
</dl>
<hr>
<pre>public class <span class="typeNameLabel">SnapshotManager</span>
extends java.lang.Object
implements <a href="ManageSnapshots.html" title="interface in org.apache.iceberg">ManageSnapshots</a></pre>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<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="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete 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>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#add(org.apache.iceberg.DataFile)">add</a></span>&#8203;(<a href="DataFile.html" title="interface in org.apache.iceberg">DataFile</a>&nbsp;file)</code></th>
<td class="colLast">
<div class="block">Add a data file to the new snapshot.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#add(org.apache.iceberg.DeleteFile)">add</a></span>&#8203;(<a href="DeleteFile.html" title="interface in org.apache.iceberg">DeleteFile</a>&nbsp;file)</code></th>
<td class="colLast">
<div class="block">Add a delete file to the new snapshot.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#add(org.apache.iceberg.ManifestFile)">add</a></span>&#8203;(<a href="ManifestFile.html" title="interface in org.apache.iceberg">ManifestFile</a>&nbsp;manifest)</code></th>
<td class="colLast">
<div class="block">Add all files in a manifest to the new snapshot.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>protected java.util.List&lt;<a href="DataFile.html" title="interface in org.apache.iceberg">DataFile</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addedFiles()">addedFiles</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="Snapshot.html" title="interface in org.apache.iceberg">Snapshot</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#apply()">apply</a></span>()</code></th>
<td class="colLast">
<div class="block">Apply the pending changes and return the uncommitted changes for validation.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>java.util.List&lt;<a href="ManifestFile.html" title="interface in org.apache.iceberg">ManifestFile</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#apply(org.apache.iceberg.TableMetadata)">apply</a></span>&#8203;(<a href="TableMetadata.html" title="class in org.apache.iceberg">TableMetadata</a>&nbsp;base)</code></th>
<td class="colLast">
<div class="block">Apply the update's changes to the base table metadata and return the new manifest list.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="ManageSnapshots.html" title="interface in org.apache.iceberg">ManageSnapshots</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#cherrypick(long)">cherrypick</a></span>&#8203;(long&nbsp;snapshotId)</code></th>
<td class="colLast">
<div class="block">Apply supported changes in given snapshot and create a new snapshot which will be set as the
current snapshot on commit.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#cleanAll()">cleanAll</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#cleanUncommitted(java.util.Set)">cleanUncommitted</a></span>&#8203;(java.util.Set&lt;<a href="ManifestFile.html" title="interface in org.apache.iceberg">ManifestFile</a>&gt;&nbsp;committed)</code></th>
<td class="colLast">
<div class="block">Clean up any uncommitted manifests that were created.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#commit()">commit</a></span>()</code></th>
<td class="colLast">
<div class="block">Apply the pending changes and commit.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>protected <a href="TableMetadata.html" title="class in org.apache.iceberg">TableMetadata</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#current()">current</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#delete(java.lang.CharSequence)">delete</a></span>&#8203;(java.lang.CharSequence&nbsp;path)</code></th>
<td class="colLast">
<div class="block">Add a specific data path to be deleted in the new snapshot.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#delete(org.apache.iceberg.DataFile)">delete</a></span>&#8203;(<a href="DataFile.html" title="interface in org.apache.iceberg">DataFile</a>&nbsp;file)</code></th>
<td class="colLast">
<div class="block">Add a specific data file to be deleted in the new snapshot.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#delete(org.apache.iceberg.DeleteFile)">delete</a></span>&#8203;(<a href="DeleteFile.html" title="interface in org.apache.iceberg">DeleteFile</a>&nbsp;file)</code></th>
<td class="colLast">
<div class="block">Add a specific delete file to be deleted in the new snapshot.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#deleteByRowFilter(org.apache.iceberg.expressions.Expression)">deleteByRowFilter</a></span>&#8203;(<a href="expressions/Expression.html" title="interface in org.apache.iceberg.expressions">Expression</a>&nbsp;expr)</code></th>
<td class="colLast">
<div class="block">Add a filter to match files to delete.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#deleteFile(java.lang.String)">deleteFile</a></span>&#8203;(java.lang.String&nbsp;path)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>ThisT</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#deleteWith(java.util.function.Consumer)">deleteWith</a></span>&#8203;(java.util.function.Consumer&lt;java.lang.String&gt;&nbsp;deleteCallback)</code></th>
<td class="colLast">
<div class="block">Set a callback to delete files instead of the table's default.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#dropPartition(int,org.apache.iceberg.StructLike)">dropPartition</a></span>&#8203;(int&nbsp;specId,
<a href="StructLike.html" title="interface in org.apache.iceberg">StructLike</a>&nbsp;partition)</code></th>
<td class="colLast">
<div class="block">Add a partition tuple to drop from the table during the delete phase.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#failAnyDelete()">failAnyDelete</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#failMissingDeletePaths()">failMissingDeletePaths</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>protected <a href="io/OutputFile.html" title="interface in org.apache.iceberg.io">OutputFile</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#manifestListPath()">manifestListPath</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>protected <a href="ManifestReader.html" title="class in org.apache.iceberg">ManifestReader</a>&lt;<a href="DeleteFile.html" title="interface in org.apache.iceberg">DeleteFile</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newDeleteManifestReader(org.apache.iceberg.ManifestFile)">newDeleteManifestReader</a></span>&#8203;(<a href="ManifestFile.html" title="interface in org.apache.iceberg">ManifestFile</a>&nbsp;manifest)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>protected <a href="ManifestWriter.html" title="class in org.apache.iceberg">ManifestWriter</a>&lt;<a href="DeleteFile.html" title="interface in org.apache.iceberg">DeleteFile</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newDeleteManifestWriter(org.apache.iceberg.PartitionSpec)">newDeleteManifestWriter</a></span>&#8203;(<a href="PartitionSpec.html" title="class in org.apache.iceberg">PartitionSpec</a>&nbsp;spec)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>protected <a href="io/OutputFile.html" title="interface in org.apache.iceberg.io">OutputFile</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newManifestOutput()">newManifestOutput</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>protected <a href="ManifestReader.html" title="class in org.apache.iceberg">ManifestReader</a>&lt;<a href="DataFile.html" title="interface in org.apache.iceberg">DataFile</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newManifestReader(org.apache.iceberg.ManifestFile)">newManifestReader</a></span>&#8203;(<a href="ManifestFile.html" title="interface in org.apache.iceberg">ManifestFile</a>&nbsp;manifest)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>protected <a href="ManifestWriter.html" title="class in org.apache.iceberg">ManifestWriter</a>&lt;<a href="DataFile.html" title="interface in org.apache.iceberg">DataFile</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newManifestWriter(org.apache.iceberg.PartitionSpec)">newManifestWriter</a></span>&#8203;(<a href="PartitionSpec.html" title="class in org.apache.iceberg">PartitionSpec</a>&nbsp;spec)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>protected java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#operation()">operation</a></span>()</code></th>
<td class="colLast">
<div class="block">A string that describes the action that produced the new snapshot.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>protected <a href="TableMetadata.html" title="class in org.apache.iceberg">TableMetadata</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#refresh()">refresh</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code><a href="ManageSnapshots.html" title="interface in org.apache.iceberg">ManageSnapshots</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#rollbackTo(long)">rollbackTo</a></span>&#8203;(long&nbsp;snapshotId)</code></th>
<td class="colLast">
<div class="block">Rollback table's state to a specific <a href="Snapshot.html" title="interface in org.apache.iceberg"><code>Snapshot</code></a> identified by id.</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code><a href="ManageSnapshots.html" title="interface in org.apache.iceberg">ManageSnapshots</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#rollbackToTime(long)">rollbackToTime</a></span>&#8203;(long&nbsp;timestampMillis)</code></th>
<td class="colLast">
<div class="block">Roll this table's data back to the last <a href="Snapshot.html" title="interface in org.apache.iceberg"><code>Snapshot</code></a> before the given timestamp.</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>protected <a href="expressions/Expression.html" title="interface in org.apache.iceberg.expressions">Expression</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#rowFilter()">rowFilter</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>protected <a href="ManageSnapshots.html" title="interface in org.apache.iceberg">ManageSnapshots</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#self()">self</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>ThisT</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#set(java.lang.String,java.lang.String)">set</a></span>&#8203;(java.lang.String&nbsp;property,
java.lang.String&nbsp;value)</code></th>
<td class="colLast">
<div class="block">Set a summary property in the snapshot produced by this update.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code><a href="ManageSnapshots.html" title="interface in org.apache.iceberg">ManageSnapshots</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setCurrentSnapshot(long)">setCurrentSnapshot</a></span>&#8203;(long&nbsp;snapshotId)</code></th>
<td class="colLast">
<div class="block">Roll this table's data back to a specific <a href="Snapshot.html" title="interface in org.apache.iceberg"><code>Snapshot</code></a> identified by id.</div>
</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code>protected long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#snapshotId()">snapshotId</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code>ThisT</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#stageOnly()">stageOnly</a></span>()</code></th>
<td class="colLast">
<div class="block">Called to stage a snapshot in table metadata, but not update the current snapshot id.</div>
</td>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><code>protected java.util.Map&lt;java.lang.String,&#8203;java.lang.String&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#summary()">summary</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i37" class="rowColor">
<td class="colFirst"><code>java.lang.Object</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#updateEvent()">updateEvent</a></span>()</code></th>
<td class="colLast">
<div class="block">Generates update event to notify about metadata changes</div>
</td>
</tr>
<tr id="i38" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validate(org.apache.iceberg.TableMetadata)">validate</a></span>&#8203;(<a href="TableMetadata.html" title="class in org.apache.iceberg">TableMetadata</a>&nbsp;base)</code></th>
<td class="colLast">
<div class="block">Validate the current metadata.</div>
</td>
</tr>
<tr id="i39" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateAddedDataFiles(org.apache.iceberg.TableMetadata,java.lang.Long,org.apache.iceberg.expressions.Expression,boolean)">validateAddedDataFiles</a></span>&#8203;(<a href="TableMetadata.html" title="class in org.apache.iceberg">TableMetadata</a>&nbsp;base,
java.lang.Long&nbsp;startingSnapshotId,
<a href="expressions/Expression.html" title="interface in org.apache.iceberg.expressions">Expression</a>&nbsp;conflictDetectionFilter,
boolean&nbsp;caseSensitive)</code></th>
<td class="colLast">
<div class="block">Validates that no files matching a filter have been added to the table since a starting snapshot.</div>
</td>
</tr>
<tr id="i40" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateDataFilesExist(org.apache.iceberg.TableMetadata,java.lang.Long,org.apache.iceberg.util.CharSequenceSet,boolean,org.apache.iceberg.expressions.Expression)">validateDataFilesExist</a></span>&#8203;(<a href="TableMetadata.html" title="class in org.apache.iceberg">TableMetadata</a>&nbsp;base,
java.lang.Long&nbsp;startingSnapshotId,
<a href="util/CharSequenceSet.html" title="class in org.apache.iceberg.util">CharSequenceSet</a>&nbsp;requiredDataFiles,
boolean&nbsp;skipDeletes,
<a href="expressions/Expression.html" title="interface in org.apache.iceberg.expressions">Expression</a>&nbsp;conflictDetectionFilter)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i41" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateNoNewDeleteFiles(org.apache.iceberg.TableMetadata,java.lang.Long,org.apache.iceberg.expressions.Expression,boolean)">validateNoNewDeleteFiles</a></span>&#8203;(<a href="TableMetadata.html" title="class in org.apache.iceberg">TableMetadata</a>&nbsp;base,
java.lang.Long&nbsp;startingSnapshotId,
<a href="expressions/Expression.html" title="interface in org.apache.iceberg.expressions">Expression</a>&nbsp;dataFilter,
boolean&nbsp;caseSensitive)</code></th>
<td class="colLast">
<div class="block">Validates that no delete files matching a filter have been added to the table since a starting snapshot.</div>
</td>
</tr>
<tr id="i42" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateNoNewDeletesForDataFiles(org.apache.iceberg.TableMetadata,java.lang.Long,java.lang.Iterable)">validateNoNewDeletesForDataFiles</a></span>&#8203;(<a href="TableMetadata.html" title="class in org.apache.iceberg">TableMetadata</a>&nbsp;base,
java.lang.Long&nbsp;startingSnapshotId,
java.lang.Iterable&lt;<a href="DataFile.html" title="interface in org.apache.iceberg">DataFile</a>&gt;&nbsp;dataFiles)</code></th>
<td class="colLast">
<div class="block">Validates that no new delete files that must be applied to the given data files have been added to the table since
a starting snapshot.</div>
</td>
</tr>
<tr id="i43" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateNoNewDeletesForDataFiles(org.apache.iceberg.TableMetadata,java.lang.Long,org.apache.iceberg.expressions.Expression,java.lang.Iterable,boolean)">validateNoNewDeletesForDataFiles</a></span>&#8203;(<a href="TableMetadata.html" title="class in org.apache.iceberg">TableMetadata</a>&nbsp;base,
java.lang.Long&nbsp;startingSnapshotId,
<a href="expressions/Expression.html" title="interface in org.apache.iceberg.expressions">Expression</a>&nbsp;dataFilter,
java.lang.Iterable&lt;<a href="DataFile.html" title="interface in org.apache.iceberg">DataFile</a>&gt;&nbsp;dataFiles,
boolean&nbsp;caseSensitive)</code></th>
<td class="colLast">
<div class="block">Validates that no new delete files that must be applied to the given data files have been added to the table since
a starting snapshot.</div>
</td>
</tr>
<tr id="i44" class="altColor">
<td class="colFirst"><code>protected <a href="PartitionSpec.html" title="class in org.apache.iceberg">PartitionSpec</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#writeSpec()">writeSpec</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
<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#commit()">commit</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="self()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>self</h4>
<pre class="methodSignature">protected&nbsp;<a href="ManageSnapshots.html" title="interface in org.apache.iceberg">ManageSnapshots</a>&nbsp;self()</pre>
</li>
</ul>
<a id="operation()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>operation</h4>
<pre class="methodSignature">protected&nbsp;java.lang.String&nbsp;operation()</pre>
<div class="block">A string that describes the action that produced the new snapshot.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a string operation</dd>
</dl>
</li>
</ul>
<a id="cherrypick(long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>cherrypick</h4>
<pre class="methodSignature">public&nbsp;<a href="ManageSnapshots.html" title="interface in org.apache.iceberg">ManageSnapshots</a>&nbsp;cherrypick&#8203;(long&nbsp;snapshotId)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="ManageSnapshots.html#cherrypick(long)">ManageSnapshots</a></code></span></div>
<div class="block">Apply supported changes in given snapshot and create a new snapshot which will be set as the
current snapshot on commit.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ManageSnapshots.html#cherrypick(long)">cherrypick</a></code>&nbsp;in interface&nbsp;<code><a href="ManageSnapshots.html" title="interface in org.apache.iceberg">ManageSnapshots</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>snapshotId</code> - a snapshotId whose changes to apply</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
</dl>
</li>
</ul>
<a id="setCurrentSnapshot(long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setCurrentSnapshot</h4>
<pre class="methodSignature">public&nbsp;<a href="ManageSnapshots.html" title="interface in org.apache.iceberg">ManageSnapshots</a>&nbsp;setCurrentSnapshot&#8203;(long&nbsp;snapshotId)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="ManageSnapshots.html#setCurrentSnapshot(long)">ManageSnapshots</a></code></span></div>
<div class="block">Roll this table's data back to a specific <a href="Snapshot.html" title="interface in org.apache.iceberg"><code>Snapshot</code></a> identified by id.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ManageSnapshots.html#setCurrentSnapshot(long)">setCurrentSnapshot</a></code>&nbsp;in interface&nbsp;<code><a href="ManageSnapshots.html" title="interface in org.apache.iceberg">ManageSnapshots</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>snapshotId</code> - long id of the snapshot to roll back table data to</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
</dl>
</li>
</ul>
<a id="rollbackToTime(long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rollbackToTime</h4>
<pre class="methodSignature">public&nbsp;<a href="ManageSnapshots.html" title="interface in org.apache.iceberg">ManageSnapshots</a>&nbsp;rollbackToTime&#8203;(long&nbsp;timestampMillis)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="ManageSnapshots.html#rollbackToTime(long)">ManageSnapshots</a></code></span></div>
<div class="block">Roll this table's data back to the last <a href="Snapshot.html" title="interface in org.apache.iceberg"><code>Snapshot</code></a> before the given timestamp.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ManageSnapshots.html#rollbackToTime(long)">rollbackToTime</a></code>&nbsp;in interface&nbsp;<code><a href="ManageSnapshots.html" title="interface in org.apache.iceberg">ManageSnapshots</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>timestampMillis</code> - a long timestamp, as returned by <code>System.currentTimeMillis()</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
</dl>
</li>
</ul>
<a id="rollbackTo(long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rollbackTo</h4>
<pre class="methodSignature">public&nbsp;<a href="ManageSnapshots.html" title="interface in org.apache.iceberg">ManageSnapshots</a>&nbsp;rollbackTo&#8203;(long&nbsp;snapshotId)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="ManageSnapshots.html#rollbackTo(long)">ManageSnapshots</a></code></span></div>
<div class="block">Rollback table's state to a specific <a href="Snapshot.html" title="interface in org.apache.iceberg"><code>Snapshot</code></a> identified by id.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ManageSnapshots.html#rollbackTo(long)">rollbackTo</a></code>&nbsp;in interface&nbsp;<code><a href="ManageSnapshots.html" title="interface in org.apache.iceberg">ManageSnapshots</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>snapshotId</code> - long id of snapshot id to roll back table to. Must be an ancestor of the current snapshot</dd>
</dl>
</li>
</ul>
<a id="updateEvent()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>updateEvent</h4>
<pre class="methodSignature">public&nbsp;java.lang.Object&nbsp;updateEvent()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="PendingUpdate.html#updateEvent()">PendingUpdate</a></code></span></div>
<div class="block">Generates update event to notify about metadata changes</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="PendingUpdate.html#updateEvent()">updateEvent</a></code>&nbsp;in interface&nbsp;<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></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the generated event</dd>
</dl>
</li>
</ul>
<a id="validate(org.apache.iceberg.TableMetadata)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validate</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;validate&#8203;(<a href="TableMetadata.html" title="class in org.apache.iceberg">TableMetadata</a>&nbsp;base)</pre>
<div class="block">Validate the current metadata.
<p>
Child operations can override this to add custom validation.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>base</code> - current table metadata to validate</dd>
</dl>
</li>
</ul>
<a id="apply()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>apply</h4>
<pre class="methodSignature">public&nbsp;<a href="Snapshot.html" title="interface in org.apache.iceberg">Snapshot</a>&nbsp;apply()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="PendingUpdate.html#apply()">PendingUpdate</a></code></span></div>
<div class="block">Apply the pending changes and return the uncommitted changes for validation.
<p>
This does not result in a permanent update.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="PendingUpdate.html#apply()">apply</a></code>&nbsp;in interface&nbsp;<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></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the uncommitted changes that would be committed by calling <a href="PendingUpdate.html#commit()"><code>PendingUpdate.commit()</code></a></dd>
</dl>
</li>
</ul>
<a id="set(java.lang.String,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>set</h4>
<pre class="methodSignature">public&nbsp;ThisT&nbsp;set&#8203;(java.lang.String&nbsp;property,
java.lang.String&nbsp;value)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SnapshotUpdate.html#set(java.lang.String,java.lang.String)">SnapshotUpdate</a></code></span></div>
<div class="block">Set a summary property in the snapshot produced by this update.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>property</code> - a String property name</dd>
<dd><code>value</code> - a String property value</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
</dl>
</li>
</ul>
<a id="writeSpec()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>writeSpec</h4>
<pre class="methodSignature">protected&nbsp;<a href="PartitionSpec.html" title="class in org.apache.iceberg">PartitionSpec</a>&nbsp;writeSpec()</pre>
</li>
</ul>
<a id="rowFilter()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rowFilter</h4>
<pre class="methodSignature">protected&nbsp;<a href="expressions/Expression.html" title="interface in org.apache.iceberg.expressions">Expression</a>&nbsp;rowFilter()</pre>
</li>
</ul>
<a id="addedFiles()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addedFiles</h4>
<pre class="methodSignature">protected&nbsp;java.util.List&lt;<a href="DataFile.html" title="interface in org.apache.iceberg">DataFile</a>&gt;&nbsp;addedFiles()</pre>
</li>
</ul>
<a id="failAnyDelete()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>failAnyDelete</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;failAnyDelete()</pre>
</li>
</ul>
<a id="failMissingDeletePaths()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>failMissingDeletePaths</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;failMissingDeletePaths()</pre>
</li>
</ul>
<a id="deleteByRowFilter(org.apache.iceberg.expressions.Expression)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>deleteByRowFilter</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;deleteByRowFilter&#8203;(<a href="expressions/Expression.html" title="interface in org.apache.iceberg.expressions">Expression</a>&nbsp;expr)</pre>
<div class="block">Add a filter to match files to delete. A file will be deleted if all of the rows it contains
match this or any other filter passed to this method.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>expr</code> - an expression to match rows.</dd>
</dl>
</li>
</ul>
<a id="dropPartition(int,org.apache.iceberg.StructLike)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>dropPartition</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;dropPartition&#8203;(int&nbsp;specId,
<a href="StructLike.html" title="interface in org.apache.iceberg">StructLike</a>&nbsp;partition)</pre>
<div class="block">Add a partition tuple to drop from the table during the delete phase.</div>
</li>
</ul>
<a id="delete(org.apache.iceberg.DataFile)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>delete</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;delete&#8203;(<a href="DataFile.html" title="interface in org.apache.iceberg">DataFile</a>&nbsp;file)</pre>
<div class="block">Add a specific data file to be deleted in the new snapshot.</div>
</li>
</ul>
<a id="delete(org.apache.iceberg.DeleteFile)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>delete</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;delete&#8203;(<a href="DeleteFile.html" title="interface in org.apache.iceberg">DeleteFile</a>&nbsp;file)</pre>
<div class="block">Add a specific delete file to be deleted in the new snapshot.</div>
</li>
</ul>
<a id="delete(java.lang.CharSequence)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>delete</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;delete&#8203;(java.lang.CharSequence&nbsp;path)</pre>
<div class="block">Add a specific data path to be deleted in the new snapshot.</div>
</li>
</ul>
<a id="add(org.apache.iceberg.DataFile)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>add</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;add&#8203;(<a href="DataFile.html" title="interface in org.apache.iceberg">DataFile</a>&nbsp;file)</pre>
<div class="block">Add a data file to the new snapshot.</div>
</li>
</ul>
<a id="add(org.apache.iceberg.DeleteFile)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>add</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;add&#8203;(<a href="DeleteFile.html" title="interface in org.apache.iceberg">DeleteFile</a>&nbsp;file)</pre>
<div class="block">Add a delete file to the new snapshot.</div>
</li>
</ul>
<a id="add(org.apache.iceberg.ManifestFile)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>add</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;add&#8203;(<a href="ManifestFile.html" title="interface in org.apache.iceberg">ManifestFile</a>&nbsp;manifest)</pre>
<div class="block">Add all files in a manifest to the new snapshot.</div>
</li>
</ul>
<a id="validateAddedDataFiles(org.apache.iceberg.TableMetadata,java.lang.Long,org.apache.iceberg.expressions.Expression,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateAddedDataFiles</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;validateAddedDataFiles&#8203;(<a href="TableMetadata.html" title="class in org.apache.iceberg">TableMetadata</a>&nbsp;base,
java.lang.Long&nbsp;startingSnapshotId,
<a href="expressions/Expression.html" title="interface in org.apache.iceberg.expressions">Expression</a>&nbsp;conflictDetectionFilter,
boolean&nbsp;caseSensitive)</pre>
<div class="block">Validates that no files matching a filter have been added to the table since a starting snapshot.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>base</code> - table metadata to validate</dd>
<dd><code>startingSnapshotId</code> - id of the snapshot current at the start of the operation</dd>
<dd><code>conflictDetectionFilter</code> - an expression used to find new conflicting data files</dd>
<dd><code>caseSensitive</code> - whether expression evaluation should be case sensitive</dd>
</dl>
</li>
</ul>
<a id="validateNoNewDeletesForDataFiles(org.apache.iceberg.TableMetadata,java.lang.Long,java.lang.Iterable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateNoNewDeletesForDataFiles</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;validateNoNewDeletesForDataFiles&#8203;(<a href="TableMetadata.html" title="class in org.apache.iceberg">TableMetadata</a>&nbsp;base,
java.lang.Long&nbsp;startingSnapshotId,
java.lang.Iterable&lt;<a href="DataFile.html" title="interface in org.apache.iceberg">DataFile</a>&gt;&nbsp;dataFiles)</pre>
<div class="block">Validates that no new delete files that must be applied to the given data files have been added to the table since
a starting snapshot.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>base</code> - table metadata to validate</dd>
<dd><code>startingSnapshotId</code> - id of the snapshot current at the start of the operation</dd>
<dd><code>dataFiles</code> - data files to validate have no new row deletes</dd>
</dl>
</li>
</ul>
<a id="validateNoNewDeletesForDataFiles(org.apache.iceberg.TableMetadata,java.lang.Long,org.apache.iceberg.expressions.Expression,java.lang.Iterable,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateNoNewDeletesForDataFiles</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;validateNoNewDeletesForDataFiles&#8203;(<a href="TableMetadata.html" title="class in org.apache.iceberg">TableMetadata</a>&nbsp;base,
java.lang.Long&nbsp;startingSnapshotId,
<a href="expressions/Expression.html" title="interface in org.apache.iceberg.expressions">Expression</a>&nbsp;dataFilter,
java.lang.Iterable&lt;<a href="DataFile.html" title="interface in org.apache.iceberg">DataFile</a>&gt;&nbsp;dataFiles,
boolean&nbsp;caseSensitive)</pre>
<div class="block">Validates that no new delete files that must be applied to the given data files have been added to the table since
a starting snapshot.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>base</code> - table metadata to validate</dd>
<dd><code>startingSnapshotId</code> - id of the snapshot current at the start of the operation</dd>
<dd><code>dataFilter</code> - a data filter</dd>
<dd><code>dataFiles</code> - data files to validate have no new row deletes</dd>
<dd><code>caseSensitive</code> - whether expression binding should be case-sensitive</dd>
</dl>
</li>
</ul>
<a id="validateNoNewDeleteFiles(org.apache.iceberg.TableMetadata,java.lang.Long,org.apache.iceberg.expressions.Expression,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateNoNewDeleteFiles</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;validateNoNewDeleteFiles&#8203;(<a href="TableMetadata.html" title="class in org.apache.iceberg">TableMetadata</a>&nbsp;base,
java.lang.Long&nbsp;startingSnapshotId,
<a href="expressions/Expression.html" title="interface in org.apache.iceberg.expressions">Expression</a>&nbsp;dataFilter,
boolean&nbsp;caseSensitive)</pre>
<div class="block">Validates that no delete files matching a filter have been added to the table since a starting snapshot.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>base</code> - table metadata to validate</dd>
<dd><code>startingSnapshotId</code> - id of the snapshot current at the start of the operation</dd>
<dd><code>dataFilter</code> - an expression used to find new conflicting delete files</dd>
<dd><code>caseSensitive</code> - whether expression evaluation should be case-sensitive</dd>
</dl>
</li>
</ul>
<a id="validateDataFilesExist(org.apache.iceberg.TableMetadata,java.lang.Long,org.apache.iceberg.util.CharSequenceSet,boolean,org.apache.iceberg.expressions.Expression)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateDataFilesExist</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;validateDataFilesExist&#8203;(<a href="TableMetadata.html" title="class in org.apache.iceberg">TableMetadata</a>&nbsp;base,
java.lang.Long&nbsp;startingSnapshotId,
<a href="util/CharSequenceSet.html" title="class in org.apache.iceberg.util">CharSequenceSet</a>&nbsp;requiredDataFiles,
boolean&nbsp;skipDeletes,
<a href="expressions/Expression.html" title="interface in org.apache.iceberg.expressions">Expression</a>&nbsp;conflictDetectionFilter)</pre>
</li>
</ul>
<a id="summary()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>summary</h4>
<pre class="methodSignature">protected&nbsp;java.util.Map&lt;java.lang.String,&#8203;java.lang.String&gt;&nbsp;summary()</pre>
</li>
</ul>
<a id="apply(org.apache.iceberg.TableMetadata)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>apply</h4>
<pre class="methodSignature">public&nbsp;java.util.List&lt;<a href="ManifestFile.html" title="interface in org.apache.iceberg">ManifestFile</a>&gt;&nbsp;apply&#8203;(<a href="TableMetadata.html" title="class in org.apache.iceberg">TableMetadata</a>&nbsp;base)</pre>
<div class="block">Apply the update's changes to the base table metadata and return the new manifest list.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>base</code> - the base table metadata to apply changes to</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a manifest list for the new snapshot.</dd>
</dl>
</li>
</ul>
<a id="cleanUncommitted(java.util.Set)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>cleanUncommitted</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;cleanUncommitted&#8203;(java.util.Set&lt;<a href="ManifestFile.html" title="interface in org.apache.iceberg">ManifestFile</a>&gt;&nbsp;committed)</pre>
<div class="block">Clean up any uncommitted manifests that were created.
<p>
Manifests may not be committed if apply is called more because a commit conflict has occurred.
Implementations may keep around manifests because the same changes will be made by both apply
calls. This method instructs the implementation to clean up those manifests and passes the
paths of the manifests that were actually committed.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>committed</code> - a set of manifest paths that were actually committed</dd>
</dl>
</li>
</ul>
<a id="stageOnly()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>stageOnly</h4>
<pre class="methodSignature">public&nbsp;ThisT&nbsp;stageOnly()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SnapshotUpdate.html#stageOnly()">SnapshotUpdate</a></code></span></div>
<div class="block">Called to stage a snapshot in table metadata, but not update the current snapshot id.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SnapshotUpdate.html#stageOnly()">stageOnly</a></code>&nbsp;in interface&nbsp;<code><a href="SnapshotUpdate.html" title="interface in org.apache.iceberg">SnapshotUpdate</a>&lt;ThisT&gt;</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
</dl>
</li>
</ul>
<a id="deleteWith(java.util.function.Consumer)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>deleteWith</h4>
<pre class="methodSignature">public&nbsp;ThisT&nbsp;deleteWith&#8203;(java.util.function.Consumer&lt;java.lang.String&gt;&nbsp;deleteCallback)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SnapshotUpdate.html#deleteWith(java.util.function.Consumer)">SnapshotUpdate</a></code></span></div>
<div class="block">Set a callback to delete files instead of the table's default.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SnapshotUpdate.html#deleteWith(java.util.function.Consumer)">deleteWith</a></code>&nbsp;in interface&nbsp;<code><a href="SnapshotUpdate.html" title="interface in org.apache.iceberg">SnapshotUpdate</a>&lt;ThisT&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>deleteCallback</code> - a String consumer used to delete locations.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
</dl>
</li>
</ul>
<a id="current()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>current</h4>
<pre class="methodSignature">protected&nbsp;<a href="TableMetadata.html" title="class in org.apache.iceberg">TableMetadata</a>&nbsp;current()</pre>
</li>
</ul>
<a id="refresh()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>refresh</h4>
<pre class="methodSignature">protected&nbsp;<a href="TableMetadata.html" title="class in org.apache.iceberg">TableMetadata</a>&nbsp;refresh()</pre>
</li>
</ul>
<a id="commit()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>commit</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;commit()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="PendingUpdate.html#commit()">PendingUpdate</a></code></span></div>
<div class="block">Apply the pending changes and commit.
<p>
Changes are committed by calling the underlying table's commit method.
<p>
Once the commit is successful, the updated table will be refreshed.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="PendingUpdate.html#commit()">commit</a></code>&nbsp;in interface&nbsp;<code><a href="PendingUpdate.html" title="interface in org.apache.iceberg">PendingUpdate</a>&lt;ThisT&gt;</code></dd>
</dl>
</li>
</ul>
<a id="cleanAll()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>cleanAll</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;cleanAll()</pre>
</li>
</ul>
<a id="deleteFile(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>deleteFile</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;deleteFile&#8203;(java.lang.String&nbsp;path)</pre>
</li>
</ul>
<a id="manifestListPath()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>manifestListPath</h4>
<pre class="methodSignature">protected&nbsp;<a href="io/OutputFile.html" title="interface in org.apache.iceberg.io">OutputFile</a>&nbsp;manifestListPath()</pre>
</li>
</ul>
<a id="newManifestOutput()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newManifestOutput</h4>
<pre class="methodSignature">protected&nbsp;<a href="io/OutputFile.html" title="interface in org.apache.iceberg.io">OutputFile</a>&nbsp;newManifestOutput()</pre>
</li>
</ul>
<a id="newManifestWriter(org.apache.iceberg.PartitionSpec)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newManifestWriter</h4>
<pre class="methodSignature">protected&nbsp;<a href="ManifestWriter.html" title="class in org.apache.iceberg">ManifestWriter</a>&lt;<a href="DataFile.html" title="interface in org.apache.iceberg">DataFile</a>&gt;&nbsp;newManifestWriter&#8203;(<a href="PartitionSpec.html" title="class in org.apache.iceberg">PartitionSpec</a>&nbsp;spec)</pre>
</li>
</ul>
<a id="newDeleteManifestWriter(org.apache.iceberg.PartitionSpec)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newDeleteManifestWriter</h4>
<pre class="methodSignature">protected&nbsp;<a href="ManifestWriter.html" title="class in org.apache.iceberg">ManifestWriter</a>&lt;<a href="DeleteFile.html" title="interface in org.apache.iceberg">DeleteFile</a>&gt;&nbsp;newDeleteManifestWriter&#8203;(<a href="PartitionSpec.html" title="class in org.apache.iceberg">PartitionSpec</a>&nbsp;spec)</pre>
</li>
</ul>
<a id="newManifestReader(org.apache.iceberg.ManifestFile)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newManifestReader</h4>
<pre class="methodSignature">protected&nbsp;<a href="ManifestReader.html" title="class in org.apache.iceberg">ManifestReader</a>&lt;<a href="DataFile.html" title="interface in org.apache.iceberg">DataFile</a>&gt;&nbsp;newManifestReader&#8203;(<a href="ManifestFile.html" title="interface in org.apache.iceberg">ManifestFile</a>&nbsp;manifest)</pre>
</li>
</ul>
<a id="newDeleteManifestReader(org.apache.iceberg.ManifestFile)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newDeleteManifestReader</h4>
<pre class="methodSignature">protected&nbsp;<a href="ManifestReader.html" title="class in org.apache.iceberg">ManifestReader</a>&lt;<a href="DeleteFile.html" title="interface in org.apache.iceberg">DeleteFile</a>&gt;&nbsp;newDeleteManifestReader&#8203;(<a href="ManifestFile.html" title="interface in org.apache.iceberg">ManifestFile</a>&nbsp;manifest)</pre>
</li>
</ul>
<a id="snapshotId()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>snapshotId</h4>
<pre class="methodSignature">protected&nbsp;long&nbsp;snapshotId()</pre>
</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>