blob: 0c979490be6e3b3c01dd1813df49acbe96d6f072 [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>ScanLifecycle (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="ScanLifecycle (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,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":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/ScanLifecycle.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/lifecycle/ScanEventListener.html" title="class in org.apache.drill.exec.physical.impl.scan.v3.lifecycle"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/lifecycle/SchemaNegotiatorImpl.html" title="class in org.apache.drill.exec.physical.impl.scan.v3.lifecycle"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../../../index.html?org/apache/drill/exec/physical/impl/scan/v3/lifecycle/ScanLifecycle.html" target="_top">Frames</a></li>
<li><a href="ScanLifecycle.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.physical.impl.scan.v3.lifecycle</div>
<h2 title="Class ScanLifecycle" class="title">Class ScanLifecycle</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.lifecycle.ScanLifecycle</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/file/FileScanLifecycle.html" title="class in org.apache.drill.exec.physical.impl.scan.v3.file">FileScanLifecycle</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">ScanLifecycle</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">/**
Basic scan framework for a set of "managed" readers and which uses the
scan schema tracker to evolve the scan output schema.
Readers are created and managed via a reader
factory class unique to each type of scan. The reader factory also provides
the scan-specific schema negotiator to be passed to the reader.
<h4>Lifecycle</h4>
The options provided in the <a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/ScanLifecycleBuilder.html" title="class in org.apache.drill.exec.physical.impl.scan.v3"><code>ScanLifecycleBuilder</code></a> are
sufficient to drive the entire scan operator functionality.
Schema resolution and projection is done generically and is the same for all
data sources. Only the
reader (created via the factory class) differs from one type of file to
another.
<p>
The framework achieves the work described below by composing a
set of detailed classes, each of which performs some specific task. This
structure leaves the reader to simply infer schema and read data.
<h4>Reader Integration</h4>
The details of how a file is structured, how a schema is inferred, how
data is decoded: all that is encapsulated in the reader. The only real
Interaction between the reader and the framework is:
<ul>
<li>The reader factory creates a reader and the corresponding schema
negotiator.</li>
<li>The reader "negotiates" a schema with the framework. The framework
knows the projection list from the query plan, knows something about
data types (whether a column should be scalar, a map or an array), and
knows about the schema already defined by prior readers. The reader knows
what schema it can produce (if "early schema.") The schema negotiator
class handles this task.</li>
<li>The reader reads data from the file and populates value vectors a
batch at a time. The framework creates the result set loader to use for
this work. The schema negotiator returns that loader to the reader, which
uses it during read.<p>
A reader may be "late schema", true "schema on read." In this case, the
reader simply tells the result set loader to create a new column reader
on the fly. The framework will work out if that new column is to be
projected and will return either a real column writer (projected column)
or a dummy column writer (unprojected column.)</li>
<li>The reader then reads batches of data until all data is read. The
result set loader signals when a batch is full; the reader should not
worry about this detail itself.</li>
<li>The reader then releases its resources.</li>
</ul>
<p>
See <a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/ScanSchemaTracker.html" title="interface in org.apache.drill.exec.physical.impl.scan.v3.schema"><code>ScanSchemaTracker</code></a> for details about how the scan schema
evolves over the scan lifecycle.
<h4>Lifecycle</h4>
Coordinates the components that make up a scan implementation:
<ul>
<li><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/ScanSchemaTracker.html" title="interface in org.apache.drill.exec.physical.impl.scan.v3.schema"><code>ScanSchemaTracker</code></a> which resolves the scan schema over the
lifetime of the scan.</li>
<li>Implicit columns manager which identifies and populates implicit
file columns, partition columns, and Drill's internal metadata
columns.</li>
<li>The actual readers which load (possibly a subset of) the
columns requested from the input source.</li>
</ul>
<p>
Implicit columns are unique to each storage plugin. At present, they
are defined only for the file system plugin. To handle such variation,
each extension defines a subclass of the <a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/ScanLifecycleBuilder.html" title="class in org.apache.drill.exec.physical.impl.scan.v3"><code>ScanLifecycleBuilder</code></a> class to
create the implicit columns manager (and schema negotiator) unique to
a certain kind of scan.
<p>
Each reader is tracked by a <a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/lifecycle/ReaderLifecycle.html" title="class in org.apache.drill.exec.physical.impl.scan.v3.lifecycle"><code>ReaderLifecycle</code></a> which handles:
<ul>
<li>Setting up the <a href="../../../../../../../../../org/apache/drill/exec/physical/resultSet/ResultSetLoader.html" title="interface in org.apache.drill.exec.physical.resultSet"><code>ResultSetLoader</code></a> for the reader.</li>
<li>The concrete values for implicit columns for that reader
(and its file, if file-based.)</li>
<li>The missing columns handler which "makes up" values for projected
columns not read by the reader.</li>
<li>Batch asssembler, which combines the three sources of vectors
to create the output batch with the schema specified by the
schema tracker.</li>
</ul>
<h4>Publishing the Final Result Set<h4>
This class "publishes" a vector container that has the final, projected
form of a scan. The projected schema include:
<ul>
<li>Columns from the reader.</li>
<li>Static columns, such as implicit or partition columns.</li>
<li>Null columns for items in the select list, but not found in either
of the above two categories.</li>
</ul>
The order of columns is that set by the select list (or, by the reader for
a <tt>SELECT *</tt> query.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/ScanSchemaTracker.html" title="interface in org.apache.drill.exec.physical.impl.scan.v3.schema"><code>for a description of the schema lifecycle
which drives a scan</code></a></dd>
</dl>
</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/physical/impl/scan/v3/lifecycle/ScanLifecycle.html#ScanLifecycle-org.apache.drill.exec.ops.OperatorContext-org.apache.drill.exec.physical.impl.scan.v3.ScanLifecycleBuilder-">ScanLifecycle</a></span>(<a href="../../../../../../../../../org/apache/drill/exec/ops/OperatorContext.html" title="interface in org.apache.drill.exec.ops">OperatorContext</a>&nbsp;context,
<a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/ScanLifecycleBuilder.html" title="class in org.apache.drill.exec.physical.impl.scan.v3">ScanLifecycleBuilder</a>&nbsp;builder)</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="../../../../../../../../../org/apache/drill/exec/memory/BufferAllocator.html" title="interface in org.apache.drill.exec.memory">BufferAllocator</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/lifecycle/ScanLifecycle.html#allocator--">allocator</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/lifecycle/ScanLifecycle.html#batchCount--">batchCount</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/lifecycle/ScanLifecycle.html#close--">close</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../../../../org/apache/drill/exec/ops/OperatorContext.html" title="interface in org.apache.drill.exec.ops">OperatorContext</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/lifecycle/ScanLifecycle.html#context--">context</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="../../../../../../../../../org/apache/drill/common/exceptions/CustomErrorContext.html" title="interface in org.apache.drill.common.exceptions">CustomErrorContext</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/lifecycle/ScanLifecycle.html#errorContext--">errorContext</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/lifecycle/ScanLifecycle.html#hasOutputSchema--">hasOutputSchema</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>protected <a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/lifecycle/SchemaNegotiatorImpl.html" title="class in org.apache.drill.exec.physical.impl.scan.v3.lifecycle">SchemaNegotiatorImpl</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/lifecycle/ScanLifecycle.html#newNegotiator-org.apache.drill.exec.physical.impl.scan.v3.lifecycle.ReaderLifecycle-">newNegotiator</a></span>(<a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/lifecycle/ReaderLifecycle.html" title="class in org.apache.drill.exec.physical.impl.scan.v3.lifecycle">ReaderLifecycle</a>&nbsp;readerLifecycle)</code>&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/RowBatchReader.html" title="interface in org.apache.drill.exec.physical.impl.scan">RowBatchReader</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/lifecycle/ScanLifecycle.html#nextReader--">nextReader</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/ScanLifecycleBuilder.html" title="class in org.apache.drill.exec.physical.impl.scan.v3">ScanLifecycleBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/lifecycle/ScanLifecycle.html#options--">options</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../../../../org/apache/drill/exec/record/metadata/TupleMetadata.html" title="interface in org.apache.drill.exec.record.metadata">TupleMetadata</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/lifecycle/ScanLifecycle.html#outputSchema--">outputSchema</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/ReaderFactory.html" title="interface in org.apache.drill.exec.physical.impl.scan.v3">ReaderFactory</a>&lt;?&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/lifecycle/ScanLifecycle.html#readerFactory--">readerFactory</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/lifecycle/ScanLifecycle.html#rowCount--">rowCount</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/ScanSchemaTracker.html" title="interface in org.apache.drill.exec.physical.impl.scan.v3.schema">ScanSchemaTracker</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/lifecycle/ScanLifecycle.html#schemaTracker--">schemaTracker</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/lifecycle/ScanLifecycle.html#tallyBatch-int-">tallyBatch</a></span>(int&nbsp;rowCount)</code>&nbsp;</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="../../../../../../../../../org/apache/drill/exec/physical/resultSet/impl/ResultVectorCacheImpl.html" title="class in org.apache.drill.exec.physical.resultSet.impl">ResultVectorCacheImpl</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/lifecycle/ScanLifecycle.html#vectorCache--">vectorCache</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="ScanLifecycle-org.apache.drill.exec.ops.OperatorContext-org.apache.drill.exec.physical.impl.scan.v3.ScanLifecycleBuilder-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ScanLifecycle</h4>
<pre>public&nbsp;ScanLifecycle(<a href="../../../../../../../../../org/apache/drill/exec/ops/OperatorContext.html" title="interface in org.apache.drill.exec.ops">OperatorContext</a>&nbsp;context,
<a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/ScanLifecycleBuilder.html" title="class in org.apache.drill.exec.physical.impl.scan.v3">ScanLifecycleBuilder</a>&nbsp;builder)</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="context--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>context</h4>
<pre>public&nbsp;<a href="../../../../../../../../../org/apache/drill/exec/ops/OperatorContext.html" title="interface in org.apache.drill.exec.ops">OperatorContext</a>&nbsp;context()</pre>
</li>
</ul>
<a name="options--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>options</h4>
<pre>public&nbsp;<a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/ScanLifecycleBuilder.html" title="class in org.apache.drill.exec.physical.impl.scan.v3">ScanLifecycleBuilder</a>&nbsp;options()</pre>
</li>
</ul>
<a name="schemaTracker--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>schemaTracker</h4>
<pre>public&nbsp;<a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/schema/ScanSchemaTracker.html" title="interface in org.apache.drill.exec.physical.impl.scan.v3.schema">ScanSchemaTracker</a>&nbsp;schemaTracker()</pre>
</li>
</ul>
<a name="vectorCache--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>vectorCache</h4>
<pre>public&nbsp;<a href="../../../../../../../../../org/apache/drill/exec/physical/resultSet/impl/ResultVectorCacheImpl.html" title="class in org.apache.drill.exec.physical.resultSet.impl">ResultVectorCacheImpl</a>&nbsp;vectorCache()</pre>
</li>
</ul>
<a name="readerFactory--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readerFactory</h4>
<pre>public&nbsp;<a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/ReaderFactory.html" title="interface in org.apache.drill.exec.physical.impl.scan.v3">ReaderFactory</a>&lt;?&gt;&nbsp;readerFactory()</pre>
</li>
</ul>
<a name="hasOutputSchema--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasOutputSchema</h4>
<pre>public&nbsp;boolean&nbsp;hasOutputSchema()</pre>
</li>
</ul>
<a name="errorContext--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>errorContext</h4>
<pre>public&nbsp;<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="allocator--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>allocator</h4>
<pre>public&nbsp;<a href="../../../../../../../../../org/apache/drill/exec/memory/BufferAllocator.html" title="interface in org.apache.drill.exec.memory">BufferAllocator</a>&nbsp;allocator()</pre>
</li>
</ul>
<a name="batchCount--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>batchCount</h4>
<pre>public&nbsp;int&nbsp;batchCount()</pre>
</li>
</ul>
<a name="rowCount--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rowCount</h4>
<pre>public&nbsp;long&nbsp;rowCount()</pre>
</li>
</ul>
<a name="tallyBatch-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>tallyBatch</h4>
<pre>public&nbsp;void&nbsp;tallyBatch(int&nbsp;rowCount)</pre>
</li>
</ul>
<a name="nextReader--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nextReader</h4>
<pre>public&nbsp;<a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/RowBatchReader.html" title="interface in org.apache.drill.exec.physical.impl.scan">RowBatchReader</a>&nbsp;nextReader()</pre>
</li>
</ul>
<a name="newNegotiator-org.apache.drill.exec.physical.impl.scan.v3.lifecycle.ReaderLifecycle-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newNegotiator</h4>
<pre>protected&nbsp;<a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/lifecycle/SchemaNegotiatorImpl.html" title="class in org.apache.drill.exec.physical.impl.scan.v3.lifecycle">SchemaNegotiatorImpl</a>&nbsp;newNegotiator(<a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/lifecycle/ReaderLifecycle.html" title="class in org.apache.drill.exec.physical.impl.scan.v3.lifecycle">ReaderLifecycle</a>&nbsp;readerLifecycle)</pre>
</li>
</ul>
<a name="outputSchema--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>outputSchema</h4>
<pre>public&nbsp;<a href="../../../../../../../../../org/apache/drill/exec/record/metadata/TupleMetadata.html" title="interface in org.apache.drill.exec.record.metadata">TupleMetadata</a>&nbsp;outputSchema()</pre>
</li>
</ul>
<a name="close--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>close</h4>
<pre>public&nbsp;void&nbsp;close()</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/ScanLifecycle.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/lifecycle/ScanEventListener.html" title="class in org.apache.drill.exec.physical.impl.scan.v3.lifecycle"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../../../../org/apache/drill/exec/physical/impl/scan/v3/lifecycle/SchemaNegotiatorImpl.html" title="class in org.apache.drill.exec.physical.impl.scan.v3.lifecycle"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../../../index.html?org/apache/drill/exec/physical/impl/scan/v3/lifecycle/ScanLifecycle.html" target="_top">Frames</a></li>
<li><a href="ScanLifecycle.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>