blob: 12e4191cc93519c9dfb3d689aadb1cb5b6d2e8f0 [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>UpdateSchema</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="UpdateSchema";
}
}
catch(err) {
}
//-->
var methods = {"i0":18,"i1":6,"i2":18,"i3":6,"i4":18,"i5":6,"i6":18,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":18,"i18":6,"i19":6,"i20":18,"i21":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default 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/UpdateProperties.html" title="interface in org.apache.iceberg"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li>Next&nbsp;Class</li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?org/apache/iceberg/UpdateSchema.html" target="_top">Frames</a></li>
<li><a href="UpdateSchema.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</div>
<h2 title="Interface UpdateSchema" class="title">Interface UpdateSchema</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd><a href="../../../org/apache/iceberg/PendingUpdate.html" title="interface in org.apache.iceberg">PendingUpdate</a>&lt;<a href="../../../org/apache/iceberg/Schema.html" title="class in org.apache.iceberg">Schema</a>&gt;</dd>
</dl>
<hr>
<br>
<pre>public interface <span class="typeNameLabel">UpdateSchema</span>
extends <a href="../../../org/apache/iceberg/PendingUpdate.html" title="interface in org.apache.iceberg">PendingUpdate</a>&lt;<a href="../../../org/apache/iceberg/Schema.html" title="class in org.apache.iceberg">Schema</a>&gt;</pre>
<div class="block">API for schema evolution.
<p>
When committing, these changes will be applied to the current table metadata. Commit conflicts
will not be resolved and will result in a <a href="../../../org/apache/iceberg/exceptions/CommitFailedException.html" title="class in org.apache.iceberg.exceptions"><code>CommitFailedException</code></a>.</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><span id="t5" class="tableTab"><span><a href="javascript:show(16);">Default 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>default <a href="../../../org/apache/iceberg/UpdateSchema.html" title="interface in org.apache.iceberg">UpdateSchema</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/iceberg/UpdateSchema.html#addColumn-java.lang.String-java.lang.String-org.apache.iceberg.types.Type-">addColumn</a></span>(java.lang.String&nbsp;parent,
java.lang.String&nbsp;name,
<a href="../../../org/apache/iceberg/types/Type.html" title="interface in org.apache.iceberg.types">Type</a>&nbsp;type)</code>
<div class="block">Add a new column to a nested struct.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="../../../org/apache/iceberg/UpdateSchema.html" title="interface in org.apache.iceberg">UpdateSchema</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/iceberg/UpdateSchema.html#addColumn-java.lang.String-java.lang.String-org.apache.iceberg.types.Type-java.lang.String-">addColumn</a></span>(java.lang.String&nbsp;parent,
java.lang.String&nbsp;name,
<a href="../../../org/apache/iceberg/types/Type.html" title="interface in org.apache.iceberg.types">Type</a>&nbsp;type,
java.lang.String&nbsp;doc)</code>
<div class="block">Add a new column to a nested struct.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>default <a href="../../../org/apache/iceberg/UpdateSchema.html" title="interface in org.apache.iceberg">UpdateSchema</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/iceberg/UpdateSchema.html#addColumn-java.lang.String-org.apache.iceberg.types.Type-">addColumn</a></span>(java.lang.String&nbsp;name,
<a href="../../../org/apache/iceberg/types/Type.html" title="interface in org.apache.iceberg.types">Type</a>&nbsp;type)</code>
<div class="block">Add a new top-level column.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../../../org/apache/iceberg/UpdateSchema.html" title="interface in org.apache.iceberg">UpdateSchema</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/iceberg/UpdateSchema.html#addColumn-java.lang.String-org.apache.iceberg.types.Type-java.lang.String-">addColumn</a></span>(java.lang.String&nbsp;name,
<a href="../../../org/apache/iceberg/types/Type.html" title="interface in org.apache.iceberg.types">Type</a>&nbsp;type,
java.lang.String&nbsp;doc)</code>
<div class="block">Add a new top-level column.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>default <a href="../../../org/apache/iceberg/UpdateSchema.html" title="interface in org.apache.iceberg">UpdateSchema</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/iceberg/UpdateSchema.html#addRequiredColumn-java.lang.String-java.lang.String-org.apache.iceberg.types.Type-">addRequiredColumn</a></span>(java.lang.String&nbsp;parent,
java.lang.String&nbsp;name,
<a href="../../../org/apache/iceberg/types/Type.html" title="interface in org.apache.iceberg.types">Type</a>&nbsp;type)</code>
<div class="block">Add a new required top-level column.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="../../../org/apache/iceberg/UpdateSchema.html" title="interface in org.apache.iceberg">UpdateSchema</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/iceberg/UpdateSchema.html#addRequiredColumn-java.lang.String-java.lang.String-org.apache.iceberg.types.Type-java.lang.String-">addRequiredColumn</a></span>(java.lang.String&nbsp;parent,
java.lang.String&nbsp;name,
<a href="../../../org/apache/iceberg/types/Type.html" title="interface in org.apache.iceberg.types">Type</a>&nbsp;type,
java.lang.String&nbsp;doc)</code>
<div class="block">Add a new required top-level column.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>default <a href="../../../org/apache/iceberg/UpdateSchema.html" title="interface in org.apache.iceberg">UpdateSchema</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/iceberg/UpdateSchema.html#addRequiredColumn-java.lang.String-org.apache.iceberg.types.Type-">addRequiredColumn</a></span>(java.lang.String&nbsp;name,
<a href="../../../org/apache/iceberg/types/Type.html" title="interface in org.apache.iceberg.types">Type</a>&nbsp;type)</code>
<div class="block">Add a new required top-level column.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="../../../org/apache/iceberg/UpdateSchema.html" title="interface in org.apache.iceberg">UpdateSchema</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/iceberg/UpdateSchema.html#addRequiredColumn-java.lang.String-org.apache.iceberg.types.Type-java.lang.String-">addRequiredColumn</a></span>(java.lang.String&nbsp;name,
<a href="../../../org/apache/iceberg/types/Type.html" title="interface in org.apache.iceberg.types">Type</a>&nbsp;type,
java.lang.String&nbsp;doc)</code>
<div class="block">Add a new required top-level column.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="../../../org/apache/iceberg/UpdateSchema.html" title="interface in org.apache.iceberg">UpdateSchema</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/iceberg/UpdateSchema.html#allowIncompatibleChanges--">allowIncompatibleChanges</a></span>()</code>
<div class="block">Allow incompatible changes to the schema.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="../../../org/apache/iceberg/UpdateSchema.html" title="interface in org.apache.iceberg">UpdateSchema</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/iceberg/UpdateSchema.html#deleteColumn-java.lang.String-">deleteColumn</a></span>(java.lang.String&nbsp;name)</code>
<div class="block">Delete a column in the schema.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="../../../org/apache/iceberg/UpdateSchema.html" title="interface in org.apache.iceberg">UpdateSchema</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/iceberg/UpdateSchema.html#makeColumnOptional-java.lang.String-">makeColumnOptional</a></span>(java.lang.String&nbsp;name)</code>
<div class="block">Update a column to optional.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="../../../org/apache/iceberg/UpdateSchema.html" title="interface in org.apache.iceberg">UpdateSchema</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/iceberg/UpdateSchema.html#moveAfter-java.lang.String-java.lang.String-">moveAfter</a></span>(java.lang.String&nbsp;name,
java.lang.String&nbsp;afterName)</code>
<div class="block">Move a column from its current position to directly after a reference column.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code><a href="../../../org/apache/iceberg/UpdateSchema.html" title="interface in org.apache.iceberg">UpdateSchema</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/iceberg/UpdateSchema.html#moveBefore-java.lang.String-java.lang.String-">moveBefore</a></span>(java.lang.String&nbsp;name,
java.lang.String&nbsp;beforeName)</code>
<div class="block">Move a column from its current position to directly before a reference column.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="../../../org/apache/iceberg/UpdateSchema.html" title="interface in org.apache.iceberg">UpdateSchema</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/iceberg/UpdateSchema.html#moveFirst-java.lang.String-">moveFirst</a></span>(java.lang.String&nbsp;name)</code>
<div class="block">Move a column from its current position to the start of the schema or its parent struct.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="../../../org/apache/iceberg/UpdateSchema.html" title="interface in org.apache.iceberg">UpdateSchema</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/iceberg/UpdateSchema.html#renameColumn-java.lang.String-java.lang.String-">renameColumn</a></span>(java.lang.String&nbsp;name,
java.lang.String&nbsp;newName)</code>
<div class="block">Rename a column in the schema.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code><a href="../../../org/apache/iceberg/UpdateSchema.html" title="interface in org.apache.iceberg">UpdateSchema</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/iceberg/UpdateSchema.html#requireColumn-java.lang.String-">requireColumn</a></span>(java.lang.String&nbsp;name)</code>
<div class="block">Update a column to required.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code><a href="../../../org/apache/iceberg/UpdateSchema.html" title="interface in org.apache.iceberg">UpdateSchema</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/iceberg/UpdateSchema.html#setIdentifierFields-java.util.Collection-">setIdentifierFields</a></span>(java.util.Collection&lt;java.lang.String&gt;&nbsp;names)</code>
<div class="block">Set the identifier fields given a set of field names.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>default <a href="../../../org/apache/iceberg/UpdateSchema.html" title="interface in org.apache.iceberg">UpdateSchema</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/iceberg/UpdateSchema.html#setIdentifierFields-java.lang.String...-">setIdentifierFields</a></span>(java.lang.String...&nbsp;names)</code>
<div class="block">Set the identifier fields given some field names.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code><a href="../../../org/apache/iceberg/UpdateSchema.html" title="interface in org.apache.iceberg">UpdateSchema</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/iceberg/UpdateSchema.html#unionByNameWith-org.apache.iceberg.Schema-">unionByNameWith</a></span>(<a href="../../../org/apache/iceberg/Schema.html" title="class in org.apache.iceberg">Schema</a>&nbsp;newSchema)</code>
<div class="block">Applies all field additions and updates from the provided new schema to the existing schema so
to create a union schema.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code><a href="../../../org/apache/iceberg/UpdateSchema.html" title="interface in org.apache.iceberg">UpdateSchema</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/iceberg/UpdateSchema.html#updateColumn-java.lang.String-org.apache.iceberg.types.Type.PrimitiveType-">updateColumn</a></span>(java.lang.String&nbsp;name,
<a href="../../../org/apache/iceberg/types/Type.PrimitiveType.html" title="class in org.apache.iceberg.types">Type.PrimitiveType</a>&nbsp;newType)</code>
<div class="block">Update a column in the schema to a new primitive type.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>default <a href="../../../org/apache/iceberg/UpdateSchema.html" title="interface in org.apache.iceberg">UpdateSchema</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/iceberg/UpdateSchema.html#updateColumn-java.lang.String-org.apache.iceberg.types.Type.PrimitiveType-java.lang.String-">updateColumn</a></span>(java.lang.String&nbsp;name,
<a href="../../../org/apache/iceberg/types/Type.PrimitiveType.html" title="class in org.apache.iceberg.types">Type.PrimitiveType</a>&nbsp;newType,
java.lang.String&nbsp;newDoc)</code>
<div class="block">Update a column in the schema to a new primitive type.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code><a href="../../../org/apache/iceberg/UpdateSchema.html" title="interface in org.apache.iceberg">UpdateSchema</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/iceberg/UpdateSchema.html#updateColumnDoc-java.lang.String-java.lang.String-">updateColumnDoc</a></span>(java.lang.String&nbsp;name,
java.lang.String&nbsp;newDoc)</code>
<div class="block">Update a column in the schema to a new primitive type.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.iceberg.PendingUpdate">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.iceberg.<a href="../../../org/apache/iceberg/PendingUpdate.html" title="interface in org.apache.iceberg">PendingUpdate</a></h3>
<code><a href="../../../org/apache/iceberg/PendingUpdate.html#apply--">apply</a>, <a href="../../../org/apache/iceberg/PendingUpdate.html#commit--">commit</a>, <a href="../../../org/apache/iceberg/PendingUpdate.html#updateEvent--">updateEvent</a></code></li>
</ul>
</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="allowIncompatibleChanges--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>allowIncompatibleChanges</h4>
<pre><a href="../../../org/apache/iceberg/UpdateSchema.html" title="interface in org.apache.iceberg">UpdateSchema</a>&nbsp;allowIncompatibleChanges()</pre>
<div class="block">Allow incompatible changes to the schema.
<p>
Incompatible changes can cause failures when attempting to read older data files. For example, adding a required
column and attempting to read data files without that column will cause a failure. However, if there are no data
files that are not compatible with the change, it can be allowed.
<p>
This option allows incompatible changes to be made to a schema. This should be used when the caller has validated
that the change will not break. For example, if a column is added as optional but always populated and data older
than the column addition has been deleted from the table, this can be used with <a href="../../../org/apache/iceberg/UpdateSchema.html#requireColumn-java.lang.String-"><code>requireColumn(String)</code></a> to
mark the column required.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
</dl>
</li>
</ul>
<a name="addColumn-java.lang.String-org.apache.iceberg.types.Type-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addColumn</h4>
<pre>default&nbsp;<a href="../../../org/apache/iceberg/UpdateSchema.html" title="interface in org.apache.iceberg">UpdateSchema</a>&nbsp;addColumn(java.lang.String&nbsp;name,
<a href="../../../org/apache/iceberg/types/Type.html" title="interface in org.apache.iceberg.types">Type</a>&nbsp;type)</pre>
<div class="block">Add a new top-level column.
<p>
Because "." may be interpreted as a column path separator or may be used in field names, it is
not allowed in names passed to this method. To add to nested structures or to add fields with
names that contain ".", use <a href="../../../org/apache/iceberg/UpdateSchema.html#addColumn-java.lang.String-java.lang.String-org.apache.iceberg.types.Type-"><code>addColumn(String, String, Type)</code></a>.
<p>
If type is a nested type, its field IDs are reassigned when added to the existing schema.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - name for the new column</dd>
<dd><code>type</code> - type for the new column</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - If name contains "."</dd>
</dl>
</li>
</ul>
<a name="addColumn-java.lang.String-org.apache.iceberg.types.Type-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addColumn</h4>
<pre><a href="../../../org/apache/iceberg/UpdateSchema.html" title="interface in org.apache.iceberg">UpdateSchema</a>&nbsp;addColumn(java.lang.String&nbsp;name,
<a href="../../../org/apache/iceberg/types/Type.html" title="interface in org.apache.iceberg.types">Type</a>&nbsp;type,
java.lang.String&nbsp;doc)</pre>
<div class="block">Add a new top-level column.
<p>
Because "." may be interpreted as a column path separator or may be used in field names, it is
not allowed in names passed to this method. To add to nested structures or to add fields with
names that contain ".", use <a href="../../../org/apache/iceberg/UpdateSchema.html#addColumn-java.lang.String-java.lang.String-org.apache.iceberg.types.Type-"><code>addColumn(String, String, Type)</code></a>.
<p>
If type is a nested type, its field IDs are reassigned when added to the existing schema.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - name for the new column</dd>
<dd><code>type</code> - type for the new column</dd>
<dd><code>doc</code> - documentation string for the new column</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - If name contains "."</dd>
</dl>
</li>
</ul>
<a name="addColumn-java.lang.String-java.lang.String-org.apache.iceberg.types.Type-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addColumn</h4>
<pre>default&nbsp;<a href="../../../org/apache/iceberg/UpdateSchema.html" title="interface in org.apache.iceberg">UpdateSchema</a>&nbsp;addColumn(java.lang.String&nbsp;parent,
java.lang.String&nbsp;name,
<a href="../../../org/apache/iceberg/types/Type.html" title="interface in org.apache.iceberg.types">Type</a>&nbsp;type)</pre>
<div class="block">Add a new column to a nested struct.
<p>
The parent name is used to find the parent using <a href="../../../org/apache/iceberg/Schema.html#findField-java.lang.String-"><code>Schema.findField(String)</code></a>. If the
parent name is null, the new column will be added to the root as a top-level column. If parent
identifies a struct, a new column is added to that struct. If it identifies a list, the column
is added to the list element struct, and if it identifies a map, the new column is added to
the map's value struct.
<p>
The given name is used to name the new column and names containing "." are not handled
differently.
<p>
If type is a nested type, its field IDs are reassigned when added to the existing schema.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>parent</code> - name of the parent struct to the column will be added to</dd>
<dd><code>name</code> - name for the new column</dd>
<dd><code>type</code> - type for the new column</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - If parent doesn't identify a struct</dd>
</dl>
</li>
</ul>
<a name="addColumn-java.lang.String-java.lang.String-org.apache.iceberg.types.Type-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addColumn</h4>
<pre><a href="../../../org/apache/iceberg/UpdateSchema.html" title="interface in org.apache.iceberg">UpdateSchema</a>&nbsp;addColumn(java.lang.String&nbsp;parent,
java.lang.String&nbsp;name,
<a href="../../../org/apache/iceberg/types/Type.html" title="interface in org.apache.iceberg.types">Type</a>&nbsp;type,
java.lang.String&nbsp;doc)</pre>
<div class="block">Add a new column to a nested struct.
<p>
The parent name is used to find the parent using <a href="../../../org/apache/iceberg/Schema.html#findField-java.lang.String-"><code>Schema.findField(String)</code></a>. If the
parent name is null, the new column will be added to the root as a top-level column. If parent
identifies a struct, a new column is added to that struct. If it identifies a list, the column
is added to the list element struct, and if it identifies a map, the new column is added to
the map's value struct.
<p>
The given name is used to name the new column and names containing "." are not handled
differently.
<p>
If type is a nested type, its field IDs are reassigned when added to the existing schema.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>parent</code> - name of the parent struct to the column will be added to</dd>
<dd><code>name</code> - name for the new column</dd>
<dd><code>type</code> - type for the new column</dd>
<dd><code>doc</code> - documentation string for the new column</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - If parent doesn't identify a struct</dd>
</dl>
</li>
</ul>
<a name="addRequiredColumn-java.lang.String-org.apache.iceberg.types.Type-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addRequiredColumn</h4>
<pre>default&nbsp;<a href="../../../org/apache/iceberg/UpdateSchema.html" title="interface in org.apache.iceberg">UpdateSchema</a>&nbsp;addRequiredColumn(java.lang.String&nbsp;name,
<a href="../../../org/apache/iceberg/types/Type.html" title="interface in org.apache.iceberg.types">Type</a>&nbsp;type)</pre>
<div class="block">Add a new required top-level column.
<p>
This is an incompatible change that can break reading older data. This method will result in an exception unless
<a href="../../../org/apache/iceberg/UpdateSchema.html#allowIncompatibleChanges--"><code>allowIncompatibleChanges()</code></a> has been called.
<p>
Because "." may be interpreted as a column path separator or may be used in field names, it is
not allowed in names passed to this method. To add to nested structures or to add fields with
names that contain ".", use <a href="../../../org/apache/iceberg/UpdateSchema.html#addRequiredColumn-java.lang.String-java.lang.String-org.apache.iceberg.types.Type-"><code>addRequiredColumn(String, String, Type)</code></a>.
<p>
If type is a nested type, its field IDs are reassigned when added to the existing schema.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - name for the new column</dd>
<dd><code>type</code> - type for the new column</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - If name contains "."</dd>
</dl>
</li>
</ul>
<a name="addRequiredColumn-java.lang.String-org.apache.iceberg.types.Type-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addRequiredColumn</h4>
<pre><a href="../../../org/apache/iceberg/UpdateSchema.html" title="interface in org.apache.iceberg">UpdateSchema</a>&nbsp;addRequiredColumn(java.lang.String&nbsp;name,
<a href="../../../org/apache/iceberg/types/Type.html" title="interface in org.apache.iceberg.types">Type</a>&nbsp;type,
java.lang.String&nbsp;doc)</pre>
<div class="block">Add a new required top-level column.
<p>
This is an incompatible change that can break reading older data. This method will result in an exception unless
<a href="../../../org/apache/iceberg/UpdateSchema.html#allowIncompatibleChanges--"><code>allowIncompatibleChanges()</code></a> has been called.
<p>
Because "." may be interpreted as a column path separator or may be used in field names, it is
not allowed in names passed to this method. To add to nested structures or to add fields with
names that contain ".", use <a href="../../../org/apache/iceberg/UpdateSchema.html#addRequiredColumn-java.lang.String-java.lang.String-org.apache.iceberg.types.Type-"><code>addRequiredColumn(String, String, Type)</code></a>.
<p>
If type is a nested type, its field IDs are reassigned when added to the existing schema.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - name for the new column</dd>
<dd><code>type</code> - type for the new column</dd>
<dd><code>doc</code> - documentation string for the new column</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - If name contains "."</dd>
</dl>
</li>
</ul>
<a name="addRequiredColumn-java.lang.String-java.lang.String-org.apache.iceberg.types.Type-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addRequiredColumn</h4>
<pre>default&nbsp;<a href="../../../org/apache/iceberg/UpdateSchema.html" title="interface in org.apache.iceberg">UpdateSchema</a>&nbsp;addRequiredColumn(java.lang.String&nbsp;parent,
java.lang.String&nbsp;name,
<a href="../../../org/apache/iceberg/types/Type.html" title="interface in org.apache.iceberg.types">Type</a>&nbsp;type)</pre>
<div class="block">Add a new required top-level column.
<p>
This is an incompatible change that can break reading older data. This method will result in an exception unless
<a href="../../../org/apache/iceberg/UpdateSchema.html#allowIncompatibleChanges--"><code>allowIncompatibleChanges()</code></a> has been called.
<p>
The parent name is used to find the parent using <a href="../../../org/apache/iceberg/Schema.html#findField-java.lang.String-"><code>Schema.findField(String)</code></a>. If the
parent name is null, the new column will be added to the root as a top-level column. If parent
identifies a struct, a new column is added to that struct. If it identifies a list, the column
is added to the list element struct, and if it identifies a map, the new column is added to
the map's value struct.
<p>
The given name is used to name the new column and names containing "." are not handled
differently.
<p>
If type is a nested type, its field IDs are reassigned when added to the existing schema.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>parent</code> - name of the parent struct to the column will be added to</dd>
<dd><code>name</code> - name for the new column</dd>
<dd><code>type</code> - type for the new column</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - If parent doesn't identify a struct</dd>
</dl>
</li>
</ul>
<a name="addRequiredColumn-java.lang.String-java.lang.String-org.apache.iceberg.types.Type-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addRequiredColumn</h4>
<pre><a href="../../../org/apache/iceberg/UpdateSchema.html" title="interface in org.apache.iceberg">UpdateSchema</a>&nbsp;addRequiredColumn(java.lang.String&nbsp;parent,
java.lang.String&nbsp;name,
<a href="../../../org/apache/iceberg/types/Type.html" title="interface in org.apache.iceberg.types">Type</a>&nbsp;type,
java.lang.String&nbsp;doc)</pre>
<div class="block">Add a new required top-level column.
<p>
This is an incompatible change that can break reading older data. This method will result in an exception unless
<a href="../../../org/apache/iceberg/UpdateSchema.html#allowIncompatibleChanges--"><code>allowIncompatibleChanges()</code></a> has been called.
<p>
The parent name is used to find the parent using <a href="../../../org/apache/iceberg/Schema.html#findField-java.lang.String-"><code>Schema.findField(String)</code></a>. If the
parent name is null, the new column will be added to the root as a top-level column. If parent
identifies a struct, a new column is added to that struct. If it identifies a list, the column
is added to the list element struct, and if it identifies a map, the new column is added to
the map's value struct.
<p>
The given name is used to name the new column and names containing "." are not handled
differently.
<p>
If type is a nested type, its field IDs are reassigned when added to the existing schema.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>parent</code> - name of the parent struct to the column will be added to</dd>
<dd><code>name</code> - name for the new column</dd>
<dd><code>type</code> - type for the new column</dd>
<dd><code>doc</code> - documentation string for the new column</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - If parent doesn't identify a struct</dd>
</dl>
</li>
</ul>
<a name="renameColumn-java.lang.String-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>renameColumn</h4>
<pre><a href="../../../org/apache/iceberg/UpdateSchema.html" title="interface in org.apache.iceberg">UpdateSchema</a>&nbsp;renameColumn(java.lang.String&nbsp;name,
java.lang.String&nbsp;newName)</pre>
<div class="block">Rename a column in the schema.
<p>
The name is used to find the column to rename using <a href="../../../org/apache/iceberg/Schema.html#findField-java.lang.String-"><code>Schema.findField(String)</code></a>.
<p>
The new name may contain "." and such names are not parsed or handled differently.
<p>
Columns may be updated and renamed in the same schema update.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - name of the column to rename</dd>
<dd><code>newName</code> - replacement name for the column</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - If name doesn't identify a column in the schema or if this
change conflicts with other additions, renames, or updates.</dd>
</dl>
</li>
</ul>
<a name="updateColumn-java.lang.String-org.apache.iceberg.types.Type.PrimitiveType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>updateColumn</h4>
<pre><a href="../../../org/apache/iceberg/UpdateSchema.html" title="interface in org.apache.iceberg">UpdateSchema</a>&nbsp;updateColumn(java.lang.String&nbsp;name,
<a href="../../../org/apache/iceberg/types/Type.PrimitiveType.html" title="class in org.apache.iceberg.types">Type.PrimitiveType</a>&nbsp;newType)</pre>
<div class="block">Update a column in the schema to a new primitive type.
<p>
The name is used to find the column to update using <a href="../../../org/apache/iceberg/Schema.html#findField-java.lang.String-"><code>Schema.findField(String)</code></a>.
<p>
Only updates that widen types are allowed.
<p>
Columns may be updated and renamed in the same schema update.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - name of the column to rename</dd>
<dd><code>newType</code> - replacement type for the column</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - If name doesn't identify a column in the schema or if this
change introduces a type incompatibility or if it conflicts
with other additions, renames, or updates.</dd>
</dl>
</li>
</ul>
<a name="updateColumn-java.lang.String-org.apache.iceberg.types.Type.PrimitiveType-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>updateColumn</h4>
<pre>default&nbsp;<a href="../../../org/apache/iceberg/UpdateSchema.html" title="interface in org.apache.iceberg">UpdateSchema</a>&nbsp;updateColumn(java.lang.String&nbsp;name,
<a href="../../../org/apache/iceberg/types/Type.PrimitiveType.html" title="class in org.apache.iceberg.types">Type.PrimitiveType</a>&nbsp;newType,
java.lang.String&nbsp;newDoc)</pre>
<div class="block">Update a column in the schema to a new primitive type.
<p>
The name is used to find the column to update using <a href="../../../org/apache/iceberg/Schema.html#findField-java.lang.String-"><code>Schema.findField(String)</code></a>.
<p>
Only updates that widen types are allowed.
<p>
Columns may be updated and renamed in the same schema update.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - name of the column to rename</dd>
<dd><code>newType</code> - replacement type for the column</dd>
<dd><code>newDoc</code> - replacement documentation string for the column</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - If name doesn't identify a column in the schema or if this
change introduces a type incompatibility or if it conflicts
with other additions, renames, or updates.</dd>
</dl>
</li>
</ul>
<a name="updateColumnDoc-java.lang.String-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>updateColumnDoc</h4>
<pre><a href="../../../org/apache/iceberg/UpdateSchema.html" title="interface in org.apache.iceberg">UpdateSchema</a>&nbsp;updateColumnDoc(java.lang.String&nbsp;name,
java.lang.String&nbsp;newDoc)</pre>
<div class="block">Update a column in the schema to a new primitive type.
<p>
The name is used to find the column to update using <a href="../../../org/apache/iceberg/Schema.html#findField-java.lang.String-"><code>Schema.findField(String)</code></a>.
<p>
Columns may be updated and renamed in the same schema update.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - name of the column to rename</dd>
<dd><code>newDoc</code> - replacement documentation string for the column</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - If name doesn't identify a column in the schema or if this
change introduces a type incompatibility or if it conflicts
with other additions, renames, or updates.</dd>
</dl>
</li>
</ul>
<a name="makeColumnOptional-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>makeColumnOptional</h4>
<pre><a href="../../../org/apache/iceberg/UpdateSchema.html" title="interface in org.apache.iceberg">UpdateSchema</a>&nbsp;makeColumnOptional(java.lang.String&nbsp;name)</pre>
<div class="block">Update a column to optional.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - name of the column to mark optional</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
</dl>
</li>
</ul>
<a name="requireColumn-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>requireColumn</h4>
<pre><a href="../../../org/apache/iceberg/UpdateSchema.html" title="interface in org.apache.iceberg">UpdateSchema</a>&nbsp;requireColumn(java.lang.String&nbsp;name)</pre>
<div class="block">Update a column to required.
<p>
This is an incompatible change that can break reading older data. This method will result in an exception unless
<a href="../../../org/apache/iceberg/UpdateSchema.html#allowIncompatibleChanges--"><code>allowIncompatibleChanges()</code></a> has been called.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - name of the column to mark required</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
</dl>
</li>
</ul>
<a name="deleteColumn-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>deleteColumn</h4>
<pre><a href="../../../org/apache/iceberg/UpdateSchema.html" title="interface in org.apache.iceberg">UpdateSchema</a>&nbsp;deleteColumn(java.lang.String&nbsp;name)</pre>
<div class="block">Delete a column in the schema.
<p>
The name is used to find the column to delete using <a href="../../../org/apache/iceberg/Schema.html#findField-java.lang.String-"><code>Schema.findField(String)</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - name of the column to delete</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - If name doesn't identify a column in the schema or if this
change conflicts with other additions, renames, or updates.</dd>
</dl>
</li>
</ul>
<a name="moveFirst-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>moveFirst</h4>
<pre><a href="../../../org/apache/iceberg/UpdateSchema.html" title="interface in org.apache.iceberg">UpdateSchema</a>&nbsp;moveFirst(java.lang.String&nbsp;name)</pre>
<div class="block">Move a column from its current position to the start of the schema or its parent struct.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - name of the column to move</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - If name doesn't identify a column in the schema or if this
change conflicts with other changes.</dd>
</dl>
</li>
</ul>
<a name="moveBefore-java.lang.String-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>moveBefore</h4>
<pre><a href="../../../org/apache/iceberg/UpdateSchema.html" title="interface in org.apache.iceberg">UpdateSchema</a>&nbsp;moveBefore(java.lang.String&nbsp;name,
java.lang.String&nbsp;beforeName)</pre>
<div class="block">Move a column from its current position to directly before a reference column.
<p>
The name is used to find the column to move using <a href="../../../org/apache/iceberg/Schema.html#findField-java.lang.String-"><code>Schema.findField(String)</code></a>. If the name identifies a nested
column, it can only be moved within the nested struct that contains it.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - name of the column to move</dd>
<dd><code>beforeName</code> - name of the reference column</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - If name doesn't identify a column in the schema or if this
change conflicts with other changes.</dd>
</dl>
</li>
</ul>
<a name="moveAfter-java.lang.String-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>moveAfter</h4>
<pre><a href="../../../org/apache/iceberg/UpdateSchema.html" title="interface in org.apache.iceberg">UpdateSchema</a>&nbsp;moveAfter(java.lang.String&nbsp;name,
java.lang.String&nbsp;afterName)</pre>
<div class="block">Move a column from its current position to directly after a reference column.
<p>
The name is used to find the column to move using <a href="../../../org/apache/iceberg/Schema.html#findField-java.lang.String-"><code>Schema.findField(String)</code></a>. If the name identifies a nested
column, it can only be moved within the nested struct that contains it.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - name of the column to move</dd>
<dd><code>afterName</code> - name of the reference column</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - If name doesn't identify a column in the schema or if this
change conflicts with other changes.</dd>
</dl>
</li>
</ul>
<a name="unionByNameWith-org.apache.iceberg.Schema-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unionByNameWith</h4>
<pre><a href="../../../org/apache/iceberg/UpdateSchema.html" title="interface in org.apache.iceberg">UpdateSchema</a>&nbsp;unionByNameWith(<a href="../../../org/apache/iceberg/Schema.html" title="class in org.apache.iceberg">Schema</a>&nbsp;newSchema)</pre>
<div class="block">Applies all field additions and updates from the provided new schema to the existing schema so
to create a union schema.
<p>
For fields with same canonical names in both schemas it is required that the widen types is
supported using <a href="../../../org/apache/iceberg/UpdateSchema.html#updateColumn-java.lang.String-org.apache.iceberg.types.Type.PrimitiveType-"><code>updateColumn(String, Type.PrimitiveType)</code></a>
<p>
Only supports turning a previously required field into an optional one if it is marked
optional in the provided new schema using <a href="../../../org/apache/iceberg/UpdateSchema.html#makeColumnOptional-java.lang.String-"><code>makeColumnOptional(String)</code></a>
<p>
Only supports updating existing field docs with fields docs from the provided new schema using
<a href="../../../org/apache/iceberg/UpdateSchema.html#updateColumnDoc-java.lang.String-java.lang.String-"><code>updateColumnDoc(String, String)</code></a></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>newSchema</code> - a schema used in conjunction with the existing schema to create a union schema</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalStateException</code> - If it encounters errors during provided schema traversal</dd>
<dd><code>java.lang.IllegalArgumentException</code> - If name doesn't identify a column in the schema or if this
change introduces a type incompatibility or if it conflicts
with other additions, renames, or updates.</dd>
</dl>
</li>
</ul>
<a name="setIdentifierFields-java.util.Collection-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setIdentifierFields</h4>
<pre><a href="../../../org/apache/iceberg/UpdateSchema.html" title="interface in org.apache.iceberg">UpdateSchema</a>&nbsp;setIdentifierFields(java.util.Collection&lt;java.lang.String&gt;&nbsp;names)</pre>
<div class="block">Set the identifier fields given a set of field names.
<p>
Because identifier fields are unique, duplicated names will be ignored.
See <a href="../../../org/apache/iceberg/Schema.html#identifierFieldIds--"><code>Schema.identifierFieldIds()</code></a> to learn more about Iceberg identifier.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>names</code> - names of the columns to set as identifier fields</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</dd>
</dl>
</li>
</ul>
<a name="setIdentifierFields-java.lang.String...-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>setIdentifierFields</h4>
<pre>default&nbsp;<a href="../../../org/apache/iceberg/UpdateSchema.html" title="interface in org.apache.iceberg">UpdateSchema</a>&nbsp;setIdentifierFields(java.lang.String...&nbsp;names)</pre>
<div class="block">Set the identifier fields given some field names.
See <a href="../../../org/apache/iceberg/UpdateSchema.html#setIdentifierFields-java.util.Collection-"><code>setIdentifierFields(Collection)</code></a> for more details.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>names</code> - names of the columns to set as identifier fields</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this for method chaining</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/UpdateProperties.html" title="interface in org.apache.iceberg"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li>Next&nbsp;Class</li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?org/apache/iceberg/UpdateSchema.html" target="_top">Frames</a></li>
<li><a href="UpdateSchema.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>