blob: f481534756d0be9014aa7446e2c96e9713066b3c [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>Schema</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../script.js"></script>
<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Schema";
}
}
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"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,"i19":10,"i20":10,"i21":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.iceberg</a></div>
<h2 title="Class Schema" class="title">Class Schema</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.iceberg.Schema</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code>java.io.Serializable</code></dd>
</dl>
<hr>
<pre>public class <span class="typeNameLabel">Schema</span>
extends java.lang.Object
implements java.io.Serializable</pre>
<div class="block">The schema of a data table.
<p>
Schema ID will only be populated when reading from/writing to table metadata,
otherwise it will be default to 0.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../serialized-form.html#org.apache.iceberg.Schema">Serialized Form</a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(int,java.util.List)">Schema</a></span>&#8203;(int&nbsp;schemaId,
java.util.List&lt;<a href="types/Types.NestedField.html" title="class in org.apache.iceberg.types">Types.NestedField</a>&gt;&nbsp;columns)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(int,java.util.List,java.util.Map,java.util.Set)">Schema</a></span>&#8203;(int&nbsp;schemaId,
java.util.List&lt;<a href="types/Types.NestedField.html" title="class in org.apache.iceberg.types">Types.NestedField</a>&gt;&nbsp;columns,
java.util.Map&lt;java.lang.String,&#8203;java.lang.Integer&gt;&nbsp;aliases,
java.util.Set&lt;java.lang.Integer&gt;&nbsp;identifierFieldIds)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(int,java.util.List,java.util.Set)">Schema</a></span>&#8203;(int&nbsp;schemaId,
java.util.List&lt;<a href="types/Types.NestedField.html" title="class in org.apache.iceberg.types">Types.NestedField</a>&gt;&nbsp;columns,
java.util.Set&lt;java.lang.Integer&gt;&nbsp;identifierFieldIds)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(int,org.apache.iceberg.types.Types.NestedField...)">Schema</a></span>&#8203;(int&nbsp;schemaId,
<a href="types/Types.NestedField.html" title="class in org.apache.iceberg.types">Types.NestedField</a>...&nbsp;columns)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.util.List)">Schema</a></span>&#8203;(java.util.List&lt;<a href="types/Types.NestedField.html" title="class in org.apache.iceberg.types">Types.NestedField</a>&gt;&nbsp;columns)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.util.List,java.util.Map)">Schema</a></span>&#8203;(java.util.List&lt;<a href="types/Types.NestedField.html" title="class in org.apache.iceberg.types">Types.NestedField</a>&gt;&nbsp;columns,
java.util.Map&lt;java.lang.String,&#8203;java.lang.Integer&gt;&nbsp;aliases)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.util.List,java.util.Map,java.util.Set)">Schema</a></span>&#8203;(java.util.List&lt;<a href="types/Types.NestedField.html" title="class in org.apache.iceberg.types">Types.NestedField</a>&gt;&nbsp;columns,
java.util.Map&lt;java.lang.String,&#8203;java.lang.Integer&gt;&nbsp;aliases,
java.util.Set&lt;java.lang.Integer&gt;&nbsp;identifierFieldIds)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.util.List,java.util.Set)">Schema</a></span>&#8203;(java.util.List&lt;<a href="types/Types.NestedField.html" title="class in org.apache.iceberg.types">Types.NestedField</a>&gt;&nbsp;columns,
java.util.Set&lt;java.lang.Integer&gt;&nbsp;identifierFieldIds)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.apache.iceberg.types.Types.NestedField...)">Schema</a></span>&#8203;(<a href="types/Types.NestedField.html" title="class in org.apache.iceberg.types">Types.NestedField</a>...&nbsp;columns)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="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="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="Accessor.html" title="interface in org.apache.iceberg">Accessor</a>&lt;<a href="StructLike.html" title="interface in org.apache.iceberg">StructLike</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#accessorForField(int)">accessorForField</a></span>&#8203;(int&nbsp;id)</code></th>
<td class="colLast">
<div class="block">Returns an accessor for retrieving the data from <a href="StructLike.html" title="interface in org.apache.iceberg"><code>StructLike</code></a>.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>java.lang.Integer</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#aliasToId(java.lang.String)">aliasToId</a></span>&#8203;(java.lang.String&nbsp;alias)</code></th>
<td class="colLast">
<div class="block">Returns the column id for the given column alias.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="types/Types.StructType.html" title="class in org.apache.iceberg.types">Types.StructType</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#asStruct()">asStruct</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the underlying <a href="types/Types.StructType.html" title="class in org.apache.iceberg.types"><code>struct type</code></a> for this schema.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="types/Types.NestedField.html" title="class in org.apache.iceberg.types">Types.NestedField</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#caseInsensitiveFindField(java.lang.String)">caseInsensitiveFindField</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
<td class="colLast">
<div class="block">Returns a sub-field by name as a <a href="types/Types.NestedField.html" title="class in org.apache.iceberg.types"><code>Types.NestedField</code></a>.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="Schema.html" title="class in org.apache.iceberg">Schema</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#caseInsensitiveSelect(java.lang.String...)">caseInsensitiveSelect</a></span>&#8203;(java.lang.String...&nbsp;names)</code></th>
<td class="colLast">
<div class="block">Creates a projection schema for a subset of columns, selected by case insensitive names</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="Schema.html" title="class in org.apache.iceberg">Schema</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#caseInsensitiveSelect(java.util.Collection)">caseInsensitiveSelect</a></span>&#8203;(java.util.Collection&lt;java.lang.String&gt;&nbsp;names)</code></th>
<td class="colLast">
<div class="block">Creates a projection schema for a subset of columns, selected by case insensitive names</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>java.util.List&lt;<a href="types/Types.NestedField.html" title="class in org.apache.iceberg.types">Types.NestedField</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#columns()">columns</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a List of the <a href="types/Types.NestedField.html" title="class in org.apache.iceberg.types"><code>columns</code></a> in this Schema.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#findColumnName(int)">findColumnName</a></span>&#8203;(int&nbsp;id)</code></th>
<td class="colLast">
<div class="block">Returns the full column name for the given id.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="types/Types.NestedField.html" title="class in org.apache.iceberg.types">Types.NestedField</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#findField(int)">findField</a></span>&#8203;(int&nbsp;id)</code></th>
<td class="colLast">
<div class="block">Returns the sub-field identified by the field id as a <a href="types/Types.NestedField.html" title="class in org.apache.iceberg.types"><code>Types.NestedField</code></a>.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="types/Types.NestedField.html" title="class in org.apache.iceberg.types">Types.NestedField</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#findField(java.lang.String)">findField</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
<td class="colLast">
<div class="block">Returns a sub-field by name as a <a href="types/Types.NestedField.html" title="class in org.apache.iceberg.types"><code>Types.NestedField</code></a>.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="types/Type.html" title="interface in org.apache.iceberg.types">Type</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#findType(int)">findType</a></span>&#8203;(int&nbsp;id)</code></th>
<td class="colLast">
<div class="block">Returns the <a href="types/Type.html" title="interface in org.apache.iceberg.types"><code>Type</code></a> of a sub-field identified by the field id.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="types/Type.html" title="interface in org.apache.iceberg.types">Type</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#findType(java.lang.String)">findType</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
<td class="colLast">
<div class="block">Returns the <a href="types/Type.html" title="interface in org.apache.iceberg.types"><code>Type</code></a> of a sub-field identified by the field name.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>java.util.Map&lt;java.lang.String,&#8203;java.lang.Integer&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAliases()">getAliases</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns an alias map for this schema, if set.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#highestFieldId()">highestFieldId</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the highest field ID in this schema, including nested fields.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>java.util.Set&lt;java.lang.Integer&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#identifierFieldIds()">identifierFieldIds</a></span>()</code></th>
<td class="colLast">
<div class="block">The set of identifier field IDs.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>java.util.Set&lt;java.lang.String&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#identifierFieldNames()">identifierFieldNames</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the set of identifier field names.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#idToAlias(java.lang.Integer)">idToAlias</a></span>&#8203;(java.lang.Integer&nbsp;fieldId)</code></th>
<td class="colLast">
<div class="block">Returns the full column name in the unconverted data schema for the given column id.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sameSchema(org.apache.iceberg.Schema)">sameSchema</a></span>&#8203;(<a href="Schema.html" title="class in org.apache.iceberg">Schema</a>&nbsp;anotherSchema)</code></th>
<td class="colLast">
<div class="block">Checks whether this schema is equivalent to another schema while ignoring the schema ID.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#schemaId()">schemaId</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the schema ID for this schema.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code><a href="Schema.html" title="class in org.apache.iceberg">Schema</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#select(java.lang.String...)">select</a></span>&#8203;(java.lang.String...&nbsp;names)</code></th>
<td class="colLast">
<div class="block">Creates a projection schema for a subset of columns, selected by name.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code><a href="Schema.html" title="class in org.apache.iceberg">Schema</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#select(java.util.Collection)">select</a></span>&#8203;(java.util.Collection&lt;java.lang.String&gt;&nbsp;names)</code></th>
<td class="colLast">
<div class="block">Creates a projection schema for a subset of columns, selected by name.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;(java.util.List,java.util.Map)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>Schema</h4>
<pre>public&nbsp;Schema&#8203;(java.util.List&lt;<a href="types/Types.NestedField.html" title="class in org.apache.iceberg.types">Types.NestedField</a>&gt;&nbsp;columns,
java.util.Map&lt;java.lang.String,&#8203;java.lang.Integer&gt;&nbsp;aliases)</pre>
</li>
</ul>
<a id="&lt;init&gt;(java.util.List,java.util.Map,java.util.Set)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>Schema</h4>
<pre>public&nbsp;Schema&#8203;(java.util.List&lt;<a href="types/Types.NestedField.html" title="class in org.apache.iceberg.types">Types.NestedField</a>&gt;&nbsp;columns,
java.util.Map&lt;java.lang.String,&#8203;java.lang.Integer&gt;&nbsp;aliases,
java.util.Set&lt;java.lang.Integer&gt;&nbsp;identifierFieldIds)</pre>
</li>
</ul>
<a id="&lt;init&gt;(java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>Schema</h4>
<pre>public&nbsp;Schema&#8203;(java.util.List&lt;<a href="types/Types.NestedField.html" title="class in org.apache.iceberg.types">Types.NestedField</a>&gt;&nbsp;columns)</pre>
</li>
</ul>
<a id="&lt;init&gt;(java.util.List,java.util.Set)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>Schema</h4>
<pre>public&nbsp;Schema&#8203;(java.util.List&lt;<a href="types/Types.NestedField.html" title="class in org.apache.iceberg.types">Types.NestedField</a>&gt;&nbsp;columns,
java.util.Set&lt;java.lang.Integer&gt;&nbsp;identifierFieldIds)</pre>
</li>
</ul>
<a id="&lt;init&gt;(int,java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>Schema</h4>
<pre>public&nbsp;Schema&#8203;(int&nbsp;schemaId,
java.util.List&lt;<a href="types/Types.NestedField.html" title="class in org.apache.iceberg.types">Types.NestedField</a>&gt;&nbsp;columns)</pre>
</li>
</ul>
<a id="&lt;init&gt;(int,java.util.List,java.util.Set)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>Schema</h4>
<pre>public&nbsp;Schema&#8203;(int&nbsp;schemaId,
java.util.List&lt;<a href="types/Types.NestedField.html" title="class in org.apache.iceberg.types">Types.NestedField</a>&gt;&nbsp;columns,
java.util.Set&lt;java.lang.Integer&gt;&nbsp;identifierFieldIds)</pre>
</li>
</ul>
<a id="&lt;init&gt;(int,java.util.List,java.util.Map,java.util.Set)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>Schema</h4>
<pre>public&nbsp;Schema&#8203;(int&nbsp;schemaId,
java.util.List&lt;<a href="types/Types.NestedField.html" title="class in org.apache.iceberg.types">Types.NestedField</a>&gt;&nbsp;columns,
java.util.Map&lt;java.lang.String,&#8203;java.lang.Integer&gt;&nbsp;aliases,
java.util.Set&lt;java.lang.Integer&gt;&nbsp;identifierFieldIds)</pre>
</li>
</ul>
<a id="&lt;init&gt;(org.apache.iceberg.types.Types.NestedField...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>Schema</h4>
<pre>public&nbsp;Schema&#8203;(<a href="types/Types.NestedField.html" title="class in org.apache.iceberg.types">Types.NestedField</a>...&nbsp;columns)</pre>
</li>
</ul>
<a id="&lt;init&gt;(int,org.apache.iceberg.types.Types.NestedField...)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>Schema</h4>
<pre>public&nbsp;Schema&#8203;(int&nbsp;schemaId,
<a href="types/Types.NestedField.html" title="class in org.apache.iceberg.types">Types.NestedField</a>...&nbsp;columns)</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="schemaId()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>schemaId</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;schemaId()</pre>
<div class="block">Returns the schema ID for this schema.
<p>
Note that schema ID will only be populated when reading from/writing to table metadata,
otherwise it will be default to 0.</div>
</li>
</ul>
<a id="highestFieldId()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>highestFieldId</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;highestFieldId()</pre>
<div class="block">Returns the highest field ID in this schema, including nested fields.</div>
</li>
</ul>
<a id="getAliases()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAliases</h4>
<pre class="methodSignature">public&nbsp;java.util.Map&lt;java.lang.String,&#8203;java.lang.Integer&gt;&nbsp;getAliases()</pre>
<div class="block">Returns an alias map for this schema, if set.
<p>
Alias maps are created when translating an external schema, like an Avro Schema, to this
format. The original column names can be provided in a Map when constructing this Schema.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a Map of column aliases to field ids</dd>
</dl>
</li>
</ul>
<a id="asStruct()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>asStruct</h4>
<pre class="methodSignature">public&nbsp;<a href="types/Types.StructType.html" title="class in org.apache.iceberg.types">Types.StructType</a>&nbsp;asStruct()</pre>
<div class="block">Returns the underlying <a href="types/Types.StructType.html" title="class in org.apache.iceberg.types"><code>struct type</code></a> for this schema.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the StructType version of this schema.</dd>
</dl>
</li>
</ul>
<a id="columns()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>columns</h4>
<pre class="methodSignature">public&nbsp;java.util.List&lt;<a href="types/Types.NestedField.html" title="class in org.apache.iceberg.types">Types.NestedField</a>&gt;&nbsp;columns()</pre>
<div class="block">Returns a List of the <a href="types/Types.NestedField.html" title="class in org.apache.iceberg.types"><code>columns</code></a> in this Schema.</div>
</li>
</ul>
<a id="identifierFieldIds()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>identifierFieldIds</h4>
<pre class="methodSignature">public&nbsp;java.util.Set&lt;java.lang.Integer&gt;&nbsp;identifierFieldIds()</pre>
<div class="block">The set of identifier field IDs.
<p>
Identifier is a concept similar to primary key in a relational database system.
It consists of a unique set of primitive fields in the schema.
An identifier field must be at root, or nested in a chain of structs (no maps or lists).
A row should be unique in a table based on the values of the identifier fields.
Optional, float and double columns cannot be used as identifier fields.
However, Iceberg identifier differs from primary key in the following ways:
<ul>
<li>Iceberg does not enforce the uniqueness of a row based on this identifier information.
It is used for operations like upsert to define the default upsert key.</li>
<li>A nested field in a struct can be used as an identifier. For example, if there is a "last_name" field
inside a "user" struct in a schema, field "user.last_name" can be set as a part of the identifier field.</li>
</ul>
<p></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the set of identifier field IDs in this schema.</dd>
</dl>
</li>
</ul>
<a id="identifierFieldNames()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>identifierFieldNames</h4>
<pre class="methodSignature">public&nbsp;java.util.Set&lt;java.lang.String&gt;&nbsp;identifierFieldNames()</pre>
<div class="block">Returns the set of identifier field names.</div>
</li>
</ul>
<a id="findType(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>findType</h4>
<pre class="methodSignature">public&nbsp;<a href="types/Type.html" title="interface in org.apache.iceberg.types">Type</a>&nbsp;findType&#8203;(java.lang.String&nbsp;name)</pre>
<div class="block">Returns the <a href="types/Type.html" title="interface in org.apache.iceberg.types"><code>Type</code></a> of a sub-field identified by the field name.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - a field name</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a Type for the sub-field or null if it is not found</dd>
</dl>
</li>
</ul>
<a id="findType(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>findType</h4>
<pre class="methodSignature">public&nbsp;<a href="types/Type.html" title="interface in org.apache.iceberg.types">Type</a>&nbsp;findType&#8203;(int&nbsp;id)</pre>
<div class="block">Returns the <a href="types/Type.html" title="interface in org.apache.iceberg.types"><code>Type</code></a> of a sub-field identified by the field id.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>id</code> - a field id</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a Type for the sub-field or null if it is not found</dd>
</dl>
</li>
</ul>
<a id="findField(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>findField</h4>
<pre class="methodSignature">public&nbsp;<a href="types/Types.NestedField.html" title="class in org.apache.iceberg.types">Types.NestedField</a>&nbsp;findField&#8203;(int&nbsp;id)</pre>
<div class="block">Returns the sub-field identified by the field id as a <a href="types/Types.NestedField.html" title="class in org.apache.iceberg.types"><code>Types.NestedField</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>id</code> - a field id</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the sub-field or null if it is not found</dd>
</dl>
</li>
</ul>
<a id="findField(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>findField</h4>
<pre class="methodSignature">public&nbsp;<a href="types/Types.NestedField.html" title="class in org.apache.iceberg.types">Types.NestedField</a>&nbsp;findField&#8203;(java.lang.String&nbsp;name)</pre>
<div class="block">Returns a sub-field by name as a <a href="types/Types.NestedField.html" title="class in org.apache.iceberg.types"><code>Types.NestedField</code></a>.
<p>
The result may be a top-level or a nested field.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - a String name</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a Type for the sub-field or null if it is not found</dd>
</dl>
</li>
</ul>
<a id="caseInsensitiveFindField(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>caseInsensitiveFindField</h4>
<pre class="methodSignature">public&nbsp;<a href="types/Types.NestedField.html" title="class in org.apache.iceberg.types">Types.NestedField</a>&nbsp;caseInsensitiveFindField&#8203;(java.lang.String&nbsp;name)</pre>
<div class="block">Returns a sub-field by name as a <a href="types/Types.NestedField.html" title="class in org.apache.iceberg.types"><code>Types.NestedField</code></a>.
<p>
The result may be a top-level or a nested field.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - a String name</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the sub-field or null if it is not found</dd>
</dl>
</li>
</ul>
<a id="findColumnName(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>findColumnName</h4>
<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;findColumnName&#8203;(int&nbsp;id)</pre>
<div class="block">Returns the full column name for the given id.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>id</code> - a field id</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the full column name in this schema that resolves to the id</dd>
</dl>
</li>
</ul>
<a id="aliasToId(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>aliasToId</h4>
<pre class="methodSignature">public&nbsp;java.lang.Integer&nbsp;aliasToId&#8203;(java.lang.String&nbsp;alias)</pre>
<div class="block">Returns the column id for the given column alias. Column aliases are set
by conversions from Parquet or Avro to this Schema type.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>alias</code> - a full column name in the unconverted data schema</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the column id in this schema, or null if the column wasn't found</dd>
</dl>
</li>
</ul>
<a id="idToAlias(java.lang.Integer)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>idToAlias</h4>
<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;idToAlias&#8203;(java.lang.Integer&nbsp;fieldId)</pre>
<div class="block">Returns the full column name in the unconverted data schema for the given column id.
Column aliases are set by conversions from Parquet or Avro to this Schema type.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>fieldId</code> - a column id in this schema</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the full column name in the unconverted data schema, or null if one wasn't found</dd>
</dl>
</li>
</ul>
<a id="accessorForField(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>accessorForField</h4>
<pre class="methodSignature">public&nbsp;<a href="Accessor.html" title="interface in org.apache.iceberg">Accessor</a>&lt;<a href="StructLike.html" title="interface in org.apache.iceberg">StructLike</a>&gt;&nbsp;accessorForField&#8203;(int&nbsp;id)</pre>
<div class="block">Returns an accessor for retrieving the data from <a href="StructLike.html" title="interface in org.apache.iceberg"><code>StructLike</code></a>.
<p>
Accessors do not retrieve data contained in lists or maps.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>id</code> - a column id in this schema</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an <a href="Accessor.html" title="interface in org.apache.iceberg"><code>Accessor</code></a> to retrieve values from a <a href="StructLike.html" title="interface in org.apache.iceberg"><code>StructLike</code></a> row</dd>
</dl>
</li>
</ul>
<a id="select(java.lang.String...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>select</h4>
<pre class="methodSignature">public&nbsp;<a href="Schema.html" title="class in org.apache.iceberg">Schema</a>&nbsp;select&#8203;(java.lang.String...&nbsp;names)</pre>
<div class="block">Creates a projection schema for a subset of columns, selected by name.
<p>
Names that identify nested fields will select part or all of the field's top-level column.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>names</code> - String names for selected columns</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a projection schema from this schema, by name</dd>
</dl>
</li>
</ul>
<a id="select(java.util.Collection)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>select</h4>
<pre class="methodSignature">public&nbsp;<a href="Schema.html" title="class in org.apache.iceberg">Schema</a>&nbsp;select&#8203;(java.util.Collection&lt;java.lang.String&gt;&nbsp;names)</pre>
<div class="block">Creates a projection schema for a subset of columns, selected by name.
<p>
Names that identify nested fields will select part or all of the field's top-level column.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>names</code> - a List of String names for selected columns</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a projection schema from this schema, by name</dd>
</dl>
</li>
</ul>
<a id="caseInsensitiveSelect(java.lang.String...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>caseInsensitiveSelect</h4>
<pre class="methodSignature">public&nbsp;<a href="Schema.html" title="class in org.apache.iceberg">Schema</a>&nbsp;caseInsensitiveSelect&#8203;(java.lang.String...&nbsp;names)</pre>
<div class="block">Creates a projection schema for a subset of columns, selected by case insensitive names
<p>
Names that identify nested fields will select part or all of the field's top-level column.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>names</code> - a List of String names for selected columns</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a projection schema from this schema, by names</dd>
</dl>
</li>
</ul>
<a id="caseInsensitiveSelect(java.util.Collection)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>caseInsensitiveSelect</h4>
<pre class="methodSignature">public&nbsp;<a href="Schema.html" title="class in org.apache.iceberg">Schema</a>&nbsp;caseInsensitiveSelect&#8203;(java.util.Collection&lt;java.lang.String&gt;&nbsp;names)</pre>
<div class="block">Creates a projection schema for a subset of columns, selected by case insensitive names
<p>
Names that identify nested fields will select part or all of the field's top-level column.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>names</code> - a List of String names for selected columns</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a projection schema from this schema, by names</dd>
</dl>
</li>
</ul>
<a id="sameSchema(org.apache.iceberg.Schema)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sameSchema</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;sameSchema&#8203;(<a href="Schema.html" title="class in org.apache.iceberg">Schema</a>&nbsp;anotherSchema)</pre>
<div class="block">Checks whether this schema is equivalent to another schema while ignoring the schema ID.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>anotherSchema</code> - another schema</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if this schema is equivalent to the given schema</dd>
</dl>
</li>
</ul>
<a id="toString()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>toString</h4>
<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;toString()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>toString</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>