blob: ccf99f5af7a765c9278f295132d1cf4fa29631fd [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>SchemaBasedTracker (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="SchemaBasedTracker (Drill : 1.20.3 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":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";
</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/SchemaBasedTracker.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/v3/schema/ScanSchemaTracker.ProjectionType.html" title="enum in org.apache.drill.exec.physical.impl.scan.v3.schema"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/SchemaUtils.html" title="class in org.apache.drill.exec.physical.impl.scan.v3.schema"><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/v3/schema/SchemaBasedTracker.html" target="_top">Frames</a></li>
<li><a href="SchemaBasedTracker.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><a href="#fields.inherited.from.class.org.apache.drill.exec.physical.impl.scan.v3.schema.AbstractSchemaTracker">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>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 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.v3.schema</div>
<h2 title="Class SchemaBasedTracker" class="title">Class SchemaBasedTracker</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><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/AbstractSchemaTracker.html" title="class in org.apache.drill.exec.physical.impl.scan.v3.schema">org.apache.drill.exec.physical.impl.scan.v3.schema.AbstractSchemaTracker</a></li>
<li>
<ul class="inheritance">
<li>org.apache.drill.exec.physical.impl.scan.v3.schema.SchemaBasedTracker</li>
</ul>
</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/v3/schema/ScanSchemaTracker.html" title="interface in org.apache.drill.exec.physical.impl.scan.v3.schema">ScanSchemaTracker</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">SchemaBasedTracker</span>
extends <a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/AbstractSchemaTracker.html" title="class in org.apache.drill.exec.physical.impl.scan.v3.schema">AbstractSchemaTracker</a></pre>
<div class="block">Simple "tracker" based on a defined, fixed schema. The only resolution
needed is to identify which columns, if any, are implicit. Readers are
ignorant of this state: readers may still produce a subset of the defined
columns and so missing columns may be needed. However, readers cannot
add to the set of output columns, nor change their types.</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>
<ul class="blockList">
<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.drill.exec.physical.impl.scan.v3.schema.ScanSchemaTracker">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.drill.exec.physical.impl.scan.v3.schema.<a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/ScanSchemaTracker.html" title="interface in org.apache.drill.exec.physical.impl.scan.v3.schema">ScanSchemaTracker</a></h3>
<code><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/ScanSchemaTracker.ProjectionType.html" title="enum in org.apache.drill.exec.physical.impl.scan.v3.schema">ScanSchemaTracker.ProjectionType</a></code></li>
</ul>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.drill.exec.physical.impl.scan.v3.schema.AbstractSchemaTracker">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.drill.exec.physical.impl.scan.v3.schema.<a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/AbstractSchemaTracker.html" title="class in org.apache.drill.exec.physical.impl.scan.v3.schema">AbstractSchemaTracker</a></h3>
<code><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/AbstractSchemaTracker.html#errorContext">errorContext</a>, <a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/AbstractSchemaTracker.html#isResolved">isResolved</a>, <a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/AbstractSchemaTracker.html#schema">schema</a></code></li>
</ul>
</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/v3/schema/SchemaBasedTracker.html#SchemaBasedTracker-org.apache.drill.exec.record.metadata.TupleMetadata-org.apache.drill.common.exceptions.CustomErrorContext-">SchemaBasedTracker</a></span>(<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/TupleMetadata.html" title="interface in org.apache.drill.exec.record.metadata">TupleMetadata</a>&nbsp;definedSchema,
<a href="../../../../../../../../../org/apache/drill/common/exceptions/CustomErrorContext.html" title="interface in org.apache.drill.common.exceptions">CustomErrorContext</a>&nbsp;errorContext)</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="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/v3/schema/SchemaBasedTracker.html#applyEarlyReaderSchema-org.apache.drill.exec.record.metadata.TupleMetadata-">applyEarlyReaderSchema</a></span>(<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/TupleMetadata.html" title="interface in org.apache.drill.exec.record.metadata">TupleMetadata</a>&nbsp;readerSchema)</code>
<div class="block">If a reader can define a schema before reading data, apply that
schema to the scan schema.</div>
</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/v3/schema/SchemaBasedTracker.html#applyReaderSchema-org.apache.drill.exec.record.metadata.TupleMetadata-org.apache.drill.common.exceptions.CustomErrorContext-">applyReaderSchema</a></span>(<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/TupleMetadata.html" title="interface in org.apache.drill.exec.record.metadata">TupleMetadata</a>&nbsp;readerOutputSchema,
<a href="../../../../../../../../../org/apache/drill/common/exceptions/CustomErrorContext.html" title="interface in org.apache.drill.common.exceptions">CustomErrorContext</a>&nbsp;errorContext)</code>
<div class="block">Once a reader has read a batch, the reader will have provided a type
for each projected column which the reader knows about.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/ProjectedColumn.html" title="class in org.apache.drill.exec.physical.impl.scan.v3.schema">ProjectedColumn</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/SchemaBasedTracker.html#columnProjection-java.lang.String-">columnProjection</a></span>(<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;colName)</code>
<div class="block">Return the projection for a column, if any.</div>
</td>
</tr>
<tr id="i3" 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/v3/schema/SchemaBasedTracker.html#expandImplicitCol-org.apache.drill.exec.record.metadata.ColumnMetadata-org.apache.drill.exec.physical.impl.scan.v3.file.ImplicitColumnMarker-">expandImplicitCol</a></span>(<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/ColumnMetadata.html" title="interface in org.apache.drill.exec.record.metadata">ColumnMetadata</a>&nbsp;resolved,
<a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/file/ImplicitColumnMarker.html" title="class in org.apache.drill.exec.physical.impl.scan.v3.file">ImplicitColumnMarker</a>&nbsp;marker)</code>
<div class="block">Drill defines a wildcard to expand not just reader columns, but also
partition columns.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="../../../../../../../../../org/apache/drill/exec/physical/resultSet/impl/ProjectionFilter.html" title="interface in org.apache.drill.exec.physical.resultSet.impl">ProjectionFilter</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/SchemaBasedTracker.html#projectionFilter-org.apache.drill.common.exceptions.CustomErrorContext-">projectionFilter</a></span>(<a href="../../../../../../../../../org/apache/drill/common/exceptions/CustomErrorContext.html" title="interface in org.apache.drill.common.exceptions">CustomErrorContext</a>&nbsp;errorContext)</code>
<div class="block">Set up a projection filter using the defined schema</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/SchemaBasedTracker.html#schemaVersion--">schemaVersion</a></span>()</code>
<div class="block">Gives the output schema version which will start at some arbitrary
positive number.</div>
</td>
</tr>
<tr id="i6" 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/v3/schema/SchemaBasedTracker.html#validateProjection-org.apache.drill.exec.record.metadata.TupleMetadata-">validateProjection</a></span>(<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/TupleMetadata.html" title="interface in org.apache.drill.exec.record.metadata">TupleMetadata</a>&nbsp;projection)</code>
<div class="block">Validate a projection list (provided as an argument) against a
defined schema already held by this tracker.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.drill.exec.physical.impl.scan.v3.schema.AbstractSchemaTracker">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.drill.exec.physical.impl.scan.v3.schema.<a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/AbstractSchemaTracker.html" title="class in org.apache.drill.exec.physical.impl.scan.v3.schema">AbstractSchemaTracker</a></h3>
<code><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/AbstractSchemaTracker.html#applyImplicitCols--">applyImplicitCols</a>, <a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/AbstractSchemaTracker.html#checkResolved--">checkResolved</a>, <a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/AbstractSchemaTracker.html#errorContext--">errorContext</a>, <a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/AbstractSchemaTracker.html#internalSchema--">internalSchema</a>, <a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/AbstractSchemaTracker.html#isResolved--">isResolved</a>, <a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/AbstractSchemaTracker.html#missingColumns-org.apache.drill.exec.record.metadata.TupleMetadata-">missingColumns</a>, <a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/AbstractSchemaTracker.html#outputSchema--">outputSchema</a>, <a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/AbstractSchemaTracker.html#projectionType--">projectionType</a>, <a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/AbstractSchemaTracker.html#readerInputSchema--">readerInputSchema</a>, <a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/AbstractSchemaTracker.html#resolveMissingCols-org.apache.drill.exec.record.metadata.TupleMetadata-">resolveMissingCols</a>, <a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/AbstractSchemaTracker.html#validateProjection-org.apache.drill.exec.record.metadata.TupleMetadata-org.apache.drill.exec.record.metadata.TupleMetadata-">validateProjection</a></code></li>
</ul>
<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>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="SchemaBasedTracker-org.apache.drill.exec.record.metadata.TupleMetadata-org.apache.drill.common.exceptions.CustomErrorContext-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>SchemaBasedTracker</h4>
<pre>public&nbsp;SchemaBasedTracker(<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/TupleMetadata.html" title="interface in org.apache.drill.exec.record.metadata">TupleMetadata</a>&nbsp;definedSchema,
<a href="../../../../../../../../../org/apache/drill/common/exceptions/CustomErrorContext.html" title="interface in org.apache.drill.common.exceptions">CustomErrorContext</a>&nbsp;errorContext)</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="validateProjection-org.apache.drill.exec.record.metadata.TupleMetadata-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateProjection</h4>
<pre>public&nbsp;void&nbsp;validateProjection(<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/TupleMetadata.html" title="interface in org.apache.drill.exec.record.metadata">TupleMetadata</a>&nbsp;projection)</pre>
<div class="block">Validate a projection list (provided as an argument) against a
defined schema already held by this tracker. Ensures that, when we
have both a defined schema and projection list, that they are
consistent.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>projection</code> - the parsed projection list</dd>
</dl>
</li>
</ul>
<a name="applyEarlyReaderSchema-org.apache.drill.exec.record.metadata.TupleMetadata-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>applyEarlyReaderSchema</h4>
<pre>public&nbsp;void&nbsp;applyEarlyReaderSchema(<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/TupleMetadata.html" title="interface in org.apache.drill.exec.record.metadata">TupleMetadata</a>&nbsp;readerSchema)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/ScanSchemaTracker.html#applyEarlyReaderSchema-org.apache.drill.exec.record.metadata.TupleMetadata-">ScanSchemaTracker</a></code></span></div>
<div class="block">If a reader can define a schema before reading data, apply that
schema to the scan schema. Allows the scan to report its output
schema before the first batch of data if the scan schema becomes
resolved after the early reader schema.</div>
</li>
</ul>
<a name="projectionFilter-org.apache.drill.common.exceptions.CustomErrorContext-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>projectionFilter</h4>
<pre>public&nbsp;<a href="../../../../../../../../../org/apache/drill/exec/physical/resultSet/impl/ProjectionFilter.html" title="interface in org.apache.drill.exec.physical.resultSet.impl">ProjectionFilter</a>&nbsp;projectionFilter(<a href="../../../../../../../../../org/apache/drill/common/exceptions/CustomErrorContext.html" title="interface in org.apache.drill.common.exceptions">CustomErrorContext</a>&nbsp;errorContext)</pre>
<div class="block">Set up a projection filter using the defined schema</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>errorContext</code> - the reader-specific error context to use if
errors are found</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a filter used to decide which reader columns to project during
reading</dd>
</dl>
</li>
</ul>
<a name="applyReaderSchema-org.apache.drill.exec.record.metadata.TupleMetadata-org.apache.drill.common.exceptions.CustomErrorContext-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>applyReaderSchema</h4>
<pre>public&nbsp;void&nbsp;applyReaderSchema(<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/TupleMetadata.html" title="interface in org.apache.drill.exec.record.metadata">TupleMetadata</a>&nbsp;readerOutputSchema,
<a href="../../../../../../../../../org/apache/drill/common/exceptions/CustomErrorContext.html" title="interface in org.apache.drill.common.exceptions">CustomErrorContext</a>&nbsp;errorContext)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/ScanSchemaTracker.html#applyReaderSchema-org.apache.drill.exec.record.metadata.TupleMetadata-org.apache.drill.common.exceptions.CustomErrorContext-">ScanSchemaTracker</a></code></span></div>
<div class="block">Once a reader has read a batch, the reader will have provided a type
for each projected column which the reader knows about. For a wildcard
projection, the reader will have added all the columns that it found.
This call takes the reader output schema and merges it with the current
scan schema to resolve dynamic types to concrete types and to add
newly discovered columns.
<p>
The process can raise an exception if the reader projects a column that
it shouldn't (which is not actually possible because of the way the
<code>ResultSetLoader</code> works.) An error can also occur if the reader
provides a type different than that already defined in the scan schema
by a defined schema, a provided schema, or a previous reader in the same
scan. In such cases, the reader is expected to have converted its input
type to the specified type, which was presumably selected because the
reader is capable of the required conversion.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>readerOutputSchema</code> - the actual schema produced by a reader when
reading a record batch</dd>
<dd><code>errorContext</code> - the reader-specific error context to use if
errors are found</dd>
</dl>
</li>
</ul>
<a name="expandImplicitCol-org.apache.drill.exec.record.metadata.ColumnMetadata-org.apache.drill.exec.physical.impl.scan.v3.file.ImplicitColumnMarker-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>expandImplicitCol</h4>
<pre>public&nbsp;void&nbsp;expandImplicitCol(<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/ColumnMetadata.html" title="interface in org.apache.drill.exec.record.metadata">ColumnMetadata</a>&nbsp;resolved,
<a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/file/ImplicitColumnMarker.html" title="class in org.apache.drill.exec.physical.impl.scan.v3.file">ImplicitColumnMarker</a>&nbsp;marker)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/ScanSchemaTracker.html#expandImplicitCol-org.apache.drill.exec.record.metadata.ColumnMetadata-org.apache.drill.exec.physical.impl.scan.v3.file.ImplicitColumnMarker-">ScanSchemaTracker</a></code></span></div>
<div class="block">Drill defines a wildcard to expand not just reader columns, but also
partition columns. When the implicit column handlers sees that the
query has a wildcard (by calling <code>#isProjectAll()</code>), the handler
then determines which partition columns are needed and calls this
method to add each one.</div>
</li>
</ul>
<a name="schemaVersion--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>schemaVersion</h4>
<pre>public&nbsp;int&nbsp;schemaVersion()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/ScanSchemaTracker.html#schemaVersion--">ScanSchemaTracker</a></code></span></div>
<div class="block">Gives the output schema version which will start at some arbitrary
positive number.
<p>
If schema change is allowed, the schema version allows detecting
schema changes as the scan schema moves from one resolved state to
the next. Each schema will have a unique, increasing version number.
A schema change has occurred if the version is newer than the previous
output schema version.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/ScanSchemaTracker.html#schemaVersion--">schemaVersion</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/ScanSchemaTracker.html" title="interface in org.apache.drill.exec.physical.impl.scan.v3.schema">ScanSchemaTracker</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/AbstractSchemaTracker.html#schemaVersion--">schemaVersion</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/AbstractSchemaTracker.html" title="class in org.apache.drill.exec.physical.impl.scan.v3.schema">AbstractSchemaTracker</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the schema version. The absolute number is not important,
rather an increase indicates one or more columns were added at the
top level or within a map at some nesting level</dd>
</dl>
</li>
</ul>
<a name="columnProjection-java.lang.String-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>columnProjection</h4>
<pre>public&nbsp;<a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/ProjectedColumn.html" title="class in org.apache.drill.exec.physical.impl.scan.v3.schema">ProjectedColumn</a>&nbsp;columnProjection(<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;colName)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/ScanSchemaTracker.html#columnProjection-java.lang.String-">ScanSchemaTracker</a></code></span></div>
<div class="block">Return the projection for a column, if any.</div>
</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/SchemaBasedTracker.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/v3/schema/ScanSchemaTracker.ProjectionType.html" title="enum in org.apache.drill.exec.physical.impl.scan.v3.schema"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/SchemaUtils.html" title="class in org.apache.drill.exec.physical.impl.scan.v3.schema"><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/v3/schema/SchemaBasedTracker.html" target="_top">Frames</a></li>
<li><a href="SchemaBasedTracker.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><a href="#fields.inherited.from.class.org.apache.drill.exec.physical.impl.scan.v3.schema.AbstractSchemaTracker">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>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 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>