blob: 1757c1153beb2dfda86c83c89409b3810cc6b1e0 [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>ExternalSortBatch (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="ExternalSortBatch (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":9,"i10":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static 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/ExternalSortBatch.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/xsort/BufferedBatches.html" title="class in org.apache.drill.exec.physical.impl.xsort"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../../org/apache/drill/exec/physical/impl/xsort/ExternalSortBatch.Metric.html" title="enum in org.apache.drill.exec.physical.impl.xsort"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../index.html?org/apache/drill/exec/physical/impl/xsort/ExternalSortBatch.html" target="_top">Frames</a></li>
<li><a href="ExternalSortBatch.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><a href="#nested.class.summary">Nested</a>&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.xsort</div>
<h2 title="Class ExternalSortBatch" class="title">Class ExternalSortBatch</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><a href="../../../../../../../org/apache/drill/exec/record/AbstractRecordBatch.html" title="class in org.apache.drill.exec.record">org.apache.drill.exec.record.AbstractRecordBatch</a>&lt;<a href="../../../../../../../org/apache/drill/exec/physical/config/ExternalSort.html" title="class in org.apache.drill.exec.physical.config">ExternalSort</a>&gt;</li>
<li>
<ul class="inheritance">
<li>org.apache.drill.exec.physical.impl.xsort.ExternalSortBatch</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang">AutoCloseable</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;<a href="../../../../../../../org/apache/drill/exec/record/VectorWrapper.html" title="interface in org.apache.drill.exec.record">VectorWrapper</a>&lt;?&gt;&gt;, <a href="../../../../../../../org/apache/drill/exec/record/CloseableRecordBatch.html" title="interface in org.apache.drill.exec.record">CloseableRecordBatch</a>, <a href="../../../../../../../org/apache/drill/exec/record/RecordBatch.html" title="interface in org.apache.drill.exec.record">RecordBatch</a>, <a href="../../../../../../../org/apache/drill/exec/record/VectorAccessible.html" title="interface in org.apache.drill.exec.record">VectorAccessible</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">ExternalSortBatch</span>
extends <a href="../../../../../../../org/apache/drill/exec/record/AbstractRecordBatch.html" title="class in org.apache.drill.exec.record">AbstractRecordBatch</a>&lt;<a href="../../../../../../../org/apache/drill/exec/physical/config/ExternalSort.html" title="class in org.apache.drill.exec.physical.config">ExternalSort</a>&gt;</pre>
<div class="block">External sort batch: a sort batch which can spill to disk in
order to operate within a defined memory footprint.
<p>
<h4>Basic Operation</h4>
The operator has three key phases:
<p>
<ul>
<li>The load phase in which batches are read from upstream.</li>
<li>The merge phase in which spilled batches are combined to
reduce the number of files below the configured limit. (Best
practice is to configure the system to avoid this phase.)
<li>The delivery phase in which batches are combined to produce
the final output.</li>
</ul>
During the load phase:
<p>
<ul>
<li>The incoming (upstream) operator provides a series of batches.</li>
<li>This operator sorts each batch, and accumulates them in an in-memory
buffer.</li>
<li>If the in-memory buffer becomes too large, this operator selects
a subset of the buffered batches to spill.</li>
<li>Each spill set is merged to create a new, sorted collection of
batches, and each is spilled to disk.</li>
<li>To allow the use of multiple disk storage, each spill group is written
round-robin to a set of spill directories.</li>
</ul>
<p>
Data is spilled to disk as a "run". A run consists of one or more (typically
many) batches, each of which is itself a sorted run of records.
<p>
During the sort/merge phase:
<p>
<ul>
<li>When the input operator is complete, this operator merges the accumulated
batches (which may be all in memory or partially on disk), and returns
them to the output (downstream) operator in chunks of no more than
64K records.</li>
<li>The final merge must combine a collection of in-memory and spilled
batches. Several limits apply to the maximum "width" of this merge. For
example, each open spill run consumes a file handle, and we may wish
to limit the number of file handles. Further, memory must hold one batch
from each run, so we may need to reduce the number of runs so that the
remaining runs can fit into memory. A consolidation phase combines
in-memory and spilled batches prior to the final merge to control final
merge width.</li>
<li>A special case occurs if no batches were spilled. In this case, the input
batches are sorted in memory without merging.</li>
</ul>
<p>
Many complex details are involved in doing the above; the details are explained
in the methods of this class.
<p>
<h4>Configuration Options</h4>
<dl>
<dt>drill.exec.sort.external.spill.fs</dt>
<dd>The file system (file://, hdfs://, etc.) of the spill directory.</dd>
<dt>drill.exec.sort.external.spill.directories</dt>
<dd>The comma delimited list of directories, on the above file
system, to which to spill files in round-robin fashion. The query will
fail if any one of the directories becomes full.</dt>
<dt>drill.exec.sort.external.spill.file_size</dt>
<dd>Target size for first-generation spill files Set this to large
enough to get nice long writes, but not so large that spill directories
are overwhelmed.</dd>
<dt>drill.exec.sort.external.mem_limit</dt>
<dd>Maximum memory to use for the in-memory buffer. (Primarily for testing.)</dd>
<dt>drill.exec.sort.external.batch_limit</dt>
<dd>Maximum number of batches to hold in memory. (Primarily for testing.)</dd>
<dt>drill.exec.sort.external.spill.max_count</dt>
<dd>Maximum number of batches to add to "first generation" files.
Defaults to 0 (no limit). (Primarily for testing.)</dd>
<dt>drill.exec.sort.external.spill.min_count</dt>
<dd>Minimum number of batches to add to "first generation" files.
Defaults to 0 (no limit). (Primarily for testing.)</dd>
<dt>drill.exec.sort.external.merge_limit</dt>
<dd>Sets the maximum number of runs to be merged in a single pass (limits
the number of open files.)</dd>
</dl>
<p>
The memory limit observed by this operator is the lesser of:
<ul>
<li>The maximum allocation allowed the allocator assigned to this batch
as set by the Foreman, or</li>
<li>The maximum limit configured in the mem_limit parameter above. (Primarily for
testing.</li>
</ul>
<h4>Output</h4>
It is helpful to note that the sort operator will produce one of two kinds of
output batches.
<ul>
<li>A large output with sv4 if data is sorted in memory. The sv4 addresses
the entire in-memory sort set. A selection vector remover will copy results
into new batches of a size determined by that operator.</li>
<li>A series of batches, without a selection vector, if the sort spills to
disk. In this case, the downstream operator will still be a selection vector
remover, but there is nothing for that operator to remove.
</ul>
Note that, even in the in-memory sort case, this operator could do the copying
to eliminate the extra selection vector remover. That is left as an exercise
for another time.
<h4>Logging</h4>
Logging in this operator serves two purposes:
<li>
<ul>
<li>Normal diagnostic information.</li>
<li>Capturing the essence of the operator functionality for analysis in unit
tests.</li>
</ul>
Test logging is designed to capture key events and timings. Take care
when changing or removing log messages as you may need to adjust unit tests
accordingly.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/drill/exec/physical/impl/xsort/ExternalSortBatch.Metric.html" title="enum in org.apache.drill.exec.physical.impl.xsort">ExternalSortBatch.Metric</a></span></code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.drill.exec.record.AbstractRecordBatch">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.drill.exec.record.<a href="../../../../../../../org/apache/drill/exec/record/AbstractRecordBatch.html" title="class in org.apache.drill.exec.record">AbstractRecordBatch</a></h3>
<code><a href="../../../../../../../org/apache/drill/exec/record/AbstractRecordBatch.BatchState.html" title="enum in org.apache.drill.exec.record">AbstractRecordBatch.BatchState</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.drill.exec.record.RecordBatch">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.drill.exec.record.<a href="../../../../../../../org/apache/drill/exec/record/RecordBatch.html" title="interface in org.apache.drill.exec.record">RecordBatch</a></h3>
<code><a href="../../../../../../../org/apache/drill/exec/record/RecordBatch.IterOutcome.html" title="enum in org.apache.drill.exec.record">RecordBatch.IterOutcome</a></code></li>
</ul>
</li>
</ul>
<!-- =========== 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 <a href="../../../../../../../org/apache/drill/exec/testing/ControlsInjector.html" title="interface in org.apache.drill.exec.testing">ControlsInjector</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/drill/exec/physical/impl/xsort/ExternalSortBatch.html#injector">injector</a></span></code>&nbsp;</td>
</tr>
<tr 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/xsort/ExternalSortBatch.html#INTERRUPTION_AFTER_SETUP">INTERRUPTION_AFTER_SETUP</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<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/xsort/ExternalSortBatch.html#INTERRUPTION_AFTER_SORT">INTERRUPTION_AFTER_SORT</a></span></code>&nbsp;</td>
</tr>
<tr 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/xsort/ExternalSortBatch.html#INTERRUPTION_WHILE_MERGING">INTERRUPTION_WHILE_MERGING</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<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/xsort/ExternalSortBatch.html#INTERRUPTION_WHILE_SPILLING">INTERRUPTION_WHILE_SPILLING</a></span></code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.drill.exec.record.AbstractRecordBatch">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.drill.exec.record.<a href="../../../../../../../org/apache/drill/exec/record/AbstractRecordBatch.html" title="class in org.apache.drill.exec.record">AbstractRecordBatch</a></h3>
<code><a href="../../../../../../../org/apache/drill/exec/record/AbstractRecordBatch.html#batchStatsContext">batchStatsContext</a>, <a href="../../../../../../../org/apache/drill/exec/record/AbstractRecordBatch.html#container">container</a>, <a href="../../../../../../../org/apache/drill/exec/record/AbstractRecordBatch.html#context">context</a>, <a href="../../../../../../../org/apache/drill/exec/record/AbstractRecordBatch.html#oContext">oContext</a>, <a href="../../../../../../../org/apache/drill/exec/record/AbstractRecordBatch.html#popConfig">popConfig</a>, <a href="../../../../../../../org/apache/drill/exec/record/AbstractRecordBatch.html#state">state</a>, <a href="../../../../../../../org/apache/drill/exec/record/AbstractRecordBatch.html#stats">stats</a>, <a href="../../../../../../../org/apache/drill/exec/record/AbstractRecordBatch.html#unionTypeEnabled">unionTypeEnabled</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.drill.exec.record.RecordBatch">
<!-- -->
</a>
<h3>Fields inherited from interface&nbsp;org.apache.drill.exec.record.<a href="../../../../../../../org/apache/drill/exec/record/RecordBatch.html" title="interface in org.apache.drill.exec.record">RecordBatch</a></h3>
<code><a href="../../../../../../../org/apache/drill/exec/record/RecordBatch.html#MAX_BATCH_ROW_COUNT">MAX_BATCH_ROW_COUNT</a></code></li>
</ul>
</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/xsort/ExternalSortBatch.html#ExternalSortBatch-org.apache.drill.exec.physical.config.ExternalSort-org.apache.drill.exec.ops.FragmentContext-org.apache.drill.exec.record.RecordBatch-">ExternalSortBatch</a></span>(<a href="../../../../../../../org/apache/drill/exec/physical/config/ExternalSort.html" title="class in org.apache.drill.exec.physical.config">ExternalSort</a>&nbsp;popConfig,
<a href="../../../../../../../org/apache/drill/exec/ops/FragmentContext.html" title="interface in org.apache.drill.exec.ops">FragmentContext</a>&nbsp;context,
<a href="../../../../../../../org/apache/drill/exec/record/RecordBatch.html" title="interface in org.apache.drill.exec.record">RecordBatch</a>&nbsp;incoming)</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="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>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/drill/exec/physical/impl/xsort/ExternalSortBatch.html#buildSchema--">buildSchema</a></span>()</code>
<div class="block">Called by <a href="../../../../../../../org/apache/drill/exec/record/AbstractRecordBatch.html" title="class in org.apache.drill.exec.record"><code>AbstractRecordBatch</code></a> as a fast-path to obtain
the first record batch and setup the schema of this batch in order
to quickly return the schema to the client.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/drill/exec/physical/impl/xsort/ExternalSortBatch.html#cancelIncoming--">cancelIncoming</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/xsort/ExternalSortBatch.html#close--">close</a></span>()</code>
<div class="block">Extreme paranoia to avoid leaving resources unclosed in the case
of an error.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/drill/exec/physical/impl/xsort/ExternalSortBatch.html#dump--">dump</a></span>()</code>
<div class="block">Perform dump of this batch's state to logs.</div>
</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/physical/impl/xsort/ExternalSortBatch.html#getRecordCount--">getRecordCount</a></span>()</code>
<div class="block">Get the number of records.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../../org/apache/drill/exec/record/selection/SelectionVector2.html" title="class in org.apache.drill.exec.record.selection">SelectionVector2</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/drill/exec/physical/impl/xsort/ExternalSortBatch.html#getSelectionVector2--">getSelectionVector2</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="../../../../../../../org/apache/drill/exec/record/selection/SelectionVector4.html" title="class in org.apache.drill.exec.record.selection">SelectionVector4</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/drill/exec/physical/impl/xsort/ExternalSortBatch.html#getSelectionVector4--">getSelectionVector4</a></span>()</code>
<div class="block">Returns outputSV4 instead of resultsIterator sv4.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../../org/apache/drill/exec/record/WritableBatch.html" title="class in org.apache.drill.exec.record">WritableBatch</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/drill/exec/physical/impl/xsort/ExternalSortBatch.html#getWritableBatch--">getWritableBatch</a></span>()</code>
<div class="block">Gets a writable version of this batch.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="../../../../../../../org/apache/drill/exec/record/RecordBatch.IterOutcome.html" title="enum in org.apache.drill.exec.record">RecordBatch.IterOutcome</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/drill/exec/physical/impl/xsort/ExternalSortBatch.html#innerNext--">innerNext</a></span>()</code>
<div class="block">Process each request for a batch.</div>
</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/xsort/ExternalSortBatch.html#releaseBatches-org.apache.drill.exec.record.RecordBatch-">releaseBatches</a></span>(<a href="../../../../../../../org/apache/drill/exec/record/RecordBatch.html" title="interface in org.apache.drill.exec.record">RecordBatch</a>&nbsp;incoming)</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/xsort/ExternalSortBatch.html#retainSv4OnNone-org.apache.drill.exec.record.RecordBatch-">retainSv4OnNone</a></span>(<a href="../../../../../../../org/apache/drill/exec/record/RecordBatch.html" title="interface in org.apache.drill.exec.record">RecordBatch</a>&nbsp;incoming)</code>
<div class="block">Workaround for DRILL-5656.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.drill.exec.record.AbstractRecordBatch">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.drill.exec.record.<a href="../../../../../../../org/apache/drill/exec/record/AbstractRecordBatch.html" title="class in org.apache.drill.exec.record">AbstractRecordBatch</a></h3>
<code><a href="../../../../../../../org/apache/drill/exec/record/AbstractRecordBatch.html#cancel--">cancel</a>, <a href="../../../../../../../org/apache/drill/exec/record/AbstractRecordBatch.html#checkContinue--">checkContinue</a>, <a href="../../../../../../../org/apache/drill/exec/record/AbstractRecordBatch.html#getContainer--">getContainer</a>, <a href="../../../../../../../org/apache/drill/exec/record/AbstractRecordBatch.html#getContext--">getContext</a>, <a href="../../../../../../../org/apache/drill/exec/record/AbstractRecordBatch.html#getOutgoingContainer--">getOutgoingContainer</a>, <a href="../../../../../../../org/apache/drill/exec/record/AbstractRecordBatch.html#getPopConfig--">getPopConfig</a>, <a href="../../../../../../../org/apache/drill/exec/record/AbstractRecordBatch.html#getRecordBatchStatsContext--">getRecordBatchStatsContext</a>, <a href="../../../../../../../org/apache/drill/exec/record/AbstractRecordBatch.html#getSchema--">getSchema</a>, <a href="../../../../../../../org/apache/drill/exec/record/AbstractRecordBatch.html#getValueAccessorById-java.lang.Class-int...-">getValueAccessorById</a>, <a href="../../../../../../../org/apache/drill/exec/record/AbstractRecordBatch.html#getValueVectorId-org.apache.drill.common.expression.SchemaPath-">getValueVectorId</a>, <a href="../../../../../../../org/apache/drill/exec/record/AbstractRecordBatch.html#isRecordBatchStatsLoggingEnabled--">isRecordBatchStatsLoggingEnabled</a>, <a href="../../../../../../../org/apache/drill/exec/record/AbstractRecordBatch.html#iterator--">iterator</a>, <a href="../../../../../../../org/apache/drill/exec/record/AbstractRecordBatch.html#next--">next</a>, <a href="../../../../../../../org/apache/drill/exec/record/AbstractRecordBatch.html#next-int-org.apache.drill.exec.record.RecordBatch-">next</a>, <a href="../../../../../../../org/apache/drill/exec/record/AbstractRecordBatch.html#next-org.apache.drill.exec.record.RecordBatch-">next</a>, <a href="../../../../../../../org/apache/drill/exec/record/AbstractRecordBatch.html#schemaChangeException-org.apache.drill.exec.exception.SchemaChangeException-org.slf4j.Logger-">schemaChangeException</a>, <a href="../../../../../../../org/apache/drill/exec/record/AbstractRecordBatch.html#schemaChangeException-org.apache.drill.exec.exception.SchemaChangeException-java.lang.String-org.slf4j.Logger-">schemaChangeException</a></code></li>
</ul>
<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>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Iterable">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true#forEach-java.util.function.Consumer-" title="class or interface in java.lang">forEach</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true#spliterator--" title="class or interface in java.lang">spliterator</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="INTERRUPTION_AFTER_SORT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>INTERRUPTION_AFTER_SORT</h4>
<pre>public static final&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> INTERRUPTION_AFTER_SORT</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../../constant-values.html#org.apache.drill.exec.physical.impl.xsort.ExternalSortBatch.INTERRUPTION_AFTER_SORT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="INTERRUPTION_AFTER_SETUP">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>INTERRUPTION_AFTER_SETUP</h4>
<pre>public static final&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> INTERRUPTION_AFTER_SETUP</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../../constant-values.html#org.apache.drill.exec.physical.impl.xsort.ExternalSortBatch.INTERRUPTION_AFTER_SETUP">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="INTERRUPTION_WHILE_SPILLING">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>INTERRUPTION_WHILE_SPILLING</h4>
<pre>public static final&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> INTERRUPTION_WHILE_SPILLING</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../../constant-values.html#org.apache.drill.exec.physical.impl.xsort.ExternalSortBatch.INTERRUPTION_WHILE_SPILLING">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="INTERRUPTION_WHILE_MERGING">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>INTERRUPTION_WHILE_MERGING</h4>
<pre>public static final&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> INTERRUPTION_WHILE_MERGING</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../../constant-values.html#org.apache.drill.exec.physical.impl.xsort.ExternalSortBatch.INTERRUPTION_WHILE_MERGING">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="injector">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>injector</h4>
<pre>protected static final&nbsp;<a href="../../../../../../../org/apache/drill/exec/testing/ControlsInjector.html" title="interface in org.apache.drill.exec.testing">ControlsInjector</a> injector</pre>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="ExternalSortBatch-org.apache.drill.exec.physical.config.ExternalSort-org.apache.drill.exec.ops.FragmentContext-org.apache.drill.exec.record.RecordBatch-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ExternalSortBatch</h4>
<pre>public&nbsp;ExternalSortBatch(<a href="../../../../../../../org/apache/drill/exec/physical/config/ExternalSort.html" title="class in org.apache.drill.exec.physical.config">ExternalSort</a>&nbsp;popConfig,
<a href="../../../../../../../org/apache/drill/exec/ops/FragmentContext.html" title="interface in org.apache.drill.exec.ops">FragmentContext</a>&nbsp;context,
<a href="../../../../../../../org/apache/drill/exec/record/RecordBatch.html" title="interface in org.apache.drill.exec.record">RecordBatch</a>&nbsp;incoming)</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getRecordCount--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRecordCount</h4>
<pre>public&nbsp;int&nbsp;getRecordCount()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../../org/apache/drill/exec/record/VectorAccessible.html#getRecordCount--">VectorAccessible</a></code></span></div>
<div class="block">Get the number of records.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>number of records</dd>
</dl>
</li>
</ul>
<a name="getSelectionVector4--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSelectionVector4</h4>
<pre>public&nbsp;<a href="../../../../../../../org/apache/drill/exec/record/selection/SelectionVector4.html" title="class in org.apache.drill.exec.record.selection">SelectionVector4</a>&nbsp;getSelectionVector4()</pre>
<div class="block">Returns outputSV4 instead of resultsIterator sv4. For resultsIterator which
has null SV4 outputSV4 will be empty. But Sort with EMIT outcome will
ideally fail in those cases while preparing output container as it's not
supported currently, like for spilling scenarios.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../org/apache/drill/exec/record/VectorAccessible.html#getSelectionVector4--">getSelectionVector4</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../org/apache/drill/exec/record/VectorAccessible.html" title="interface in org.apache.drill.exec.record">VectorAccessible</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../../../org/apache/drill/exec/record/AbstractRecordBatch.html#getSelectionVector4--">getSelectionVector4</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../../org/apache/drill/exec/record/AbstractRecordBatch.html" title="class in org.apache.drill.exec.record">AbstractRecordBatch</a>&lt;<a href="../../../../../../../org/apache/drill/exec/physical/config/ExternalSort.html" title="class in org.apache.drill.exec.physical.config">ExternalSort</a>&gt;</code></dd>
</dl>
</li>
</ul>
<a name="getSelectionVector2--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSelectionVector2</h4>
<pre>public&nbsp;<a href="../../../../../../../org/apache/drill/exec/record/selection/SelectionVector2.html" title="class in org.apache.drill.exec.record.selection">SelectionVector2</a>&nbsp;getSelectionVector2()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../org/apache/drill/exec/record/VectorAccessible.html#getSelectionVector2--">getSelectionVector2</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../org/apache/drill/exec/record/VectorAccessible.html" title="interface in org.apache.drill.exec.record">VectorAccessible</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../../../org/apache/drill/exec/record/AbstractRecordBatch.html#getSelectionVector2--">getSelectionVector2</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../../org/apache/drill/exec/record/AbstractRecordBatch.html" title="class in org.apache.drill.exec.record">AbstractRecordBatch</a>&lt;<a href="../../../../../../../org/apache/drill/exec/physical/config/ExternalSort.html" title="class in org.apache.drill.exec.physical.config">ExternalSort</a>&gt;</code></dd>
</dl>
</li>
</ul>
<a name="buildSchema--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>buildSchema</h4>
<pre>public&nbsp;void&nbsp;buildSchema()</pre>
<div class="block">Called by <a href="../../../../../../../org/apache/drill/exec/record/AbstractRecordBatch.html" title="class in org.apache.drill.exec.record"><code>AbstractRecordBatch</code></a> as a fast-path to obtain
the first record batch and setup the schema of this batch in order
to quickly return the schema to the client. Note that this method
fetches the first batch from upstream which will be waiting for
us the first time that <a href="../../../../../../../org/apache/drill/exec/physical/impl/xsort/ExternalSortBatch.html#innerNext--"><code>innerNext()</code></a> is called.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../../../org/apache/drill/exec/record/AbstractRecordBatch.html#buildSchema--">buildSchema</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../../org/apache/drill/exec/record/AbstractRecordBatch.html" title="class in org.apache.drill.exec.record">AbstractRecordBatch</a>&lt;<a href="../../../../../../../org/apache/drill/exec/physical/config/ExternalSort.html" title="class in org.apache.drill.exec.physical.config">ExternalSort</a>&gt;</code></dd>
</dl>
</li>
</ul>
<a name="innerNext--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>innerNext</h4>
<pre>public&nbsp;<a href="../../../../../../../org/apache/drill/exec/record/RecordBatch.IterOutcome.html" title="enum in org.apache.drill.exec.record">RecordBatch.IterOutcome</a>&nbsp;innerNext()</pre>
<div class="block">Process each request for a batch. The first request retrieves
all the incoming batches and sorts them, optionally spilling to
disk as needed. Subsequent calls retrieve the sorted results in
fixed-size batches.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../org/apache/drill/exec/record/AbstractRecordBatch.html#innerNext--">innerNext</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../../org/apache/drill/exec/record/AbstractRecordBatch.html" title="class in org.apache.drill.exec.record">AbstractRecordBatch</a>&lt;<a href="../../../../../../../org/apache/drill/exec/physical/config/ExternalSort.html" title="class in org.apache.drill.exec.physical.config">ExternalSort</a>&gt;</code></dd>
</dl>
</li>
</ul>
<a name="getWritableBatch--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getWritableBatch</h4>
<pre>public&nbsp;<a href="../../../../../../../org/apache/drill/exec/record/WritableBatch.html" title="class in org.apache.drill.exec.record">WritableBatch</a>&nbsp;getWritableBatch()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../../org/apache/drill/exec/record/RecordBatch.html#getWritableBatch--">RecordBatch</a></code></span></div>
<div class="block">Gets a writable version of this batch. Takes over ownership of existing
buffers.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../org/apache/drill/exec/record/RecordBatch.html#getWritableBatch--">getWritableBatch</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../org/apache/drill/exec/record/RecordBatch.html" title="interface in org.apache.drill.exec.record">RecordBatch</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../../../org/apache/drill/exec/record/AbstractRecordBatch.html#getWritableBatch--">getWritableBatch</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../../org/apache/drill/exec/record/AbstractRecordBatch.html" title="class in org.apache.drill.exec.record">AbstractRecordBatch</a>&lt;<a href="../../../../../../../org/apache/drill/exec/physical/config/ExternalSort.html" title="class in org.apache.drill.exec.physical.config">ExternalSort</a>&gt;</code></dd>
</dl>
</li>
</ul>
<a name="cancelIncoming--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>cancelIncoming</h4>
<pre>protected&nbsp;void&nbsp;cancelIncoming()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../org/apache/drill/exec/record/AbstractRecordBatch.html#cancelIncoming--">cancelIncoming</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../../org/apache/drill/exec/record/AbstractRecordBatch.html" title="class in org.apache.drill.exec.record">AbstractRecordBatch</a>&lt;<a href="../../../../../../../org/apache/drill/exec/physical/config/ExternalSort.html" title="class in org.apache.drill.exec.physical.config">ExternalSort</a>&gt;</code></dd>
</dl>
</li>
</ul>
<a name="close--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>close</h4>
<pre>public&nbsp;void&nbsp;close()</pre>
<div class="block">Extreme paranoia to avoid leaving resources unclosed in the case
of an error. Since generally only the first error is of interest,
we track only the first exception, not potential cascading downstream
exceptions.
<p>
Some Drill code ends up calling close() two or more times. The code
here protects itself from these undesirable semantics.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true#close--" title="class or interface in java.lang">close</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang">AutoCloseable</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../../../org/apache/drill/exec/record/AbstractRecordBatch.html#close--">close</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../../org/apache/drill/exec/record/AbstractRecordBatch.html" title="class in org.apache.drill.exec.record">AbstractRecordBatch</a>&lt;<a href="../../../../../../../org/apache/drill/exec/physical/config/ExternalSort.html" title="class in org.apache.drill.exec.physical.config">ExternalSort</a>&gt;</code></dd>
</dl>
</li>
</ul>
<a name="retainSv4OnNone-org.apache.drill.exec.record.RecordBatch-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>retainSv4OnNone</h4>
<pre>public static&nbsp;void&nbsp;retainSv4OnNone(<a href="../../../../../../../org/apache/drill/exec/record/RecordBatch.html" title="interface in org.apache.drill.exec.record">RecordBatch</a>&nbsp;incoming)</pre>
<div class="block">Workaround for DRILL-5656. We wish to release the batches for an
in-memory sort once data is delivered. Normally, we can release them
just before returning NONE. But, the StreamingAggBatch requires that
the batches still be present on NONE. This method "sniffs" the input
provided, and if the external sort, sets a mode that retains the
batches. Yes, it is a horrible hack. But, necessary until the Drill
iterator protocol can be revised.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>incoming</code> - the incoming batch for some operator which may
(or may not) be an external sort (or, an external sort wrapped
in a batch iterator validator.)</dd>
</dl>
</li>
</ul>
<a name="releaseBatches-org.apache.drill.exec.record.RecordBatch-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>releaseBatches</h4>
<pre>public static&nbsp;void&nbsp;releaseBatches(<a href="../../../../../../../org/apache/drill/exec/record/RecordBatch.html" title="interface in org.apache.drill.exec.record">RecordBatch</a>&nbsp;incoming)</pre>
</li>
</ul>
<a name="dump--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>dump</h4>
<pre>public&nbsp;void&nbsp;dump()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../../org/apache/drill/exec/record/RecordBatch.html#dump--">RecordBatch</a></code></span></div>
<div class="block">Perform dump of this batch's state to logs.</div>
</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/ExternalSortBatch.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/xsort/BufferedBatches.html" title="class in org.apache.drill.exec.physical.impl.xsort"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../../org/apache/drill/exec/physical/impl/xsort/ExternalSortBatch.Metric.html" title="enum in org.apache.drill.exec.physical.impl.xsort"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../index.html?org/apache/drill/exec/physical/impl/xsort/ExternalSortBatch.html" target="_top">Frames</a></li>
<li><a href="ExternalSortBatch.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><a href="#nested.class.summary">Nested</a>&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>