blob: 9a48cf48384ff6bbfdbda6caaaa24ea228a0fa00 [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>ParquetSchema (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="ParquetSchema (Drill : 1.20.3 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":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/ParquetSchema.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/store/parquet/columnreaders/ParquetRecordReader.html" title="class in org.apache.drill.exec.store.parquet.columnreaders"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../../org/apache/drill/exec/store/parquet/columnreaders/ParquetToDrillTypeConverter.html" title="class in org.apache.drill.exec.store.parquet.columnreaders"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../index.html?org/apache/drill/exec/store/parquet/columnreaders/ParquetSchema.html" target="_top">Frames</a></li>
<li><a href="ParquetSchema.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>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.drill.exec.store.parquet.columnreaders</div>
<h2 title="Class ParquetSchema" class="title">Class ParquetSchema</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.store.parquet.columnreaders.ParquetSchema</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public final class <span class="typeNameLabel">ParquetSchema</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">Mapping from the schema of the Parquet file to that of the record reader
to the schema that Drill and the Parquet reader uses.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== 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/store/parquet/columnreaders/ParquetSchema.html#ParquetSchema-org.apache.drill.exec.server.options.OptionManager-int-org.apache.parquet.hadoop.metadata.ParquetMetadata-java.util.Collection-">ParquetSchema</a></span>(<a href="../../../../../../../org/apache/drill/exec/server/options/OptionManager.html" title="interface in org.apache.drill.exec.server.options">OptionManager</a>&nbsp;options,
int&nbsp;rowGroupIndex,
org.apache.parquet.hadoop.metadata.ParquetMetadata&nbsp;footer,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../../org/apache/drill/common/expression/SchemaPath.html" title="class in org.apache.drill.common.expression">SchemaPath</a>&gt;&nbsp;selectedCols)</code>
<div class="block">Build the Parquet schema.</div>
</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>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/drill/exec/store/parquet/columnreaders/ParquetSchema.html#allFieldsFixedLength--">allFieldsFixedLength</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/drill/exec/store/parquet/columnreaders/ParquetSchema.html#buildSchema--">buildSchema</a></span>()</code>
<div class="block">Build the schema for this read as a combination of the schema specified in
the Parquet footer and the list of columns selected in the query.</div>
</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/store/parquet/columnreaders/ParquetSchema.html#createNonExistentColumns-org.apache.drill.exec.physical.impl.OutputMutator-java.util.List-">createNonExistentColumns</a></span>(<a href="../../../../../../../org/apache/drill/exec/physical/impl/OutputMutator.html" title="interface in org.apache.drill.exec.physical.impl">OutputMutator</a>&nbsp;output,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../../org/apache/drill/exec/vector/NullableIntVector.html" title="class in org.apache.drill.exec.vector">NullableIntVector</a>&gt;&nbsp;nullFilledVectors)</code>
<div class="block">Create "dummy" fields for columns which are selected in the SELECT clause, but not
present in the Parquet schema.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>org.apache.parquet.hadoop.metadata.ParquetMetadata</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/drill/exec/store/parquet/columnreaders/ParquetSchema.html#footer--">footer</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/drill/exec/store/parquet/columnreaders/ParquetSchema.html#getBitWidthAllFixedFields--">getBitWidthAllFixedFields</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../../org/apache/drill/exec/store/parquet/columnreaders/ParquetColumnMetadata.html" title="class in org.apache.drill.exec.store.parquet.columnreaders">ParquetColumnMetadata</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/drill/exec/store/parquet/columnreaders/ParquetSchema.html#getColumnMetadata--">getColumnMetadata</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/drill/exec/store/parquet/columnreaders/ParquetSchema.html#getGroupRecordCount--">getGroupRecordCount</a></span>()</code>
<div class="block">Return the Parquet file row count.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>org.apache.parquet.hadoop.metadata.BlockMetaData</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/drill/exec/store/parquet/columnreaders/ParquetSchema.html#getRowGroupMetadata--">getRowGroupMetadata</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/drill/exec/store/parquet/columnreaders/ParquetSchema.html#isStarQuery--">isStarQuery</a></span>()</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">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="ParquetSchema-org.apache.drill.exec.server.options.OptionManager-int-org.apache.parquet.hadoop.metadata.ParquetMetadata-java.util.Collection-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ParquetSchema</h4>
<pre>public&nbsp;ParquetSchema(<a href="../../../../../../../org/apache/drill/exec/server/options/OptionManager.html" title="interface in org.apache.drill.exec.server.options">OptionManager</a>&nbsp;options,
int&nbsp;rowGroupIndex,
org.apache.parquet.hadoop.metadata.ParquetMetadata&nbsp;footer,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../../org/apache/drill/common/expression/SchemaPath.html" title="class in org.apache.drill.common.expression">SchemaPath</a>&gt;&nbsp;selectedCols)</pre>
<div class="block">Build the Parquet schema. The schema can be based on a "SELECT *",
meaning we want all columns defined in the Parquet file. In this case,
the list of selected columns is null. Or, the query can be based on
an explicit list of selected columns. In this case, the
columns need not exist in the Parquet file. If a column does not exist,
the reader returns null for that column. If no selected column exists
in the file, then we return "mock" records: records with only null
values, but repeated for the number of rows in the Parquet file.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>options</code> - session options</dd>
<dd><code>rowGroupIndex</code> - row group to read</dd>
<dd><code>selectedCols</code> - columns specified in the SELECT clause, or null if
this is a SELECT * query</dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="buildSchema--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>buildSchema</h4>
<pre>public&nbsp;void&nbsp;buildSchema()</pre>
<div class="block">Build the schema for this read as a combination of the schema specified in
the Parquet footer and the list of columns selected in the query.</div>
</li>
</ul>
<a name="isStarQuery--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isStarQuery</h4>
<pre>public&nbsp;boolean&nbsp;isStarQuery()</pre>
</li>
</ul>
<a name="footer--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>footer</h4>
<pre>public&nbsp;org.apache.parquet.hadoop.metadata.ParquetMetadata&nbsp;footer()</pre>
</li>
</ul>
<a name="getBitWidthAllFixedFields--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getBitWidthAllFixedFields</h4>
<pre>public&nbsp;int&nbsp;getBitWidthAllFixedFields()</pre>
</li>
</ul>
<a name="allFieldsFixedLength--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>allFieldsFixedLength</h4>
<pre>public&nbsp;boolean&nbsp;allFieldsFixedLength()</pre>
</li>
</ul>
<a name="getColumnMetadata--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getColumnMetadata</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../../org/apache/drill/exec/store/parquet/columnreaders/ParquetColumnMetadata.html" title="class in org.apache.drill.exec.store.parquet.columnreaders">ParquetColumnMetadata</a>&gt;&nbsp;getColumnMetadata()</pre>
</li>
</ul>
<a name="getGroupRecordCount--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getGroupRecordCount</h4>
<pre>public&nbsp;long&nbsp;getGroupRecordCount()</pre>
<div class="block">Return the Parquet file row count.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>number of records in the Parquet row group</dd>
</dl>
</li>
</ul>
<a name="getRowGroupMetadata--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRowGroupMetadata</h4>
<pre>public&nbsp;org.apache.parquet.hadoop.metadata.BlockMetaData&nbsp;getRowGroupMetadata()</pre>
</li>
</ul>
<a name="createNonExistentColumns-org.apache.drill.exec.physical.impl.OutputMutator-java.util.List-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>createNonExistentColumns</h4>
<pre>public&nbsp;void&nbsp;createNonExistentColumns(<a href="../../../../../../../org/apache/drill/exec/physical/impl/OutputMutator.html" title="interface in org.apache.drill.exec.physical.impl">OutputMutator</a>&nbsp;output,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../../org/apache/drill/exec/vector/NullableIntVector.html" title="class in org.apache.drill.exec.vector">NullableIntVector</a>&gt;&nbsp;nullFilledVectors)
throws <a href="../../../../../../../org/apache/drill/exec/exception/SchemaChangeException.html" title="class in org.apache.drill.exec.exception">SchemaChangeException</a></pre>
<div class="block">Create "dummy" fields for columns which are selected in the SELECT clause, but not
present in the Parquet schema.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>output</code> - the output container</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../../../org/apache/drill/exec/exception/SchemaChangeException.html" title="class in org.apache.drill.exec.exception">SchemaChangeException</a></code> - should not occur</dd>
</dl>
</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/ParquetSchema.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/store/parquet/columnreaders/ParquetRecordReader.html" title="class in org.apache.drill.exec.store.parquet.columnreaders"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../../org/apache/drill/exec/store/parquet/columnreaders/ParquetToDrillTypeConverter.html" title="class in org.apache.drill.exec.store.parquet.columnreaders"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../index.html?org/apache/drill/exec/store/parquet/columnreaders/ParquetSchema.html" target="_top">Frames</a></li>
<li><a href="ParquetSchema.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>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a 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>