blob: 47f15434f8c0128a662b44e65ce7ac3c3bea22e5 [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>SchemaUtils (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="SchemaUtils (Drill : 1.20.3 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9,"i11":9,"i12":9,"i13":9,"i14":9,"i15":9,"i16":9,"i17":9,"i18":9,"i19":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static 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/SchemaUtils.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/SchemaBasedTracker.html" title="class in org.apache.drill.exec.physical.impl.scan.v3.schema"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li>Next&nbsp;Class</li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../../../index.html?org/apache/drill/exec/physical/impl/scan/v3/schema/SchemaUtils.html" target="_top">Frames</a></li>
<li><a href="SchemaUtils.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="#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.v3.schema</div>
<h2 title="Class SchemaUtils" class="title">Class SchemaUtils</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.v3.schema.SchemaUtils</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="typeNameLabel">SchemaUtils</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></pre>
<div class="block">Set of schema utilities that don't fit well as methods on the column
or tuple classes.
<p>
Provides methods to check if a column is consistent with the projection
requested for a query. Used for scans: the reader offers certain columns
and the scan operator must decide whether to accept them, and if so,
if the column that has actually appeared is consistent with the projection
schema path provided by the planner. An obvious example is if projection
asks for <code>a[0]</code> (and array), but the reader offer up <code>a</code>
as a non-array column.
<p>
Checks are reasonable, but not complete. Particularly in the <code>DICT</code>
case, projection depends on multiple factors, such as the type of the
key and values. This class does not (yet) handle that complexity.
Instead, the goal is no false negatives for the complex cases, while
catching the simple cases.
<p>
The Project operator or other consuming operator is the final arbitrator
of whether a particular column satisfies a particular projection. This
class tries to catch those errors early to provide better error
messages.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== 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 static org.slf4j.Logger</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/SchemaUtils.html#logger">logger</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/v3/schema/SchemaUtils.html#SchemaUtils--">SchemaUtils</a></span>()</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="t1" class="tableTab"><span><a href="javascript:show(1);">Static 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>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/SchemaUtils.html#copyMapProperties-org.apache.drill.exec.physical.impl.scan.v3.schema.ProjectedColumn-org.apache.drill.exec.record.metadata.ColumnMetadata-">copyMapProperties</a></span>(<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;source,
<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/ColumnMetadata.html" title="interface in org.apache.drill.exec.record.metadata">ColumnMetadata</a>&nbsp;dest)</code>&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static <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/v3/schema/SchemaUtils.html#implicitColType-org.apache.drill.exec.record.metadata.ColumnMetadata-">implicitColType</a></span>(<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/ColumnMetadata.html" title="interface in org.apache.drill.exec.record.metadata">ColumnMetadata</a>&nbsp;col)</code>&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/SchemaUtils.html#isConsistent-org.apache.drill.exec.physical.impl.scan.v3.schema.ProjectedColumn-org.apache.drill.exec.record.metadata.ColumnMetadata-">isConsistent</a></span>(<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;colReq,
<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/ColumnMetadata.html" title="interface in org.apache.drill.exec.record.metadata">ColumnMetadata</a>&nbsp;readCol)</code>
<div class="block">Check if the given read column is consistent with the projection requested for
that column.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/SchemaUtils.html#isExcludedFromWildcard-org.apache.drill.exec.record.metadata.ColumnMetadata-">isExcludedFromWildcard</a></span>(<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/ColumnMetadata.html" title="interface in org.apache.drill.exec.record.metadata">ColumnMetadata</a>&nbsp;col)</code>&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/SchemaUtils.html#isImplicit-org.apache.drill.exec.record.metadata.ColumnMetadata-">isImplicit</a></span>(<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/ColumnMetadata.html" title="interface in org.apache.drill.exec.record.metadata">ColumnMetadata</a>&nbsp;col)</code>&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/SchemaUtils.html#isProjectAll-org.apache.drill.exec.record.metadata.TupleMetadata-">isProjectAll</a></span>(<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/TupleMetadata.html" title="interface in org.apache.drill.exec.record.metadata">TupleMetadata</a>&nbsp;tuple)</code>&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/SchemaUtils.html#isProjectNone-org.apache.drill.exec.record.metadata.TupleMetadata-">isProjectNone</a></span>(<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/TupleMetadata.html" title="interface in org.apache.drill.exec.record.metadata">TupleMetadata</a>&nbsp;tuple)</code>&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/SchemaUtils.html#isStrict-org.apache.drill.exec.record.metadata.TupleMetadata-">isStrict</a></span>(<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/TupleMetadata.html" title="interface in org.apache.drill.exec.record.metadata">TupleMetadata</a>&nbsp;schema)</code>&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/SchemaUtils.html#markAsPartition-org.apache.drill.exec.record.metadata.ColumnMetadata-int-">markAsPartition</a></span>(<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/ColumnMetadata.html" title="interface in org.apache.drill.exec.record.metadata">ColumnMetadata</a>&nbsp;col,
int&nbsp;level)</code>&nbsp;</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/SchemaUtils.html#markExcludeFromWildcard-org.apache.drill.exec.record.metadata.ColumnMetadata-">markExcludeFromWildcard</a></span>(<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/ColumnMetadata.html" title="interface in org.apache.drill.exec.record.metadata">ColumnMetadata</a>&nbsp;col)</code>&nbsp;</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/SchemaUtils.html#markImplicit-org.apache.drill.exec.record.metadata.ColumnMetadata-java.lang.String-">markImplicit</a></span>(<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/ColumnMetadata.html" title="interface in org.apache.drill.exec.record.metadata">ColumnMetadata</a>&nbsp;col,
<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;value)</code>&nbsp;</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/SchemaUtils.html#markProjectAll-org.apache.drill.exec.record.metadata.ColumnMetadata-">markProjectAll</a></span>(<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/ColumnMetadata.html" title="interface in org.apache.drill.exec.record.metadata">ColumnMetadata</a>&nbsp;col)</code>&nbsp;</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/SchemaUtils.html#markStrict-org.apache.drill.exec.record.metadata.TupleMetadata-">markStrict</a></span>(<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/TupleMetadata.html" title="interface in org.apache.drill.exec.record.metadata">TupleMetadata</a>&nbsp;schema)</code>&nbsp;</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/SchemaUtils.html#mergeColProperties-org.apache.drill.exec.record.metadata.ColumnMetadata-org.apache.drill.exec.record.metadata.ColumnMetadata-">mergeColProperties</a></span>(<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/ColumnMetadata.html" title="interface in org.apache.drill.exec.record.metadata">ColumnMetadata</a>&nbsp;existing,
<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/ColumnMetadata.html" title="interface in org.apache.drill.exec.record.metadata">ColumnMetadata</a>&nbsp;revised)</code>&nbsp;</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/SchemaUtils.html#mergeProperties-org.apache.drill.exec.record.metadata.Propertied-org.apache.drill.exec.record.metadata.Propertied-">mergeProperties</a></span>(<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/Propertied.html" title="interface in org.apache.drill.exec.record.metadata">Propertied</a>&nbsp;existing,
<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/Propertied.html" title="interface in org.apache.drill.exec.record.metadata">Propertied</a>&nbsp;revised)</code>&nbsp;</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>static <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></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/SchemaUtils.html#projectAll--">projectAll</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>static <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></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/SchemaUtils.html#projectNone--">projectNone</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/SchemaUtils.html#verifyCompatibility-org.apache.drill.exec.physical.impl.scan.v3.schema.ProjectedColumn-org.apache.drill.exec.record.metadata.ColumnMetadata-java.lang.String-org.apache.drill.common.exceptions.CustomErrorContext-">verifyCompatibility</a></span>(<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;colReq,
<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/ColumnMetadata.html" title="interface in org.apache.drill.exec.record.metadata">ColumnMetadata</a>&nbsp;actual,
<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;source,
<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">Perform the column-level projection as described in
<code>#isConsistent(RequestedColumn, ColumnMetadata)</code>, and raise a
<code>UserException</code> if the column is not consistent with projection.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/SchemaUtils.html#verifyConsistency-org.apache.drill.exec.record.metadata.ColumnMetadata-org.apache.drill.exec.record.metadata.ColumnMetadata-java.lang.String-org.apache.drill.common.exceptions.CustomErrorContext-">verifyConsistency</a></span>(<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/ColumnMetadata.html" title="interface in org.apache.drill.exec.record.metadata">ColumnMetadata</a>&nbsp;existing,
<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/ColumnMetadata.html" title="interface in org.apache.drill.exec.record.metadata">ColumnMetadata</a>&nbsp;revised,
<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;source,
<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 id="i19" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/SchemaUtils.html#verifyProjection-org.apache.drill.exec.record.metadata.ColumnMetadata-org.apache.drill.exec.record.metadata.ColumnMetadata-java.lang.String-org.apache.drill.common.exceptions.CustomErrorContext-">verifyProjection</a></span>(<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/ColumnMetadata.html" title="interface in org.apache.drill.exec.record.metadata">ColumnMetadata</a>&nbsp;existing,
<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/ColumnMetadata.html" title="interface in org.apache.drill.exec.record.metadata">ColumnMetadata</a>&nbsp;revised,
<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;source,
<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>
<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">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="logger">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>logger</h4>
<pre>protected static final&nbsp;org.slf4j.Logger logger</pre>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="SchemaUtils--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>SchemaUtils</h4>
<pre>public&nbsp;SchemaUtils()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="isConsistent-org.apache.drill.exec.physical.impl.scan.v3.schema.ProjectedColumn-org.apache.drill.exec.record.metadata.ColumnMetadata-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isConsistent</h4>
<pre>public static&nbsp;boolean&nbsp;isConsistent(<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;colReq,
<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/ColumnMetadata.html" title="interface in org.apache.drill.exec.record.metadata">ColumnMetadata</a>&nbsp;readCol)</pre>
<div class="block">Check if the given read column is consistent with the projection requested for
that column. Does not handle subtleties such as DICT key types, actual types
in a UNION, etc.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>colReq</code> - the column-level projection description</dd>
<dd><code>readCol</code> - metadata for the column which the reader has actually
produced</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if the column is consistent with projection (or if the
column is too complex to check), <code>false</code> if the column is not
consistent and represents an error case. Also returns <code>true</code> if
the column is not projected, as any type of column can be ignored</dd>
</dl>
</li>
</ul>
<a name="verifyCompatibility-org.apache.drill.exec.physical.impl.scan.v3.schema.ProjectedColumn-org.apache.drill.exec.record.metadata.ColumnMetadata-java.lang.String-org.apache.drill.common.exceptions.CustomErrorContext-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>verifyCompatibility</h4>
<pre>public static&nbsp;void&nbsp;verifyCompatibility(<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;colReq,
<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/ColumnMetadata.html" title="interface in org.apache.drill.exec.record.metadata">ColumnMetadata</a>&nbsp;actual,
<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;source,
<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">Perform the column-level projection as described in
<code>#isConsistent(RequestedColumn, ColumnMetadata)</code>, and raise a
<code>UserException</code> if the column is not consistent with projection.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>colReq</code> - the column-level projection description</dd>
<dd><code>actual</code> - metadata for the column which the reader has actually
produced</dd>
<dd><code>errorContext</code> - additional error context to pass along in the
exception</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../../../../../org/apache/drill/common/exceptions/UserException.html" title="class in org.apache.drill.common.exceptions">UserException</a></code> - if the read column is not consistent with the
projection description for the column</dd>
</dl>
</li>
</ul>
<a name="verifyConsistency-org.apache.drill.exec.record.metadata.ColumnMetadata-org.apache.drill.exec.record.metadata.ColumnMetadata-java.lang.String-org.apache.drill.common.exceptions.CustomErrorContext-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>verifyConsistency</h4>
<pre>public static&nbsp;void&nbsp;verifyConsistency(<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/ColumnMetadata.html" title="interface in org.apache.drill.exec.record.metadata">ColumnMetadata</a>&nbsp;existing,
<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/ColumnMetadata.html" title="interface in org.apache.drill.exec.record.metadata">ColumnMetadata</a>&nbsp;revised,
<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;source,
<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="verifyProjection-org.apache.drill.exec.record.metadata.ColumnMetadata-org.apache.drill.exec.record.metadata.ColumnMetadata-java.lang.String-org.apache.drill.common.exceptions.CustomErrorContext-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>verifyProjection</h4>
<pre>public static&nbsp;void&nbsp;verifyProjection(<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/ColumnMetadata.html" title="interface in org.apache.drill.exec.record.metadata">ColumnMetadata</a>&nbsp;existing,
<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/ColumnMetadata.html" title="interface in org.apache.drill.exec.record.metadata">ColumnMetadata</a>&nbsp;revised,
<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;source,
<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="mergeColProperties-org.apache.drill.exec.record.metadata.ColumnMetadata-org.apache.drill.exec.record.metadata.ColumnMetadata-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>mergeColProperties</h4>
<pre>public static&nbsp;void&nbsp;mergeColProperties(<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/ColumnMetadata.html" title="interface in org.apache.drill.exec.record.metadata">ColumnMetadata</a>&nbsp;existing,
<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/ColumnMetadata.html" title="interface in org.apache.drill.exec.record.metadata">ColumnMetadata</a>&nbsp;revised)</pre>
</li>
</ul>
<a name="mergeProperties-org.apache.drill.exec.record.metadata.Propertied-org.apache.drill.exec.record.metadata.Propertied-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>mergeProperties</h4>
<pre>public static&nbsp;void&nbsp;mergeProperties(<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/Propertied.html" title="interface in org.apache.drill.exec.record.metadata">Propertied</a>&nbsp;existing,
<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/Propertied.html" title="interface in org.apache.drill.exec.record.metadata">Propertied</a>&nbsp;revised)</pre>
</li>
</ul>
<a name="isStrict-org.apache.drill.exec.record.metadata.TupleMetadata-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isStrict</h4>
<pre>public static&nbsp;boolean&nbsp;isStrict(<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/TupleMetadata.html" title="interface in org.apache.drill.exec.record.metadata">TupleMetadata</a>&nbsp;schema)</pre>
</li>
</ul>
<a name="markStrict-org.apache.drill.exec.record.metadata.TupleMetadata-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>markStrict</h4>
<pre>public static&nbsp;void&nbsp;markStrict(<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/TupleMetadata.html" title="interface in org.apache.drill.exec.record.metadata">TupleMetadata</a>&nbsp;schema)</pre>
</li>
</ul>
<a name="implicitColType-org.apache.drill.exec.record.metadata.ColumnMetadata-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>implicitColType</h4>
<pre>public static&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;implicitColType(<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/ColumnMetadata.html" title="interface in org.apache.drill.exec.record.metadata">ColumnMetadata</a>&nbsp;col)</pre>
</li>
</ul>
<a name="isImplicit-org.apache.drill.exec.record.metadata.ColumnMetadata-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isImplicit</h4>
<pre>public static&nbsp;boolean&nbsp;isImplicit(<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/ColumnMetadata.html" title="interface in org.apache.drill.exec.record.metadata">ColumnMetadata</a>&nbsp;col)</pre>
</li>
</ul>
<a name="markImplicit-org.apache.drill.exec.record.metadata.ColumnMetadata-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>markImplicit</h4>
<pre>public static&nbsp;void&nbsp;markImplicit(<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/ColumnMetadata.html" title="interface in org.apache.drill.exec.record.metadata">ColumnMetadata</a>&nbsp;col,
<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;value)</pre>
</li>
</ul>
<a name="markAsPartition-org.apache.drill.exec.record.metadata.ColumnMetadata-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>markAsPartition</h4>
<pre>public static&nbsp;void&nbsp;markAsPartition(<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/ColumnMetadata.html" title="interface in org.apache.drill.exec.record.metadata">ColumnMetadata</a>&nbsp;col,
int&nbsp;level)</pre>
</li>
</ul>
<a name="markExcludeFromWildcard-org.apache.drill.exec.record.metadata.ColumnMetadata-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>markExcludeFromWildcard</h4>
<pre>public static&nbsp;void&nbsp;markExcludeFromWildcard(<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/ColumnMetadata.html" title="interface in org.apache.drill.exec.record.metadata">ColumnMetadata</a>&nbsp;col)</pre>
</li>
</ul>
<a name="isExcludedFromWildcard-org.apache.drill.exec.record.metadata.ColumnMetadata-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isExcludedFromWildcard</h4>
<pre>public static&nbsp;boolean&nbsp;isExcludedFromWildcard(<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/ColumnMetadata.html" title="interface in org.apache.drill.exec.record.metadata">ColumnMetadata</a>&nbsp;col)</pre>
</li>
</ul>
<a name="projectAll--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>projectAll</h4>
<pre>public static&nbsp;<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;projectAll()</pre>
</li>
</ul>
<a name="markProjectAll-org.apache.drill.exec.record.metadata.ColumnMetadata-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>markProjectAll</h4>
<pre>public static&nbsp;void&nbsp;markProjectAll(<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/ColumnMetadata.html" title="interface in org.apache.drill.exec.record.metadata">ColumnMetadata</a>&nbsp;col)</pre>
</li>
</ul>
<a name="projectNone--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>projectNone</h4>
<pre>public static&nbsp;<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;projectNone()</pre>
</li>
</ul>
<a name="isProjectAll-org.apache.drill.exec.record.metadata.TupleMetadata-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isProjectAll</h4>
<pre>public static&nbsp;boolean&nbsp;isProjectAll(<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/TupleMetadata.html" title="interface in org.apache.drill.exec.record.metadata">TupleMetadata</a>&nbsp;tuple)</pre>
</li>
</ul>
<a name="isProjectNone-org.apache.drill.exec.record.metadata.TupleMetadata-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isProjectNone</h4>
<pre>public static&nbsp;boolean&nbsp;isProjectNone(<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/TupleMetadata.html" title="interface in org.apache.drill.exec.record.metadata">TupleMetadata</a>&nbsp;tuple)</pre>
</li>
</ul>
<a name="copyMapProperties-org.apache.drill.exec.physical.impl.scan.v3.schema.ProjectedColumn-org.apache.drill.exec.record.metadata.ColumnMetadata-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>copyMapProperties</h4>
<pre>public static&nbsp;void&nbsp;copyMapProperties(<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;source,
<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/ColumnMetadata.html" title="interface in org.apache.drill.exec.record.metadata">ColumnMetadata</a>&nbsp;dest)</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/SchemaUtils.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/SchemaBasedTracker.html" title="class in org.apache.drill.exec.physical.impl.scan.v3.schema"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li>Next&nbsp;Class</li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../../../index.html?org/apache/drill/exec/physical/impl/scan/v3/schema/SchemaUtils.html" target="_top">Frames</a></li>
<li><a href="SchemaUtils.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="#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>