| <!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>org.apache.drill.exec.vector.accessor.reader (Drill : 1.20.0 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="org.apache.drill.exec.vector.accessor.reader (Drill : 1.20.0 API)"; |
| } |
| } |
| catch(err) { |
| } |
| //--> |
| </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 class="navBarCell1Rev">Package</li> |
| <li>Class</li> |
| <li><a href="package-use.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/impl/package-summary.html">Prev Package</a></li> |
| <li><a href="../../../../../../../org/apache/drill/exec/vector/accessor/sql/package-summary.html">Next Package</a></li> |
| </ul> |
| <ul class="navList"> |
| <li><a href="../../../../../../../index.html?org/apache/drill/exec/vector/accessor/reader/package-summary.html" target="_top">Frames</a></li> |
| <li><a href="package-summary.html" target="_top">No Frames</a></li> |
| </ul> |
| <ul class="navList" id="allclasses_navbar_top"> |
| <li><a href="../../../../../../../allclasses-noframe.html">All 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> |
| <a name="skip.navbar.top"> |
| <!-- --> |
| </a></div> |
| <!-- ========= END OF TOP NAVBAR ========= --> |
| <div class="header"> |
| <h1 title="Package" class="title">Package org.apache.drill.exec.vector.accessor.reader</h1> |
| <div class="docSummary"> |
| <div class="block">Provides the reader hierarchy as explained in the API package.</div> |
| </div> |
| <p>See: <a href="#package.description">Description</a></p> |
| </div> |
| <div class="contentContainer"> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation"> |
| <caption><span>Interface Summary</span><span class="tabEnd"> </span></caption> |
| <tr> |
| <th class="colFirst" scope="col">Interface</th> |
| <th class="colLast" scope="col">Description</th> |
| </tr> |
| <tbody> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../../../org/apache/drill/exec/vector/accessor/reader/BaseScalarReader.BufferAccessor.html" title="interface in org.apache.drill.exec.vector.accessor.reader">BaseScalarReader.BufferAccessor</a></td> |
| <td class="colLast"> |
| <div class="block">Provide access to the DrillBuf for the data vector.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../../../org/apache/drill/exec/vector/accessor/reader/ElementReaderIndex.html" title="interface in org.apache.drill.exec.vector.accessor.reader">ElementReaderIndex</a></td> |
| <td class="colLast"> </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../../../org/apache/drill/exec/vector/accessor/reader/NullStateReader.html" title="interface in org.apache.drill.exec.vector.accessor.reader">NullStateReader</a></td> |
| <td class="colLast"> |
| <div class="block">Internal mechanism to detect if a value is null.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../../../org/apache/drill/exec/vector/accessor/reader/ReaderEvents.html" title="interface in org.apache.drill.exec.vector.accessor.reader">ReaderEvents</a></td> |
| <td class="colLast"> |
| <div class="block">Internal operations to wire up a set of readers.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../../../org/apache/drill/exec/vector/accessor/reader/VectorAccessor.html" title="interface in org.apache.drill.exec.vector.accessor.reader">VectorAccessor</a></td> |
| <td class="colLast"> </td> |
| </tr> |
| </tbody> |
| </table> |
| </li> |
| <li class="blockList"> |
| <table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation"> |
| <caption><span>Class Summary</span><span class="tabEnd"> </span></caption> |
| <tr> |
| <th class="colFirst" scope="col">Class</th> |
| <th class="colLast" scope="col">Description</th> |
| </tr> |
| <tbody> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../../../org/apache/drill/exec/vector/accessor/reader/AbstractObjectReader.html" title="class in org.apache.drill.exec.vector.accessor.reader">AbstractObjectReader</a></td> |
| <td class="colLast"> </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../../../org/apache/drill/exec/vector/accessor/reader/AbstractScalarReader.html" title="class in org.apache.drill.exec.vector.accessor.reader">AbstractScalarReader</a></td> |
| <td class="colLast"> </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../../../org/apache/drill/exec/vector/accessor/reader/AbstractScalarReader.NullReader.html" title="class in org.apache.drill.exec.vector.accessor.reader">AbstractScalarReader.NullReader</a></td> |
| <td class="colLast"> </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../../../org/apache/drill/exec/vector/accessor/reader/AbstractScalarReader.ScalarObjectReader.html" title="class in org.apache.drill.exec.vector.accessor.reader">AbstractScalarReader.ScalarObjectReader</a></td> |
| <td class="colLast"> </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../../../org/apache/drill/exec/vector/accessor/reader/AbstractTupleReader.html" title="class in org.apache.drill.exec.vector.accessor.reader">AbstractTupleReader</a></td> |
| <td class="colLast"> |
| <div class="block">Reader for a tuple (a row or a map.) Provides access to each |
| column using either a name or a numeric index.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../../../org/apache/drill/exec/vector/accessor/reader/AbstractTupleReader.TupleObjectReader.html" title="class in org.apache.drill.exec.vector.accessor.reader">AbstractTupleReader.TupleObjectReader</a></td> |
| <td class="colLast"> </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../../../org/apache/drill/exec/vector/accessor/reader/ArrayReaderImpl.html" title="class in org.apache.drill.exec.vector.accessor.reader">ArrayReaderImpl</a></td> |
| <td class="colLast"> |
| <div class="block">Reader for an array-valued column.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../../../org/apache/drill/exec/vector/accessor/reader/ArrayReaderImpl.ArrayObjectReader.html" title="class in org.apache.drill.exec.vector.accessor.reader">ArrayReaderImpl.ArrayObjectReader</a></td> |
| <td class="colLast"> |
| <div class="block">Object representation of an array reader.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../../../org/apache/drill/exec/vector/accessor/reader/ArrayReaderImpl.ElementReaderIndex.html" title="class in org.apache.drill.exec.vector.accessor.reader">ArrayReaderImpl.ElementReaderIndex</a></td> |
| <td class="colLast"> |
| <div class="block">Index into the vector of elements for a repeated vector.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../../../org/apache/drill/exec/vector/accessor/reader/BaseScalarReader.html" title="class in org.apache.drill.exec.vector.accessor.reader">BaseScalarReader</a></td> |
| <td class="colLast"> |
| <div class="block">Column reader implementation that acts as the basis for the |
| generated, vector-specific implementations.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../../../org/apache/drill/exec/vector/accessor/reader/BaseScalarReader.BaseFixedWidthReader.html" title="class in org.apache.drill.exec.vector.accessor.reader">BaseScalarReader.BaseFixedWidthReader</a></td> |
| <td class="colLast"> </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../../../org/apache/drill/exec/vector/accessor/reader/BaseScalarReader.BaseVarWidthReader.html" title="class in org.apache.drill.exec.vector.accessor.reader">BaseScalarReader.BaseVarWidthReader</a></td> |
| <td class="colLast"> </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../../../org/apache/drill/exec/vector/accessor/reader/BitColumnReader.html" title="class in org.apache.drill.exec.vector.accessor.reader">BitColumnReader</a></td> |
| <td class="colLast"> |
| <div class="block">Specialized reader for bit columns.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../../../org/apache/drill/exec/vector/accessor/reader/ColumnReaderFactory.html" title="class in org.apache.drill.exec.vector.accessor.reader">ColumnReaderFactory</a></td> |
| <td class="colLast"> |
| <div class="block">Gather generated reader classes into a set of class tables to allow rapid |
| run-time creation of readers.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../../../org/apache/drill/exec/vector/accessor/reader/DictEntryReader.html" title="class in org.apache.drill.exec.vector.accessor.reader">DictEntryReader</a></td> |
| <td class="colLast"> |
| <div class="block">Reader for a Dict entry.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../../../org/apache/drill/exec/vector/accessor/reader/DictReaderImpl.html" title="class in org.apache.drill.exec.vector.accessor.reader">DictReaderImpl</a></td> |
| <td class="colLast"> </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../../../org/apache/drill/exec/vector/accessor/reader/DictReaderImpl.DictObjectReader.html" title="class in org.apache.drill.exec.vector.accessor.reader">DictReaderImpl.DictObjectReader</a></td> |
| <td class="colLast"> </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../../../org/apache/drill/exec/vector/accessor/reader/MapReader.html" title="class in org.apache.drill.exec.vector.accessor.reader">MapReader</a></td> |
| <td class="colLast"> |
| <div class="block">Reader for a Drill Map type.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../../../org/apache/drill/exec/vector/accessor/reader/NullStateReaders.html" title="class in org.apache.drill.exec.vector.accessor.reader">NullStateReaders</a></td> |
| <td class="colLast"> </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><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></td> |
| <td class="colLast"> </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><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></td> |
| <td class="colLast"> |
| <div class="block">Handle the awkward situation with complex types.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><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></td> |
| <td class="colLast"> |
| <div class="block">Holder for the NullableVector wrapper around a bits vector and a |
| data vector.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><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></td> |
| <td class="colLast"> |
| <div class="block">Null state that handles the strange union semantics that both |
| the union and the values can be null.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><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></td> |
| <td class="colLast"> |
| <div class="block">Holder for the NullableVector wrapper around a bits vector and a |
| data vector.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><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></td> |
| <td class="colLast"> |
| <div class="block">Dummy implementation of a null state reader for cases in which the |
| value is never null.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><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></td> |
| <td class="colLast"> |
| <div class="block">Extract null state from the union vector's type vector.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../../../org/apache/drill/exec/vector/accessor/reader/OffsetVectorReader.html" title="class in org.apache.drill.exec.vector.accessor.reader">OffsetVectorReader</a></td> |
| <td class="colLast"> |
| <div class="block">Reader for an offset vector.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../../../org/apache/drill/exec/vector/accessor/reader/UnionReaderImpl.html" title="class in org.apache.drill.exec.vector.accessor.reader">UnionReaderImpl</a></td> |
| <td class="colLast"> |
| <div class="block">Reader for a union vector.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../../../org/apache/drill/exec/vector/accessor/reader/UnionReaderImpl.UnionObjectReader.html" title="class in org.apache.drill.exec.vector.accessor.reader">UnionReaderImpl.UnionObjectReader</a></td> |
| <td class="colLast"> </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../../../org/apache/drill/exec/vector/accessor/reader/VectorAccessors.html" title="class in org.apache.drill.exec.vector.accessor.reader">VectorAccessors</a></td> |
| <td class="colLast"> |
| <div class="block">Collection of vector accessors.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../../../org/apache/drill/exec/vector/accessor/reader/VectorAccessors.ArrayDataHyperVectorAccessor.html" title="class in org.apache.drill.exec.vector.accessor.reader">VectorAccessors.ArrayDataHyperVectorAccessor</a></td> |
| <td class="colLast"> |
| <div class="block">Vector accessor for RepeatedVector → data vector</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../../../org/apache/drill/exec/vector/accessor/reader/VectorAccessors.ArrayOffsetHyperVectorAccessor.html" title="class in org.apache.drill.exec.vector.accessor.reader">VectorAccessors.ArrayOffsetHyperVectorAccessor</a></td> |
| <td class="colLast"> |
| <div class="block">Vector accessor for RepeatedVector → offsets vector</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../../../org/apache/drill/exec/vector/accessor/reader/VectorAccessors.BaseHyperVectorAccessor.html" title="class in org.apache.drill.exec.vector.accessor.reader">VectorAccessors.BaseHyperVectorAccessor</a></td> |
| <td class="colLast"> |
| <div class="block">Vector accessor used by the column accessors to obtain the vector for |
| each column value.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../../../org/apache/drill/exec/vector/accessor/reader/VectorAccessors.ListBitsHyperVectorStateReader.html" title="class in org.apache.drill.exec.vector.accessor.reader">VectorAccessors.ListBitsHyperVectorStateReader</a></td> |
| <td class="colLast"> |
| <div class="block">Vector accessor for ListVector → bits vector</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../../../org/apache/drill/exec/vector/accessor/reader/VectorAccessors.ListMemberHyperVectorAccessor.html" title="class in org.apache.drill.exec.vector.accessor.reader">VectorAccessors.ListMemberHyperVectorAccessor</a></td> |
| <td class="colLast"> </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../../../org/apache/drill/exec/vector/accessor/reader/VectorAccessors.MapMemberHyperVectorAccessor.html" title="class in org.apache.drill.exec.vector.accessor.reader">VectorAccessors.MapMemberHyperVectorAccessor</a></td> |
| <td class="colLast"> |
| <div class="block">Vector accessor for AbstractMapVector → member vector</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../../../org/apache/drill/exec/vector/accessor/reader/VectorAccessors.NullableBitsHyperVectorStateReader.html" title="class in org.apache.drill.exec.vector.accessor.reader">VectorAccessors.NullableBitsHyperVectorStateReader</a></td> |
| <td class="colLast"> |
| <div class="block">Vector accessor for NullableVector → bits vector</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../../../org/apache/drill/exec/vector/accessor/reader/VectorAccessors.NullableValuesHyperVectorAccessor.html" title="class in org.apache.drill.exec.vector.accessor.reader">VectorAccessors.NullableValuesHyperVectorAccessor</a></td> |
| <td class="colLast"> |
| <div class="block">Vector accessor for NullableVector → values vector</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../../../org/apache/drill/exec/vector/accessor/reader/VectorAccessors.NullVectorAccesor.html" title="class in org.apache.drill.exec.vector.accessor.reader">VectorAccessors.NullVectorAccesor</a></td> |
| <td class="colLast"> </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../../../org/apache/drill/exec/vector/accessor/reader/VectorAccessors.SingleVectorAccessor.html" title="class in org.apache.drill.exec.vector.accessor.reader">VectorAccessors.SingleVectorAccessor</a></td> |
| <td class="colLast"> </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../../../org/apache/drill/exec/vector/accessor/reader/VectorAccessors.UnionMemberHyperVectorAccessor.html" title="class in org.apache.drill.exec.vector.accessor.reader">VectorAccessors.UnionMemberHyperVectorAccessor</a></td> |
| <td class="colLast"> |
| <div class="block">Vector accessor for UnionVector → data vector</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../../../org/apache/drill/exec/vector/accessor/reader/VectorAccessors.UnionTypeHyperVectorAccessor.html" title="class in org.apache.drill.exec.vector.accessor.reader">VectorAccessors.UnionTypeHyperVectorAccessor</a></td> |
| <td class="colLast"> |
| <div class="block">Vector accessor for UnionVector → type vector</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../../../org/apache/drill/exec/vector/accessor/reader/VectorAccessors.VarWidthOffsetHyperVectorAccessor.html" title="class in org.apache.drill.exec.vector.accessor.reader">VectorAccessors.VarWidthOffsetHyperVectorAccessor</a></td> |
| <td class="colLast"> |
| <div class="block">Vector accessor for VariableWidthVector → offsets vector</div> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| </li> |
| </ul> |
| <a name="package.description"> |
| <!-- --> |
| </a> |
| <h2 title="Package org.apache.drill.exec.vector.accessor.reader Description">Package org.apache.drill.exec.vector.accessor.reader Description</h2> |
| <div class="block">Provides the reader hierarchy as explained in the API package. |
| |
| <h4>Structure</h4> |
| |
| The reader implementation divides into four parts: |
| <ol> |
| <li>The readers themselves which start with scalar readers to |
| decode data from vectors, then build up to nullable, array, |
| union and list readers. Readers are built up via composition, |
| often using the (internal) offset vector reader.</li> |
| <li>The column index abstraction that steps through items in a collection. |
| At the top level, the index points to the current row. The top level |
| may include an indirection (an SV2 or SV4) which is handled by the |
| column index. Within arrays, the column index points to each element |
| of the array.</li> |
| <li>The vector accessor which provides a unified interface for both |
| the single-batch and hyper-batch cases. The single-batch versions |
| simply hold onto the vector itself. The hyper-batch versions either |
| provide access to a specific vector within a hyper-vector (for |
| top-level vectors), or navigate from a top-level vector down to an |
| inner vector (for nested vectors.)</li> |
| <li>The null state abstraction which provides a uniform way to |
| detect nullability. For example, within the reader system, the |
| reader for nullable and required vectors differ only in the associated |
| null state reader. Unions and lists have complex null state |
| logic: the nullability of a value depends on the nullability |
| of the list, the union, and the value itself. The null state |
| class implements this logic independent of the reader structure. |
| </li> |
| </ul> |
| |
| <h4>Composition</h4> |
| |
| The result is that reader structure makes heavy use of composition: |
| readers are built up from each of the above components. The number of |
| actual reader classes is small, but the methods to build the readers are |
| complex. Most structure is built at build time. Indexes, however are |
| provided at a later "bind" time at which a bind call traverses the |
| reader tree to associate an index with each reader and vector accessor. |
| When a reader is for an array, the bind step creates the index for the |
| array elements. |
| |
| <h4>Construction</h4> |
| |
| Construction of readers is a multi-part process. |
| <ul> |
| <li>Start with a single or hyper-vector batch.</li> |
| <li>The reader builders in another package parse the batch structure, |
| create the required metadata, wrap the (single or hyper) vectors in |
| a vector accessor, and call methods in this package.</li> |
| <li>Methods here perform the final construction based on the specific |
| type of the reader.</li> |
| </ul> |
| <p> |
| The work divides into two main categories: |
| <ul> |
| <li>The work which is based on |
| the vector structure and single/hyper-vector structure, which is done |
| elsewhere.</li> |
| <li>The work which is based on the structure of the readers (with |
| vector cardinality factored out), which is done here.</li> |
| </ul></div> |
| </div> |
| <!-- ======= 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 class="navBarCell1Rev">Package</li> |
| <li>Class</li> |
| <li><a href="package-use.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/impl/package-summary.html">Prev Package</a></li> |
| <li><a href="../../../../../../../org/apache/drill/exec/vector/accessor/sql/package-summary.html">Next Package</a></li> |
| </ul> |
| <ul class="navList"> |
| <li><a href="../../../../../../../index.html?org/apache/drill/exec/vector/accessor/reader/package-summary.html" target="_top">Frames</a></li> |
| <li><a href="package-summary.html" target="_top">No Frames</a></li> |
| </ul> |
| <ul class="navList" id="allclasses_navbar_bottom"> |
| <li><a href="../../../../../../../allclasses-noframe.html">All 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> |
| <a name="skip.navbar.bottom"> |
| <!-- --> |
| </a></div> |
| <!-- ======== END OF BOTTOM NAVBAR ======= --> |
| <p class="legalCopy"><small>Copyright © 2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p> |
| </body> |
| </html> |