blob: ea3f0b8d25c84cf9a470d64ed2d6cded22e58299 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>StaticTableOperations</title>
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="StaticTableOperations";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":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";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../org/apache/iceberg/SplittableScanTask.html" title="interface in org.apache.iceberg"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../org/apache/iceberg/StatisticsFile.html" title="interface in org.apache.iceberg"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?org/apache/iceberg/StaticTableOperations.html" target="_top">Frames</a></li>
<li><a href="StaticTableOperations.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&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><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.iceberg</div>
<h2 title="Class StaticTableOperations" class="title">Class StaticTableOperations</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.iceberg.StaticTableOperations</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../org/apache/iceberg/TableOperations.html" title="interface in org.apache.iceberg">TableOperations</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">StaticTableOperations</span>
extends java.lang.Object
implements <a href="../../../org/apache/iceberg/TableOperations.html" title="interface in org.apache.iceberg">TableOperations</a></pre>
<div class="block">TableOperations implementation that provides access to metadata for a Table at some point in
time, using a table metadata location. It will never refer to a different Metadata object than
the one it was created with and cannot be used to create or delete files.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/iceberg/StaticTableOperations.html#StaticTableOperations-java.lang.String-org.apache.iceberg.io.FileIO-">StaticTableOperations</a></span>(java.lang.String&nbsp;metadataFileLocation,
<a href="../../../org/apache/iceberg/io/FileIO.html" title="interface in org.apache.iceberg.io">FileIO</a>&nbsp;io)</code>
<div class="block">Creates a StaticTableOperations tied to a specific static version of the TableMetadata</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/iceberg/StaticTableOperations.html#StaticTableOperations-java.lang.String-org.apache.iceberg.io.FileIO-org.apache.iceberg.io.LocationProvider-">StaticTableOperations</a></span>(java.lang.String&nbsp;metadataFileLocation,
<a href="../../../org/apache/iceberg/io/FileIO.html" title="interface in org.apache.iceberg.io">FileIO</a>&nbsp;io,
<a href="../../../org/apache/iceberg/io/LocationProvider.html" title="interface in org.apache.iceberg.io">LocationProvider</a>&nbsp;locationProvider)</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="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="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/iceberg/StaticTableOperations.html#commit-org.apache.iceberg.TableMetadata-org.apache.iceberg.TableMetadata-">commit</a></span>(<a href="../../../org/apache/iceberg/TableMetadata.html" title="class in org.apache.iceberg">TableMetadata</a>&nbsp;base,
<a href="../../../org/apache/iceberg/TableMetadata.html" title="class in org.apache.iceberg">TableMetadata</a>&nbsp;metadata)</code>
<div class="block">Replace the base table metadata with a new version.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="../../../org/apache/iceberg/TableMetadata.html" title="class in org.apache.iceberg">TableMetadata</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/iceberg/StaticTableOperations.html#current--">current</a></span>()</code>
<div class="block">Return the currently loaded table metadata, without checking for updates.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="../../../org/apache/iceberg/io/FileIO.html" title="interface in org.apache.iceberg.io">FileIO</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/iceberg/StaticTableOperations.html#io--">io</a></span>()</code>
<div class="block">Returns a <a href="../../../org/apache/iceberg/io/FileIO.html" title="interface in org.apache.iceberg.io"><code>FileIO</code></a> to read and write table data and metadata files.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../../../org/apache/iceberg/io/LocationProvider.html" title="interface in org.apache.iceberg.io">LocationProvider</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/iceberg/StaticTableOperations.html#locationProvider--">locationProvider</a></span>()</code>
<div class="block">Returns a <a href="../../../org/apache/iceberg/io/LocationProvider.html" title="interface in org.apache.iceberg.io"><code>LocationProvider</code></a> that supplies locations for new new data files.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/iceberg/StaticTableOperations.html#metadataFileLocation-java.lang.String-">metadataFileLocation</a></span>(java.lang.String&nbsp;fileName)</code>
<div class="block">Given the name of a metadata file, obtain the full path of that file using an appropriate base
location of the implementation's choosing.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="../../../org/apache/iceberg/TableMetadata.html" title="class in org.apache.iceberg">TableMetadata</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/iceberg/StaticTableOperations.html#refresh--">refresh</a></span>()</code>
<div class="block">StaticTableOperations works on the same version of TableMetadata, and it will never refer a
different TableMetadata object than the one it was created with.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="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 name="methods.inherited.from.class.org.apache.iceberg.TableOperations">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.iceberg.<a href="../../../org/apache/iceberg/TableOperations.html" title="interface in org.apache.iceberg">TableOperations</a></h3>
<code><a href="../../../org/apache/iceberg/TableOperations.html#encryption--">encryption</a>, <a href="../../../org/apache/iceberg/TableOperations.html#newSnapshotId--">newSnapshotId</a>, <a href="../../../org/apache/iceberg/TableOperations.html#temp-org.apache.iceberg.TableMetadata-">temp</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="StaticTableOperations-java.lang.String-org.apache.iceberg.io.FileIO-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>StaticTableOperations</h4>
<pre>public&nbsp;StaticTableOperations(java.lang.String&nbsp;metadataFileLocation,
<a href="../../../org/apache/iceberg/io/FileIO.html" title="interface in org.apache.iceberg.io">FileIO</a>&nbsp;io)</pre>
<div class="block">Creates a StaticTableOperations tied to a specific static version of the TableMetadata</div>
</li>
</ul>
<a name="StaticTableOperations-java.lang.String-org.apache.iceberg.io.FileIO-org.apache.iceberg.io.LocationProvider-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>StaticTableOperations</h4>
<pre>public&nbsp;StaticTableOperations(java.lang.String&nbsp;metadataFileLocation,
<a href="../../../org/apache/iceberg/io/FileIO.html" title="interface in org.apache.iceberg.io">FileIO</a>&nbsp;io,
<a href="../../../org/apache/iceberg/io/LocationProvider.html" title="interface in org.apache.iceberg.io">LocationProvider</a>&nbsp;locationProvider)</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="current--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>current</h4>
<pre>public&nbsp;<a href="../../../org/apache/iceberg/TableMetadata.html" title="class in org.apache.iceberg">TableMetadata</a>&nbsp;current()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../org/apache/iceberg/TableOperations.html#current--">TableOperations</a></code></span></div>
<div class="block">Return the currently loaded table metadata, without checking for updates.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../org/apache/iceberg/TableOperations.html#current--">current</a></code>&nbsp;in interface&nbsp;<code><a href="../../../org/apache/iceberg/TableOperations.html" title="interface in org.apache.iceberg">TableOperations</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>table metadata</dd>
</dl>
</li>
</ul>
<a name="refresh--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>refresh</h4>
<pre>public&nbsp;<a href="../../../org/apache/iceberg/TableMetadata.html" title="class in org.apache.iceberg">TableMetadata</a>&nbsp;refresh()</pre>
<div class="block">StaticTableOperations works on the same version of TableMetadata, and it will never refer a
different TableMetadata object than the one it was created with.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../org/apache/iceberg/TableOperations.html#refresh--">refresh</a></code>&nbsp;in interface&nbsp;<code><a href="../../../org/apache/iceberg/TableOperations.html" title="interface in org.apache.iceberg">TableOperations</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>always <a href="../../../org/apache/iceberg/StaticTableOperations.html#current--"><code>current()</code></a>.</dd>
</dl>
</li>
</ul>
<a name="commit-org.apache.iceberg.TableMetadata-org.apache.iceberg.TableMetadata-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>commit</h4>
<pre>public&nbsp;void&nbsp;commit(<a href="../../../org/apache/iceberg/TableMetadata.html" title="class in org.apache.iceberg">TableMetadata</a>&nbsp;base,
<a href="../../../org/apache/iceberg/TableMetadata.html" title="class in org.apache.iceberg">TableMetadata</a>&nbsp;metadata)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../org/apache/iceberg/TableOperations.html#commit-org.apache.iceberg.TableMetadata-org.apache.iceberg.TableMetadata-">TableOperations</a></code></span></div>
<div class="block">Replace the base table metadata with a new version.
<p>This method should implement and document atomicity guarantees.
<p>Implementations must check that the base metadata is current to avoid overwriting updates.
Once the atomic commit operation succeeds, implementations must not perform any operations that
may fail because failure in this method cannot be distinguished from commit failure.
<p>Implementations must throw a <a href="../../../org/apache/iceberg/exceptions/CommitStateUnknownException.html" title="class in org.apache.iceberg.exceptions"><code>CommitStateUnknownException</code></a> in cases where it cannot be
determined if the commit succeeded or failed. For example if a network partition causes the
confirmation of the commit to be lost, the implementation should throw a
CommitStateUnknownException. This is important because downstream users of this API need to
know whether they can clean up the commit or not, if the state is unknown then it is not safe
to remove any files. All other exceptions will be treated as if the commit has failed.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../org/apache/iceberg/TableOperations.html#commit-org.apache.iceberg.TableMetadata-org.apache.iceberg.TableMetadata-">commit</a></code>&nbsp;in interface&nbsp;<code><a href="../../../org/apache/iceberg/TableOperations.html" title="interface in org.apache.iceberg">TableOperations</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>base</code> - table metadata on which changes were based</dd>
<dd><code>metadata</code> - new table metadata with updates</dd>
</dl>
</li>
</ul>
<a name="io--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>io</h4>
<pre>public&nbsp;<a href="../../../org/apache/iceberg/io/FileIO.html" title="interface in org.apache.iceberg.io">FileIO</a>&nbsp;io()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../org/apache/iceberg/TableOperations.html#io--">TableOperations</a></code></span></div>
<div class="block">Returns a <a href="../../../org/apache/iceberg/io/FileIO.html" title="interface in org.apache.iceberg.io"><code>FileIO</code></a> to read and write table data and metadata files.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../org/apache/iceberg/TableOperations.html#io--">io</a></code>&nbsp;in interface&nbsp;<code><a href="../../../org/apache/iceberg/TableOperations.html" title="interface in org.apache.iceberg">TableOperations</a></code></dd>
</dl>
</li>
</ul>
<a name="metadataFileLocation-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>metadataFileLocation</h4>
<pre>public&nbsp;java.lang.String&nbsp;metadataFileLocation(java.lang.String&nbsp;fileName)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../org/apache/iceberg/TableOperations.html#metadataFileLocation-java.lang.String-">TableOperations</a></code></span></div>
<div class="block">Given the name of a metadata file, obtain the full path of that file using an appropriate base
location of the implementation's choosing.
<p>The file may not exist yet, in which case the path should be returned as if it were to be
created by e.g. <a href="../../../org/apache/iceberg/io/FileIO.html#newOutputFile-java.lang.String-"><code>FileIO.newOutputFile(String)</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../org/apache/iceberg/TableOperations.html#metadataFileLocation-java.lang.String-">metadataFileLocation</a></code>&nbsp;in interface&nbsp;<code><a href="../../../org/apache/iceberg/TableOperations.html" title="interface in org.apache.iceberg">TableOperations</a></code></dd>
</dl>
</li>
</ul>
<a name="locationProvider--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>locationProvider</h4>
<pre>public&nbsp;<a href="../../../org/apache/iceberg/io/LocationProvider.html" title="interface in org.apache.iceberg.io">LocationProvider</a>&nbsp;locationProvider()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../org/apache/iceberg/TableOperations.html#locationProvider--">TableOperations</a></code></span></div>
<div class="block">Returns a <a href="../../../org/apache/iceberg/io/LocationProvider.html" title="interface in org.apache.iceberg.io"><code>LocationProvider</code></a> that supplies locations for new new data files.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../org/apache/iceberg/TableOperations.html#locationProvider--">locationProvider</a></code>&nbsp;in interface&nbsp;<code><a href="../../../org/apache/iceberg/TableOperations.html" title="interface in org.apache.iceberg">TableOperations</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a location provider configured for the current table state</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../org/apache/iceberg/SplittableScanTask.html" title="interface in org.apache.iceberg"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../org/apache/iceberg/StatisticsFile.html" title="interface in org.apache.iceberg"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?org/apache/iceberg/StaticTableOperations.html" target="_top">Frames</a></li>
<li><a href="StaticTableOperations.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&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><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>