blob: 471b78d0643b7f4ced8e5298fc1f24b9aaa56979 [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>CreateChangelogViewProcedure</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="CreateChangelogViewProcedure";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":9,"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};
var tabs = {65535:["t0","All Methods"],1:["t1","Static 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/spark/procedures/AncestorsOfProcedure.html" title="class in org.apache.iceberg.spark.procedures"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/iceberg/spark/procedures/ExpireSnapshotsProcedure.html" title="class in org.apache.iceberg.spark.procedures"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/iceberg/spark/procedures/CreateChangelogViewProcedure.html" target="_top">Frames</a></li>
<li><a href="CreateChangelogViewProcedure.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><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&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><a href="#field.detail">Field</a>&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.spark.procedures</div>
<h2 title="Class CreateChangelogViewProcedure" class="title">Class CreateChangelogViewProcedure</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.iceberg.spark.procedures.CreateChangelogViewProcedure</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../../org/apache/spark/sql/connector/iceberg/catalog/Procedure.html" title="interface in org.apache.spark.sql.connector.iceberg.catalog">Procedure</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">CreateChangelogViewProcedure</span>
extends java.lang.Object</pre>
<div class="block">A procedure that creates a view for changed rows.
<p>The procedure always removes the carry-over rows. Please query <a href="../../../../../org/apache/iceberg/spark/source/SparkChangelogTable.html" title="class in org.apache.iceberg.spark.source"><code>SparkChangelogTable</code></a>
instead when carry-over rows are required.
<p>The procedure doesn't compute the pre/post update images by default. If you want to compute
them, you can set "compute_updates" to be true in the options.
<p>Carry-over rows are the result of a removal and insertion of the same row within an operation
because of the copy-on-write mechanism. For example, given a file which contains row1 (id=1,
data='a') and row2 (id=2, data='b'). A copy-on-write delete of row2 would require erasing this
file and preserving row1 in a new file. The changelog table would report this as (id=1, data='a',
op='DELETE') and (id=1, data='a', op='INSERT'), despite it not being an actual change to the
table. The procedure finds the carry-over rows and removes them from the result.
<p>Pre/post update images are converted from a pair of a delete row and an insert row. Identifier
columns are used for determining whether an insert and a delete record refer to the same row. If
the two records share the same values for the identity columns they are considered to be before
and after states of the same row. You can either set identifier fields in the table schema or
input them as the procedure parameters. Here is an example of pre/post update images with an
identifier column(id). A pair of a delete row and an insert row with the same id:
<ul>
<li>(id=1, data='a', op='DELETE')
<li>(id=1, data='b', op='INSERT')
</ul>
<p>will be marked as pre/post update images:
<ul>
<li>(id=1, data='a', op='UPDATE_BEFORE')
<li>(id=1, data='b', op='UPDATE_AFTER')
</ul></div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink">org.apache.iceberg.spark.procedures.BaseProcedure.Builder&lt;T extends org.apache.iceberg.spark.procedures.BaseProcedure&gt;</span></code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected static org.apache.spark.sql.types.DataType</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/iceberg/spark/procedures/CreateChangelogViewProcedure.html#STRING_ARRAY">STRING_ARRAY</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected static org.apache.spark.sql.types.DataType</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/iceberg/spark/procedures/CreateChangelogViewProcedure.html#STRING_MAP">STRING_MAP</a></span></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="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></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>protected <a href="../../../../../org/apache/iceberg/spark/actions/SparkActions.html" title="class in org.apache.iceberg.spark.actions">SparkActions</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/iceberg/spark/procedures/CreateChangelogViewProcedure.html#actions--">actions</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/iceberg/spark/procedures/SparkProcedures.ProcedureBuilder.html" title="interface in org.apache.iceberg.spark.procedures">SparkProcedures.ProcedureBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/iceberg/spark/procedures/CreateChangelogViewProcedure.html#builder--">builder</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>org.apache.spark.sql.catalyst.InternalRow[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/iceberg/spark/procedures/CreateChangelogViewProcedure.html#call-org.apache.spark.sql.catalyst.InternalRow-">call</a></span>(org.apache.spark.sql.catalyst.InternalRow&nbsp;args)</code>
<div class="block">Executes this procedure.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/iceberg/spark/procedures/CreateChangelogViewProcedure.html#closeService--">closeService</a></span>()</code>
<div class="block">Closes this procedure's executor service if a new one was created with <code>BaseProcedure.executorService(int, String)</code>.</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/spark/procedures/CreateChangelogViewProcedure.html#description--">description</a></span>()</code>
<div class="block">Returns the description of this procedure.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>protected java.util.concurrent.ExecutorService</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/iceberg/spark/procedures/CreateChangelogViewProcedure.html#executorService-int-java.lang.String-">executorService</a></span>(int&nbsp;threadPoolSize,
java.lang.String&nbsp;nameFormat)</code>
<div class="block">Starts a new executor service which can be used by this procedure in its work.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>protected <a href="../../../../../org/apache/iceberg/expressions/Expression.html" title="interface in org.apache.iceberg.expressions">Expression</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/iceberg/spark/procedures/CreateChangelogViewProcedure.html#filterExpression-org.apache.spark.sql.connector.catalog.Identifier-java.lang.String-">filterExpression</a></span>(org.apache.spark.sql.connector.catalog.Identifier&nbsp;ident,
java.lang.String&nbsp;where)</code>&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>protected org.apache.spark.sql.Dataset&lt;org.apache.spark.sql.Row&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/iceberg/spark/procedures/CreateChangelogViewProcedure.html#loadRows-org.apache.spark.sql.connector.catalog.Identifier-java.util.Map-">loadRows</a></span>(org.apache.spark.sql.connector.catalog.Identifier&nbsp;tableIdent,
java.util.Map&lt;java.lang.String,java.lang.String&gt;&nbsp;options)</code>&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>protected <a href="../../../../../org/apache/iceberg/spark/source/SparkTable.html" title="class in org.apache.iceberg.spark.source">SparkTable</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/iceberg/spark/procedures/CreateChangelogViewProcedure.html#loadSparkTable-org.apache.spark.sql.connector.catalog.Identifier-">loadSparkTable</a></span>(org.apache.spark.sql.connector.catalog.Identifier&nbsp;ident)</code>&nbsp;</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>protected &lt;T&gt;&nbsp;T</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/iceberg/spark/procedures/CreateChangelogViewProcedure.html#modifyIcebergTable-org.apache.spark.sql.connector.catalog.Identifier-java.util.function.Function-">modifyIcebergTable</a></span>(org.apache.spark.sql.connector.catalog.Identifier&nbsp;ident,
java.util.function.Function&lt;<a href="../../../../../org/apache/iceberg/Table.html" title="interface in org.apache.iceberg">Table</a>,T&gt;&nbsp;func)</code>&nbsp;</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>protected org.apache.spark.sql.catalyst.InternalRow</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/iceberg/spark/procedures/CreateChangelogViewProcedure.html#newInternalRow-java.lang.Object...-">newInternalRow</a></span>(java.lang.Object...&nbsp;values)</code>&nbsp;</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>org.apache.spark.sql.types.StructType</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/iceberg/spark/procedures/CreateChangelogViewProcedure.html#outputType--">outputType</a></span>()</code>
<div class="block">Returns the type of rows produced by this procedure.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/spark/sql/connector/iceberg/catalog/ProcedureParameter.html" title="interface in org.apache.spark.sql.connector.iceberg.catalog">ProcedureParameter</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/iceberg/spark/procedures/CreateChangelogViewProcedure.html#parameters--">parameters</a></span>()</code>
<div class="block">Returns the input parameters of this procedure.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/iceberg/spark/procedures/CreateChangelogViewProcedure.html#refreshSparkCache-org.apache.spark.sql.connector.catalog.Identifier-org.apache.spark.sql.connector.catalog.Table-">refreshSparkCache</a></span>(org.apache.spark.sql.connector.catalog.Identifier&nbsp;ident,
org.apache.spark.sql.connector.catalog.Table&nbsp;table)</code>&nbsp;</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>protected org.apache.spark.sql.SparkSession</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/iceberg/spark/procedures/CreateChangelogViewProcedure.html#spark--">spark</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>protected org.apache.spark.sql.connector.catalog.TableCatalog</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/iceberg/spark/procedures/CreateChangelogViewProcedure.html#tableCatalog--">tableCatalog</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>protected <a href="../../../../../org/apache/iceberg/spark/Spark3Util.CatalogAndIdentifier.html" title="class in org.apache.iceberg.spark">Spark3Util.CatalogAndIdentifier</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/iceberg/spark/procedures/CreateChangelogViewProcedure.html#toCatalogAndIdentifier-java.lang.String-java.lang.String-org.apache.spark.sql.connector.catalog.CatalogPlugin-">toCatalogAndIdentifier</a></span>(java.lang.String&nbsp;identifierAsString,
java.lang.String&nbsp;argName,
org.apache.spark.sql.connector.catalog.CatalogPlugin&nbsp;catalog)</code>&nbsp;</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>protected org.apache.spark.sql.connector.catalog.Identifier</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/iceberg/spark/procedures/CreateChangelogViewProcedure.html#toIdentifier-java.lang.String-java.lang.String-">toIdentifier</a></span>(java.lang.String&nbsp;identifierAsString,
java.lang.String&nbsp;argName)</code>&nbsp;</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>protected &lt;T&gt;&nbsp;T</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/iceberg/spark/procedures/CreateChangelogViewProcedure.html#withIcebergTable-org.apache.spark.sql.connector.catalog.Identifier-java.util.function.Function-">withIcebergTable</a></span>(org.apache.spark.sql.connector.catalog.Identifier&nbsp;ident,
java.util.function.Function&lt;<a href="../../../../../org/apache/iceberg/Table.html" title="interface in org.apache.iceberg">Table</a>,T&gt;&nbsp;func)</code>&nbsp;</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>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="STRING_MAP">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>STRING_MAP</h4>
<pre>protected static final&nbsp;org.apache.spark.sql.types.DataType STRING_MAP</pre>
</li>
</ul>
<a name="STRING_ARRAY">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>STRING_ARRAY</h4>
<pre>protected static final&nbsp;org.apache.spark.sql.types.DataType STRING_ARRAY</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="builder--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>builder</h4>
<pre>public static&nbsp;<a href="../../../../../org/apache/iceberg/spark/procedures/SparkProcedures.ProcedureBuilder.html" title="interface in org.apache.iceberg.spark.procedures">SparkProcedures.ProcedureBuilder</a>&nbsp;builder()</pre>
</li>
</ul>
<a name="parameters--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>parameters</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/spark/sql/connector/iceberg/catalog/ProcedureParameter.html" title="interface in org.apache.spark.sql.connector.iceberg.catalog">ProcedureParameter</a>[]&nbsp;parameters()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/spark/sql/connector/iceberg/catalog/Procedure.html#parameters--">Procedure</a></code></span></div>
<div class="block">Returns the input parameters of this procedure.</div>
</li>
</ul>
<a name="outputType--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>outputType</h4>
<pre>public&nbsp;org.apache.spark.sql.types.StructType&nbsp;outputType()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/spark/sql/connector/iceberg/catalog/Procedure.html#outputType--">Procedure</a></code></span></div>
<div class="block">Returns the type of rows produced by this procedure.</div>
</li>
</ul>
<a name="call-org.apache.spark.sql.catalyst.InternalRow-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>call</h4>
<pre>public&nbsp;org.apache.spark.sql.catalyst.InternalRow[]&nbsp;call(org.apache.spark.sql.catalyst.InternalRow&nbsp;args)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/spark/sql/connector/iceberg/catalog/Procedure.html#call-org.apache.spark.sql.catalyst.InternalRow-">Procedure</a></code></span></div>
<div class="block">Executes this procedure.
<p>Spark will align the provided arguments according to the input parameters defined in <a href="../../../../../org/apache/spark/sql/connector/iceberg/catalog/Procedure.html#parameters--"><code>Procedure.parameters()</code></a> either by position or by name before execution.
<p>Implementations may provide a summary of execution by returning one or many rows as a
result. The schema of output rows must match the defined output type in <a href="../../../../../org/apache/spark/sql/connector/iceberg/catalog/Procedure.html#outputType--"><code>Procedure.outputType()</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>args</code> - input arguments</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the result of executing this procedure with the given arguments</dd>
</dl>
</li>
</ul>
<a name="description--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>description</h4>
<pre>public&nbsp;java.lang.String&nbsp;description()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/spark/sql/connector/iceberg/catalog/Procedure.html#description--">Procedure</a></code></span></div>
<div class="block">Returns the description of this procedure.</div>
</li>
</ul>
<a name="spark--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>spark</h4>
<pre>protected&nbsp;org.apache.spark.sql.SparkSession&nbsp;spark()</pre>
</li>
</ul>
<a name="actions--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>actions</h4>
<pre>protected&nbsp;<a href="../../../../../org/apache/iceberg/spark/actions/SparkActions.html" title="class in org.apache.iceberg.spark.actions">SparkActions</a>&nbsp;actions()</pre>
</li>
</ul>
<a name="tableCatalog--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>tableCatalog</h4>
<pre>protected&nbsp;org.apache.spark.sql.connector.catalog.TableCatalog&nbsp;tableCatalog()</pre>
</li>
</ul>
<a name="modifyIcebergTable-org.apache.spark.sql.connector.catalog.Identifier-java.util.function.Function-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>modifyIcebergTable</h4>
<pre>protected&nbsp;&lt;T&gt;&nbsp;T&nbsp;modifyIcebergTable(org.apache.spark.sql.connector.catalog.Identifier&nbsp;ident,
java.util.function.Function&lt;<a href="../../../../../org/apache/iceberg/Table.html" title="interface in org.apache.iceberg">Table</a>,T&gt;&nbsp;func)</pre>
</li>
</ul>
<a name="withIcebergTable-org.apache.spark.sql.connector.catalog.Identifier-java.util.function.Function-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>withIcebergTable</h4>
<pre>protected&nbsp;&lt;T&gt;&nbsp;T&nbsp;withIcebergTable(org.apache.spark.sql.connector.catalog.Identifier&nbsp;ident,
java.util.function.Function&lt;<a href="../../../../../org/apache/iceberg/Table.html" title="interface in org.apache.iceberg">Table</a>,T&gt;&nbsp;func)</pre>
</li>
</ul>
<a name="toIdentifier-java.lang.String-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toIdentifier</h4>
<pre>protected&nbsp;org.apache.spark.sql.connector.catalog.Identifier&nbsp;toIdentifier(java.lang.String&nbsp;identifierAsString,
java.lang.String&nbsp;argName)</pre>
</li>
</ul>
<a name="toCatalogAndIdentifier-java.lang.String-java.lang.String-org.apache.spark.sql.connector.catalog.CatalogPlugin-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toCatalogAndIdentifier</h4>
<pre>protected&nbsp;<a href="../../../../../org/apache/iceberg/spark/Spark3Util.CatalogAndIdentifier.html" title="class in org.apache.iceberg.spark">Spark3Util.CatalogAndIdentifier</a>&nbsp;toCatalogAndIdentifier(java.lang.String&nbsp;identifierAsString,
java.lang.String&nbsp;argName,
org.apache.spark.sql.connector.catalog.CatalogPlugin&nbsp;catalog)</pre>
</li>
</ul>
<a name="loadSparkTable-org.apache.spark.sql.connector.catalog.Identifier-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>loadSparkTable</h4>
<pre>protected&nbsp;<a href="../../../../../org/apache/iceberg/spark/source/SparkTable.html" title="class in org.apache.iceberg.spark.source">SparkTable</a>&nbsp;loadSparkTable(org.apache.spark.sql.connector.catalog.Identifier&nbsp;ident)</pre>
</li>
</ul>
<a name="loadRows-org.apache.spark.sql.connector.catalog.Identifier-java.util.Map-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>loadRows</h4>
<pre>protected&nbsp;org.apache.spark.sql.Dataset&lt;org.apache.spark.sql.Row&gt;&nbsp;loadRows(org.apache.spark.sql.connector.catalog.Identifier&nbsp;tableIdent,
java.util.Map&lt;java.lang.String,java.lang.String&gt;&nbsp;options)</pre>
</li>
</ul>
<a name="refreshSparkCache-org.apache.spark.sql.connector.catalog.Identifier-org.apache.spark.sql.connector.catalog.Table-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>refreshSparkCache</h4>
<pre>protected&nbsp;void&nbsp;refreshSparkCache(org.apache.spark.sql.connector.catalog.Identifier&nbsp;ident,
org.apache.spark.sql.connector.catalog.Table&nbsp;table)</pre>
</li>
</ul>
<a name="filterExpression-org.apache.spark.sql.connector.catalog.Identifier-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>filterExpression</h4>
<pre>protected&nbsp;<a href="../../../../../org/apache/iceberg/expressions/Expression.html" title="interface in org.apache.iceberg.expressions">Expression</a>&nbsp;filterExpression(org.apache.spark.sql.connector.catalog.Identifier&nbsp;ident,
java.lang.String&nbsp;where)</pre>
</li>
</ul>
<a name="newInternalRow-java.lang.Object...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newInternalRow</h4>
<pre>protected&nbsp;org.apache.spark.sql.catalyst.InternalRow&nbsp;newInternalRow(java.lang.Object...&nbsp;values)</pre>
</li>
</ul>
<a name="closeService--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>closeService</h4>
<pre>protected&nbsp;void&nbsp;closeService()</pre>
<div class="block">Closes this procedure's executor service if a new one was created with <code>BaseProcedure.executorService(int, String)</code>. Does not block for any remaining tasks.</div>
</li>
</ul>
<a name="executorService-int-java.lang.String-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>executorService</h4>
<pre>protected&nbsp;java.util.concurrent.ExecutorService&nbsp;executorService(int&nbsp;threadPoolSize,
java.lang.String&nbsp;nameFormat)</pre>
<div class="block">Starts a new executor service which can be used by this procedure in its work. The pool will be
automatically shut down if <a href="../../../../../org/apache/iceberg/spark/procedures/CreateChangelogViewProcedure.html#withIcebergTable-org.apache.spark.sql.connector.catalog.Identifier-java.util.function.Function-"><code>withIcebergTable(Identifier, Function)</code></a> or <a href="../../../../../org/apache/iceberg/spark/procedures/CreateChangelogViewProcedure.html#modifyIcebergTable-org.apache.spark.sql.connector.catalog.Identifier-java.util.function.Function-"><code>modifyIcebergTable(Identifier, Function)</code></a> are called. If these methods are not used then the
service can be shut down with <a href="../../../../../org/apache/iceberg/spark/procedures/CreateChangelogViewProcedure.html#closeService--"><code>closeService()</code></a> or left to be closed when this class is
finalized.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>threadPoolSize</code> - number of threads in the service</dd>
<dd><code>nameFormat</code> - name prefix for threads created in this service</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the new executor service owned by this procedure</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/spark/procedures/AncestorsOfProcedure.html" title="class in org.apache.iceberg.spark.procedures"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/iceberg/spark/procedures/ExpireSnapshotsProcedure.html" title="class in org.apache.iceberg.spark.procedures"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/iceberg/spark/procedures/CreateChangelogViewProcedure.html" target="_top">Frames</a></li>
<li><a href="CreateChangelogViewProcedure.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><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&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><a href="#field.detail">Field</a>&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>