blob: 777c8da670238523066c26e0c13f4224c8fb9a08 [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>TestProjectEmitOutcome (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="TestProjectEmitOutcome (Drill : 1.20.0 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":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/TestProjectEmitOutcome.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/project/ProjectRecordBatch.html" title="class in org.apache.drill.exec.physical.impl.project"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../../org/apache/drill/exec/physical/impl/project/TestSimpleProjection.html" title="class in org.apache.drill.exec.physical.impl.project"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../index.html?org/apache/drill/exec/physical/impl/project/TestProjectEmitOutcome.html" target="_top">Frames</a></li>
<li><a href="TestProjectEmitOutcome.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.classes.inherited.from.class.org.apache.drill.test.PhysicalOpUnitTestBase">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#fields.inherited.from.class.org.apache.drill.exec.physical.impl.BaseTestOpBatchEmitOutcome">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>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.project</div>
<h2 title="Class TestProjectEmitOutcome" class="title">Class TestProjectEmitOutcome</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><a href="../../../../../../../org/apache/drill/exec/ExecTest.html" title="class in org.apache.drill.exec">org.apache.drill.exec.ExecTest</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../../../../org/apache/drill/test/PhysicalOpUnitTestBase.html" title="class in org.apache.drill.test">org.apache.drill.test.PhysicalOpUnitTestBase</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../../../../org/apache/drill/exec/physical/impl/BaseTestOpBatchEmitOutcome.html" title="class in org.apache.drill.exec.physical.impl">org.apache.drill.exec.physical.impl.BaseTestOpBatchEmitOutcome</a></li>
<li>
<ul class="inheritance">
<li>org.apache.drill.exec.physical.impl.project.TestProjectEmitOutcome</li>
</ul>
</li>
</ul>
</li>
</ul>
</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">TestProjectEmitOutcome</span>
extends <a href="../../../../../../../org/apache/drill/exec/physical/impl/BaseTestOpBatchEmitOutcome.html" title="class in org.apache.drill.exec.physical.impl">BaseTestOpBatchEmitOutcome</a></pre>
</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>
<ul class="blockList">
<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.drill.test.PhysicalOpUnitTestBase">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.drill.test.<a href="../../../../../../../org/apache/drill/test/PhysicalOpUnitTestBase.html" title="class in org.apache.drill.test">PhysicalOpUnitTestBase</a></h3>
<code><a href="../../../../../../../org/apache/drill/test/PhysicalOpUnitTestBase.BatchIterator.html" title="class in org.apache.drill.test">PhysicalOpUnitTestBase.BatchIterator</a>, <a href="../../../../../../../org/apache/drill/test/PhysicalOpUnitTestBase.MockExecutorFragmentContext.html" title="class in org.apache.drill.test">PhysicalOpUnitTestBase.MockExecutorFragmentContext</a>, <a href="../../../../../../../org/apache/drill/test/PhysicalOpUnitTestBase.MockPhysicalOperator.html" title="class in org.apache.drill.test">PhysicalOpUnitTestBase.MockPhysicalOperator</a></code></li>
</ul>
<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>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.drill.exec.physical.impl.BaseTestOpBatchEmitOutcome">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.drill.exec.physical.impl.<a href="../../../../../../../org/apache/drill/exec/physical/impl/BaseTestOpBatchEmitOutcome.html" title="class in org.apache.drill.exec.physical.impl">BaseTestOpBatchEmitOutcome</a></h3>
<code><a href="../../../../../../../org/apache/drill/exec/physical/impl/BaseTestOpBatchEmitOutcome.html#emptyInputRowSet">emptyInputRowSet</a>, <a href="../../../../../../../org/apache/drill/exec/physical/impl/BaseTestOpBatchEmitOutcome.html#inputContainer">inputContainer</a>, <a href="../../../../../../../org/apache/drill/exec/physical/impl/BaseTestOpBatchEmitOutcome.html#inputContainerSv2">inputContainerSv2</a>, <a href="../../../../../../../org/apache/drill/exec/physical/impl/BaseTestOpBatchEmitOutcome.html#inputOutcomes">inputOutcomes</a>, <a href="../../../../../../../org/apache/drill/exec/physical/impl/BaseTestOpBatchEmitOutcome.html#inputSchema">inputSchema</a>, <a href="../../../../../../../org/apache/drill/exec/physical/impl/BaseTestOpBatchEmitOutcome.html#nonEmptyInputRowSet">nonEmptyInputRowSet</a>, <a href="../../../../../../../org/apache/drill/exec/physical/impl/BaseTestOpBatchEmitOutcome.html#outputRecordCount">outputRecordCount</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.drill.test.PhysicalOpUnitTestBase">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.drill.test.<a href="../../../../../../../org/apache/drill/test/PhysicalOpUnitTestBase.html" title="class in org.apache.drill.test">PhysicalOpUnitTestBase</a></h3>
<code><a href="../../../../../../../org/apache/drill/test/PhysicalOpUnitTestBase.html#classpathScan">classpathScan</a>, <a href="../../../../../../../org/apache/drill/test/PhysicalOpUnitTestBase.html#dirTestWatcher">dirTestWatcher</a>, <a href="../../../../../../../org/apache/drill/test/PhysicalOpUnitTestBase.html#drillbitContext">drillbitContext</a>, <a href="../../../../../../../org/apache/drill/test/PhysicalOpUnitTestBase.html#drillConf">drillConf</a>, <a href="../../../../../../../org/apache/drill/test/PhysicalOpUnitTestBase.html#fragContext">fragContext</a>, <a href="../../../../../../../org/apache/drill/test/PhysicalOpUnitTestBase.html#opContext">opContext</a>, <a href="../../../../../../../org/apache/drill/test/PhysicalOpUnitTestBase.html#opCreatorReg">opCreatorReg</a>, <a href="../../../../../../../org/apache/drill/test/PhysicalOpUnitTestBase.html#operatorFixture">operatorFixture</a>, <a href="../../../../../../../org/apache/drill/test/PhysicalOpUnitTestBase.html#scanDecodeExecutor">scanDecodeExecutor</a>, <a href="../../../../../../../org/apache/drill/test/PhysicalOpUnitTestBase.html#scanExecutor">scanExecutor</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.drill.exec.ExecTest">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.drill.exec.<a href="../../../../../../../org/apache/drill/exec/ExecTest.html" title="class in org.apache.drill.exec">ExecTest</a></h3>
<code><a href="../../../../../../../org/apache/drill/exec/ExecTest.html#c">c</a>, <a href="../../../../../../../org/apache/drill/exec/ExecTest.html#optionManager">optionManager</a></code></li>
</ul>
<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/project/TestProjectEmitOutcome.html#TestProjectEmitOutcome--">TestProjectEmitOutcome</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="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/project/TestProjectEmitOutcome.html#testProjectEmptyBatchEmitOutcome--">testProjectEmptyBatchEmitOutcome</a></span>()</code>
<div class="block">Test that if empty input batch is received with OK_NEW_SCHEMA or EMIT
outcome, then Project doesn't ignores these empty batches and instead
return them downstream with correct outcomes.</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/project/TestProjectEmitOutcome.html#testProjectNonEmptyBatchEmitOutcome--">testProjectNonEmptyBatchEmitOutcome</a></span>()</code>
<div class="block">Test to show if a non-empty batch is accompanied with EMIT outcome then
Project operator produces output for that batch and return the output using
EMIT outcome.</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/project/TestProjectEmitOutcome.html#testProjectNonEmptyFirst_EmptyBatchEmitOutcome--">testProjectNonEmptyFirst_EmptyBatchEmitOutcome</a></span>()</code>
<div class="block">Test to show that non-empty first batch produces output for that batch with OK_NEW_SCHEMA and later empty batch
with EMIT outcome is also passed through rather than getting ignored.</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/project/TestProjectEmitOutcome.html#testProjectNonEmptyFirst_EmptyOK_EmptyBatchEmitOutcome--">testProjectNonEmptyFirst_EmptyOK_EmptyBatchEmitOutcome</a></span>()</code>
<div class="block">Test to show if an empty batch is accompanied with OK outcome then that batch is ignored by Project operator and
it doesn't return anything instead call's next() to get another batch.</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/project/TestProjectEmitOutcome.html#testProjectWithComplexWritersAndEmitOutcome_EmptyFirstBatch--">testProjectWithComplexWritersAndEmitOutcome_EmptyFirstBatch</a></span>()</code>
<div class="block">Test to show that in cases with functions in project list whose output is complex types, if Project sees an EMIT
outcome then it fails.</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/project/TestProjectEmitOutcome.html#testProjectWithComplexWritersAndEmitOutcome_NonEmptyFirstBatch--">testProjectWithComplexWritersAndEmitOutcome_NonEmptyFirstBatch</a></span>()</code>
<div class="block">Test to show that in cases with functions in project list whose output is complex types, if Project sees an EMIT
outcome then it fails.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.drill.exec.physical.impl.BaseTestOpBatchEmitOutcome">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.drill.exec.physical.impl.<a href="../../../../../../../org/apache/drill/exec/physical/impl/BaseTestOpBatchEmitOutcome.html" title="class in org.apache.drill.exec.physical.impl">BaseTestOpBatchEmitOutcome</a></h3>
<code><a href="../../../../../../../org/apache/drill/exec/physical/impl/BaseTestOpBatchEmitOutcome.html#afterTest--">afterTest</a>, <a href="../../../../../../../org/apache/drill/exec/physical/impl/BaseTestOpBatchEmitOutcome.html#beforeTest--">beforeTest</a>, <a href="../../../../../../../org/apache/drill/exec/physical/impl/BaseTestOpBatchEmitOutcome.html#setUpBeforeClass--">setUpBeforeClass</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.drill.test.PhysicalOpUnitTestBase">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.drill.test.<a href="../../../../../../../org/apache/drill/test/PhysicalOpUnitTestBase.html" title="class in org.apache.drill.test">PhysicalOpUnitTestBase</a></h3>
<code><a href="../../../../../../../org/apache/drill/test/PhysicalOpUnitTestBase.html#getJsonReadersFromBatchString-java.util.List-org.apache.drill.exec.ops.FragmentContext-java.util.List-">getJsonReadersFromBatchString</a>, <a href="../../../../../../../org/apache/drill/test/PhysicalOpUnitTestBase.html#getJsonReadersFromInputFiles-org.apache.drill.exec.store.dfs.DrillFileSystem-java.util.List-org.apache.drill.exec.ops.FragmentContext-java.util.List-">getJsonReadersFromInputFiles</a>, <a href="../../../../../../../org/apache/drill/test/PhysicalOpUnitTestBase.html#getOpCreatorReg--">getOpCreatorReg</a>, <a href="../../../../../../../org/apache/drill/test/PhysicalOpUnitTestBase.html#getReaderListForJsonBatches-java.util.List-org.apache.drill.exec.ops.FragmentContext-">getReaderListForJsonBatches</a>, <a href="../../../../../../../org/apache/drill/test/PhysicalOpUnitTestBase.html#joinCond-java.lang.String-java.lang.String-java.lang.String-">joinCond</a>, <a href="../../../../../../../org/apache/drill/test/PhysicalOpUnitTestBase.html#legacyOpTestBuilder--">legacyOpTestBuilder</a>, <a href="../../../../../../../org/apache/drill/test/PhysicalOpUnitTestBase.html#mockFragmentContext--">mockFragmentContext</a>, <a href="../../../../../../../org/apache/drill/test/PhysicalOpUnitTestBase.html#mockOpContext-org.apache.drill.exec.physical.base.PhysicalOperator-long-long-">mockOpContext</a>, <a href="../../../../../../../org/apache/drill/test/PhysicalOpUnitTestBase.html#opTestBuilder--">opTestBuilder</a>, <a href="../../../../../../../org/apache/drill/test/PhysicalOpUnitTestBase.html#ordering-java.lang.String-org.apache.calcite.rel.RelFieldCollation.Direction-org.apache.calcite.rel.RelFieldCollation.NullDirection-">ordering</a>, <a href="../../../../../../../org/apache/drill/test/PhysicalOpUnitTestBase.html#parseExprs-java.lang.String...-">parseExprs</a>, <a href="../../../../../../../org/apache/drill/test/PhysicalOpUnitTestBase.html#setup--">setup</a>, <a href="../../../../../../../org/apache/drill/test/PhysicalOpUnitTestBase.html#teardown--">teardown</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.drill.exec.ExecTest">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.drill.exec.<a href="../../../../../../../org/apache/drill/exec/ExecTest.html" title="class in org.apache.drill.exec">ExecTest</a></h3>
<code><a href="../../../../../../../org/apache/drill/exec/ExecTest.html#clear--">clear</a>, <a href="../../../../../../../org/apache/drill/exec/ExecTest.html#getLocalFileSystem--">getLocalFileSystem</a>, <a href="../../../../../../../org/apache/drill/exec/ExecTest.html#mockDrillbitContext--">mockDrillbitContext</a>, <a href="../../../../../../../org/apache/drill/exec/ExecTest.html#mockUsDateFormatSymbols--">mockUsDateFormatSymbols</a>, <a href="../../../../../../../org/apache/drill/exec/ExecTest.html#mockUtcDateTimeZone--">mockUtcDateTimeZone</a>, <a href="../../../../../../../org/apache/drill/exec/ExecTest.html#parseExpr-java.lang.String-">parseExpr</a>, <a href="../../../../../../../org/apache/drill/exec/ExecTest.html#setupOptionManager--">setupOptionManager</a></code></li>
</ul>
<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">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="TestProjectEmitOutcome--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>TestProjectEmitOutcome</h4>
<pre>public&nbsp;TestProjectEmitOutcome()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="testProjectEmptyBatchEmitOutcome--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testProjectEmptyBatchEmitOutcome</h4>
<pre>public&nbsp;void&nbsp;testProjectEmptyBatchEmitOutcome()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></pre>
<div class="block">Test that if empty input batch is received with OK_NEW_SCHEMA or EMIT
outcome, then Project doesn't ignores these empty batches and instead
return them downstream with correct outcomes.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></code></dd>
</dl>
</li>
</ul>
<a name="testProjectNonEmptyBatchEmitOutcome--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testProjectNonEmptyBatchEmitOutcome</h4>
<pre>public&nbsp;void&nbsp;testProjectNonEmptyBatchEmitOutcome()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></pre>
<div class="block">Test to show if a non-empty batch is accompanied with EMIT outcome then
Project operator produces output for that batch and return the output using
EMIT outcome.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></code></dd>
</dl>
</li>
</ul>
<a name="testProjectNonEmptyFirst_EmptyBatchEmitOutcome--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testProjectNonEmptyFirst_EmptyBatchEmitOutcome</h4>
<pre>public&nbsp;void&nbsp;testProjectNonEmptyFirst_EmptyBatchEmitOutcome()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></pre>
<div class="block">Test to show that non-empty first batch produces output for that batch with OK_NEW_SCHEMA and later empty batch
with EMIT outcome is also passed through rather than getting ignored.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></code></dd>
</dl>
</li>
</ul>
<a name="testProjectNonEmptyFirst_EmptyOK_EmptyBatchEmitOutcome--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testProjectNonEmptyFirst_EmptyOK_EmptyBatchEmitOutcome</h4>
<pre>public&nbsp;void&nbsp;testProjectNonEmptyFirst_EmptyOK_EmptyBatchEmitOutcome()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></pre>
<div class="block">Test to show if an empty batch is accompanied with OK outcome then that batch is ignored by Project operator and
it doesn't return anything instead call's next() to get another batch. If the subsequent next() call returns empty
batch with EMIT outcome then Project returns the EMIT outcome correctly rather than ignoring it because of empty
batch.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></code></dd>
</dl>
</li>
</ul>
<a name="testProjectWithComplexWritersAndEmitOutcome_NonEmptyFirstBatch--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testProjectWithComplexWritersAndEmitOutcome_NonEmptyFirstBatch</h4>
<pre>public&nbsp;void&nbsp;testProjectWithComplexWritersAndEmitOutcome_NonEmptyFirstBatch()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></pre>
<div class="block">Test to show that in cases with functions in project list whose output is complex types, if Project sees an EMIT
outcome then it fails. This scenario can happen when complex functions are used in subquery between LATERAL and
UNNEST. In which case guidance is to use those functions in project list of outermost query.
Below test passes first batch as non-empty with OK_NEW_SCHEMA during which complex writers are cached for
projected columns and later when an empty batch arrives with EMIT outcome the exception is thrown.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></code></dd>
</dl>
</li>
</ul>
<a name="testProjectWithComplexWritersAndEmitOutcome_EmptyFirstBatch--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>testProjectWithComplexWritersAndEmitOutcome_EmptyFirstBatch</h4>
<pre>public&nbsp;void&nbsp;testProjectWithComplexWritersAndEmitOutcome_EmptyFirstBatch()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></pre>
<div class="block">Test to show that in cases with functions in project list whose output is complex types, if Project sees an EMIT
outcome then it fails. This scenario can happen when complex functions are used in subquery between LATERAL and
UNNEST. In which case guidance is to use those functions in project list of outermost query.
Below test passes first batch as empty with OK_NEW_SCHEMA during which complex writers are not known so far
and Project calls next() on upstream to get a batch with data. But later when an empty batch arrives with EMIT
outcome the exception is thrown as the scenario is not supported</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</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/TestProjectEmitOutcome.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/project/ProjectRecordBatch.html" title="class in org.apache.drill.exec.physical.impl.project"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../../org/apache/drill/exec/physical/impl/project/TestSimpleProjection.html" title="class in org.apache.drill.exec.physical.impl.project"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../index.html?org/apache/drill/exec/physical/impl/project/TestProjectEmitOutcome.html" target="_top">Frames</a></li>
<li><a href="TestProjectEmitOutcome.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.classes.inherited.from.class.org.apache.drill.test.PhysicalOpUnitTestBase">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#fields.inherited.from.class.org.apache.drill.exec.physical.impl.BaseTestOpBatchEmitOutcome">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>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; 2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>