blob: e866f350627ea08b32c83af9b6430597966c049b [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 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>ResolvedTuple (Drill : 1.20.3 API)</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="ResolvedTuple (Drill : 1.20.3 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":6,"i3":6,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":6,"i10":10,"i11":10,"i12":6,"i13":10,"i14":10,"i15":10,"i16":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract 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="class-use/ResolvedTuple.html">Use</a></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/drill/exec/physical/impl/scan/project/ResolvedTableColumn.html" title="class in org.apache.drill.exec.physical.impl.scan.project"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/ResolvedTuple.ResolvedDict.html" title="class in org.apache.drill.exec.physical.impl.scan.project"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../../index.html?org/apache/drill/exec/physical/impl/scan/project/ResolvedTuple.html" target="_top">Frames</a></li>
<li><a href="ResolvedTuple.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><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><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.drill.exec.physical.impl.scan.project</div>
<h2 title="Class ResolvedTuple" class="title">Class ResolvedTuple</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.apache.drill.exec.physical.impl.scan.project.ResolvedTuple</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/VectorSource.html" title="interface in org.apache.drill.exec.physical.impl.scan.project">VectorSource</a></dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/ResolvedTuple.ResolvedDict.html" title="class in org.apache.drill.exec.physical.impl.scan.project">ResolvedTuple.ResolvedDict</a>, <a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/ResolvedTuple.ResolvedMap.html" title="class in org.apache.drill.exec.physical.impl.scan.project">ResolvedTuple.ResolvedMap</a>, <a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/ResolvedTuple.ResolvedRow.html" title="class in org.apache.drill.exec.physical.impl.scan.project">ResolvedTuple.ResolvedRow</a></dd>
</dl>
<hr>
<br>
<pre>public abstract class <span class="typeNameLabel">ResolvedTuple</span>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
implements <a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/VectorSource.html" title="interface in org.apache.drill.exec.physical.impl.scan.project">VectorSource</a></pre>
<div class="block">Drill rows are made up of a tree of tuples, with the row being the root
tuple. Each tuple contains columns, some of which may be maps. This
class represents each row or map in the output projection.
<p>
Output columns within the tuple can be projected from the data source,
might be null (requested columns that don't match a data source column)
or might be a constant (such as an implicit column.) This class
orchestrates assembling an output tuple from a collection of these
three column types. (Though implicit columns appear only in the root
tuple.)
<h4>Null Handling</h4>
The project list might reference a "missing" map if the project list
includes, say, <tt>SELECT a.b.c</tt> but <tt>`a`</tt> does not exist
in the data source. In this case, the column a is implied to be a map,
so the projection mechanism will create a null map for <tt>`a`</tt>
and <tt>`b`</tt>, and will create a null column for <tt>`c`</tt>.
<p>
To accomplish this recursive null processing, each tuple is associated
with a null builder. (The null builder can be null if projection is
implicit with a wildcard; in such a case no null columns can occur.
But, even here, with schema persistence, a <tt>SELECT *</tt> query
may need null columns if a second file does not contain a column
that appeared in a first file.)
<p>
The null builder is bound to each tuple to allow vector persistence
via the result vector cache. If we must create a null column
<tt>`x`</tt> in two different readers, then the rules of Drill
require that the same vector be used for both (or else a schema
change is signaled.) The vector cache works by name (and type).
Since maps may contain columns with the same names as other maps,
the vector cache must be associated with each tuple. And, by extension,
the null builder must also be associated with each tuple.
<h4>Lifecycle</h4>
The lifecycle of a resolved tuple is:
<ul>
<li>The projection mechanism creates the output tuple, and its columns,
by comparing the project list against the table schema. The result is
a set of table, null, or constant columns.</li>
<li>Once per schema change, the resolved tuple creates the output
tuple by linking to vectors in their original locations. As it turns out,
we can simply share the vectors; we don't need to transfer the buffers.</li>
<li>To prepare for the transfer, the tuple asks the null column builder
(if present) to build the required null columns.</li>
<li>Once the output tuple is built, it can be used for any number of
batches without further work. (The same vectors appear in the various inputs
and the output, eliminating the need for any transfers.)</li>
<li>Once per batch, the client must set the row count. This is needed for the
output container, and for any "null" maps that the project may have created.</li>
</ul>
<h4>Projection Mapping</h4>
Each column is is mapped into the output tuple (vector container or map) in
the order that the columns are defined here. (That order follows the project
list for explicit projection, or the table schema for implicit projection.)
The source, however, may be in any order (at least for the table schema.)
A projection mechanism identifies the <a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/VectorSource.html" title="interface in org.apache.drill.exec.physical.impl.scan.project"><code>VectorSource</code></a> that supplies the
vector for the column, along with the vector's index within that source.
The resolved tuple is bound to an output tuple. The projection mechanism
grabs the input vector from the vector source at the indicated position, and
links it into the output tuple, represented by this projected tuple, at the
position of the resolved column in the child list.
<h4>Caveats</h4>
The project mechanism handles nested "missing" columns as mentioned
above. This works to create null columns within maps that are defined by the
data source. However, the mechanism does not currently handle creating null
columns within repeated maps or lists. Doing so is possible, but requires
adding a level of cardinality computation to create the proper number of
"inner" values.</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>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/ResolvedTuple.ResolvedDict.html" title="class in org.apache.drill.exec.physical.impl.scan.project">ResolvedTuple.ResolvedDict</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/ResolvedTuple.ResolvedDictArray.html" title="class in org.apache.drill.exec.physical.impl.scan.project">ResolvedTuple.ResolvedDictArray</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/ResolvedTuple.ResolvedMap.html" title="class in org.apache.drill.exec.physical.impl.scan.project">ResolvedTuple.ResolvedMap</a></span></code>
<div class="block">Represents a map implied by the project list, whether or not the map
actually appears in the table schema.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/ResolvedTuple.ResolvedMapArray.html" title="class in org.apache.drill.exec.physical.impl.scan.project">ResolvedTuple.ResolvedMapArray</a></span></code>
<div class="block">Represents a map tuple (not the map column, rather the value of the
map column.) When projecting, we create a new repeated map vector,
but share the offsets vector from input to output.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/ResolvedTuple.ResolvedRow.html" title="class in org.apache.drill.exec.physical.impl.scan.project">ResolvedTuple.ResolvedRow</a></span></code>
<div class="block">Represents the top-level tuple which is projected to a
vector container.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/ResolvedTuple.ResolvedSingleDict.html" title="class in org.apache.drill.exec.physical.impl.scan.project">ResolvedTuple.ResolvedSingleDict</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/ResolvedTuple.ResolvedSingleMap.html" title="class in org.apache.drill.exec.physical.impl.scan.project">ResolvedTuple.ResolvedSingleMap</a></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 <a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/VectorSource.html" title="interface in org.apache.drill.exec.physical.impl.scan.project">VectorSource</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/ResolvedTuple.html#binding">binding</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/ResolvedTuple.html" title="class in org.apache.drill.exec.physical.impl.scan.project">ResolvedTuple</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/ResolvedTuple.html#children">children</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/ResolvedColumn.html" title="class in org.apache.drill.exec.physical.impl.scan.project">ResolvedColumn</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/ResolvedTuple.html#members">members</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/NullColumnBuilder.html" title="class in org.apache.drill.exec.physical.impl.scan.project">NullColumnBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/ResolvedTuple.html#nullBuilder">nullBuilder</a></span></code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/ResolvedTuple.html#ResolvedTuple-org.apache.drill.exec.physical.impl.scan.project.NullColumnBuilder-">ResolvedTuple</a></span>(<a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/NullColumnBuilder.html" title="class in org.apache.drill.exec.physical.impl.scan.project">NullColumnBuilder</a>&nbsp;nullBuilder)</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/ResolvedTuple.html#add-org.apache.drill.exec.physical.impl.scan.project.ResolvedColumn-">add</a></span>(<a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/ResolvedColumn.html" title="class in org.apache.drill.exec.physical.impl.scan.project">ResolvedColumn</a>&nbsp;col)</code>&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/ResolvedTuple.html#addChild-org.apache.drill.exec.physical.impl.scan.project.ResolvedTuple-">addChild</a></span>(<a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/ResolvedTuple.html" title="class in org.apache.drill.exec.physical.impl.scan.project">ResolvedTuple</a>&nbsp;child)</code>&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/ResolvedTuple.html#addVector-org.apache.drill.exec.vector.ValueVector-">addVector</a></span>(<a href="../../../../../../../../org/apache/drill/exec/vector/ValueVector.html" title="interface in org.apache.drill.exec.vector">ValueVector</a>&nbsp;vector)</code>&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>abstract <a href="../../../../../../../../org/apache/drill/exec/memory/BufferAllocator.html" title="interface in org.apache.drill.exec.memory">BufferAllocator</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/ResolvedTuple.html#allocator--">allocator</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/ResolvedTuple.html#buildColumns--">buildColumns</a></span>()</code>
<div class="block">Merge two or more <i>partial batches</i> to produce a final output batch.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/ResolvedTuple.html#buildNulls-org.apache.drill.exec.physical.resultSet.ResultVectorCache-">buildNulls</a></span>(<a href="../../../../../../../../org/apache/drill/exec/physical/resultSet/ResultVectorCache.html" title="interface in org.apache.drill.exec.physical.resultSet">ResultVectorCache</a>&nbsp;vectorCache)</code>&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/ResolvedTuple.html#cascadeRowCount-int-">cascadeRowCount</a></span>(int&nbsp;rowCount)</code>&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/ResolvedTuple.html#close--">close</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/ResolvedColumn.html" title="class in org.apache.drill.exec.physical.impl.scan.project">ResolvedColumn</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/ResolvedTuple.html#columns--">columns</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>abstract int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/ResolvedTuple.html#innerCardinality-int-">innerCardinality</a></span>(int&nbsp;outerCardinality)</code>&nbsp;</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/ResolvedTuple.html#isSimpleProjection--">isSimpleProjection</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/ResolvedTuple.html#loadNulls-int-">loadNulls</a></span>(int&nbsp;rowCount)</code>&nbsp;</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/ResolvedTuple.html#name--">name</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/NullColumnBuilder.html" title="class in org.apache.drill.exec.physical.impl.scan.project">NullColumnBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/ResolvedTuple.html#nullBuilder--">nullBuilder</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/ResolvedTuple.html#removeChild-org.apache.drill.exec.physical.impl.scan.project.ResolvedTuple-">removeChild</a></span>(<a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/ResolvedTuple.html" title="class in org.apache.drill.exec.physical.impl.scan.project">ResolvedTuple</a>&nbsp;child)</code>&nbsp;</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/ResolvedTuple.html#reset--">reset</a></span>()</code>
<div class="block">During planning, discard a partial plan to allow reusing the same (root) tuple
for multiple projection plans.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/ResolvedTuple.html#setRowCount-int-">setRowCount</a></span>(int&nbsp;rowCount)</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.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.drill.exec.physical.impl.scan.project.VectorSource">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.drill.exec.physical.impl.scan.project.<a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/VectorSource.html" title="interface in org.apache.drill.exec.physical.impl.scan.project">VectorSource</a></h3>
<code><a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/VectorSource.html#vector-int-">vector</a></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="members">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>members</h4>
<pre>protected final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/ResolvedColumn.html" title="class in org.apache.drill.exec.physical.impl.scan.project">ResolvedColumn</a>&gt; members</pre>
</li>
</ul>
<a name="nullBuilder">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nullBuilder</h4>
<pre>protected final&nbsp;<a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/NullColumnBuilder.html" title="class in org.apache.drill.exec.physical.impl.scan.project">NullColumnBuilder</a> nullBuilder</pre>
</li>
</ul>
<a name="children">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>children</h4>
<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/ResolvedTuple.html" title="class in org.apache.drill.exec.physical.impl.scan.project">ResolvedTuple</a>&gt; children</pre>
</li>
</ul>
<a name="binding">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>binding</h4>
<pre>protected&nbsp;<a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/VectorSource.html" title="interface in org.apache.drill.exec.physical.impl.scan.project">VectorSource</a> binding</pre>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="ResolvedTuple-org.apache.drill.exec.physical.impl.scan.project.NullColumnBuilder-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ResolvedTuple</h4>
<pre>public&nbsp;ResolvedTuple(<a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/NullColumnBuilder.html" title="class in org.apache.drill.exec.physical.impl.scan.project">NullColumnBuilder</a>&nbsp;nullBuilder)</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="nullBuilder--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nullBuilder</h4>
<pre>public&nbsp;<a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/NullColumnBuilder.html" title="class in org.apache.drill.exec.physical.impl.scan.project">NullColumnBuilder</a>&nbsp;nullBuilder()</pre>
</li>
</ul>
<a name="add-org.apache.drill.exec.physical.impl.scan.project.ResolvedColumn-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>add</h4>
<pre>public&nbsp;void&nbsp;add(<a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/ResolvedColumn.html" title="class in org.apache.drill.exec.physical.impl.scan.project">ResolvedColumn</a>&nbsp;col)</pre>
</li>
</ul>
<a name="addChild-org.apache.drill.exec.physical.impl.scan.project.ResolvedTuple-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addChild</h4>
<pre>public&nbsp;void&nbsp;addChild(<a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/ResolvedTuple.html" title="class in org.apache.drill.exec.physical.impl.scan.project">ResolvedTuple</a>&nbsp;child)</pre>
</li>
</ul>
<a name="removeChild-org.apache.drill.exec.physical.impl.scan.project.ResolvedTuple-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeChild</h4>
<pre>public&nbsp;void&nbsp;removeChild(<a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/ResolvedTuple.html" title="class in org.apache.drill.exec.physical.impl.scan.project">ResolvedTuple</a>&nbsp;child)</pre>
</li>
</ul>
<a name="isSimpleProjection--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isSimpleProjection</h4>
<pre>public&nbsp;boolean&nbsp;isSimpleProjection()</pre>
</li>
</ul>
<a name="columns--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>columns</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/ResolvedColumn.html" title="class in org.apache.drill.exec.physical.impl.scan.project">ResolvedColumn</a>&gt;&nbsp;columns()</pre>
</li>
</ul>
<a name="buildNulls-org.apache.drill.exec.physical.resultSet.ResultVectorCache-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>buildNulls</h4>
<pre>public&nbsp;void&nbsp;buildNulls(<a href="../../../../../../../../org/apache/drill/exec/physical/resultSet/ResultVectorCache.html" title="interface in org.apache.drill.exec.physical.resultSet">ResultVectorCache</a>&nbsp;vectorCache)</pre>
</li>
</ul>
<a name="loadNulls-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>loadNulls</h4>
<pre>public&nbsp;void&nbsp;loadNulls(int&nbsp;rowCount)</pre>
</li>
</ul>
<a name="innerCardinality-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>innerCardinality</h4>
<pre>public abstract&nbsp;int&nbsp;innerCardinality(int&nbsp;outerCardinality)</pre>
</li>
</ul>
<a name="buildColumns--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>buildColumns</h4>
<pre>protected&nbsp;void&nbsp;buildColumns()</pre>
<div class="block">Merge two or more <i>partial batches</i> to produce a final output batch.
A partial batch is a vertical slice of a batch, such as the set of null
columns or the set of data columns.
<p>
For example, consider
two partial batches:<pre><code>
(a, d, e)
(c, b)</code></pre>
We may wish to merge them by projecting columns into an output batch
of the form:<pre><code>
(a, b, c, d)</code></pre>
It is not necessary to project all columns from the inputs, but all
columns in the output must have a projection.
<p>
The merger is created once per schema, then can be reused for any
number of batches. The only restriction is that the partial batches must
have the same row count so that the final output batch record
count makes sense.
<p>
Merging is done by discarding any data in the output, then exchanging
the buffers from the input columns to the output, leaving projected
columns empty. Note that unprojected columns must be cleared by the
caller. The caller will have figured out which columns to project and
which not to project.</div>
</li>
</ul>
<a name="addVector-org.apache.drill.exec.vector.ValueVector-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addVector</h4>
<pre>public abstract&nbsp;void&nbsp;addVector(<a href="../../../../../../../../org/apache/drill/exec/vector/ValueVector.html" title="interface in org.apache.drill.exec.vector">ValueVector</a>&nbsp;vector)</pre>
</li>
</ul>
<a name="setRowCount-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setRowCount</h4>
<pre>public abstract&nbsp;void&nbsp;setRowCount(int&nbsp;rowCount)</pre>
</li>
</ul>
<a name="cascadeRowCount-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>cascadeRowCount</h4>
<pre>protected&nbsp;void&nbsp;cascadeRowCount(int&nbsp;rowCount)</pre>
</li>
</ul>
<a name="allocator--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>allocator</h4>
<pre>public abstract&nbsp;<a href="../../../../../../../../org/apache/drill/exec/memory/BufferAllocator.html" title="interface in org.apache.drill.exec.memory">BufferAllocator</a>&nbsp;allocator()</pre>
</li>
</ul>
<a name="name--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>name</h4>
<pre>public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name()</pre>
</li>
</ul>
<a name="reset--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>reset</h4>
<pre>public&nbsp;void&nbsp;reset()</pre>
<div class="block">During planning, discard a partial plan to allow reusing the same (root) tuple
for multiple projection plans.</div>
</li>
</ul>
<a name="close--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>close</h4>
<pre>public&nbsp;void&nbsp;close()</pre>
</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="class-use/ResolvedTuple.html">Use</a></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/drill/exec/physical/impl/scan/project/ResolvedTableColumn.html" title="class in org.apache.drill.exec.physical.impl.scan.project"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../../../org/apache/drill/exec/physical/impl/scan/project/ResolvedTuple.ResolvedDict.html" title="class in org.apache.drill.exec.physical.impl.scan.project"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../../index.html?org/apache/drill/exec/physical/impl/scan/project/ResolvedTuple.html" target="_top">Frames</a></li>
<li><a href="ResolvedTuple.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><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><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 1970 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>