blob: edbd0c5537e7f5ba6618aab23ce5c2dfd4364a17 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>SnapshotUtil</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.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="SnapshotUtil";
}
}
catch(err) {
}
//-->
var data = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9,"i11":9,"i12":9,"i13":9,"i14":9,"i15":9,"i16":9,"i17":9,"i18":9,"i19":9,"i20":9,"i21":9,"i22":9,"i23":9,"i24":9,"i25":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static 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.util</a></div>
<h2 title="Class SnapshotUtil" class="title">Class SnapshotUtil</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.iceberg.util.SnapshotUtil</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<pre>public class <span class="typeNameLabel">SnapshotUtil</span>
extends java.lang.Object</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="t1" class="tableTab"><span><a href="javascript:show(1);">Static 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>static java.util.List&lt;java.lang.Long&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ancestorIds(org.apache.iceberg.Snapshot,java.util.function.Function)">ancestorIds</a></span>&#8203;(<a href="../Snapshot.html" title="interface in org.apache.iceberg">Snapshot</a>&nbsp;snapshot,
java.util.function.Function&lt;java.lang.Long,&#8203;<a href="../Snapshot.html" title="interface in org.apache.iceberg">Snapshot</a>&gt;&nbsp;lookup)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static java.lang.Iterable&lt;java.lang.Long&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ancestorIdsBetween(long,java.lang.Long,java.util.function.Function)">ancestorIdsBetween</a></span>&#8203;(long&nbsp;latestSnapshotId,
java.lang.Long&nbsp;oldestSnapshotId,
java.util.function.Function&lt;java.lang.Long,&#8203;<a href="../Snapshot.html" title="interface in org.apache.iceberg">Snapshot</a>&gt;&nbsp;lookup)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static java.lang.Iterable&lt;<a href="../Snapshot.html" title="interface in org.apache.iceberg">Snapshot</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ancestorsBetween(long,java.lang.Long,java.util.function.Function)">ancestorsBetween</a></span>&#8203;(long&nbsp;latestSnapshotId,
java.lang.Long&nbsp;oldestSnapshotId,
java.util.function.Function&lt;java.lang.Long,&#8203;<a href="../Snapshot.html" title="interface in org.apache.iceberg">Snapshot</a>&gt;&nbsp;lookup)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>static java.lang.Iterable&lt;<a href="../Snapshot.html" title="interface in org.apache.iceberg">Snapshot</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ancestorsBetween(org.apache.iceberg.Table,long,java.lang.Long)">ancestorsBetween</a></span>&#8203;(<a href="../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table,
long&nbsp;latestSnapshotId,
java.lang.Long&nbsp;oldestSnapshotId)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>static java.lang.Iterable&lt;<a href="../Snapshot.html" title="interface in org.apache.iceberg">Snapshot</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ancestorsOf(long,java.util.function.Function)">ancestorsOf</a></span>&#8203;(long&nbsp;snapshotId,
java.util.function.Function&lt;java.lang.Long,&#8203;<a href="../Snapshot.html" title="interface in org.apache.iceberg">Snapshot</a>&gt;&nbsp;lookup)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>static java.util.List&lt;java.lang.Long&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#currentAncestorIds(org.apache.iceberg.Table)">currentAncestorIds</a></span>&#8203;(<a href="../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table)</code></th>
<td class="colLast">
<div class="block">Return the snapshot IDs for the ancestors of the current table state.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>static java.lang.Iterable&lt;<a href="../Snapshot.html" title="interface in org.apache.iceberg">Snapshot</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#currentAncestors(org.apache.iceberg.Table)">currentAncestors</a></span>&#8203;(<a href="../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table)</code></th>
<td class="colLast">
<div class="block">Returns an iterable that traverses the table's snapshots from the current to the last known
ancestor.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isAncestorOf(long,long,java.util.function.Function)">isAncestorOf</a></span>&#8203;(long&nbsp;snapshotId,
long&nbsp;ancestorSnapshotId,
java.util.function.Function&lt;java.lang.Long,&#8203;<a href="../Snapshot.html" title="interface in org.apache.iceberg">Snapshot</a>&gt;&nbsp;lookup)</code></th>
<td class="colLast">
<div class="block">Returns whether ancestorSnapshotId is an ancestor of snapshotId using the given lookup
function.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isAncestorOf(org.apache.iceberg.Table,long)">isAncestorOf</a></span>&#8203;(<a href="../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table,
long&nbsp;ancestorSnapshotId)</code></th>
<td class="colLast">
<div class="block">Returns whether ancestorSnapshotId is an ancestor of the table's current state.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isAncestorOf(org.apache.iceberg.Table,long,long)">isAncestorOf</a></span>&#8203;(<a href="../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table,
long&nbsp;snapshotId,
long&nbsp;ancestorSnapshotId)</code></th>
<td class="colLast">
<div class="block">Returns whether ancestorSnapshotId is an ancestor of snapshotId.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isParentAncestorOf(org.apache.iceberg.Table,long,long)">isParentAncestorOf</a></span>&#8203;(<a href="../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table,
long&nbsp;snapshotId,
long&nbsp;ancestorParentSnapshotId)</code></th>
<td class="colLast">
<div class="block">Returns whether some ancestor of snapshotId has parentId matches ancestorParentSnapshotId</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>static <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="#latestSnapshot(org.apache.iceberg.TableMetadata,java.lang.String)">latestSnapshot</a></span>&#8203;(<a href="../TableMetadata.html" title="class in org.apache.iceberg">TableMetadata</a>&nbsp;metadata,
java.lang.String&nbsp;branch)</code></th>
<td class="colLast">
<div class="block">Fetch the snapshot at the head of the given branch in the given table.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>static <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="#latestSnapshot(org.apache.iceberg.Table,java.lang.String)">latestSnapshot</a></span>&#8203;(<a href="../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table,
java.lang.String&nbsp;branch)</code></th>
<td class="colLast">
<div class="block">Fetch the snapshot at the head of the given branch in the given table.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>static 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="#newFiles(java.lang.Long,long,java.util.function.Function,org.apache.iceberg.io.FileIO)">newFiles</a></span>&#8203;(java.lang.Long&nbsp;baseSnapshotId,
long&nbsp;latestSnapshotId,
java.util.function.Function&lt;java.lang.Long,&#8203;<a href="../Snapshot.html" title="interface in org.apache.iceberg">Snapshot</a>&gt;&nbsp;lookup,
<a href="../io/FileIO.html" title="interface in org.apache.iceberg.io">FileIO</a>&nbsp;io)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>static java.lang.Long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#nullableSnapshotIdAsOfTime(org.apache.iceberg.Table,long)">nullableSnapshotIdAsOfTime</a></span>&#8203;(<a href="../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table,
long&nbsp;timestampMillis)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>static <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="#oldestAncestor(org.apache.iceberg.Table)">oldestAncestor</a></span>&#8203;(<a href="../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table)</code></th>
<td class="colLast">
<div class="block">Traverses the history of the table's current snapshot and finds the oldest Snapshot.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>static <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="#oldestAncestorAfter(org.apache.iceberg.Table,long)">oldestAncestorAfter</a></span>&#8203;(<a href="../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table,
long&nbsp;timestampMillis)</code></th>
<td class="colLast">
<div class="block">Traverses the history of the table's current snapshot, finds the oldest snapshot that was
committed either at or after a given time.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>static <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="#oldestAncestorOf(long,java.util.function.Function)">oldestAncestorOf</a></span>&#8203;(long&nbsp;snapshotId,
java.util.function.Function&lt;java.lang.Long,&#8203;<a href="../Snapshot.html" title="interface in org.apache.iceberg">Snapshot</a>&gt;&nbsp;lookup)</code></th>
<td class="colLast">
<div class="block">Traverses the history and finds the oldest ancestor of the specified snapshot.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>static <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="#oldestAncestorOf(org.apache.iceberg.Table,long)">oldestAncestorOf</a></span>&#8203;(<a href="../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table,
long&nbsp;snapshotId)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>static <a href="../Schema.html" title="class in org.apache.iceberg">Schema</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#schemaFor(org.apache.iceberg.TableMetadata,java.lang.String)">schemaFor</a></span>&#8203;(<a href="../TableMetadata.html" title="class in org.apache.iceberg">TableMetadata</a>&nbsp;metadata,
java.lang.String&nbsp;branch)</code></th>
<td class="colLast">
<div class="block">Return the schema of the snapshot at a given branch.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>static <a href="../Schema.html" title="class in org.apache.iceberg">Schema</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#schemaFor(org.apache.iceberg.Table,long)">schemaFor</a></span>&#8203;(<a href="../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table,
long&nbsp;snapshotId)</code></th>
<td class="colLast">
<div class="block">Returns the schema of the table for the specified snapshot.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>static <a href="../Schema.html" title="class in org.apache.iceberg">Schema</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#schemaFor(org.apache.iceberg.Table,java.lang.Long,java.lang.Long)">schemaFor</a></span>&#8203;(<a href="../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table,
java.lang.Long&nbsp;snapshotId,
java.lang.Long&nbsp;timestampMillis)</code></th>
<td class="colLast">
<div class="block">Convenience method for returning the schema of the table for a snapshot, when we have a
snapshot id or a timestamp.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>static <a href="../Schema.html" title="class in org.apache.iceberg">Schema</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#schemaFor(org.apache.iceberg.Table,java.lang.String)">schemaFor</a></span>&#8203;(<a href="../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table,
java.lang.String&nbsp;branch)</code></th>
<td class="colLast">
<div class="block">Return the schema of the snapshot at a given branch.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>static <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="#snapshotAfter(org.apache.iceberg.Table,long)">snapshotAfter</a></span>&#8203;(<a href="../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table,
long&nbsp;snapshotId)</code></th>
<td class="colLast">
<div class="block">Traverses the history of the table's current snapshot and finds the snapshot with the given
snapshot id as its parent.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#snapshotIdAsOfTime(org.apache.iceberg.Table,long)">snapshotIdAsOfTime</a></span>&#8203;(<a href="../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table,
long&nbsp;timestampMillis)</code></th>
<td class="colLast">
<div class="block">Returns the ID of the most recent snapshot for the table as of the timestamp.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>static java.util.List&lt;java.lang.Long&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#snapshotIdsBetween(org.apache.iceberg.Table,long,long)">snapshotIdsBetween</a></span>&#8203;(<a href="../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table,
long&nbsp;fromSnapshotId,
long&nbsp;toSnapshotId)</code></th>
<td class="colLast">
<div class="block">Returns list of snapshot ids in the range - (fromSnapshotId, toSnapshotId]</div>
</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>
</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="isAncestorOf(org.apache.iceberg.Table,long,long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isAncestorOf</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;isAncestorOf&#8203;(<a href="../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table,
long&nbsp;snapshotId,
long&nbsp;ancestorSnapshotId)</pre>
<div class="block">Returns whether ancestorSnapshotId is an ancestor of snapshotId.</div>
</li>
</ul>
<a id="isAncestorOf(long,long,java.util.function.Function)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isAncestorOf</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;isAncestorOf&#8203;(long&nbsp;snapshotId,
long&nbsp;ancestorSnapshotId,
java.util.function.Function&lt;java.lang.Long,&#8203;<a href="../Snapshot.html" title="interface in org.apache.iceberg">Snapshot</a>&gt;&nbsp;lookup)</pre>
<div class="block">Returns whether ancestorSnapshotId is an ancestor of snapshotId using the given lookup
function.</div>
</li>
</ul>
<a id="isAncestorOf(org.apache.iceberg.Table,long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isAncestorOf</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;isAncestorOf&#8203;(<a href="../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table,
long&nbsp;ancestorSnapshotId)</pre>
<div class="block">Returns whether ancestorSnapshotId is an ancestor of the table's current state.</div>
</li>
</ul>
<a id="isParentAncestorOf(org.apache.iceberg.Table,long,long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isParentAncestorOf</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;isParentAncestorOf&#8203;(<a href="../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table,
long&nbsp;snapshotId,
long&nbsp;ancestorParentSnapshotId)</pre>
<div class="block">Returns whether some ancestor of snapshotId has parentId matches ancestorParentSnapshotId</div>
</li>
</ul>
<a id="currentAncestors(org.apache.iceberg.Table)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>currentAncestors</h4>
<pre class="methodSignature">public static&nbsp;java.lang.Iterable&lt;<a href="../Snapshot.html" title="interface in org.apache.iceberg">Snapshot</a>&gt;&nbsp;currentAncestors&#8203;(<a href="../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table)</pre>
<div class="block">Returns an iterable that traverses the table's snapshots from the current to the last known
ancestor.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>table</code> - a Table</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an iterable from the table's current snapshot to its last known ancestor</dd>
</dl>
</li>
</ul>
<a id="currentAncestorIds(org.apache.iceberg.Table)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>currentAncestorIds</h4>
<pre class="methodSignature">public static&nbsp;java.util.List&lt;java.lang.Long&gt;&nbsp;currentAncestorIds&#8203;(<a href="../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table)</pre>
<div class="block">Return the snapshot IDs for the ancestors of the current table state.
<p>Ancestor IDs are ordered by commit time, descending. The first ID is the current snapshot,
followed by its parent, and so on.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>table</code> - a <a href="../Table.html" title="interface in org.apache.iceberg"><code>Table</code></a></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a set of snapshot IDs of the known ancestor snapshots, including the current ID</dd>
</dl>
</li>
</ul>
<a id="oldestAncestor(org.apache.iceberg.Table)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>oldestAncestor</h4>
<pre class="methodSignature">public static&nbsp;<a href="../Snapshot.html" title="interface in org.apache.iceberg">Snapshot</a>&nbsp;oldestAncestor&#8203;(<a href="../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table)</pre>
<div class="block">Traverses the history of the table's current snapshot and finds the oldest Snapshot.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>null if there is no current snapshot in the table, else the oldest Snapshot.</dd>
</dl>
</li>
</ul>
<a id="oldestAncestorOf(org.apache.iceberg.Table,long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>oldestAncestorOf</h4>
<pre class="methodSignature">public static&nbsp;<a href="../Snapshot.html" title="interface in org.apache.iceberg">Snapshot</a>&nbsp;oldestAncestorOf&#8203;(<a href="../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table,
long&nbsp;snapshotId)</pre>
</li>
</ul>
<a id="oldestAncestorOf(long,java.util.function.Function)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>oldestAncestorOf</h4>
<pre class="methodSignature">public static&nbsp;<a href="../Snapshot.html" title="interface in org.apache.iceberg">Snapshot</a>&nbsp;oldestAncestorOf&#8203;(long&nbsp;snapshotId,
java.util.function.Function&lt;java.lang.Long,&#8203;<a href="../Snapshot.html" title="interface in org.apache.iceberg">Snapshot</a>&gt;&nbsp;lookup)</pre>
<div class="block">Traverses the history and finds the oldest ancestor of the specified snapshot.
<p>Oldest ancestor is defined as the ancestor snapshot whose parent is null or has been
expired. If the specified snapshot has no parent or parent has been expired, the specified
snapshot itself is returned.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>snapshotId</code> - the ID of the snapshot to find the oldest ancestor</dd>
<dd><code>lookup</code> - lookup function from snapshot ID to snapshot</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>null if there is no current snapshot in the table, else the oldest Snapshot.</dd>
</dl>
</li>
</ul>
<a id="ancestorsOf(long,java.util.function.Function)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ancestorsOf</h4>
<pre class="methodSignature">public static&nbsp;java.lang.Iterable&lt;<a href="../Snapshot.html" title="interface in org.apache.iceberg">Snapshot</a>&gt;&nbsp;ancestorsOf&#8203;(long&nbsp;snapshotId,
java.util.function.Function&lt;java.lang.Long,&#8203;<a href="../Snapshot.html" title="interface in org.apache.iceberg">Snapshot</a>&gt;&nbsp;lookup)</pre>
</li>
</ul>
<a id="oldestAncestorAfter(org.apache.iceberg.Table,long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>oldestAncestorAfter</h4>
<pre class="methodSignature">public static&nbsp;<a href="../Snapshot.html" title="interface in org.apache.iceberg">Snapshot</a>&nbsp;oldestAncestorAfter&#8203;(<a href="../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table,
long&nbsp;timestampMillis)</pre>
<div class="block">Traverses the history of the table's current snapshot, finds the oldest snapshot that was
committed either at or after a given time.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>table</code> - a table</dd>
<dd><code>timestampMillis</code> - a timestamp in milliseconds</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the first snapshot after the given timestamp, or null if the current snapshot is older
than the timestamp</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalStateException</code> - if the first ancestor after the given time can't be determined</dd>
</dl>
</li>
</ul>
<a id="snapshotIdsBetween(org.apache.iceberg.Table,long,long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>snapshotIdsBetween</h4>
<pre class="methodSignature">public static&nbsp;java.util.List&lt;java.lang.Long&gt;&nbsp;snapshotIdsBetween&#8203;(<a href="../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table,
long&nbsp;fromSnapshotId,
long&nbsp;toSnapshotId)</pre>
<div class="block">Returns list of snapshot ids in the range - (fromSnapshotId, toSnapshotId]
<p>This method assumes that fromSnapshotId is an ancestor of toSnapshotId.</div>
</li>
</ul>
<a id="ancestorIdsBetween(long,java.lang.Long,java.util.function.Function)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ancestorIdsBetween</h4>
<pre class="methodSignature">public static&nbsp;java.lang.Iterable&lt;java.lang.Long&gt;&nbsp;ancestorIdsBetween&#8203;(long&nbsp;latestSnapshotId,
java.lang.Long&nbsp;oldestSnapshotId,
java.util.function.Function&lt;java.lang.Long,&#8203;<a href="../Snapshot.html" title="interface in org.apache.iceberg">Snapshot</a>&gt;&nbsp;lookup)</pre>
</li>
</ul>
<a id="ancestorsBetween(org.apache.iceberg.Table,long,java.lang.Long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ancestorsBetween</h4>
<pre class="methodSignature">public static&nbsp;java.lang.Iterable&lt;<a href="../Snapshot.html" title="interface in org.apache.iceberg">Snapshot</a>&gt;&nbsp;ancestorsBetween&#8203;(<a href="../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table,
long&nbsp;latestSnapshotId,
java.lang.Long&nbsp;oldestSnapshotId)</pre>
</li>
</ul>
<a id="ancestorsBetween(long,java.lang.Long,java.util.function.Function)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ancestorsBetween</h4>
<pre class="methodSignature">public static&nbsp;java.lang.Iterable&lt;<a href="../Snapshot.html" title="interface in org.apache.iceberg">Snapshot</a>&gt;&nbsp;ancestorsBetween&#8203;(long&nbsp;latestSnapshotId,
java.lang.Long&nbsp;oldestSnapshotId,
java.util.function.Function&lt;java.lang.Long,&#8203;<a href="../Snapshot.html" title="interface in org.apache.iceberg">Snapshot</a>&gt;&nbsp;lookup)</pre>
</li>
</ul>
<a id="ancestorIds(org.apache.iceberg.Snapshot,java.util.function.Function)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ancestorIds</h4>
<pre class="methodSignature">public static&nbsp;java.util.List&lt;java.lang.Long&gt;&nbsp;ancestorIds&#8203;(<a href="../Snapshot.html" title="interface in org.apache.iceberg">Snapshot</a>&nbsp;snapshot,
java.util.function.Function&lt;java.lang.Long,&#8203;<a href="../Snapshot.html" title="interface in org.apache.iceberg">Snapshot</a>&gt;&nbsp;lookup)</pre>
</li>
</ul>
<a id="newFiles(java.lang.Long,long,java.util.function.Function,org.apache.iceberg.io.FileIO)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newFiles</h4>
<pre class="methodSignature">public static&nbsp;java.util.List&lt;<a href="../DataFile.html" title="interface in org.apache.iceberg">DataFile</a>&gt;&nbsp;newFiles&#8203;(java.lang.Long&nbsp;baseSnapshotId,
long&nbsp;latestSnapshotId,
java.util.function.Function&lt;java.lang.Long,&#8203;<a href="../Snapshot.html" title="interface in org.apache.iceberg">Snapshot</a>&gt;&nbsp;lookup,
<a href="../io/FileIO.html" title="interface in org.apache.iceberg.io">FileIO</a>&nbsp;io)</pre>
</li>
</ul>
<a id="snapshotAfter(org.apache.iceberg.Table,long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>snapshotAfter</h4>
<pre class="methodSignature">public static&nbsp;<a href="../Snapshot.html" title="interface in org.apache.iceberg">Snapshot</a>&nbsp;snapshotAfter&#8203;(<a href="../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table,
long&nbsp;snapshotId)</pre>
<div class="block">Traverses the history of the table's current snapshot and finds the snapshot with the given
snapshot id as its parent.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the snapshot for which the given snapshot is the parent</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - when the given snapshotId is not found in the table</dd>
<dd><code>java.lang.IllegalStateException</code> - when the given snapshotId is not an ancestor of the current table
state</dd>
</dl>
</li>
</ul>
<a id="snapshotIdAsOfTime(org.apache.iceberg.Table,long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>snapshotIdAsOfTime</h4>
<pre class="methodSignature">public static&nbsp;long&nbsp;snapshotIdAsOfTime&#8203;(<a href="../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table,
long&nbsp;timestampMillis)</pre>
<div class="block">Returns the ID of the most recent snapshot for the table as of the timestamp.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>table</code> - a <a href="../Table.html" title="interface in org.apache.iceberg"><code>Table</code></a></dd>
<dd><code>timestampMillis</code> - the timestamp in millis since the Unix epoch</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the snapshot ID</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - when no snapshot is found in the table older than the
timestamp</dd>
</dl>
</li>
</ul>
<a id="nullableSnapshotIdAsOfTime(org.apache.iceberg.Table,long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nullableSnapshotIdAsOfTime</h4>
<pre class="methodSignature">public static&nbsp;java.lang.Long&nbsp;nullableSnapshotIdAsOfTime&#8203;(<a href="../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table,
long&nbsp;timestampMillis)</pre>
</li>
</ul>
<a id="schemaFor(org.apache.iceberg.Table,long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>schemaFor</h4>
<pre class="methodSignature">public static&nbsp;<a href="../Schema.html" title="class in org.apache.iceberg">Schema</a>&nbsp;schemaFor&#8203;(<a href="../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table,
long&nbsp;snapshotId)</pre>
<div class="block">Returns the schema of the table for the specified snapshot.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>table</code> - a <a href="../Table.html" title="interface in org.apache.iceberg"><code>Table</code></a></dd>
<dd><code>snapshotId</code> - the ID of the snapshot</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the schema</dd>
</dl>
</li>
</ul>
<a id="schemaFor(org.apache.iceberg.Table,java.lang.Long,java.lang.Long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>schemaFor</h4>
<pre class="methodSignature">public static&nbsp;<a href="../Schema.html" title="class in org.apache.iceberg">Schema</a>&nbsp;schemaFor&#8203;(<a href="../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table,
java.lang.Long&nbsp;snapshotId,
java.lang.Long&nbsp;timestampMillis)</pre>
<div class="block">Convenience method for returning the schema of the table for a snapshot, when we have a
snapshot id or a timestamp. Only one of them should be specified (non-null), or an
IllegalArgumentException is thrown.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>table</code> - a <a href="../Table.html" title="interface in org.apache.iceberg"><code>Table</code></a></dd>
<dd><code>snapshotId</code> - the ID of the snapshot</dd>
<dd><code>timestampMillis</code> - the timestamp in millis since the Unix epoch</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the schema</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if both snapshotId and timestampMillis are non-null</dd>
</dl>
</li>
</ul>
<a id="schemaFor(org.apache.iceberg.Table,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>schemaFor</h4>
<pre class="methodSignature">public static&nbsp;<a href="../Schema.html" title="class in org.apache.iceberg">Schema</a>&nbsp;schemaFor&#8203;(<a href="../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table,
java.lang.String&nbsp;branch)</pre>
<div class="block">Return the schema of the snapshot at a given branch.
<p>If branch does not exist, the table schema is returned because it will be the schema when
the new branch is created.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>table</code> - a <a href="../Table.html" title="interface in org.apache.iceberg"><code>Table</code></a></dd>
<dd><code>branch</code> - branch name of the table (nullable)</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>schema of the specific snapshot at the given branch</dd>
</dl>
</li>
</ul>
<a id="schemaFor(org.apache.iceberg.TableMetadata,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>schemaFor</h4>
<pre class="methodSignature">public static&nbsp;<a href="../Schema.html" title="class in org.apache.iceberg">Schema</a>&nbsp;schemaFor&#8203;(<a href="../TableMetadata.html" title="class in org.apache.iceberg">TableMetadata</a>&nbsp;metadata,
java.lang.String&nbsp;branch)</pre>
<div class="block">Return the schema of the snapshot at a given branch.
<p>If branch does not exist, the table schema is returned because it will be the schema when
the new branch is created.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>metadata</code> - a <a href="../TableMetadata.html" title="class in org.apache.iceberg"><code>TableMetadata</code></a></dd>
<dd><code>branch</code> - branch name of the table (nullable)</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>schema of the specific snapshot at the given branch</dd>
</dl>
</li>
</ul>
<a id="latestSnapshot(org.apache.iceberg.Table,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>latestSnapshot</h4>
<pre class="methodSignature">public static&nbsp;<a href="../Snapshot.html" title="interface in org.apache.iceberg">Snapshot</a>&nbsp;latestSnapshot&#8203;(<a href="../Table.html" title="interface in org.apache.iceberg">Table</a>&nbsp;table,
java.lang.String&nbsp;branch)</pre>
<div class="block">Fetch the snapshot at the head of the given branch in the given table.
<p>This method calls <a href="../Table.html#currentSnapshot()"><code>Table.currentSnapshot()</code></a> instead of using branch API <a href="../Table.html#snapshot(java.lang.String)"><code>Table.snapshot(String)</code></a> for the main branch so that existing code still goes through the old
code path to ensure backwards compatibility.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>table</code> - a <a href="../Table.html" title="interface in org.apache.iceberg"><code>Table</code></a></dd>
<dd><code>branch</code> - branch name of the table (nullable)</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the latest snapshot for the given branch</dd>
</dl>
</li>
</ul>
<a id="latestSnapshot(org.apache.iceberg.TableMetadata,java.lang.String)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>latestSnapshot</h4>
<pre class="methodSignature">public static&nbsp;<a href="../Snapshot.html" title="interface in org.apache.iceberg">Snapshot</a>&nbsp;latestSnapshot&#8203;(<a href="../TableMetadata.html" title="class in org.apache.iceberg">TableMetadata</a>&nbsp;metadata,
java.lang.String&nbsp;branch)</pre>
<div class="block">Fetch the snapshot at the head of the given branch in the given table.
<p>This method calls <a href="../TableMetadata.html#currentSnapshot()"><code>TableMetadata.currentSnapshot()</code></a> instead of using branch API <a href="../TableMetadata.html#ref(java.lang.String)"><code>TableMetadata.ref(String)</code></a>} for the main branch so that existing code still goes through the
old code path to ensure backwards compatibility.
<p>If branch does not exist, the table's latest snapshot is returned it will be the schema when
the new branch is created.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>metadata</code> - a <a href="../TableMetadata.html" title="class in org.apache.iceberg"><code>TableMetadata</code></a></dd>
<dd><code>branch</code> - branch name of the table metadata (nullable)</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the latest snapshot for the given branch</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>