blob: 3d7b7606ce7984fbbca74301171363b706b348ee [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>ProjectionSchemaTracker (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="ProjectionSchemaTracker (Drill : 1.20.3 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":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/ProjectionSchemaTracker.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/ProjectedColumn.html" title="class 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/ScanProjectionParser.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/ProjectionSchemaTracker.html" target="_top">Frames</a></li>
<li><a href="ProjectionSchemaTracker.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 ProjectionSchemaTracker" class="title">Class ProjectionSchemaTracker</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.ProjectionSchemaTracker</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">ProjectionSchemaTracker</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">Schema tracker for the "normal" case in which schema starts from a simple
projection list of column names, optionally with a provided schema. The
schema evolves by locating implicit columns, then having he reader define
column types, and so on.</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/ProjectionSchemaTracker.html#ProjectionSchemaTracker-org.apache.drill.exec.physical.impl.scan.v3.schema.ScanProjectionParser.ProjectionParseResult-boolean-org.apache.drill.common.exceptions.CustomErrorContext-">ProjectionSchemaTracker</a></span>(<a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/ScanProjectionParser.ProjectionParseResult.html" title="class in org.apache.drill.exec.physical.impl.scan.v3.schema">ScanProjectionParser.ProjectionParseResult</a>&nbsp;parseResult,
boolean&nbsp;allowSchemaChange,
<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>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/ProjectionSchemaTracker.html#ProjectionSchemaTracker-org.apache.drill.exec.record.metadata.TupleMetadata-org.apache.drill.exec.physical.impl.scan.v3.schema.ScanProjectionParser.ProjectionParseResult-org.apache.drill.common.exceptions.CustomErrorContext-">ProjectionSchemaTracker</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/exec/physical/impl/scan/v3/schema/ScanProjectionParser.ProjectionParseResult.html" title="class in org.apache.drill.exec.physical.impl.scan.v3.schema">ScanProjectionParser.ProjectionParseResult</a>&nbsp;parseResult,
<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/ProjectionSchemaTracker.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/ProjectionSchemaTracker.html#applyProvidedSchema-org.apache.drill.exec.record.metadata.TupleMetadata-">applyProvidedSchema</a></span>(<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/TupleMetadata.html" title="interface in org.apache.drill.exec.record.metadata">TupleMetadata</a>&nbsp;providedSchema)</code>&nbsp;</td>
</tr>
<tr id="i2" 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/ProjectionSchemaTracker.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="i3" class="rowColor">
<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/ProjectionSchemaTracker.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="i4" 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/ProjectionSchemaTracker.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="i5" class="rowColor">
<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/ProjectionSchemaTracker.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 reader input schema returned
from <a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/AbstractSchemaTracker.html#readerInputSchema--"><code>AbstractSchemaTracker.readerInputSchema()</code></a>.</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#schemaVersion--">schemaVersion</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="ProjectionSchemaTracker-org.apache.drill.exec.record.metadata.TupleMetadata-org.apache.drill.exec.physical.impl.scan.v3.schema.ScanProjectionParser.ProjectionParseResult-org.apache.drill.common.exceptions.CustomErrorContext-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ProjectionSchemaTracker</h4>
<pre>public&nbsp;ProjectionSchemaTracker(<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/exec/physical/impl/scan/v3/schema/ScanProjectionParser.ProjectionParseResult.html" title="class in org.apache.drill.exec.physical.impl.scan.v3.schema">ScanProjectionParser.ProjectionParseResult</a>&nbsp;parseResult,
<a href="../../../../../../../../../org/apache/drill/common/exceptions/CustomErrorContext.html" title="interface in org.apache.drill.common.exceptions">CustomErrorContext</a>&nbsp;errorContext)</pre>
</li>
</ul>
<a name="ProjectionSchemaTracker-org.apache.drill.exec.physical.impl.scan.v3.schema.ScanProjectionParser.ProjectionParseResult-boolean-org.apache.drill.common.exceptions.CustomErrorContext-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ProjectionSchemaTracker</h4>
<pre>public&nbsp;ProjectionSchemaTracker(<a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/ScanProjectionParser.ProjectionParseResult.html" title="class in org.apache.drill.exec.physical.impl.scan.v3.schema">ScanProjectionParser.ProjectionParseResult</a>&nbsp;parseResult,
boolean&nbsp;allowSchemaChange,
<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="columnProjection-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<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>
<a name="applyProvidedSchema-org.apache.drill.exec.record.metadata.TupleMetadata-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>applyProvidedSchema</h4>
<pre>public&nbsp;void&nbsp;applyProvidedSchema(<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/TupleMetadata.html" title="interface in org.apache.drill.exec.record.metadata">TupleMetadata</a>&nbsp;providedSchema)</pre>
</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 reader input schema returned
from <a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/AbstractSchemaTracker.html#readerInputSchema--"><code>AbstractSchemaTracker.readerInputSchema()</code></a>.
<ul>
<li>If this is an empty projection (@{code SELECT COUNT(*)}), then
noting can be projected at all.</li>
<li>If this is an explicit projection (@code SELECT a, b)}, then
the set of top-level columns is fixed, though the types are unknown.
Maps allow new members depending on the map projection: a generic
projection (<code>m</code>) allows new members, a specific projection
(<code>m.a, m.b</code>) does not allow new members.</li>
<li>If the schema has been resolved and is now fixed (closed), then
no new columns are allowed either at the top level or in maps.</li>
<li>If the schema is open (<code>SELECT *</code> for the first reader,
or schema change is allowed in the second reader), and we have
no columns, then just project everything.</li>
<li>If the schema is open, but we have seen some columns, then
columns can still be added, but existing columns must match the
existing schema.</li>
</ul>
<p>
Static filters handle the simple "none" and "starting from nothing
all" cases. The dynamic schema filter handles the case of existing
columns whether dynamic or static.</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="blockListLast">
<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>
</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/ProjectionSchemaTracker.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/ProjectedColumn.html" title="class 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/ScanProjectionParser.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/ProjectionSchemaTracker.html" target="_top">Frames</a></li>
<li><a href="ProjectionSchemaTracker.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>