blob: 58cd6a56e1e32b58b700114eda0a3cefaeab0f8a [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>TestSortImpl (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="TestSortImpl (Drill : 1.20.0 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":9,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10};
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/TestSortImpl.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/TestSorter.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/TestSortImpl.DataGenerator.html" title="class 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/TestSortImpl.html" target="_top">Frames</a></li>
<li><a href="TestSortImpl.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 TestSortImpl" class="title">Class TestSortImpl</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/test/BaseTest.html" title="class in org.apache.drill.test">org.apache.drill.test.BaseTest</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../../../../org/apache/drill/test/DrillTest.html" title="class in org.apache.drill.test">org.apache.drill.test.DrillTest</a></li>
<li>
<ul class="inheritance">
<li>org.apache.drill.exec.physical.impl.xsort.TestSortImpl</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="typeNameLabel">TestSortImpl</span>
extends <a href="../../../../../../../org/apache/drill/test/DrillTest.html" title="class in org.apache.drill.test">DrillTest</a></pre>
<div class="block">Tests the external sort implementation: the "guts" of the sort stripped of the
Volcano-protocol layer. Assumes the individual components are already tested.</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/TestSortImpl.DataGenerator.html" title="class in org.apache.drill.exec.physical.impl.xsort">TestSortImpl.DataGenerator</a></span></code>
<div class="block">Crude-but-effective data generator that produces pseudo-random data
that can be easily verified.</div>
</td>
</tr>
<tr class="rowColor">
<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/TestSortImpl.DataValidator.html" title="class in org.apache.drill.exec.physical.impl.xsort">TestSortImpl.DataValidator</a></span></code>
<div class="block">Validate a sort output batch based on the expectation that the key
is an ordered sequence of integers, split across multiple batches.</div>
</td>
</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/TestSortImpl.SortTestFixture.html" title="class in org.apache.drill.exec.physical.impl.xsort">TestSortImpl.SortTestFixture</a></span></code>
<div class="block">Handy fixture to hold a sort, a set of input row sets (batches) and the
output set of row sets (batches.) Pumps the input into the sort and
harvests the output.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.drill.test.DrillTest">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.drill.test.<a href="../../../../../../../org/apache/drill/test/DrillTest.html" title="class in org.apache.drill.test">DrillTest</a></h3>
<code><a href="../../../../../../../org/apache/drill/test/DrillTest.MemWatcher.html" title="class in org.apache.drill.test">DrillTest.MemWatcher</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><a href="../../../../../../../org/apache/drill/test/BaseDirTestWatcher.html" title="class in org.apache.drill.test">BaseDirTestWatcher</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/drill/exec/physical/impl/xsort/TestSortImpl.html#dirTestWatcher">dirTestWatcher</a></span></code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.drill.test.DrillTest">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.drill.test.<a href="../../../../../../../org/apache/drill/test/DrillTest.html" title="class in org.apache.drill.test">DrillTest</a></h3>
<code><a href="../../../../../../../org/apache/drill/test/DrillTest.html#logOutcome">logOutcome</a>, <a href="../../../../../../../org/apache/drill/test/DrillTest.html#objectMapper">objectMapper</a>, <a href="../../../../../../../org/apache/drill/test/DrillTest.html#REPEAT_RULE">REPEAT_RULE</a>, <a href="../../../../../../../org/apache/drill/test/DrillTest.html#thrownException">thrownException</a>, <a href="../../../../../../../org/apache/drill/test/DrillTest.html#TIMEOUT">TIMEOUT</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/TestSortImpl.html#TestSortImpl--">TestSortImpl</a></span>()</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>static <a href="../../../../../../../org/apache/drill/exec/physical/impl/xsort/SortImpl.html" title="class in org.apache.drill.exec.physical.impl.xsort">SortImpl</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/drill/exec/physical/impl/xsort/TestSortImpl.html#makeSortImpl-org.apache.drill.test.OperatorFixture-java.lang.String-java.lang.String-">makeSortImpl</a></span>(<a href="../../../../../../../org/apache/drill/test/OperatorFixture.html" title="class in org.apache.drill.test">OperatorFixture</a>&nbsp;fixture,
<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>&nbsp;sortOrder,
<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>&nbsp;nullOrder)</code>
<div class="block">Create the sort implementation to be used by test.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/drill/exec/physical/impl/xsort/TestSortImpl.html#runJumboBatchTest-org.apache.drill.test.OperatorFixture-int-">runJumboBatchTest</a></span>(<a href="../../../../../../../org/apache/drill/test/OperatorFixture.html" title="class in org.apache.drill.test">OperatorFixture</a>&nbsp;fixture,
int&nbsp;rowCount)</code>
<div class="block">Set up and run a test for "jumbo" batches, and time the run.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/drill/exec/physical/impl/xsort/TestSortImpl.html#runLargeSortTest-org.apache.drill.test.OperatorFixture-org.apache.drill.exec.physical.impl.xsort.TestSortImpl.DataGenerator-org.apache.drill.exec.physical.impl.xsort.TestSortImpl.DataValidator-">runLargeSortTest</a></span>(<a href="../../../../../../../org/apache/drill/test/OperatorFixture.html" title="class in org.apache.drill.test">OperatorFixture</a>&nbsp;fixture,
<a href="../../../../../../../org/apache/drill/exec/physical/impl/xsort/TestSortImpl.DataGenerator.html" title="class in org.apache.drill.exec.physical.impl.xsort">TestSortImpl.DataGenerator</a>&nbsp;dataGen,
<a href="../../../../../../../org/apache/drill/exec/physical/impl/xsort/TestSortImpl.DataValidator.html" title="class in org.apache.drill.exec.physical.impl.xsort">TestSortImpl.DataValidator</a>&nbsp;validator)</code>
<div class="block">Run a full-blown sort test with multiple input batches.</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/TestSortImpl.html#runWideRowsTest-org.apache.drill.test.OperatorFixture-int-int-">runWideRowsTest</a></span>(<a href="../../../../../../../org/apache/drill/test/OperatorFixture.html" title="class in org.apache.drill.test">OperatorFixture</a>&nbsp;fixture,
int&nbsp;colCount,
int&nbsp;rowCount)</code>
<div class="block">Run a test using wide rows.</div>
</td>
</tr>
<tr id="i4" 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/TestSortImpl.html#testEmptyInput--">testEmptyInput</a></span>()</code>
<div class="block">Test for an input with a schema, but only an empty input batch.</div>
</td>
</tr>
<tr id="i5" 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/TestSortImpl.html#testLargeBatch--">testLargeBatch</a></span>()</code>
<div class="block">Hit the sort with the largest possible batch size to ensure nothing is lost
at the edges.</div>
</td>
</tr>
<tr id="i6" 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/TestSortImpl.html#testModerateBatch--">testModerateBatch</a></span>()</code>
<div class="block">Most tests have used small row counts because we want to probe specific bits
of interest.</div>
</td>
</tr>
<tr id="i7" 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/TestSortImpl.html#testNullInput--">testNullInput</a></span>()</code>
<div class="block">Test for null input (no input batches).</div>
</td>
</tr>
<tr id="i8" 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/TestSortImpl.html#testSingleBatch--">testSingleBatch</a></span>()</code>
<div class="block">Degenerate case: two (unsorted) rows in single batch</div>
</td>
</tr>
<tr id="i9" 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/TestSortImpl.html#testSingleRow--">testSingleRow</a></span>()</code>
<div class="block">Degenerate case: single row in single batch.</div>
</td>
</tr>
<tr id="i10" 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/TestSortImpl.html#testSpill--">testSpill</a></span>()</code>
<div class="block">Force the sorter to spill, and verify that the resulting data
is correct.</div>
</td>
</tr>
<tr id="i11" 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/TestSortImpl.html#testTwoBatches--">testTwoBatches</a></span>()</code>
<div class="block">Degenerate case, one row in each of two (unsorted) batches.</div>
</td>
</tr>
<tr id="i12" 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/TestSortImpl.html#testWideRows--">testWideRows</a></span>()</code>
<div class="block">Test wide rows with the stock copier.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.drill.test.DrillTest">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.drill.test.<a href="../../../../../../../org/apache/drill/test/DrillTest.html" title="class in org.apache.drill.test">DrillTest</a></h3>
<code><a href="../../../../../../../org/apache/drill/test/DrillTest.html#escapeJsonString-java.lang.String-">escapeJsonString</a>, <a href="../../../../../../../org/apache/drill/test/DrillTest.html#finishDrillTest--">finishDrillTest</a>, <a href="../../../../../../../org/apache/drill/test/DrillTest.html#initDrillTest--">initDrillTest</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>
</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="dirTestWatcher">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>dirTestWatcher</h4>
<pre>public final&nbsp;<a href="../../../../../../../org/apache/drill/test/BaseDirTestWatcher.html" title="class in org.apache.drill.test">BaseDirTestWatcher</a> dirTestWatcher</pre>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="TestSortImpl--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>TestSortImpl</h4>
<pre>public&nbsp;TestSortImpl()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="makeSortImpl-org.apache.drill.test.OperatorFixture-java.lang.String-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>makeSortImpl</h4>
<pre>public static&nbsp;<a href="../../../../../../../org/apache/drill/exec/physical/impl/xsort/SortImpl.html" title="class in org.apache.drill.exec.physical.impl.xsort">SortImpl</a>&nbsp;makeSortImpl(<a href="../../../../../../../org/apache/drill/test/OperatorFixture.html" title="class in org.apache.drill.test">OperatorFixture</a>&nbsp;fixture,
<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>&nbsp;sortOrder,
<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>&nbsp;nullOrder)</pre>
<div class="block">Create the sort implementation to be used by test.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>fixture</code> - operator fixture</dd>
<dd><code>sortOrder</code> - sort order as specified by <a href="../../../../../../../org/apache/drill/common/logical/data/Order.Ordering.html" title="class in org.apache.drill.common.logical.data"><code>Order.Ordering</code></a></dd>
<dd><code>nullOrder</code> - null order as specified by <a href="../../../../../../../org/apache/drill/common/logical/data/Order.Ordering.html" title="class in org.apache.drill.common.logical.data"><code>Order.Ordering</code></a></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the initialized sort implementation, ready to do work</dd>
</dl>
</li>
</ul>
<a name="testNullInput--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testNullInput</h4>
<pre>public&nbsp;void&nbsp;testNullInput()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<div class="block">Test for null input (no input batches). Note that, in this case,
we never see a schema.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
</dl>
</li>
</ul>
<a name="testEmptyInput--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testEmptyInput</h4>
<pre>public&nbsp;void&nbsp;testEmptyInput()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<div class="block">Test for an input with a schema, but only an empty input batch.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
</dl>
</li>
</ul>
<a name="testSingleRow--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testSingleRow</h4>
<pre>public&nbsp;void&nbsp;testSingleRow()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<div class="block">Degenerate case: single row in single batch.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
</dl>
</li>
</ul>
<a name="testSingleBatch--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testSingleBatch</h4>
<pre>public&nbsp;void&nbsp;testSingleBatch()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<div class="block">Degenerate case: two (unsorted) rows in single batch</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
</dl>
</li>
</ul>
<a name="testTwoBatches--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testTwoBatches</h4>
<pre>public&nbsp;void&nbsp;testTwoBatches()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<div class="block">Degenerate case, one row in each of two (unsorted) batches.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
</dl>
</li>
</ul>
<a name="runLargeSortTest-org.apache.drill.test.OperatorFixture-org.apache.drill.exec.physical.impl.xsort.TestSortImpl.DataGenerator-org.apache.drill.exec.physical.impl.xsort.TestSortImpl.DataValidator-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>runLargeSortTest</h4>
<pre>public&nbsp;void&nbsp;runLargeSortTest(<a href="../../../../../../../org/apache/drill/test/OperatorFixture.html" title="class in org.apache.drill.test">OperatorFixture</a>&nbsp;fixture,
<a href="../../../../../../../org/apache/drill/exec/physical/impl/xsort/TestSortImpl.DataGenerator.html" title="class in org.apache.drill.exec.physical.impl.xsort">TestSortImpl.DataGenerator</a>&nbsp;dataGen,
<a href="../../../../../../../org/apache/drill/exec/physical/impl/xsort/TestSortImpl.DataValidator.html" title="class in org.apache.drill.exec.physical.impl.xsort">TestSortImpl.DataValidator</a>&nbsp;validator)</pre>
<div class="block">Run a full-blown sort test with multiple input batches. Because we want to
generate multiple inputs, we don't create them statically. Instead, we generate
them on the fly using a data generator. A matching data validator verifies the
output. Here, we are focusing on overall test flow. Separate, detailed, unit
tests have already probed the details of each sort component and data type,
so we don't need to repeat that whole exercise here; using integer keys is
sufficient.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>fixture</code> - the operator test fixture</dd>
<dd><code>dataGen</code> - input batch generator</dd>
<dd><code>validator</code> - validates output batches</dd>
</dl>
</li>
</ul>
<a name="runJumboBatchTest-org.apache.drill.test.OperatorFixture-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>runJumboBatchTest</h4>
<pre>public&nbsp;void&nbsp;runJumboBatchTest(<a href="../../../../../../../org/apache/drill/test/OperatorFixture.html" title="class in org.apache.drill.test">OperatorFixture</a>&nbsp;fixture,
int&nbsp;rowCount)</pre>
<div class="block">Set up and run a test for "jumbo" batches, and time the run.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>fixture</code> - operator test fixture</dd>
<dd><code>rowCount</code> - number of rows to test</dd>
</dl>
</li>
</ul>
<a name="testModerateBatch--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testModerateBatch</h4>
<pre>public&nbsp;void&nbsp;testModerateBatch()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<div class="block">Most tests have used small row counts because we want to probe specific bits
of interest. Try 1000 rows just to ensure things work</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
</dl>
</li>
</ul>
<a name="testLargeBatch--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testLargeBatch</h4>
<pre>public&nbsp;void&nbsp;testLargeBatch()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<div class="block">Hit the sort with the largest possible batch size to ensure nothing is lost
at the edges.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
</dl>
</li>
</ul>
<a name="runWideRowsTest-org.apache.drill.test.OperatorFixture-int-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>runWideRowsTest</h4>
<pre>public&nbsp;void&nbsp;runWideRowsTest(<a href="../../../../../../../org/apache/drill/test/OperatorFixture.html" title="class in org.apache.drill.test">OperatorFixture</a>&nbsp;fixture,
int&nbsp;colCount,
int&nbsp;rowCount)</pre>
<div class="block">Run a test using wide rows. This stresses the "copier" portion of the sort
and allows us to test the original generated copier and the revised "generic"
copier.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>fixture</code> - operator test fixture</dd>
<dd><code>colCount</code> - number of data (non-key) columns</dd>
<dd><code>rowCount</code> - number of rows to generate</dd>
</dl>
</li>
</ul>
<a name="testWideRows--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testWideRows</h4>
<pre>public&nbsp;void&nbsp;testWideRows()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<div class="block">Test wide rows with the stock copier.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
</dl>
</li>
</ul>
<a name="testSpill--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>testSpill</h4>
<pre>public&nbsp;void&nbsp;testSpill()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<div class="block">Force the sorter to spill, and verify that the resulting data
is correct. Uses a specific property of the sort to set the
in-memory batch limit so that we don't have to fiddle with filling
up memory. The point here is not to test the code that decides when
to spill (that was already tested.) Nor to test the spilling
mechanism itself (that has also already been tested.) Rather it is
to ensure that, when those components are integrated into the
sort implementation, that the whole assembly does the right thing.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/TestSortImpl.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/TestSorter.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/TestSortImpl.DataGenerator.html" title="class 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/TestSortImpl.html" target="_top">Frames</a></li>
<li><a href="TestSortImpl.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; 2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>