blob: 563950da038802c7447bdcdb211b999bf609f187 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>RelBuilderTest (Calcite 1.21.0 Test API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="RelBuilderTest (Calcite 1.21.0 Test API)";
}
}
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":9,"i4":9,"i5":9,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":10,"i75":10,"i76":10,"i77":10,"i78":10,"i79":10,"i80":10,"i81":10,"i82":10,"i83":10,"i84":10,"i85":10,"i86":10,"i87":10,"i88":10,"i89":10,"i90":10,"i91":10,"i92":10,"i93":10,"i94":10,"i95":10,"i96":10,"i97":10,"i98":10,"i99":10,"i100":10,"i101":10,"i102":10,"i103":10,"i104":10,"i105":10,"i106":10,"i107":10,"i108":10,"i109":10,"i110":10,"i111":10,"i112":10,"i113":10,"i114":10,"i115":10,"i116":10,"i117":10,"i118":10,"i119":10,"i120":10,"i121":10,"i122":10,"i123":10,"i124":10,"i125":10,"i126":10,"i127":10,"i128":10,"i129":10,"i130":10,"i131":10,"i132":10,"i133":10,"i134":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";
var pathtoroot = "../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/RelBuilderTest.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" id="allclasses_navbar_top">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</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>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.calcite.test</a></div>
<h2 title="Class RelBuilderTest" class="title">Class RelBuilderTest</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.calcite.test.RelBuilderTest</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<pre>public class <span class="typeNameLabel">RelBuilderTest</span>
extends java.lang.Object</pre>
<div class="block">Unit test for <code>RelBuilder</code>.
<p>Tasks:</p>
<ol>
<li>Add RelBuilder.scan(List&lt;String&gt;)</li>
<li>Add RelBuilder.scan(Table)</li>
<li>Test that <code>RelBuilder.filter(org.apache.calcite.rex.RexNode...)</code> does not create a filter if the
predicates optimize to true</li>
<li>Test that <code>RelBuilder.filter(org.apache.calcite.rex.RexNode...)</code> DOES create a filter if the
predicates optimize to false. (Creating an empty Values seems too
devious.)</li>
<li>Test that <code>RelBuilder.scan(java.lang.Iterable&lt;java.lang.String&gt;)</code> throws good error if table not
found</li>
<li>Test that <code>RelBuilder.scan(java.lang.Iterable&lt;java.lang.String&gt;)</code> obeys case-sensitivity</li>
<li>Test that <code>RelBuilder.join(JoinRelType, String...)</code> obeys
case-sensitivity</li>
<li>Test RelBuilder with alternative factories</li>
<li>Test that <code>RelBuilder.field(String)</code> obeys case-sensitivity</li>
<li>Test case-insensitive unique field names</li>
<li>Test that an alias created using
<code>RelBuilder.alias(RexNode, String)</code> is removed if not a top-level
project</li>
<li><code>RelBuilder.aggregate(org.apache.calcite.tools.RelBuilder.GroupKey, org.apache.calcite.tools.RelBuilder.AggCall...)</code> with grouping sets</li>
<li>Add call to create <code>TableFunctionScan</code></li>
<li>Add call to create <code>Window</code></li>
<li>Add call to create <code>TableModify</code></li>
<li>Add call to create <code>Exchange</code></li>
<li>Add call to create <code>Correlate</code></li>
<li>Add call to create <code>AggregateCall</code> with filter</li>
</ol></div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">RelBuilderTest</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<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="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>private org.apache.calcite.rel.RelNode</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#buildRelWithDuplicateAggregates(org.apache.calcite.tools.RelBuilder,int...)">buildRelWithDuplicateAggregates</a></span>&#8203;(org.apache.calcite.tools.RelBuilder&nbsp;builder,
int...&nbsp;groupFieldOrdinals)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkExpandTable(org.apache.calcite.tools.RelBuilder,org.hamcrest.Matcher)">checkExpandTable</a></span>&#8203;(org.apache.calcite.tools.RelBuilder&nbsp;builder,
org.hamcrest.Matcher&lt;org.apache.calcite.rel.RelNode&gt;&nbsp;matcher)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkSimplify(java.util.function.Function,org.hamcrest.Matcher)">checkSimplify</a></span>&#8203;(java.util.function.Function&lt;org.apache.calcite.tools.RelBuilder.ConfigBuilder,&#8203;org.apache.calcite.tools.RelBuilder.ConfigBuilder&gt;&nbsp;transform,
org.hamcrest.Matcher&lt;org.apache.calcite.rel.RelNode&gt;&nbsp;matcher)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>static org.apache.calcite.tools.Frameworks.ConfigBuilder</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#config()">config</a></span>()</code></th>
<td class="colLast">
<div class="block">Creates a config based on the "scott" schema.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>(package private) static org.apache.calcite.tools.RelBuilder</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createBuilder(java.util.function.Function)">createBuilder</a></span>&#8203;(java.util.function.Function&lt;org.apache.calcite.tools.RelBuilder.ConfigBuilder,&#8203;org.apache.calcite.tools.RelBuilder.ConfigBuilder&gt;&nbsp;transform)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>(package private) static org.apache.calcite.tools.Frameworks.ConfigBuilder</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#expandingConfig(java.sql.Connection)">expandingConfig</a></span>&#8203;(java.sql.Connection&nbsp;connection)</code></th>
<td class="colLast">
<div class="block">Creates a config builder that will contain a view, "MYVIEW", and also
the SCOTT JDBC schema, whose tables implement
<code>TranslatableTable</code>.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#project1(int,org.apache.calcite.sql.type.SqlTypeName,java.lang.String,java.lang.String)">project1</a></span>&#8203;(int&nbsp;value,
org.apache.calcite.sql.type.SqlTypeName&nbsp;sqlTypeName,
java.lang.String&nbsp;message,
java.lang.String&nbsp;expected)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregate()">testAggregate</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregate2()">testAggregate2</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregate3()">testAggregate3</a></span>()</code></th>
<td class="colLast">
<div class="block">Test case for
<a href="https://issues.apache.org/jira/browse/CALCITE-2192">[CALCITE-2192]
RelBuilder wrongly skips creation of Aggregate that prunes columns if input
is unique</a>.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregate4()">testAggregate4</a></span>()</code></th>
<td class="colLast">
<div class="block">As <a href="#testAggregate3()"><code>testAggregate3()</code></a> but with Filter.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregate5()">testAggregate5</a></span>()</code></th>
<td class="colLast">
<div class="block">Test case for
<a href="https://issues.apache.org/jira/browse/CALCITE-2946">[CALCITE-2946]
RelBuilder wrongly skips creation of Aggregate that prunes columns if input
produces one row at most</a>.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregateEliminatesDuplicateCalls()">testAggregateEliminatesDuplicateCalls</a></span>()</code></th>
<td class="colLast">
<div class="block">Tests that <code>RelBuilder.aggregate(org.apache.calcite.tools.RelBuilder.GroupKey, org.apache.calcite.tools.RelBuilder.AggCall...)</code> eliminates duplicate aggregate
calls and creates a <code>Project</code> to compensate.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregateEliminatesDuplicateCalls2()">testAggregateEliminatesDuplicateCalls2</a></span>()</code></th>
<td class="colLast">
<div class="block">As <a href="#testAggregateEliminatesDuplicateCalls()"><code>testAggregateEliminatesDuplicateCalls()</code></a> but with a
single-column GROUP BY clause.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregateEliminatesDuplicateCalls3()">testAggregateEliminatesDuplicateCalls3</a></span>()</code></th>
<td class="colLast">
<div class="block">As <a href="#testAggregateEliminatesDuplicateCalls()"><code>testAggregateEliminatesDuplicateCalls()</code></a> but with a
multi-column GROUP BY clause.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregateEliminatesDuplicateDistinctCalls()">testAggregateEliminatesDuplicateDistinctCalls</a></span>()</code></th>
<td class="colLast">
<div class="block">Tests eliminating duplicate aggregate calls, when some of them are only
seen to be duplicates when a spurious "DISTINCT" has been eliminated.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregateFilter()">testAggregateFilter</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregateFilterFails()">testAggregateFilterFails</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregateFilterNullable()">testAggregateFilterNullable</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregateGrouping()">testAggregateGrouping</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregateGroupingKeyOutOfRangeFails()">testAggregateGroupingKeyOutOfRangeFails</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregateGroupingSetDuplicateIgnored()">testAggregateGroupingSetDuplicateIgnored</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregateGroupingSetNotSubsetFails()">testAggregateGroupingSetNotSubsetFails</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregateGroupingWithDistinctFails()">testAggregateGroupingWithDistinctFails</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregateGroupingWithFilterFails()">testAggregateGroupingWithFilterFails</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregateProjectWithAliases()">testAggregateProjectWithAliases</a></span>()</code></th>
<td class="colLast">
<div class="block">Test case for
<a href="https://issues.apache.org/jira/browse/CALCITE-1980">[CALCITE-1980]
RelBuilder gives NPE if groupKey contains alias</a>.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregateProjectWithExpression()">testAggregateProjectWithExpression</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAlias()">testAlias</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAlias2()">testAlias2</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAliasAggregate()">testAliasAggregate</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAliasFilter()">testAliasFilter</a></span>()</code></th>
<td class="colLast">
<div class="block">Tests that table aliases are propagated and are available to a filter,
even when there is a project on top of a project.</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAliasLimit()">testAliasLimit</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAliasPastTop()">testAliasPastTop</a></span>()</code></th>
<td class="colLast">
<div class="block">Test case for
<a href="https://issues.apache.org/jira/browse/CALCITE-1523">[CALCITE-1523]
Add RelBuilder field() method to reference aliased relations not on top of
stack</a>, accessing tables aliased that are not accessible in the top
RelNode.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAliasPastTop2()">testAliasPastTop2</a></span>()</code></th>
<td class="colLast">
<div class="block">As <a href="#testAliasPastTop()"><code>testAliasPastTop()</code></a>.</div>
</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAliasProject()">testAliasProject</a></span>()</code></th>
<td class="colLast">
<div class="block">Test case for
<a href="https://issues.apache.org/jira/browse/CALCITE-1551">[CALCITE-1551]
RelBuilder's project() doesn't preserve alias</a>.</div>
</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAliasProjectProject()">testAliasProjectProject</a></span>()</code></th>
<td class="colLast">
<div class="block">Tests that table aliases are propagated even when there is a project on
top of a project.</div>
</td>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAliasSort()">testAliasSort</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i37" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAliasSuggester()">testAliasSuggester</a></span>()</code></th>
<td class="colLast">
<div class="block">Tests that project field name aliases are suggested incrementally.</div>
</td>
</tr>
<tr id="i38" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAntiJoin()">testAntiJoin</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i39" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testBadFieldName()">testBadFieldName</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i40" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testBadFieldOrdinal()">testBadFieldOrdinal</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i41" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testBadType()">testBadType</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i42" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testBadUnionArgsErrorMessage()">testBadUnionArgsErrorMessage</a></span>()</code></th>
<td class="colLast">
<div class="block">Test case for
<a href="https://issues.apache.org/jira/browse/CALCITE-1522">[CALCITE-1522]
Fix error message for SetOp with incompatible args</a>.</div>
</td>
</tr>
<tr id="i43" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testConvert()">testConvert</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i44" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testConvertRename()">testConvertRename</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i45" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testCorrelate()">testCorrelate</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i46" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testCorrelateWithComplexFields()">testCorrelateWithComplexFields</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i47" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testCorrelationFails()">testCorrelationFails</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i48" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testCorrelationWithCondition()">testCorrelationWithCondition</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i49" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testDistinct()">testDistinct</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i50" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testDistinctAlready()">testDistinctAlready</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i51" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testDistinctEmpty()">testDistinctEmpty</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i52" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testEmpty()">testEmpty</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i53" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testEmptyWithAlias()">testEmptyWithAlias</a></span>()</code></th>
<td class="colLast">
<div class="block">Test case for
<a href="https://issues.apache.org/jira/browse/CALCITE-3172">[CALCITE-3172]
RelBuilder#empty does not keep aliases</a>.</div>
</td>
</tr>
<tr id="i54" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testExcept()">testExcept</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i55" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testExchange()">testExchange</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i56" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testExpandTable()">testExpandTable</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i57" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testExpandViewInRelBuilder()">testExpandViewInRelBuilder</a></span>()</code></th>
<td class="colLast">
<div class="block">Ensures that relational algebra (<code>RelBuilder</code>) works with SQL views.</div>
</td>
</tr>
<tr id="i58" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testExpandViewShouldKeepAlias()">testExpandViewShouldKeepAlias</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i59" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testFilterCastAny()">testFilterCastAny</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i60" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testFilterCastNull()">testFilterCastNull</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i61" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testFilterEmpty()">testFilterEmpty</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i62" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testFilterWithCorrelationVariables()">testFilterWithCorrelationVariables</a></span>()</code></th>
<td class="colLast">
<div class="block">Tests filter builder with correlation variables</div>
</td>
</tr>
<tr id="i63" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testIntersect()">testIntersect</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i64" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testIntersect3()">testIntersect3</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i65" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testJoin()">testJoin</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i66" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testJoin2()">testJoin2</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i67" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testJoinCartesian()">testJoinCartesian</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i68" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testJoinTemporalTable()">testJoinTemporalTable</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i69" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testJoinUsing()">testJoinUsing</a></span>()</code></th>
<td class="colLast">
<div class="block">Same as <a href="#testJoin()"><code>testJoin()</code></a> using USING.</div>
</td>
</tr>
<tr id="i70" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testLimit()">testLimit</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i71" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testMatchRecognize()">testMatchRecognize</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i72" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testMultiLevelAlias()">testMultiLevelAlias</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i73" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPermute()">testPermute</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i74" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testProject()">testProject</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i75" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testProject1asBigInt()">testProject1asBigInt</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i76" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testProject1asInt()">testProject1asInt</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i77" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testProject2()">testProject2</a></span>()</code></th>
<td class="colLast">
<div class="block">Tests each method that creates a scalar expression.</div>
</td>
</tr>
<tr id="i78" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testProjectIdentity()">testProjectIdentity</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i79" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testProjectIdentityWithFieldsRename()">testProjectIdentityWithFieldsRename</a></span>()</code></th>
<td class="colLast">
<div class="block">Test case for
<a href="https://issues.apache.org/jira/browse/CALCITE-1297">[CALCITE-1297]
RelBuilder does not translate identity projects even if they rename
fields</a>.</div>
</td>
</tr>
<tr id="i80" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testProjectIdentityWithFieldsRenameFilter()">testProjectIdentityWithFieldsRenameFilter</a></span>()</code></th>
<td class="colLast">
<div class="block">Variation on <a href="#testProjectIdentityWithFieldsRename()"><code>testProjectIdentityWithFieldsRename()</code></a>: don't use a
table alias, and make sure the field names propagate through a filter.</div>
</td>
</tr>
<tr id="i81" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testProjectJoin()">testProjectJoin</a></span>()</code></th>
<td class="colLast">
<div class="block">Tests that a projection retains field names after a join.</div>
</td>
</tr>
<tr id="i82" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testProjectLeadingEdge()">testProjectLeadingEdge</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i83" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testProjectMapping()">testProjectMapping</a></span>()</code></th>
<td class="colLast">
<div class="block">Test case for
<a href="https://issues.apache.org/jira/browse/CALCITE-3228">[CALCITE-3228]
IllegalArgumentException in getMapping() for project containing same reference</a>.</div>
</td>
</tr>
<tr id="i84" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testProjectProject()">testProjectProject</a></span>()</code></th>
<td class="colLast">
<div class="block">Tests that a projection after a projection.</div>
</td>
</tr>
<tr id="i85" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testProjectWithAliasFromScan()">testProjectWithAliasFromScan</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i86" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testRelBuilderToString()">testRelBuilderToString</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i87" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testRename()">testRename</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i88" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testRenameValues()">testRenameValues</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i89" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testRepeatUnion1()">testRepeatUnion1</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i90" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testRepeatUnion2()">testRepeatUnion2</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i91" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testRun()">testRun</a></span>()</code></th>
<td class="colLast">
<div class="block">Tests <code>RelRunner</code> for a table scan + filter
query.</div>
</td>
</tr>
<tr id="i92" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testRunValues()">testRunValues</a></span>()</code></th>
<td class="colLast">
<div class="block">Tests <code>RelRunner</code> for a VALUES query.</div>
</td>
</tr>
<tr id="i93" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testScan()">testScan</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i94" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testScanAlias()">testScanAlias</a></span>()</code></th>
<td class="colLast">
<div class="block">Tests that the <code>RelBuilder.alias(RexNode, String)</code> function is
idempotent.</div>
</td>
</tr>
<tr id="i95" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testScanFilterAndFalse()">testScanFilterAndFalse</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i96" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testScanFilterAndTrue()">testScanFilterAndTrue</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i97" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testScanFilterDuplicateAnd()">testScanFilterDuplicateAnd</a></span>()</code></th>
<td class="colLast">
<div class="block">Test case for
<a href="https://issues.apache.org/jira/browse/CALCITE-2730">[CALCITE-2730]
RelBuilder incorrectly simplifies a filter with duplicate conjunction to
empty</a>.</div>
</td>
</tr>
<tr id="i98" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testScanFilterEquals()">testScanFilterEquals</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i99" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testScanFilterOr()">testScanFilterOr</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i100" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testScanFilterOr2()">testScanFilterOr2</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i101" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testScanFilterTriviallyFalse()">testScanFilterTriviallyFalse</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i102" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testScanFilterTrue()">testScanFilterTrue</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i103" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testScanInvalidQualifiedTable()">testScanInvalidQualifiedTable</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i104" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testScanInvalidSchema()">testScanInvalidSchema</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i105" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testScanInvalidTable()">testScanInvalidTable</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i106" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testScanQualifiedTable()">testScanQualifiedTable</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i107" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testScanValidTableWrongCase()">testScanValidTableWrongCase</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i108" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSimplify()">testSimplify</a></span>()</code></th>
<td class="colLast">
<div class="block">Tests that <code>RelBuilder.project(org.apache.calcite.rex.RexNode...)</code> simplifies expressions if and only if
<code>RelBuilder.Config.simplify</code>.</div>
</td>
</tr>
<tr id="i109" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSnapshotTemporalTable()">testSnapshotTemporalTable</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i110" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSort()">testSort</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i111" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSortByExpression()">testSortByExpression</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i112" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSortDuplicate()">testSortDuplicate</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i113" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSortExchange()">testSortExchange</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i114" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSortExpThenLimit()">testSortExpThenLimit</a></span>()</code></th>
<td class="colLast">
<div class="block">Tests that a sort on an expression followed by a limit gives the same
effect as calling sortLimit.</div>
</td>
</tr>
<tr id="i115" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSortLimit()">testSortLimit</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i116" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSortLimit0()">testSortLimit0</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i117" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSortOverProjectSort()">testSortOverProjectSort</a></span>()</code></th>
<td class="colLast">
<div class="block">Test case for
<a href="https://issues.apache.org/jira/browse/CALCITE-1610">[CALCITE-1610]
RelBuilder sort-combining optimization treats aliases incorrectly</a>.</div>
</td>
</tr>
<tr id="i118" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSortThenLimit()">testSortThenLimit</a></span>()</code></th>
<td class="colLast">
<div class="block">Tests that a sort on a field followed by a limit gives the same
effect as calling sortLimit.</div>
</td>
</tr>
<tr id="i119" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testTableFunctionScan()">testTableFunctionScan</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i120" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testTableFunctionScanZeroInputs()">testTableFunctionScanZeroInputs</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i121" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testTrivialSort()">testTrivialSort</a></span>()</code></th>
<td class="colLast">
<div class="block">Test case for
<a href="https://issues.apache.org/jira/browse/CALCITE-1015">[CALCITE-1015]
OFFSET 0 causes AssertionError</a>.</div>
</td>
</tr>
<tr id="i122" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testTypeInferenceValidation()">testTypeInferenceValidation</a></span>()</code></th>
<td class="colLast">
<div class="block">Test case for
<a href="https://issues.apache.org/jira/browse/CALCITE-1595">[CALCITE-1595]
RelBuilder.call throws NullPointerException if argument types are
invalid</a>.</div>
</td>
</tr>
<tr id="i123" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testUnion()">testUnion</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i124" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testUnion1()">testUnion1</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i125" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testUnion3()">testUnion3</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i126" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testUnionAlias()">testUnionAlias</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i127" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testValues()">testValues</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i128" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testValuesAllNull()">testValuesAllNull</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i129" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testValuesBadAllNull()">testValuesBadAllNull</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i130" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testValuesBadNoFields()">testValuesBadNoFields</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i131" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testValuesBadNoValues()">testValuesBadNoValues</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i132" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testValuesBadNullFieldNames()">testValuesBadNullFieldNames</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i133" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testValuesBadOddMultiple()">testValuesBadOddMultiple</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i134" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testValuesNullable()">testValuesNullable</a></span>()</code></th>
<td class="colLast">
<div class="block">Tests creating Values with some field names and some values null.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>RelBuilderTest</h4>
<pre>public&nbsp;RelBuilderTest()</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="config()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>config</h4>
<pre class="methodSignature">public static&nbsp;org.apache.calcite.tools.Frameworks.ConfigBuilder&nbsp;config()</pre>
<div class="block">Creates a config based on the "scott" schema.</div>
</li>
</ul>
<a id="expandingConfig(java.sql.Connection)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>expandingConfig</h4>
<pre class="methodSignature">static&nbsp;org.apache.calcite.tools.Frameworks.ConfigBuilder&nbsp;expandingConfig&#8203;(java.sql.Connection&nbsp;connection)
throws java.sql.SQLException</pre>
<div class="block">Creates a config builder that will contain a view, "MYVIEW", and also
the SCOTT JDBC schema, whose tables implement
<code>TranslatableTable</code>.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.sql.SQLException</code></dd>
</dl>
</li>
</ul>
<a id="createBuilder(java.util.function.Function)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createBuilder</h4>
<pre class="methodSignature">@Nonnull
static&nbsp;org.apache.calcite.tools.RelBuilder&nbsp;createBuilder&#8203;(java.util.function.Function&lt;org.apache.calcite.tools.RelBuilder.ConfigBuilder,&#8203;org.apache.calcite.tools.RelBuilder.ConfigBuilder&gt;&nbsp;transform)</pre>
</li>
</ul>
<a id="testScan()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testScan</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testScan()</pre>
</li>
</ul>
<a id="testScanQualifiedTable()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testScanQualifiedTable</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testScanQualifiedTable()</pre>
</li>
</ul>
<a id="testScanInvalidTable()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testScanInvalidTable</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testScanInvalidTable()</pre>
</li>
</ul>
<a id="testScanInvalidSchema()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testScanInvalidSchema</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testScanInvalidSchema()</pre>
</li>
</ul>
<a id="testScanInvalidQualifiedTable()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testScanInvalidQualifiedTable</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testScanInvalidQualifiedTable()</pre>
</li>
</ul>
<a id="testScanValidTableWrongCase()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testScanValidTableWrongCase</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testScanValidTableWrongCase()</pre>
</li>
</ul>
<a id="testScanFilterTrue()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testScanFilterTrue</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testScanFilterTrue()</pre>
</li>
</ul>
<a id="testScanFilterTriviallyFalse()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testScanFilterTriviallyFalse</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testScanFilterTriviallyFalse()</pre>
</li>
</ul>
<a id="testScanFilterEquals()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testScanFilterEquals</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testScanFilterEquals()</pre>
</li>
</ul>
<a id="testSnapshotTemporalTable()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testSnapshotTemporalTable</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testSnapshotTemporalTable()</pre>
</li>
</ul>
<a id="testTableFunctionScan()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testTableFunctionScan</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testTableFunctionScan()</pre>
</li>
</ul>
<a id="testTableFunctionScanZeroInputs()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testTableFunctionScanZeroInputs</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testTableFunctionScanZeroInputs()</pre>
</li>
</ul>
<a id="testJoinTemporalTable()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testJoinTemporalTable</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testJoinTemporalTable()</pre>
</li>
</ul>
<a id="testSimplify()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testSimplify</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testSimplify()</pre>
<div class="block">Tests that <code>RelBuilder.project(org.apache.calcite.rex.RexNode...)</code> simplifies expressions if and only if
<code>RelBuilder.Config.simplify</code>.</div>
</li>
</ul>
<a id="checkSimplify(java.util.function.Function,org.hamcrest.Matcher)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkSimplify</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;checkSimplify&#8203;(java.util.function.Function&lt;org.apache.calcite.tools.RelBuilder.ConfigBuilder,&#8203;org.apache.calcite.tools.RelBuilder.ConfigBuilder&gt;&nbsp;transform,
org.hamcrest.Matcher&lt;org.apache.calcite.rel.RelNode&gt;&nbsp;matcher)</pre>
</li>
</ul>
<a id="testScanFilterOr()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testScanFilterOr</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testScanFilterOr()</pre>
</li>
</ul>
<a id="testScanFilterOr2()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testScanFilterOr2</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testScanFilterOr2()</pre>
</li>
</ul>
<a id="testScanFilterAndFalse()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testScanFilterAndFalse</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testScanFilterAndFalse()</pre>
</li>
</ul>
<a id="testScanFilterAndTrue()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testScanFilterAndTrue</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testScanFilterAndTrue()</pre>
</li>
</ul>
<a id="testScanFilterDuplicateAnd()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testScanFilterDuplicateAnd</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testScanFilterDuplicateAnd()</pre>
<div class="block">Test case for
<a href="https://issues.apache.org/jira/browse/CALCITE-2730">[CALCITE-2730]
RelBuilder incorrectly simplifies a filter with duplicate conjunction to
empty</a>.</div>
</li>
</ul>
<a id="testBadFieldName()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testBadFieldName</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testBadFieldName()</pre>
</li>
</ul>
<a id="testBadFieldOrdinal()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testBadFieldOrdinal</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testBadFieldOrdinal()</pre>
</li>
</ul>
<a id="testBadType()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testBadType</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testBadType()</pre>
</li>
</ul>
<a id="testProject()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testProject</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testProject()</pre>
</li>
</ul>
<a id="testProject2()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testProject2</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testProject2()</pre>
<div class="block">Tests each method that creates a scalar expression.</div>
</li>
</ul>
<a id="testProjectIdentity()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testProjectIdentity</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testProjectIdentity()</pre>
</li>
</ul>
<a id="testProjectIdentityWithFieldsRename()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testProjectIdentityWithFieldsRename</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testProjectIdentityWithFieldsRename()</pre>
<div class="block">Test case for
<a href="https://issues.apache.org/jira/browse/CALCITE-1297">[CALCITE-1297]
RelBuilder does not translate identity projects even if they rename
fields</a>.</div>
</li>
</ul>
<a id="testProjectIdentityWithFieldsRenameFilter()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testProjectIdentityWithFieldsRenameFilter</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testProjectIdentityWithFieldsRenameFilter()</pre>
<div class="block">Variation on <a href="#testProjectIdentityWithFieldsRename()"><code>testProjectIdentityWithFieldsRename()</code></a>: don't use a
table alias, and make sure the field names propagate through a filter.</div>
</li>
</ul>
<a id="testProjectLeadingEdge()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testProjectLeadingEdge</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testProjectLeadingEdge()</pre>
</li>
</ul>
<a id="testProjectWithAliasFromScan()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testProjectWithAliasFromScan</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testProjectWithAliasFromScan()</pre>
</li>
</ul>
<a id="testProjectMapping()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testProjectMapping</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testProjectMapping()</pre>
<div class="block">Test case for
<a href="https://issues.apache.org/jira/browse/CALCITE-3228">[CALCITE-3228]
IllegalArgumentException in getMapping() for project containing same reference</a>.</div>
</li>
</ul>
<a id="project1(int,org.apache.calcite.sql.type.SqlTypeName,java.lang.String,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>project1</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;project1&#8203;(int&nbsp;value,
org.apache.calcite.sql.type.SqlTypeName&nbsp;sqlTypeName,
java.lang.String&nbsp;message,
java.lang.String&nbsp;expected)</pre>
</li>
</ul>
<a id="testProject1asInt()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testProject1asInt</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testProject1asInt()</pre>
</li>
</ul>
<a id="testProject1asBigInt()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testProject1asBigInt</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testProject1asBigInt()</pre>
</li>
</ul>
<a id="testRename()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testRename</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testRename()</pre>
</li>
</ul>
<a id="testRenameValues()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testRenameValues</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testRenameValues()</pre>
</li>
</ul>
<a id="testPermute()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testPermute</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testPermute()</pre>
</li>
</ul>
<a id="testConvert()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testConvert</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testConvert()</pre>
</li>
</ul>
<a id="testConvertRename()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testConvertRename</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testConvertRename()</pre>
</li>
</ul>
<a id="testAggregate()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testAggregate</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testAggregate()</pre>
</li>
</ul>
<a id="testAggregate2()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testAggregate2</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testAggregate2()</pre>
</li>
</ul>
<a id="testAggregate3()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testAggregate3</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testAggregate3()</pre>
<div class="block">Test case for
<a href="https://issues.apache.org/jira/browse/CALCITE-2192">[CALCITE-2192]
RelBuilder wrongly skips creation of Aggregate that prunes columns if input
is unique</a>.</div>
</li>
</ul>
<a id="testAggregate4()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testAggregate4</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testAggregate4()</pre>
<div class="block">As <a href="#testAggregate3()"><code>testAggregate3()</code></a> but with Filter.</div>
</li>
</ul>
<a id="testAggregate5()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testAggregate5</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testAggregate5()</pre>
<div class="block">Test case for
<a href="https://issues.apache.org/jira/browse/CALCITE-2946">[CALCITE-2946]
RelBuilder wrongly skips creation of Aggregate that prunes columns if input
produces one row at most</a>.</div>
</li>
</ul>
<a id="testAggregateEliminatesDuplicateCalls()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testAggregateEliminatesDuplicateCalls</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testAggregateEliminatesDuplicateCalls()</pre>
<div class="block">Tests that <code>RelBuilder.aggregate(org.apache.calcite.tools.RelBuilder.GroupKey, org.apache.calcite.tools.RelBuilder.AggCall...)</code> eliminates duplicate aggregate
calls and creates a <code>Project</code> to compensate.</div>
</li>
</ul>
<a id="testAggregateEliminatesDuplicateCalls2()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testAggregateEliminatesDuplicateCalls2</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testAggregateEliminatesDuplicateCalls2()</pre>
<div class="block">As <a href="#testAggregateEliminatesDuplicateCalls()"><code>testAggregateEliminatesDuplicateCalls()</code></a> but with a
single-column GROUP BY clause.</div>
</li>
</ul>
<a id="testAggregateEliminatesDuplicateCalls3()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testAggregateEliminatesDuplicateCalls3</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testAggregateEliminatesDuplicateCalls3()</pre>
<div class="block">As <a href="#testAggregateEliminatesDuplicateCalls()"><code>testAggregateEliminatesDuplicateCalls()</code></a> but with a
multi-column GROUP BY clause.</div>
</li>
</ul>
<a id="buildRelWithDuplicateAggregates(org.apache.calcite.tools.RelBuilder,int...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>buildRelWithDuplicateAggregates</h4>
<pre class="methodSignature">private&nbsp;org.apache.calcite.rel.RelNode&nbsp;buildRelWithDuplicateAggregates&#8203;(org.apache.calcite.tools.RelBuilder&nbsp;builder,
int...&nbsp;groupFieldOrdinals)</pre>
</li>
</ul>
<a id="testAggregateEliminatesDuplicateDistinctCalls()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testAggregateEliminatesDuplicateDistinctCalls</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testAggregateEliminatesDuplicateDistinctCalls()</pre>
<div class="block">Tests eliminating duplicate aggregate calls, when some of them are only
seen to be duplicates when a spurious "DISTINCT" has been eliminated.
<p>Note that "M2" and "MD2" are based on the same field, because
"MIN(DISTINCT $2)" is identical to "MIN($2)". The same is not true for
"SUM".</div>
</li>
</ul>
<a id="testAggregateFilter()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testAggregateFilter</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testAggregateFilter()</pre>
</li>
</ul>
<a id="testAggregateFilterFails()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testAggregateFilterFails</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testAggregateFilterFails()</pre>
</li>
</ul>
<a id="testAggregateFilterNullable()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testAggregateFilterNullable</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testAggregateFilterNullable()</pre>
</li>
</ul>
<a id="testAggregateProjectWithAliases()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testAggregateProjectWithAliases</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testAggregateProjectWithAliases()</pre>
<div class="block">Test case for
<a href="https://issues.apache.org/jira/browse/CALCITE-1980">[CALCITE-1980]
RelBuilder gives NPE if groupKey contains alias</a>.
<p>Now, the alias does not cause a new expression to be added to the input,
but causes the referenced fields to be renamed.</div>
</li>
</ul>
<a id="testAggregateProjectWithExpression()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testAggregateProjectWithExpression</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testAggregateProjectWithExpression()</pre>
</li>
</ul>
<a id="testAggregateGroupingKeyOutOfRangeFails()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testAggregateGroupingKeyOutOfRangeFails</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testAggregateGroupingKeyOutOfRangeFails()</pre>
</li>
</ul>
<a id="testAggregateGroupingSetNotSubsetFails()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testAggregateGroupingSetNotSubsetFails</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testAggregateGroupingSetNotSubsetFails()</pre>
</li>
</ul>
<a id="testAggregateGroupingSetDuplicateIgnored()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testAggregateGroupingSetDuplicateIgnored</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testAggregateGroupingSetDuplicateIgnored()</pre>
</li>
</ul>
<a id="testAggregateGrouping()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testAggregateGrouping</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testAggregateGrouping()</pre>
</li>
</ul>
<a id="testAggregateGroupingWithDistinctFails()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testAggregateGroupingWithDistinctFails</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testAggregateGroupingWithDistinctFails()</pre>
</li>
</ul>
<a id="testAggregateGroupingWithFilterFails()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testAggregateGroupingWithFilterFails</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testAggregateGroupingWithFilterFails()</pre>
</li>
</ul>
<a id="testDistinct()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testDistinct</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testDistinct()</pre>
</li>
</ul>
<a id="testDistinctAlready()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testDistinctAlready</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testDistinctAlready()</pre>
</li>
</ul>
<a id="testDistinctEmpty()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testDistinctEmpty</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testDistinctEmpty()</pre>
</li>
</ul>
<a id="testUnion()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testUnion</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testUnion()</pre>
</li>
</ul>
<a id="testBadUnionArgsErrorMessage()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testBadUnionArgsErrorMessage</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testBadUnionArgsErrorMessage()</pre>
<div class="block">Test case for
<a href="https://issues.apache.org/jira/browse/CALCITE-1522">[CALCITE-1522]
Fix error message for SetOp with incompatible args</a>.</div>
</li>
</ul>
<a id="testUnion3()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testUnion3</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testUnion3()</pre>
</li>
</ul>
<a id="testUnion1()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testUnion1</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testUnion1()</pre>
</li>
</ul>
<a id="testRepeatUnion1()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testRepeatUnion1</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testRepeatUnion1()</pre>
</li>
</ul>
<a id="testRepeatUnion2()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testRepeatUnion2</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testRepeatUnion2()</pre>
</li>
</ul>
<a id="testIntersect()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testIntersect</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testIntersect()</pre>
</li>
</ul>
<a id="testIntersect3()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testIntersect3</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testIntersect3()</pre>
</li>
</ul>
<a id="testExcept()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testExcept</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testExcept()</pre>
</li>
</ul>
<a id="testJoin()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testJoin</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testJoin()</pre>
</li>
</ul>
<a id="testJoinUsing()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testJoinUsing</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testJoinUsing()</pre>
<div class="block">Same as <a href="#testJoin()"><code>testJoin()</code></a> using USING.</div>
</li>
</ul>
<a id="testJoin2()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testJoin2</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testJoin2()</pre>
</li>
</ul>
<a id="testJoinCartesian()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testJoinCartesian</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testJoinCartesian()</pre>
</li>
</ul>
<a id="testCorrelationFails()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testCorrelationFails</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testCorrelationFails()</pre>
</li>
</ul>
<a id="testCorrelationWithCondition()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testCorrelationWithCondition</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testCorrelationWithCondition()</pre>
</li>
</ul>
<a id="testAntiJoin()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testAntiJoin</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testAntiJoin()</pre>
</li>
</ul>
<a id="testAlias()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testAlias</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testAlias()</pre>
</li>
</ul>
<a id="testAlias2()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testAlias2</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testAlias2()</pre>
</li>
</ul>
<a id="testAliasSort()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testAliasSort</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testAliasSort()</pre>
</li>
</ul>
<a id="testAliasLimit()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testAliasLimit</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testAliasLimit()</pre>
</li>
</ul>
<a id="testAliasProject()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testAliasProject</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testAliasProject()</pre>
<div class="block">Test case for
<a href="https://issues.apache.org/jira/browse/CALCITE-1551">[CALCITE-1551]
RelBuilder's project() doesn't preserve alias</a>.</div>
</li>
</ul>
<a id="testAliasProjectProject()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testAliasProjectProject</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testAliasProjectProject()</pre>
<div class="block">Tests that table aliases are propagated even when there is a project on
top of a project. (Aliases tend to get lost when projects are merged).</div>
</li>
</ul>
<a id="testAliasFilter()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testAliasFilter</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testAliasFilter()</pre>
<div class="block">Tests that table aliases are propagated and are available to a filter,
even when there is a project on top of a project. (Aliases tend to get lost
when projects are merged).</div>
</li>
</ul>
<a id="testScanAlias()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testScanAlias</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testScanAlias()</pre>
<div class="block">Tests that the <code>RelBuilder.alias(RexNode, String)</code> function is
idempotent.</div>
</li>
</ul>
<a id="testAliasSuggester()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testAliasSuggester</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testAliasSuggester()</pre>
<div class="block">Tests that project field name aliases are suggested incrementally.</div>
</li>
</ul>
<a id="testAliasAggregate()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testAliasAggregate</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testAliasAggregate()</pre>
</li>
</ul>
<a id="testProjectJoin()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testProjectJoin</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testProjectJoin()</pre>
<div class="block">Tests that a projection retains field names after a join.</div>
</li>
</ul>
<a id="testProjectProject()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testProjectProject</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testProjectProject()</pre>
<div class="block">Tests that a projection after a projection.</div>
</li>
</ul>
<a id="testMultiLevelAlias()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testMultiLevelAlias</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testMultiLevelAlias()</pre>
</li>
</ul>
<a id="testUnionAlias()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testUnionAlias</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testUnionAlias()</pre>
</li>
</ul>
<a id="testAliasPastTop()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testAliasPastTop</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testAliasPastTop()</pre>
<div class="block">Test case for
<a href="https://issues.apache.org/jira/browse/CALCITE-1523">[CALCITE-1523]
Add RelBuilder field() method to reference aliased relations not on top of
stack</a>, accessing tables aliased that are not accessible in the top
RelNode.</div>
</li>
</ul>
<a id="testAliasPastTop2()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testAliasPastTop2</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testAliasPastTop2()</pre>
<div class="block">As <a href="#testAliasPastTop()"><code>testAliasPastTop()</code></a>.</div>
</li>
</ul>
<a id="testEmpty()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testEmpty</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testEmpty()</pre>
</li>
</ul>
<a id="testEmptyWithAlias()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testEmptyWithAlias</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testEmptyWithAlias()</pre>
<div class="block">Test case for
<a href="https://issues.apache.org/jira/browse/CALCITE-3172">[CALCITE-3172]
RelBuilder#empty does not keep aliases</a>.</div>
</li>
</ul>
<a id="testValues()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testValues</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testValues()</pre>
</li>
</ul>
<a id="testValuesNullable()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testValuesNullable</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testValuesNullable()</pre>
<div class="block">Tests creating Values with some field names and some values null.</div>
</li>
</ul>
<a id="testValuesBadNullFieldNames()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testValuesBadNullFieldNames</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testValuesBadNullFieldNames()</pre>
</li>
</ul>
<a id="testValuesBadNoFields()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testValuesBadNoFields</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testValuesBadNoFields()</pre>
</li>
</ul>
<a id="testValuesBadNoValues()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testValuesBadNoValues</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testValuesBadNoValues()</pre>
</li>
</ul>
<a id="testValuesBadOddMultiple()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testValuesBadOddMultiple</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testValuesBadOddMultiple()</pre>
</li>
</ul>
<a id="testValuesBadAllNull()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testValuesBadAllNull</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testValuesBadAllNull()</pre>
</li>
</ul>
<a id="testValuesAllNull()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testValuesAllNull</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testValuesAllNull()</pre>
</li>
</ul>
<a id="testSort()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testSort</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testSort()</pre>
</li>
</ul>
<a id="testTrivialSort()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testTrivialSort</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testTrivialSort()</pre>
<div class="block">Test case for
<a href="https://issues.apache.org/jira/browse/CALCITE-1015">[CALCITE-1015]
OFFSET 0 causes AssertionError</a>.</div>
</li>
</ul>
<a id="testSortDuplicate()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testSortDuplicate</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testSortDuplicate()</pre>
</li>
</ul>
<a id="testSortByExpression()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testSortByExpression</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testSortByExpression()</pre>
</li>
</ul>
<a id="testLimit()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testLimit</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testLimit()</pre>
</li>
</ul>
<a id="testSortLimit()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testSortLimit</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testSortLimit()</pre>
</li>
</ul>
<a id="testSortLimit0()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testSortLimit0</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testSortLimit0()</pre>
</li>
</ul>
<a id="testSortOverProjectSort()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testSortOverProjectSort</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testSortOverProjectSort()</pre>
<div class="block">Test case for
<a href="https://issues.apache.org/jira/browse/CALCITE-1610">[CALCITE-1610]
RelBuilder sort-combining optimization treats aliases incorrectly</a>.</div>
</li>
</ul>
<a id="testSortThenLimit()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testSortThenLimit</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testSortThenLimit()</pre>
<div class="block">Tests that a sort on a field followed by a limit gives the same
effect as calling sortLimit.
<p>In general a relational operator cannot rely on the order of its input,
but it is reasonable to merge sort and limit if they were created by
consecutive builder operations. And clients such as Piglet rely on it.</div>
</li>
</ul>
<a id="testSortExpThenLimit()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testSortExpThenLimit</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testSortExpThenLimit()</pre>
<div class="block">Tests that a sort on an expression followed by a limit gives the same
effect as calling sortLimit.</div>
</li>
</ul>
<a id="testRunValues()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testRunValues</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testRunValues()
throws java.lang.Exception</pre>
<div class="block">Tests <code>RelRunner</code> for a VALUES query.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code></dd>
</dl>
</li>
</ul>
<a id="testRun()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testRun</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testRun()
throws java.lang.Exception</pre>
<div class="block">Tests <code>RelRunner</code> for a table scan + filter
query.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code></dd>
</dl>
</li>
</ul>
<a id="testTypeInferenceValidation()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testTypeInferenceValidation</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testTypeInferenceValidation()</pre>
<div class="block">Test case for
<a href="https://issues.apache.org/jira/browse/CALCITE-1595">[CALCITE-1595]
RelBuilder.call throws NullPointerException if argument types are
invalid</a>.</div>
</li>
</ul>
<a id="testMatchRecognize()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testMatchRecognize</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testMatchRecognize()</pre>
</li>
</ul>
<a id="testFilterCastAny()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testFilterCastAny</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testFilterCastAny()</pre>
</li>
</ul>
<a id="testFilterCastNull()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testFilterCastNull</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testFilterCastNull()</pre>
</li>
</ul>
<a id="testFilterWithCorrelationVariables()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testFilterWithCorrelationVariables</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testFilterWithCorrelationVariables()</pre>
<div class="block">Tests filter builder with correlation variables</div>
</li>
</ul>
<a id="testFilterEmpty()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testFilterEmpty</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testFilterEmpty()</pre>
</li>
</ul>
<a id="testRelBuilderToString()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testRelBuilderToString</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testRelBuilderToString()</pre>
</li>
</ul>
<a id="testExpandViewInRelBuilder()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testExpandViewInRelBuilder</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testExpandViewInRelBuilder()
throws java.sql.SQLException</pre>
<div class="block">Ensures that relational algebra (<code>RelBuilder</code>) works with SQL views.
<p>This test currently fails (thus ignored).</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.sql.SQLException</code></dd>
</dl>
</li>
</ul>
<a id="testExpandViewShouldKeepAlias()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testExpandViewShouldKeepAlias</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testExpandViewShouldKeepAlias()
throws java.sql.SQLException</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.sql.SQLException</code></dd>
</dl>
</li>
</ul>
<a id="testExpandTable()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testExpandTable</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testExpandTable()
throws java.sql.SQLException</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.sql.SQLException</code></dd>
</dl>
</li>
</ul>
<a id="checkExpandTable(org.apache.calcite.tools.RelBuilder,org.hamcrest.Matcher)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkExpandTable</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;checkExpandTable&#8203;(org.apache.calcite.tools.RelBuilder&nbsp;builder,
org.hamcrest.Matcher&lt;org.apache.calcite.rel.RelNode&gt;&nbsp;matcher)</pre>
</li>
</ul>
<a id="testExchange()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testExchange</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testExchange()</pre>
</li>
</ul>
<a id="testSortExchange()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testSortExchange</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testSortExchange()</pre>
</li>
</ul>
<a id="testCorrelate()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testCorrelate</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testCorrelate()</pre>
</li>
</ul>
<a id="testCorrelateWithComplexFields()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>testCorrelateWithComplexFields</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;testCorrelateWithComplexFields()</pre>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/RelBuilderTest.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" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses.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>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</body>
</html>