blob: 4dae4efd78b17b3e9cb751435efc83f2cd537d18 [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>NullStateReader (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="NullStateReader (Drill : 1.20.3 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":6,"i1":6,"i2":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract 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/NullStateReader.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/vector/accessor/reader/MapReader.html" title="class in org.apache.drill.exec.vector.accessor.reader"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../../org/apache/drill/exec/vector/accessor/reader/NullStateReaders.html" title="class in org.apache.drill.exec.vector.accessor.reader"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../index.html?org/apache/drill/exec/vector/accessor/reader/NullStateReader.html" target="_top">Frames</a></li>
<li><a href="NullStateReader.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>Constr&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>Constr&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.vector.accessor.reader</div>
<h2 title="Interface NullStateReader" class="title">Interface NullStateReader</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../../../../../../../org/apache/drill/exec/vector/accessor/reader/NullStateReaders.AlwaysNullStateReader.html" title="class in org.apache.drill.exec.vector.accessor.reader">NullStateReaders.AlwaysNullStateReader</a>, <a href="../../../../../../../org/apache/drill/exec/vector/accessor/reader/NullStateReaders.ComplexMemberStateReader.html" title="class in org.apache.drill.exec.vector.accessor.reader">NullStateReaders.ComplexMemberStateReader</a>, <a href="../../../../../../../org/apache/drill/exec/vector/accessor/reader/NullStateReaders.ListIsSetVectorStateReader.html" title="class in org.apache.drill.exec.vector.accessor.reader">NullStateReaders.ListIsSetVectorStateReader</a>, <a href="../../../../../../../org/apache/drill/exec/vector/accessor/reader/NullStateReaders.MemberNullStateReader.html" title="class in org.apache.drill.exec.vector.accessor.reader">NullStateReaders.MemberNullStateReader</a>, <a href="../../../../../../../org/apache/drill/exec/vector/accessor/reader/NullStateReaders.NullableIsSetVectorStateReader.html" title="class in org.apache.drill.exec.vector.accessor.reader">NullStateReaders.NullableIsSetVectorStateReader</a>, <a href="../../../../../../../org/apache/drill/exec/vector/accessor/reader/NullStateReaders.RequiredStateReader.html" title="class in org.apache.drill.exec.vector.accessor.reader">NullStateReaders.RequiredStateReader</a>, <a href="../../../../../../../org/apache/drill/exec/vector/accessor/reader/NullStateReaders.TypeVectorStateReader.html" title="class in org.apache.drill.exec.vector.accessor.reader">NullStateReaders.TypeVectorStateReader</a></dd>
</dl>
<hr>
<br>
<pre>public interface <span class="typeNameLabel">NullStateReader</span></pre>
<div class="block">Internal mechanism to detect if a value is null. Handles the multiple ways
that Drill represents nulls:
<ul>
<li>Required and repeated modes: value is never null.</li>
<li>Optional mode: null state is carried by an associated "bits" vector.</li>
<li>Union: null state is carried by <i>both</i> the bits state of
the union itself, and the null state of the associated nullable vector.
(The union states if the column value itself is null; the vector state is
if that value is null, which will occur if either the column is null, or
if the type of the column is something other than the type in question.)</li>
<li>List, with a single data vector: null state is carried by the list vector
and the associated nullable data vector. Presumably the list vector state
takes precedence.</li>
<li>List, with a union data vector (AKA variant array or union array): the
null state is carried by all three of a) the list vector, b) the union
vector, and c) the type vectors. Presumably, the list vector state has
precedence.</li>
</ul>
<p>
The interface here allows each reader to delegate the null logic to a
separate component, keeping the data access portion itself simple.
<p>
As with all readers, this reader must handle both the single-batch and
the hyper-batch cases.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></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/vector/accessor/reader/NullStateReader.html#bindBuffer--">bindBuffer</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/vector/accessor/reader/NullStateReader.html#bindIndex-org.apache.drill.exec.vector.accessor.ColumnReaderIndex-">bindIndex</a></span>(<a href="../../../../../../../org/apache/drill/exec/vector/accessor/ColumnReaderIndex.html" title="interface in org.apache.drill.exec.vector.accessor">ColumnReaderIndex</a>&nbsp;rowIndex)</code>&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/drill/exec/vector/accessor/reader/NullStateReader.html#isNull--">isNull</a></span>()</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="bindIndex-org.apache.drill.exec.vector.accessor.ColumnReaderIndex-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>bindIndex</h4>
<pre>void&nbsp;bindIndex(<a href="../../../../../../../org/apache/drill/exec/vector/accessor/ColumnReaderIndex.html" title="interface in org.apache.drill.exec.vector.accessor">ColumnReaderIndex</a>&nbsp;rowIndex)</pre>
</li>
</ul>
<a name="isNull--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isNull</h4>
<pre>boolean&nbsp;isNull()</pre>
</li>
</ul>
<a name="bindBuffer--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>bindBuffer</h4>
<pre>void&nbsp;bindBuffer()</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/NullStateReader.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/vector/accessor/reader/MapReader.html" title="class in org.apache.drill.exec.vector.accessor.reader"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../../org/apache/drill/exec/vector/accessor/reader/NullStateReaders.html" title="class in org.apache.drill.exec.vector.accessor.reader"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../index.html?org/apache/drill/exec/vector/accessor/reader/NullStateReader.html" target="_top">Frames</a></li>
<li><a href="NullStateReader.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>Constr&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>Constr&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>