blob: e2d14d0728155cad816d94800ec15751c24ab495 [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>ViewOperations</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="ViewOperations";
}
}
catch(err) {
}
//-->
var methods = {"i0":6,"i1":6,"i2":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract 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/view/ViewMetadataParser.html" title="class in org.apache.iceberg.view"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/iceberg/view/ViewProperties.html" title="class in org.apache.iceberg.view"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/iceberg/view/ViewOperations.html" target="_top">Frames</a></li>
<li><a href="ViewOperations.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.iceberg.view</div>
<h2 title="Interface ViewOperations" class="title">Interface ViewOperations</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../../../../org/apache/iceberg/view/BaseViewOperations.html" title="class in org.apache.iceberg.view">BaseViewOperations</a>, <a href="../../../../org/apache/iceberg/jdbc/JdbcViewOperations.html" title="class in org.apache.iceberg.jdbc">JdbcViewOperations</a>, <a href="../../../../org/apache/iceberg/nessie/NessieViewOperations.html" title="class in org.apache.iceberg.nessie">NessieViewOperations</a></dd>
</dl>
<hr>
<br>
<pre>public interface <span class="typeNameLabel">ViewOperations</span></pre>
<div class="block">SPI interface to abstract view metadata access and updates.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></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/view/ViewOperations.html#commit-org.apache.iceberg.view.ViewMetadata-org.apache.iceberg.view.ViewMetadata-">commit</a></span>(<a href="../../../../org/apache/iceberg/view/ViewMetadata.html" title="interface in org.apache.iceberg.view">ViewMetadata</a>&nbsp;base,
<a href="../../../../org/apache/iceberg/view/ViewMetadata.html" title="interface in org.apache.iceberg.view">ViewMetadata</a>&nbsp;metadata)</code>
<div class="block">Replace the base view metadata with a new version.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/iceberg/view/ViewMetadata.html" title="interface in org.apache.iceberg.view">ViewMetadata</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/view/ViewOperations.html#current--">current</a></span>()</code>
<div class="block">Return the currently loaded view metadata, without checking for updates.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/iceberg/view/ViewMetadata.html" title="interface in org.apache.iceberg.view">ViewMetadata</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/iceberg/view/ViewOperations.html#refresh--">refresh</a></span>()</code>
<div class="block">Return the current view metadata after checking for updates.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="current--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>current</h4>
<pre><a href="../../../../org/apache/iceberg/view/ViewMetadata.html" title="interface in org.apache.iceberg.view">ViewMetadata</a>&nbsp;current()</pre>
<div class="block">Return the currently loaded view metadata, without checking for updates.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>view metadata</dd>
</dl>
</li>
</ul>
<a name="refresh--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>refresh</h4>
<pre><a href="../../../../org/apache/iceberg/view/ViewMetadata.html" title="interface in org.apache.iceberg.view">ViewMetadata</a>&nbsp;refresh()</pre>
<div class="block">Return the current view metadata after checking for updates.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>view metadata</dd>
</dl>
</li>
</ul>
<a name="commit-org.apache.iceberg.view.ViewMetadata-org.apache.iceberg.view.ViewMetadata-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>commit</h4>
<pre>void&nbsp;commit(<a href="../../../../org/apache/iceberg/view/ViewMetadata.html" title="interface in org.apache.iceberg.view">ViewMetadata</a>&nbsp;base,
<a href="../../../../org/apache/iceberg/view/ViewMetadata.html" title="interface in org.apache.iceberg.view">ViewMetadata</a>&nbsp;metadata)</pre>
<div class="block">Replace the base view 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 should 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. An unknown state indicates to downstream users of this API that it
is not safe to perform clean up and remove any files. In general, strict metadata cleanup will
only trigger cleanups when the commit fails with an exception implementing the marker interface
<a href="../../../../org/apache/iceberg/exceptions/CleanableFailure.html" title="interface in org.apache.iceberg.exceptions"><code>CleanableFailure</code></a>. All other exceptions will be treated as
if the commit has failed.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>base</code> - view metadata on which changes were based</dd>
<dd><code>metadata</code> - new view metadata with updates</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/view/ViewMetadataParser.html" title="class in org.apache.iceberg.view"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/iceberg/view/ViewProperties.html" title="class in org.apache.iceberg.view"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/iceberg/view/ViewOperations.html" target="_top">Frames</a></li>
<li><a href="ViewOperations.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>