blob: cdc00c3e975092a772b223fe4bcc8198275bd6da [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>RelBuilder (Apache Calcite 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="RelBuilder (Apache Calcite API)";
}
}
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":42,"i6":42,"i7":42,"i8":42,"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":9,"i29":10,"i30":9,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":9,"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":42,"i70":10,"i71":10,"i72":10,"i73":10,"i74":42,"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":9,"i130":9,"i131":10,"i132":10,"i133":10,"i134":10,"i135":10,"i136":10,"i137":10,"i138":10,"i139":10,"i140":10,"i141":10,"i142":10,"i143":10,"i144":10,"i145":10,"i146":10,"i147":10,"i148":10,"i149":10,"i150":10,"i151":10,"i152":10,"i153":10,"i154":10,"i155":10,"i156":10,"i157":10,"i158":10,"i159":10,"i160":10,"i161":10,"i162":10,"i163":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated 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/RelBuilder.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><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a 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.tools</a></div>
<h2 title="Class RelBuilder" class="title">Class RelBuilder</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.calcite.tools.RelBuilder</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><code><a href="PigRelBuilder.html" title="class in org.apache.calcite.tools">PigRelBuilder</a></code></dd>
</dl>
<hr>
<pre>public class <span class="typeNameLabel">RelBuilder</span>
extends java.lang.Object</pre>
<div class="block">Builder for relational expressions.
<p><code>RelBuilder</code> does not make possible anything that you could not
also accomplish by calling the factory methods of the particular relational
expression. But it makes common tasks more straightforward and concise.
<p><code>RelBuilder</code> uses factories to create relational expressions.
By default, it uses the default factories, which create logical relational
expressions (<a href="../rel/logical/LogicalFilter.html" title="class in org.apache.calcite.rel.logical"><code>LogicalFilter</code></a>,
<a href="../rel/logical/LogicalProject.html" title="class in org.apache.calcite.rel.logical"><code>LogicalProject</code></a> and so forth).
But you could override those factories so that, say, <code>filter</code> creates
instead a <code>HiveFilter</code>.
<p>It is not thread-safe.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static interface&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RelBuilder.AggCall.html" title="interface in org.apache.calcite.tools">RelBuilder.AggCall</a></span></code></th>
<td class="colLast">
<div class="block">Information necessary to create a call to an aggregate function.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RelBuilder.AggCallImpl.html" title="class in org.apache.calcite.tools">RelBuilder.AggCallImpl</a></span></code></th>
<td class="colLast">
<div class="block">Implementation of <a href="RelBuilder.AggCall.html" title="interface in org.apache.calcite.tools"><code>RelBuilder.AggCall</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RelBuilder.AggCallImpl2.html" title="class in org.apache.calcite.tools">RelBuilder.AggCallImpl2</a></span></code></th>
<td class="colLast">
<div class="block">Implementation of <a href="RelBuilder.AggCall.html" title="interface in org.apache.calcite.tools"><code>RelBuilder.AggCall</code></a> that wraps an
<a href="../rel/core/AggregateCall.html" title="class in org.apache.calcite.rel.core"><code>AggregateCall</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RelBuilder.Field.html" title="class in org.apache.calcite.tools">RelBuilder.Field</a></span></code></th>
<td class="colLast">
<div class="block">A field that belongs to a stack <a href="RelBuilder.Frame.html" title="class in org.apache.calcite.tools"><code>RelBuilder.Frame</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RelBuilder.Frame.html" title="class in org.apache.calcite.tools">RelBuilder.Frame</a></span></code></th>
<td class="colLast">
<div class="block">Builder stack frame.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static interface&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RelBuilder.GroupKey.html" title="interface in org.apache.calcite.tools">RelBuilder.GroupKey</a></span></code></th>
<td class="colLast">
<div class="block">Information necessary to create the GROUP BY clause of an Aggregate.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RelBuilder.GroupKeyImpl.html" title="class in org.apache.calcite.tools">RelBuilder.GroupKeyImpl</a></span></code></th>
<td class="colLast">
<div class="block">Implementation of <a href="RelBuilder.GroupKey.html" title="interface in org.apache.calcite.tools"><code>RelBuilder.GroupKey</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RelBuilder.Registrar.html" title="class in org.apache.calcite.tools">RelBuilder.Registrar</a></span></code></th>
<td class="colLast">
<div class="block">Collects the extra expressions needed for <a href="#aggregate(org.apache.calcite.tools.RelBuilder.GroupKey,org.apache.calcite.tools.RelBuilder.AggCall...)"><code>aggregate(org.apache.calcite.tools.RelBuilder.GroupKey, org.apache.calcite.tools.RelBuilder.AggCall...)</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RelBuilder.Shifter.html" title="class in org.apache.calcite.tools">RelBuilder.Shifter</a></span></code></th>
<td class="colLast">
<div class="block">Shuttle that shifts a predicate's inputs to the left, replacing early
ones with references to a
<a href="../rex/RexCorrelVariable.html" title="class in org.apache.calcite.rex"><code>RexCorrelVariable</code></a>.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="../rel/core/RelFactories.AggregateFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.AggregateFactory</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#aggregateFactory">aggregateFactory</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="../plan/RelOptCluster.html" title="class in org.apache.calcite.plan">RelOptCluster</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#cluster">cluster</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="../rel/core/RelFactories.CorrelateFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.CorrelateFactory</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#correlateFactory">correlateFactory</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="../rel/core/RelFactories.ExchangeFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.ExchangeFactory</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#exchangeFactory">exchangeFactory</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="../rel/core/RelFactories.FilterFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.FilterFactory</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#filterFactory">filterFactory</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="../rel/core/RelFactories.JoinFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.JoinFactory</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#joinFactory">joinFactory</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="../rel/core/RelFactories.MatchFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.MatchFactory</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#matchFactory">matchFactory</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="../rel/core/RelFactories.ProjectFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.ProjectFactory</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#projectFactory">projectFactory</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="../plan/RelOptSchema.html" title="interface in org.apache.calcite.plan">RelOptSchema</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#relOptSchema">relOptSchema</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="../rel/core/RelFactories.RepeatUnionFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.RepeatUnionFactory</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#repeatUnionFactory">repeatUnionFactory</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="../rel/core/RelFactories.TableScanFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.TableScanFactory</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#scanFactory">scanFactory</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="../rel/core/RelFactories.SetOpFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.SetOpFactory</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setOpFactory">setOpFactory</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="../rex/RexSimplify.html" title="class in org.apache.calcite.rex">RexSimplify</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#simplifier">simplifier</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#simplify">simplify</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="../rel/core/RelFactories.SnapshotFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.SnapshotFactory</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#snapshotFactory">snapshotFactory</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="../rel/core/RelFactories.SortExchangeFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.SortExchangeFactory</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sortExchangeFactory">sortExchangeFactory</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="../rel/core/RelFactories.SortFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.SortFactory</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sortFactory">sortFactory</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="../rel/core/RelFactories.SpoolFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.SpoolFactory</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#spoolFactory">spoolFactory</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private java.util.Deque&lt;<a href="RelBuilder.Frame.html" title="class in org.apache.calcite.tools">RelBuilder.Frame</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#stack">stack</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="../rel/core/RelFactories.TableFunctionScanFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.TableFunctionScanFactory</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#tableFunctionScanFactory">tableFunctionScanFactory</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="../rel/core/RelFactories.ValuesFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.ValuesFactory</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#valuesFactory">valuesFactory</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ======== 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">Modifier</th>
<th class="colSecond" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected </code></td>
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.apache.calcite.plan.Context,org.apache.calcite.plan.RelOptCluster,org.apache.calcite.plan.RelOptSchema)">RelBuilder</a></span>&#8203;(<a href="../plan/Context.html" title="interface in org.apache.calcite.plan">Context</a>&nbsp;context,
<a href="../plan/RelOptCluster.html" title="class in org.apache.calcite.plan">RelOptCluster</a>&nbsp;cluster,
<a href="../plan/RelOptSchema.html" title="interface in org.apache.calcite.plan">RelOptSchema</a>&nbsp;relOptSchema)</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><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated 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><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#aggregate(org.apache.calcite.tools.RelBuilder.GroupKey,java.lang.Iterable)">aggregate</a></span>&#8203;(<a href="RelBuilder.GroupKey.html" title="interface in org.apache.calcite.tools">RelBuilder.GroupKey</a>&nbsp;groupKey,
java.lang.Iterable&lt;<a href="RelBuilder.AggCall.html" title="interface in org.apache.calcite.tools">RelBuilder.AggCall</a>&gt;&nbsp;aggCalls)</code></th>
<td class="colLast">
<div class="block">Creates an <a href="../rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a> with a list of
calls.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#aggregate(org.apache.calcite.tools.RelBuilder.GroupKey,java.util.List)">aggregate</a></span>&#8203;(<a href="RelBuilder.GroupKey.html" title="interface in org.apache.calcite.tools">RelBuilder.GroupKey</a>&nbsp;groupKey,
java.util.List&lt;<a href="../rel/core/AggregateCall.html" title="class in org.apache.calcite.rel.core">AggregateCall</a>&gt;&nbsp;aggregateCalls)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#aggregate(org.apache.calcite.tools.RelBuilder.GroupKey,org.apache.calcite.tools.RelBuilder.AggCall...)">aggregate</a></span>&#8203;(<a href="RelBuilder.GroupKey.html" title="interface in org.apache.calcite.tools">RelBuilder.GroupKey</a>&nbsp;groupKey,
<a href="RelBuilder.AggCall.html" title="interface in org.apache.calcite.tools">RelBuilder.AggCall</a>...&nbsp;aggCalls)</code></th>
<td class="colLast">
<div class="block">Creates an <a href="../rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a> with an array of
calls.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>private <a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#aggregate_(org.apache.calcite.util.ImmutableBitSet,com.google.common.collect.ImmutableList,org.apache.calcite.rel.RelNode,java.util.List,java.util.List,com.google.common.collect.ImmutableList)">aggregate_</a></span>&#8203;(<a href="../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;groupSet,
com.google.common.collect.ImmutableList&lt;<a href="../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&nbsp;groupSets,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;input,
java.util.List&lt;<a href="../rel/core/AggregateCall.html" title="class in org.apache.calcite.rel.core">AggregateCall</a>&gt;&nbsp;aggregateCalls,
java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;extraNodes,
com.google.common.collect.ImmutableList&lt;<a href="RelBuilder.Field.html" title="class in org.apache.calcite.tools">RelBuilder.Field</a>&gt;&nbsp;inFields)</code></th>
<td class="colLast">
<div class="block">Finishes the implementation of <a href="#aggregate(org.apache.calcite.tools.RelBuilder.GroupKey,org.apache.calcite.tools.RelBuilder.AggCall...)"><code>aggregate(org.apache.calcite.tools.RelBuilder.GroupKey, org.apache.calcite.tools.RelBuilder.AggCall...)</code></a> by creating an
<a href="../rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a> and pushing it onto the stack.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>protected <a href="RelBuilder.AggCall.html" title="interface in org.apache.calcite.tools">RelBuilder.AggCall</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#aggregateCall(org.apache.calcite.sql.SqlAggFunction,boolean,boolean,boolean,org.apache.calcite.rex.RexNode,com.google.common.collect.ImmutableList,java.lang.String,com.google.common.collect.ImmutableList)">aggregateCall</a></span>&#8203;(<a href="../sql/SqlAggFunction.html" title="class in org.apache.calcite.sql">SqlAggFunction</a>&nbsp;aggFunction,
boolean&nbsp;distinct,
boolean&nbsp;approximate,
boolean&nbsp;ignoreNulls,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;filter,
com.google.common.collect.ImmutableList&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;orderKeys,
java.lang.String&nbsp;alias,
com.google.common.collect.ImmutableList&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;operands)</code></th>
<td class="colLast">
<div class="block">Creates a call to an aggregate function with all applicable operands.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="RelBuilder.AggCall.html" title="interface in org.apache.calcite.tools">RelBuilder.AggCall</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#aggregateCall(org.apache.calcite.sql.SqlAggFunction,boolean,boolean,org.apache.calcite.rex.RexNode,java.lang.String,java.lang.Iterable)">aggregateCall</a></span>&#8203;(<a href="../sql/SqlAggFunction.html" title="class in org.apache.calcite.sql">SqlAggFunction</a>&nbsp;aggFunction,
boolean&nbsp;distinct,
boolean&nbsp;approximate,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;filter,
java.lang.String&nbsp;alias,
java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;operands)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="RelBuilder.AggCall.html" title="interface in org.apache.calcite.tools">RelBuilder.AggCall</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#aggregateCall(org.apache.calcite.sql.SqlAggFunction,boolean,boolean,org.apache.calcite.rex.RexNode,java.lang.String,org.apache.calcite.rex.RexNode...)">aggregateCall</a></span>&#8203;(<a href="../sql/SqlAggFunction.html" title="class in org.apache.calcite.sql">SqlAggFunction</a>&nbsp;aggFunction,
boolean&nbsp;distinct,
boolean&nbsp;approximate,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;filter,
java.lang.String&nbsp;alias,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>...&nbsp;operands)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="RelBuilder.AggCall.html" title="interface in org.apache.calcite.tools">RelBuilder.AggCall</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#aggregateCall(org.apache.calcite.sql.SqlAggFunction,boolean,org.apache.calcite.rex.RexNode,java.lang.String,java.lang.Iterable)">aggregateCall</a></span>&#8203;(<a href="../sql/SqlAggFunction.html" title="class in org.apache.calcite.sql">SqlAggFunction</a>&nbsp;aggFunction,
boolean&nbsp;distinct,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;filter,
java.lang.String&nbsp;alias,
java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;operands)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="RelBuilder.AggCall.html" title="interface in org.apache.calcite.tools">RelBuilder.AggCall</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#aggregateCall(org.apache.calcite.sql.SqlAggFunction,boolean,org.apache.calcite.rex.RexNode,java.lang.String,org.apache.calcite.rex.RexNode...)">aggregateCall</a></span>&#8203;(<a href="../sql/SqlAggFunction.html" title="class in org.apache.calcite.sql">SqlAggFunction</a>&nbsp;aggFunction,
boolean&nbsp;distinct,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;filter,
java.lang.String&nbsp;alias,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>...&nbsp;operands)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="RelBuilder.AggCall.html" title="interface in org.apache.calcite.tools">RelBuilder.AggCall</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#aggregateCall(org.apache.calcite.sql.SqlAggFunction,java.lang.Iterable)">aggregateCall</a></span>&#8203;(<a href="../sql/SqlAggFunction.html" title="class in org.apache.calcite.sql">SqlAggFunction</a>&nbsp;aggFunction,
java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;operands)</code></th>
<td class="colLast">
<div class="block">Creates a call to an aggregate function.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="RelBuilder.AggCall.html" title="interface in org.apache.calcite.tools">RelBuilder.AggCall</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#aggregateCall(org.apache.calcite.sql.SqlAggFunction,org.apache.calcite.rex.RexNode...)">aggregateCall</a></span>&#8203;(<a href="../sql/SqlAggFunction.html" title="class in org.apache.calcite.sql">SqlAggFunction</a>&nbsp;aggFunction,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>...&nbsp;operands)</code></th>
<td class="colLast">
<div class="block">Creates a call to an aggregate function.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#alias(org.apache.calcite.rex.RexNode,java.lang.String)">alias</a></span>&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;expr,
java.lang.String&nbsp;alias)</code></th>
<td class="colLast">
<div class="block">Returns an expression wrapped in an alias.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>private boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#allNull(java.lang.Object%5B%5D,int,int)">allNull</a></span>&#8203;(java.lang.Object[]&nbsp;values,
int&nbsp;column,
int&nbsp;columnCount)</code></th>
<td class="colLast">
<div class="block">Returns whether all values for a given column are null.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#and(java.lang.Iterable)">and</a></span>&#8203;(java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;operands)</code></th>
<td class="colLast">
<div class="block">Creates an AND.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#and(org.apache.calcite.rex.RexNode...)">and</a></span>&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>...&nbsp;operands)</code></th>
<td class="colLast">
<div class="block">Creates an AND.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#antiJoin(java.lang.Iterable)">antiJoin</a></span>&#8203;(java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;conditions)</code></th>
<td class="colLast">
<div class="block">Creates an anti-join.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#antiJoin(org.apache.calcite.rex.RexNode...)">antiJoin</a></span>&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>...&nbsp;conditions)</code></th>
<td class="colLast">
<div class="block">Creates an anti-join.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#as(java.lang.String)">as</a></span>&#8203;(java.lang.String&nbsp;alias)</code></th>
<td class="colLast">
<div class="block">Assigns a table alias to the top entry on the stack.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code><a href="RelBuilder.AggCall.html" title="interface in org.apache.calcite.tools">RelBuilder.AggCall</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#avg(boolean,java.lang.String,org.apache.calcite.rex.RexNode)">avg</a></span>&#8203;(boolean&nbsp;distinct,
java.lang.String&nbsp;alias,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;operand)</code></th>
<td class="colLast">
<div class="block">Creates a call to the <code>AVG</code> aggregate function,
optionally distinct and with an alias.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code><a href="RelBuilder.AggCall.html" title="interface in org.apache.calcite.tools">RelBuilder.AggCall</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#avg(org.apache.calcite.rex.RexNode)">avg</a></span>&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;operand)</code></th>
<td class="colLast">
<div class="block">Creates a call to the <code>AVG</code> aggregate function.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code><a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#build()">build</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the final relational expression.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code><a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#call(org.apache.calcite.sql.SqlOperator,java.lang.Iterable)">call</a></span>&#8203;(<a href="../sql/SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&nbsp;operator,
java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;operands)</code></th>
<td class="colLast">
<div class="block">Creates a call to a scalar operator.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>private <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#call(org.apache.calcite.sql.SqlOperator,java.util.List)">call</a></span>&#8203;(<a href="../sql/SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&nbsp;operator,
java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;operandList)</code></th>
<td class="colLast">
<div class="block">Creates a call to a scalar operator.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code><a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#call(org.apache.calcite.sql.SqlOperator,org.apache.calcite.rex.RexNode...)">call</a></span>&#8203;(<a href="../sql/SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&nbsp;operator,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>...&nbsp;operands)</code></th>
<td class="colLast">
<div class="block">Creates a call to a scalar operator.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code><a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#cast(org.apache.calcite.rex.RexNode,org.apache.calcite.sql.type.SqlTypeName)">cast</a></span>&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;expr,
<a href="../sql/type/SqlTypeName.html" title="enum in org.apache.calcite.sql.type">SqlTypeName</a>&nbsp;typeName)</code></th>
<td class="colLast">
<div class="block">Creates an expression that casts an expression to a given type.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code><a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#cast(org.apache.calcite.rex.RexNode,org.apache.calcite.sql.type.SqlTypeName,int)">cast</a></span>&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;expr,
<a href="../sql/type/SqlTypeName.html" title="enum in org.apache.calcite.sql.type">SqlTypeName</a>&nbsp;typeName,
int&nbsp;precision)</code></th>
<td class="colLast">
<div class="block">Creates an expression that casts an expression to a type with a given name
and precision or length.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code><a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#cast(org.apache.calcite.rex.RexNode,org.apache.calcite.sql.type.SqlTypeName,int,int)">cast</a></span>&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;expr,
<a href="../sql/type/SqlTypeName.html" title="enum in org.apache.calcite.sql.type">SqlTypeName</a>&nbsp;typeName,
int&nbsp;precision,
int&nbsp;scale)</code></th>
<td class="colLast">
<div class="block">Creates an expression that casts an expression to a type with a given
name, precision and scale.</div>
</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="#clear()">clear</a></span>()</code></th>
<td class="colLast">
<div class="block">Clears the stack.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>private static <a href="../rel/RelFieldCollation.html" title="class in org.apache.calcite.rel">RelFieldCollation</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#collation(org.apache.calcite.rex.RexNode,org.apache.calcite.rel.RelFieldCollation.Direction,org.apache.calcite.rel.RelFieldCollation.NullDirection,java.util.List)">collation</a></span>&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;node,
<a href="../rel/RelFieldCollation.Direction.html" title="enum in org.apache.calcite.rel">RelFieldCollation.Direction</a>&nbsp;direction,
<a href="../rel/RelFieldCollation.NullDirection.html" title="enum in org.apache.calcite.rel">RelFieldCollation.NullDirection</a>&nbsp;nullDirection,
java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;extraNodes)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convert(org.apache.calcite.rel.type.RelDataType,boolean)">convert</a></span>&#8203;(<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;castRowType,
boolean&nbsp;rename)</code></th>
<td class="colLast">
<div class="block">Creates a projection that converts the current relational expression's
output to a desired row type.</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>private static &lt;E&gt;&nbsp;com.google.common.collect.ImmutableList&lt;com.google.common.collect.ImmutableList&lt;E&gt;&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#copy(java.lang.Iterable)">copy</a></span>&#8203;(java.lang.Iterable&lt;? extends java.util.List&lt;E&gt;&gt;&nbsp;tupleList)</code></th>
<td class="colLast">
<div class="block">Converts an iterable of lists into an immutable list of immutable lists
with the same contents.</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code><a href="RelBuilder.AggCall.html" title="interface in org.apache.calcite.tools">RelBuilder.AggCall</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#count(boolean,java.lang.String,java.lang.Iterable)">count</a></span>&#8203;(boolean&nbsp;distinct,
java.lang.String&nbsp;alias,
java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;operands)</code></th>
<td class="colLast">
<div class="block">Creates a call to the <code>COUNT</code> aggregate function,
optionally distinct and with an alias.</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code><a href="RelBuilder.AggCall.html" title="interface in org.apache.calcite.tools">RelBuilder.AggCall</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#count(boolean,java.lang.String,org.apache.calcite.rex.RexNode...)">count</a></span>&#8203;(boolean&nbsp;distinct,
java.lang.String&nbsp;alias,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>...&nbsp;operands)</code></th>
<td class="colLast">
<div class="block">Creates a call to the <code>COUNT</code> aggregate function,
optionally distinct and with an alias.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code><a href="RelBuilder.AggCall.html" title="interface in org.apache.calcite.tools">RelBuilder.AggCall</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#count(java.lang.Iterable)">count</a></span>&#8203;(java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;operands)</code></th>
<td class="colLast">
<div class="block">Creates a call to the <code>COUNT</code> aggregate function.</div>
</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code><a href="RelBuilder.AggCall.html" title="interface in org.apache.calcite.tools">RelBuilder.AggCall</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#count(org.apache.calcite.rex.RexNode...)">count</a></span>&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>...&nbsp;operands)</code></th>
<td class="colLast">
<div class="block">Creates a call to the <code>COUNT</code> aggregate function.</div>
</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code><a href="RelBuilder.AggCall.html" title="interface in org.apache.calcite.tools">RelBuilder.AggCall</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#countStar(java.lang.String)">countStar</a></span>&#8203;(java.lang.String&nbsp;alias)</code></th>
<td class="colLast">
<div class="block">Creates a call to the <code>COUNT(*)</code> aggregate function.</div>
</td>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><code>static <a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#create(org.apache.calcite.tools.FrameworkConfig)">create</a></span>&#8203;(<a href="FrameworkConfig.html" title="interface in org.apache.calcite.tools">FrameworkConfig</a>&nbsp;config)</code></th>
<td class="colLast">
<div class="block">Creates a RelBuilder.</div>
</td>
</tr>
<tr id="i37" class="rowColor">
<td class="colFirst"><code><a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#cursor(int,int)">cursor</a></span>&#8203;(int&nbsp;inputCount,
int&nbsp;ordinal)</code></th>
<td class="colLast">
<div class="block">Creates a RexCall to the <code>CURSOR</code> function by ordinal.</div>
</td>
</tr>
<tr id="i38" class="altColor">
<td class="colFirst"><code><a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#desc(org.apache.calcite.rex.RexNode)">desc</a></span>&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;node)</code></th>
<td class="colLast">
<div class="block">Converts a sort expression to descending.</div>
</td>
</tr>
<tr id="i39" class="rowColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#distinct()">distinct</a></span>()</code></th>
<td class="colLast">
<div class="block">Creates an <a href="../rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a> that makes the
relational expression distinct on all fields.</div>
</td>
</tr>
<tr id="i40" class="altColor">
<td class="colFirst"><code><a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#dot(org.apache.calcite.rex.RexNode,int)">dot</a></span>&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;node,
int&nbsp;fieldOrdinal)</code></th>
<td class="colLast">
<div class="block">Creates an access to a field by ordinal.</div>
</td>
</tr>
<tr id="i41" class="rowColor">
<td class="colFirst"><code><a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#dot(org.apache.calcite.rex.RexNode,java.lang.String)">dot</a></span>&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;node,
java.lang.String&nbsp;fieldName)</code></th>
<td class="colLast">
<div class="block">Creates an access to a field by name.</div>
</td>
</tr>
<tr id="i42" class="altColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#empty()">empty</a></span>()</code></th>
<td class="colLast">
<div class="block">Creates a relational expression that reads from an input and throws
all of the rows away.</div>
</td>
</tr>
<tr id="i43" class="rowColor">
<td class="colFirst"><code><a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(org.apache.calcite.rex.RexNode,org.apache.calcite.rex.RexNode)">equals</a></span>&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;operand0,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;operand1)</code></th>
<td class="colLast">
<div class="block">Creates an <code>=</code>.</div>
</td>
</tr>
<tr id="i44" class="altColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#exchange(org.apache.calcite.rel.RelDistribution)">exchange</a></span>&#8203;(<a href="../rel/RelDistribution.html" title="interface in org.apache.calcite.rel">RelDistribution</a>&nbsp;distribution)</code></th>
<td class="colLast">
<div class="block">Creates an Exchange by distribution.</div>
</td>
</tr>
<tr id="i45" class="rowColor">
<td class="colFirst"><code><a href="../rex/RexInputRef.html" title="class in org.apache.calcite.rex">RexInputRef</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#field(int)">field</a></span>&#8203;(int&nbsp;fieldOrdinal)</code></th>
<td class="colLast">
<div class="block">Creates a reference to an input field by ordinal.</div>
</td>
</tr>
<tr id="i46" class="altColor">
<td class="colFirst"><code><a href="../rex/RexInputRef.html" title="class in org.apache.calcite.rex">RexInputRef</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#field(int,int,int)">field</a></span>&#8203;(int&nbsp;inputCount,
int&nbsp;inputOrdinal,
int&nbsp;fieldOrdinal)</code></th>
<td class="colLast">
<div class="block">Creates a reference to a field of a given input relational expression
by ordinal.</div>
</td>
</tr>
<tr id="i47" class="rowColor">
<td class="colFirst"><code>private <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#field(int,int,int,boolean)">field</a></span>&#8203;(int&nbsp;inputCount,
int&nbsp;inputOrdinal,
int&nbsp;fieldOrdinal,
boolean&nbsp;alias)</code></th>
<td class="colLast">
<div class="block">As <a href="#field(int,int,int)"><code>field(int, int, int)</code></a>, but if <code>alias</code> is true, the method
may apply an alias to make sure that the field has the same name as in the
input frame.</div>
</td>
</tr>
<tr id="i48" class="altColor">
<td class="colFirst"><code><a href="../rex/RexInputRef.html" title="class in org.apache.calcite.rex">RexInputRef</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#field(int,int,java.lang.String)">field</a></span>&#8203;(int&nbsp;inputCount,
int&nbsp;inputOrdinal,
java.lang.String&nbsp;fieldName)</code></th>
<td class="colLast">
<div class="block">Creates a reference to a field of given input relational expression
by name.</div>
</td>
</tr>
<tr id="i49" class="rowColor">
<td class="colFirst"><code><a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#field(int,java.lang.String,java.lang.String)">field</a></span>&#8203;(int&nbsp;inputCount,
java.lang.String&nbsp;alias,
java.lang.String&nbsp;fieldName)</code></th>
<td class="colLast">
<div class="block">Creates a reference to a field which originated in a relation with the
given alias.</div>
</td>
</tr>
<tr id="i50" class="altColor">
<td class="colFirst"><code><a href="../rex/RexInputRef.html" title="class in org.apache.calcite.rex">RexInputRef</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#field(java.lang.String)">field</a></span>&#8203;(java.lang.String&nbsp;fieldName)</code></th>
<td class="colLast">
<div class="block">Creates a reference to a field by name.</div>
</td>
</tr>
<tr id="i51" class="rowColor">
<td class="colFirst"><code><a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#field(java.lang.String,java.lang.String)">field</a></span>&#8203;(java.lang.String&nbsp;alias,
java.lang.String&nbsp;fieldName)</code></th>
<td class="colLast">
<div class="block">Creates a reference to a field of the current record which originated
in a relation with a given alias.</div>
</td>
</tr>
<tr id="i52" class="altColor">
<td class="colFirst"><code><a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#field(org.apache.calcite.rex.RexNode,java.lang.String)">field</a></span>&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;e,
java.lang.String&nbsp;name)</code></th>
<td class="colLast">
<div class="block">Returns a reference to a given field of a record-valued expression.</div>
</td>
</tr>
<tr id="i53" class="rowColor">
<td class="colFirst"><code>com.google.common.collect.ImmutableList&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fields()">fields</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns references to the fields of the top input.</div>
</td>
</tr>
<tr id="i54" class="altColor">
<td class="colFirst"><code>com.google.common.collect.ImmutableList&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fields(int,int)">fields</a></span>&#8203;(int&nbsp;inputCount,
int&nbsp;inputOrdinal)</code></th>
<td class="colLast">
<div class="block">Returns references to the fields of a given input.</div>
</td>
</tr>
<tr id="i55" class="rowColor">
<td class="colFirst"><code>com.google.common.collect.ImmutableList&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fields(java.lang.Iterable)">fields</a></span>&#8203;(java.lang.Iterable&lt;java.lang.String&gt;&nbsp;fieldNames)</code></th>
<td class="colLast">
<div class="block">Returns references to fields identified by name.</div>
</td>
</tr>
<tr id="i56" class="altColor">
<td class="colFirst"><code>com.google.common.collect.ImmutableList&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fields(java.util.List)">fields</a></span>&#8203;(java.util.List&lt;? extends java.lang.Number&gt;&nbsp;ordinals)</code></th>
<td class="colLast">
<div class="block">Returns references to fields for a given list of input ordinals.</div>
</td>
</tr>
<tr id="i57" class="rowColor">
<td class="colFirst"><code>com.google.common.collect.ImmutableList&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fields(org.apache.calcite.rel.RelCollation)">fields</a></span>&#8203;(<a href="../rel/RelCollation.html" title="interface in org.apache.calcite.rel">RelCollation</a>&nbsp;collation)</code></th>
<td class="colLast">
<div class="block">Returns references to fields for a given collation.</div>
</td>
</tr>
<tr id="i58" class="altColor">
<td class="colFirst"><code>com.google.common.collect.ImmutableList&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fields(org.apache.calcite.util.mapping.Mappings.TargetMapping)">fields</a></span>&#8203;(<a href="../util/mapping/Mappings.TargetMapping.html" title="interface in org.apache.calcite.util.mapping">Mappings.TargetMapping</a>&nbsp;mapping)</code></th>
<td class="colLast">
<div class="block">Returns references to fields identified by a mapping.</div>
</td>
</tr>
<tr id="i59" class="rowColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#filter(java.lang.Iterable)">filter</a></span>&#8203;(java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;predicates)</code></th>
<td class="colLast">
<div class="block">Creates a <a href="../rel/core/Filter.html" title="class in org.apache.calcite.rel.core"><code>Filter</code></a> of a list of
predicates.</div>
</td>
</tr>
<tr id="i60" class="altColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#filter(org.apache.calcite.rex.RexNode...)">filter</a></span>&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>...&nbsp;predicates)</code></th>
<td class="colLast">
<div class="block">Creates a <a href="../rel/core/Filter.html" title="class in org.apache.calcite.rel.core"><code>Filter</code></a> of an array of
predicates.</div>
</td>
</tr>
<tr id="i61" class="rowColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#functionScan(org.apache.calcite.sql.SqlOperator,int,java.lang.Iterable)">functionScan</a></span>&#8203;(<a href="../sql/SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&nbsp;operator,
int&nbsp;inputCount,
java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;operands)</code></th>
<td class="colLast">
<div class="block">Creates a <a href="../rel/core/TableFunctionScan.html" title="class in org.apache.calcite.rel.core"><code>TableFunctionScan</code></a>.</div>
</td>
</tr>
<tr id="i62" class="altColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#functionScan(org.apache.calcite.sql.SqlOperator,int,org.apache.calcite.rex.RexNode...)">functionScan</a></span>&#8203;(<a href="../sql/SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&nbsp;operator,
int&nbsp;inputCount,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>...&nbsp;operands)</code></th>
<td class="colLast">
<div class="block">Creates a <a href="../rel/core/TableFunctionScan.html" title="class in org.apache.calcite.rel.core"><code>TableFunctionScan</code></a>.</div>
</td>
</tr>
<tr id="i63" class="rowColor">
<td class="colFirst"><code>private java.util.Set&lt;<a href="../rel/metadata/RelColumnMapping.html" title="class in org.apache.calcite.rel.metadata">RelColumnMapping</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getColumnMappings(org.apache.calcite.sql.SqlOperator)">getColumnMappings</a></span>&#8203;(<a href="../sql/SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&nbsp;op)</code></th>
<td class="colLast">
<div class="block">Gets column mappings of the operator.</div>
</td>
</tr>
<tr id="i64" class="altColor">
<td class="colFirst"><code><a href="../rex/RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRexBuilder()">getRexBuilder</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the builder for <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex"><code>RexNode</code></a> expressions.</div>
</td>
</tr>
<tr id="i65" class="rowColor">
<td class="colFirst"><code><a href="../rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTypeFactory()">getTypeFactory</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the type factory.</div>
</td>
</tr>
<tr id="i66" class="altColor">
<td class="colFirst"><code><a href="RelBuilder.GroupKey.html" title="interface in org.apache.calcite.tools">RelBuilder.GroupKey</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#groupKey()">groupKey</a></span>()</code></th>
<td class="colLast">
<div class="block">Creates an empty group key.</div>
</td>
</tr>
<tr id="i67" class="rowColor">
<td class="colFirst"><code><a href="RelBuilder.GroupKey.html" title="interface in org.apache.calcite.tools">RelBuilder.GroupKey</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#groupKey(int...)">groupKey</a></span>&#8203;(int...&nbsp;fieldOrdinals)</code></th>
<td class="colLast">
<div class="block">Creates a group key of fields identified by ordinal.</div>
</td>
</tr>
<tr id="i68" class="altColor">
<td class="colFirst"><code><a href="RelBuilder.GroupKey.html" title="interface in org.apache.calcite.tools">RelBuilder.GroupKey</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#groupKey(java.lang.Iterable)">groupKey</a></span>&#8203;(java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;nodes)</code></th>
<td class="colLast">
<div class="block">Creates a group key.</div>
</td>
</tr>
<tr id="i69" class="rowColor">
<td class="colFirst"><code><a href="RelBuilder.GroupKey.html" title="interface in org.apache.calcite.tools">RelBuilder.GroupKey</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#groupKey(java.lang.Iterable,boolean,java.lang.Iterable)">groupKey</a></span>&#8203;(java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;nodes,
boolean&nbsp;indicator,
java.lang.Iterable&lt;? extends java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&gt;&nbsp;nodeLists)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Now that indicator is deprecated, use
<a href="#groupKey(java.lang.Iterable,java.lang.Iterable)"><code>groupKey(Iterable, Iterable)</code></a>, which has the same behavior as
calling this method with <code>indicator = false</code>.</div>
</div>
</td>
</tr>
<tr id="i70" class="altColor">
<td class="colFirst"><code><a href="RelBuilder.GroupKey.html" title="interface in org.apache.calcite.tools">RelBuilder.GroupKey</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#groupKey(java.lang.Iterable,java.lang.Iterable)">groupKey</a></span>&#8203;(java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;nodes,
java.lang.Iterable&lt;? extends java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&gt;&nbsp;nodeLists)</code></th>
<td class="colLast">
<div class="block">Creates a group key with grouping sets.</div>
</td>
</tr>
<tr id="i71" class="rowColor">
<td class="colFirst"><code><a href="RelBuilder.GroupKey.html" title="interface in org.apache.calcite.tools">RelBuilder.GroupKey</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#groupKey(java.lang.String...)">groupKey</a></span>&#8203;(java.lang.String...&nbsp;fieldNames)</code></th>
<td class="colLast">
<div class="block">Creates a group key of fields identified by name.</div>
</td>
</tr>
<tr id="i72" class="altColor">
<td class="colFirst"><code><a href="RelBuilder.GroupKey.html" title="interface in org.apache.calcite.tools">RelBuilder.GroupKey</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#groupKey(org.apache.calcite.rex.RexNode...)">groupKey</a></span>&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>...&nbsp;nodes)</code></th>
<td class="colLast">
<div class="block">Creates a group key.</div>
</td>
</tr>
<tr id="i73" class="rowColor">
<td class="colFirst"><code><a href="RelBuilder.GroupKey.html" title="interface in org.apache.calcite.tools">RelBuilder.GroupKey</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#groupKey(org.apache.calcite.util.ImmutableBitSet)">groupKey</a></span>&#8203;(<a href="../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;groupSet)</code></th>
<td class="colLast">
<div class="block">Creates a group key, identified by field positions
in the underlying relational expression.</div>
</td>
</tr>
<tr id="i74" class="altColor">
<td class="colFirst"><code><a href="RelBuilder.GroupKey.html" title="interface in org.apache.calcite.tools">RelBuilder.GroupKey</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#groupKey(org.apache.calcite.util.ImmutableBitSet,boolean,com.google.common.collect.ImmutableList)">groupKey</a></span>&#8203;(<a href="../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;groupSet,
boolean&nbsp;indicator,
com.google.common.collect.ImmutableList&lt;<a href="../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&nbsp;groupSets)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="#groupKey(org.apache.calcite.util.ImmutableBitSet,java.lang.Iterable)"><code>groupKey(ImmutableBitSet, Iterable)</code></a>.</div>
</div>
</td>
</tr>
<tr id="i75" class="rowColor">
<td class="colFirst"><code><a href="RelBuilder.GroupKey.html" title="interface in org.apache.calcite.tools">RelBuilder.GroupKey</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#groupKey(org.apache.calcite.util.ImmutableBitSet,com.google.common.collect.ImmutableList)">groupKey</a></span>&#8203;(<a href="../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;groupSet,
com.google.common.collect.ImmutableList&lt;<a href="../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&nbsp;groupSets)</code></th>
<td class="colLast">
<div class="block">As <a href="#groupKey(org.apache.calcite.util.ImmutableBitSet,java.lang.Iterable)"><code>groupKey(ImmutableBitSet, Iterable)</code></a>.</div>
</td>
</tr>
<tr id="i76" class="altColor">
<td class="colFirst"><code><a href="RelBuilder.GroupKey.html" title="interface in org.apache.calcite.tools">RelBuilder.GroupKey</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#groupKey(org.apache.calcite.util.ImmutableBitSet,java.lang.Iterable)">groupKey</a></span>&#8203;(<a href="../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;groupSet,
java.lang.Iterable&lt;? extends <a href="../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&nbsp;groupSets)</code></th>
<td class="colLast">
<div class="block">Creates a group key with grouping sets, both identified by field positions
in the underlying relational expression.</div>
</td>
</tr>
<tr id="i77" class="rowColor">
<td class="colFirst"><code>private <a href="RelBuilder.GroupKey.html" title="interface in org.apache.calcite.tools">RelBuilder.GroupKey</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#groupKey_(java.lang.Iterable,java.lang.Iterable)">groupKey_</a></span>&#8203;(java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;nodes,
java.lang.Iterable&lt;? extends java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&gt;&nbsp;nodeLists)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i78" class="altColor">
<td class="colFirst"><code>private <a href="RelBuilder.GroupKey.html" title="interface in org.apache.calcite.tools">RelBuilder.GroupKey</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#groupKey_(org.apache.calcite.util.ImmutableBitSet,com.google.common.collect.ImmutableList)">groupKey_</a></span>&#8203;(<a href="../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;groupSet,
com.google.common.collect.ImmutableList&lt;<a href="../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&nbsp;groupSets)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i79" class="rowColor">
<td class="colFirst"><code>private java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#inferAlias(java.util.List,org.apache.calcite.rex.RexNode,int)">inferAlias</a></span>&#8203;(java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;exprList,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;expr,
int&nbsp;i)</code></th>
<td class="colLast">
<div class="block">Infers the alias of an expression.</div>
</td>
</tr>
<tr id="i80" class="altColor">
<td class="colFirst"><code>private int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#inputOffset(int,int)">inputOffset</a></span>&#8203;(int&nbsp;inputCount,
int&nbsp;inputOrdinal)</code></th>
<td class="colLast">
<div class="block">Returns the number of fields in all inputs before (to the left of)
the given input.</div>
</td>
</tr>
<tr id="i81" class="rowColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#intersect(boolean)">intersect</a></span>&#8203;(boolean&nbsp;all)</code></th>
<td class="colLast">
<div class="block">Creates an <a href="../rel/core/Intersect.html" title="class in org.apache.calcite.rel.core"><code>Intersect</code></a> of the two most
recent relational expressions on the stack.</div>
</td>
</tr>
<tr id="i82" class="altColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#intersect(boolean,int)">intersect</a></span>&#8203;(boolean&nbsp;all,
int&nbsp;n)</code></th>
<td class="colLast">
<div class="block">Creates an <a href="../rel/core/Intersect.html" title="class in org.apache.calcite.rel.core"><code>Intersect</code></a> of the <code>n</code>
most recent relational expressions on the stack.</div>
</td>
</tr>
<tr id="i83" class="rowColor">
<td class="colFirst"><code><a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isNotNull(org.apache.calcite.rex.RexNode)">isNotNull</a></span>&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;operand)</code></th>
<td class="colLast">
<div class="block">Creates a IS NOT NULL.</div>
</td>
</tr>
<tr id="i84" class="altColor">
<td class="colFirst"><code><a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isNull(org.apache.calcite.rex.RexNode)">isNull</a></span>&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;operand)</code></th>
<td class="colLast">
<div class="block">Creates a IS NULL.</div>
</td>
</tr>
<tr id="i85" class="rowColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#join(org.apache.calcite.rel.core.JoinRelType,java.lang.Iterable)">join</a></span>&#8203;(<a href="../rel/core/JoinRelType.html" title="enum in org.apache.calcite.rel.core">JoinRelType</a>&nbsp;joinType,
java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;conditions)</code></th>
<td class="colLast">
<div class="block">Creates a <a href="../rel/core/Join.html" title="class in org.apache.calcite.rel.core"><code>Join</code></a> with multiple
conditions.</div>
</td>
</tr>
<tr id="i86" class="altColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#join(org.apache.calcite.rel.core.JoinRelType,java.lang.String...)">join</a></span>&#8203;(<a href="../rel/core/JoinRelType.html" title="enum in org.apache.calcite.rel.core">JoinRelType</a>&nbsp;joinType,
java.lang.String...&nbsp;fieldNames)</code></th>
<td class="colLast">
<div class="block">Creates a <a href="../rel/core/Join.html" title="class in org.apache.calcite.rel.core"><code>Join</code></a> using USING syntax.</div>
</td>
</tr>
<tr id="i87" class="rowColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#join(org.apache.calcite.rel.core.JoinRelType,org.apache.calcite.rex.RexNode)">join</a></span>&#8203;(<a href="../rel/core/JoinRelType.html" title="enum in org.apache.calcite.rel.core">JoinRelType</a>&nbsp;joinType,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;condition)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i88" class="altColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#join(org.apache.calcite.rel.core.JoinRelType,org.apache.calcite.rex.RexNode,java.util.Set)">join</a></span>&#8203;(<a href="../rel/core/JoinRelType.html" title="enum in org.apache.calcite.rel.core">JoinRelType</a>&nbsp;joinType,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;condition,
java.util.Set&lt;<a href="../rel/core/CorrelationId.html" title="class in org.apache.calcite.rel.core">CorrelationId</a>&gt;&nbsp;variablesSet)</code></th>
<td class="colLast">
<div class="block">Creates a <a href="../rel/core/Join.html" title="class in org.apache.calcite.rel.core"><code>Join</code></a> with correlating
variables.</div>
</td>
</tr>
<tr id="i89" class="rowColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#join(org.apache.calcite.rel.core.JoinRelType,org.apache.calcite.rex.RexNode,org.apache.calcite.rex.RexNode...)">join</a></span>&#8203;(<a href="../rel/core/JoinRelType.html" title="enum in org.apache.calcite.rel.core">JoinRelType</a>&nbsp;joinType,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;condition0,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>...&nbsp;conditions)</code></th>
<td class="colLast">
<div class="block">Creates a <a href="../rel/core/Join.html" title="class in org.apache.calcite.rel.core"><code>Join</code></a>.</div>
</td>
</tr>
<tr id="i90" class="altColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#limit(int,int)">limit</a></span>&#8203;(int&nbsp;offset,
int&nbsp;fetch)</code></th>
<td class="colLast">
<div class="block">Creates a limit without a sort.</div>
</td>
</tr>
<tr id="i91" class="rowColor">
<td class="colFirst"><code><a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#literal(java.lang.Object)">literal</a></span>&#8203;(java.lang.Object&nbsp;value)</code></th>
<td class="colLast">
<div class="block">Creates a literal (constant expression).</div>
</td>
</tr>
<tr id="i92" class="altColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#match(org.apache.calcite.rex.RexNode,boolean,boolean,java.util.Map,java.lang.Iterable,org.apache.calcite.rex.RexNode,java.util.Map,boolean,java.lang.Iterable,java.lang.Iterable,org.apache.calcite.rex.RexNode)">match</a></span>&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;pattern,
boolean&nbsp;strictStart,
boolean&nbsp;strictEnd,
java.util.Map&lt;java.lang.String,&#8203;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;patternDefinitions,
java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;measureList,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;after,
java.util.Map&lt;java.lang.String,&#8203;? extends java.util.SortedSet&lt;java.lang.String&gt;&gt;&nbsp;subsets,
boolean&nbsp;allRows,
java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;partitionKeys,
java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;orderKeys,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;interval)</code></th>
<td class="colLast">
<div class="block">Creates a <a href="../rel/core/Match.html" title="class in org.apache.calcite.rel.core"><code>Match</code></a>.</div>
</td>
</tr>
<tr id="i93" class="rowColor">
<td class="colFirst"><code><a href="RelBuilder.AggCall.html" title="interface in org.apache.calcite.tools">RelBuilder.AggCall</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#max(java.lang.String,org.apache.calcite.rex.RexNode)">max</a></span>&#8203;(java.lang.String&nbsp;alias,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;operand)</code></th>
<td class="colLast">
<div class="block">Creates a call to the <code>MAX</code> aggregate function.</div>
</td>
</tr>
<tr id="i94" class="altColor">
<td class="colFirst"><code><a href="RelBuilder.AggCall.html" title="interface in org.apache.calcite.tools">RelBuilder.AggCall</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#max(org.apache.calcite.rex.RexNode)">max</a></span>&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;operand)</code></th>
<td class="colLast">
<div class="block">Creates a call to the <code>MAX</code> aggregate function,
optionally with an alias.</div>
</td>
</tr>
<tr id="i95" class="rowColor">
<td class="colFirst"><code><a href="RelBuilder.AggCall.html" title="interface in org.apache.calcite.tools">RelBuilder.AggCall</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#min(java.lang.String,org.apache.calcite.rex.RexNode)">min</a></span>&#8203;(java.lang.String&nbsp;alias,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;operand)</code></th>
<td class="colLast">
<div class="block">Creates a call to the <code>MIN</code> aggregate function,
optionally with an alias.</div>
</td>
</tr>
<tr id="i96" class="altColor">
<td class="colFirst"><code><a href="RelBuilder.AggCall.html" title="interface in org.apache.calcite.tools">RelBuilder.AggCall</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#min(org.apache.calcite.rex.RexNode)">min</a></span>&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;operand)</code></th>
<td class="colLast">
<div class="block">Creates a call to the <code>MIN</code> aggregate function.</div>
</td>
</tr>
<tr id="i97" class="rowColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#minus(boolean)">minus</a></span>&#8203;(boolean&nbsp;all)</code></th>
<td class="colLast">
<div class="block">Creates a <a href="../rel/core/Minus.html" title="class in org.apache.calcite.rel.core"><code>Minus</code></a> of the two most recent
relational expressions on the stack.</div>
</td>
</tr>
<tr id="i98" class="altColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#minus(boolean,int)">minus</a></span>&#8203;(boolean&nbsp;all,
int&nbsp;n)</code></th>
<td class="colLast">
<div class="block">Creates a <a href="../rel/core/Minus.html" title="class in org.apache.calcite.rel.core"><code>Minus</code></a> of the <code>n</code>
most recent relational expressions on the stack.</div>
</td>
</tr>
<tr id="i99" class="rowColor">
<td class="colFirst"><code><a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#not(org.apache.calcite.rex.RexNode)">not</a></span>&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;operand)</code></th>
<td class="colLast">
<div class="block">Creates a NOT.</div>
</td>
</tr>
<tr id="i100" class="altColor">
<td class="colFirst"><code><a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#notEquals(org.apache.calcite.rex.RexNode,org.apache.calcite.rex.RexNode)">notEquals</a></span>&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;operand0,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;operand1)</code></th>
<td class="colLast">
<div class="block">Creates a <code>&lt;&gt;</code>.</div>
</td>
</tr>
<tr id="i101" class="rowColor">
<td class="colFirst"><code><a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#nullsFirst(org.apache.calcite.rex.RexNode)">nullsFirst</a></span>&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;node)</code></th>
<td class="colLast">
<div class="block">Converts a sort expression to nulls first.</div>
</td>
</tr>
<tr id="i102" class="altColor">
<td class="colFirst"><code><a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#nullsLast(org.apache.calcite.rex.RexNode)">nullsLast</a></span>&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;node)</code></th>
<td class="colLast">
<div class="block">Converts a sort expression to nulls last.</div>
</td>
</tr>
<tr id="i103" class="rowColor">
<td class="colFirst"><code><a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#or(java.lang.Iterable)">or</a></span>&#8203;(java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;operands)</code></th>
<td class="colLast">
<div class="block">Creates an OR.</div>
</td>
</tr>
<tr id="i104" class="altColor">
<td class="colFirst"><code><a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#or(org.apache.calcite.rex.RexNode...)">or</a></span>&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>...&nbsp;operands)</code></th>
<td class="colLast">
<div class="block">Creates an OR.</div>
</td>
</tr>
<tr id="i105" class="rowColor">
<td class="colFirst"><code><a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#patternAlter(java.lang.Iterable)">patternAlter</a></span>&#8203;(java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;nodes)</code></th>
<td class="colLast">
<div class="block">Creates a call that creates alternate patterns;
for use in <a href="#match(org.apache.calcite.rex.RexNode,boolean,boolean,java.util.Map,java.lang.Iterable,org.apache.calcite.rex.RexNode,java.util.Map,boolean,java.lang.Iterable,java.lang.Iterable,org.apache.calcite.rex.RexNode)"><code>match(org.apache.calcite.rex.RexNode, boolean, boolean, java.util.Map&lt;java.lang.String, org.apache.calcite.rex.RexNode&gt;, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, org.apache.calcite.rex.RexNode, java.util.Map&lt;java.lang.String, ? extends java.util.SortedSet&lt;java.lang.String&gt;&gt;, boolean, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, org.apache.calcite.rex.RexNode)</code></a>.</div>
</td>
</tr>
<tr id="i106" class="altColor">
<td class="colFirst"><code><a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#patternAlter(org.apache.calcite.rex.RexNode...)">patternAlter</a></span>&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>...&nbsp;nodes)</code></th>
<td class="colLast">
<div class="block">Creates a call that creates alternate patterns;
for use in <a href="#match(org.apache.calcite.rex.RexNode,boolean,boolean,java.util.Map,java.lang.Iterable,org.apache.calcite.rex.RexNode,java.util.Map,boolean,java.lang.Iterable,java.lang.Iterable,org.apache.calcite.rex.RexNode)"><code>match(org.apache.calcite.rex.RexNode, boolean, boolean, java.util.Map&lt;java.lang.String, org.apache.calcite.rex.RexNode&gt;, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, org.apache.calcite.rex.RexNode, java.util.Map&lt;java.lang.String, ? extends java.util.SortedSet&lt;java.lang.String&gt;&gt;, boolean, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, org.apache.calcite.rex.RexNode)</code></a>.</div>
</td>
</tr>
<tr id="i107" class="rowColor">
<td class="colFirst"><code><a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#patternConcat(java.lang.Iterable)">patternConcat</a></span>&#8203;(java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;nodes)</code></th>
<td class="colLast">
<div class="block">Creates a call that concatenates patterns;
for use in <a href="#match(org.apache.calcite.rex.RexNode,boolean,boolean,java.util.Map,java.lang.Iterable,org.apache.calcite.rex.RexNode,java.util.Map,boolean,java.lang.Iterable,java.lang.Iterable,org.apache.calcite.rex.RexNode)"><code>match(org.apache.calcite.rex.RexNode, boolean, boolean, java.util.Map&lt;java.lang.String, org.apache.calcite.rex.RexNode&gt;, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, org.apache.calcite.rex.RexNode, java.util.Map&lt;java.lang.String, ? extends java.util.SortedSet&lt;java.lang.String&gt;&gt;, boolean, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, org.apache.calcite.rex.RexNode)</code></a>.</div>
</td>
</tr>
<tr id="i108" class="altColor">
<td class="colFirst"><code><a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#patternConcat(org.apache.calcite.rex.RexNode...)">patternConcat</a></span>&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>...&nbsp;nodes)</code></th>
<td class="colLast">
<div class="block">Creates a call that concatenates patterns;
for use in <a href="#match(org.apache.calcite.rex.RexNode,boolean,boolean,java.util.Map,java.lang.Iterable,org.apache.calcite.rex.RexNode,java.util.Map,boolean,java.lang.Iterable,java.lang.Iterable,org.apache.calcite.rex.RexNode)"><code>match(org.apache.calcite.rex.RexNode, boolean, boolean, java.util.Map&lt;java.lang.String, org.apache.calcite.rex.RexNode&gt;, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, org.apache.calcite.rex.RexNode, java.util.Map&lt;java.lang.String, ? extends java.util.SortedSet&lt;java.lang.String&gt;&gt;, boolean, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, org.apache.calcite.rex.RexNode)</code></a>.</div>
</td>
</tr>
<tr id="i109" class="rowColor">
<td class="colFirst"><code><a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#patternExclude(org.apache.calcite.rex.RexNode)">patternExclude</a></span>&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;node)</code></th>
<td class="colLast">
<div class="block">Creates a call that creates an exclude pattern;
for use in <a href="#match(org.apache.calcite.rex.RexNode,boolean,boolean,java.util.Map,java.lang.Iterable,org.apache.calcite.rex.RexNode,java.util.Map,boolean,java.lang.Iterable,java.lang.Iterable,org.apache.calcite.rex.RexNode)"><code>match(org.apache.calcite.rex.RexNode, boolean, boolean, java.util.Map&lt;java.lang.String, org.apache.calcite.rex.RexNode&gt;, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, org.apache.calcite.rex.RexNode, java.util.Map&lt;java.lang.String, ? extends java.util.SortedSet&lt;java.lang.String&gt;&gt;, boolean, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, org.apache.calcite.rex.RexNode)</code></a>.</div>
</td>
</tr>
<tr id="i110" class="altColor">
<td class="colFirst"><code><a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#patternField(java.lang.String,org.apache.calcite.rel.type.RelDataType,int)">patternField</a></span>&#8203;(java.lang.String&nbsp;alpha,
<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type,
int&nbsp;i)</code></th>
<td class="colLast">
<div class="block">Creates a reference to a given field of the pattern.</div>
</td>
</tr>
<tr id="i111" class="rowColor">
<td class="colFirst"><code><a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#patternPermute(java.lang.Iterable)">patternPermute</a></span>&#8203;(java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;nodes)</code></th>
<td class="colLast">
<div class="block">Creates a call that creates permute patterns;
for use in <a href="#match(org.apache.calcite.rex.RexNode,boolean,boolean,java.util.Map,java.lang.Iterable,org.apache.calcite.rex.RexNode,java.util.Map,boolean,java.lang.Iterable,java.lang.Iterable,org.apache.calcite.rex.RexNode)"><code>match(org.apache.calcite.rex.RexNode, boolean, boolean, java.util.Map&lt;java.lang.String, org.apache.calcite.rex.RexNode&gt;, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, org.apache.calcite.rex.RexNode, java.util.Map&lt;java.lang.String, ? extends java.util.SortedSet&lt;java.lang.String&gt;&gt;, boolean, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, org.apache.calcite.rex.RexNode)</code></a>.</div>
</td>
</tr>
<tr id="i112" class="altColor">
<td class="colFirst"><code><a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#patternPermute(org.apache.calcite.rex.RexNode...)">patternPermute</a></span>&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>...&nbsp;nodes)</code></th>
<td class="colLast">
<div class="block">Creates a call that creates permute patterns;
for use in <a href="#match(org.apache.calcite.rex.RexNode,boolean,boolean,java.util.Map,java.lang.Iterable,org.apache.calcite.rex.RexNode,java.util.Map,boolean,java.lang.Iterable,java.lang.Iterable,org.apache.calcite.rex.RexNode)"><code>match(org.apache.calcite.rex.RexNode, boolean, boolean, java.util.Map&lt;java.lang.String, org.apache.calcite.rex.RexNode&gt;, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, org.apache.calcite.rex.RexNode, java.util.Map&lt;java.lang.String, ? extends java.util.SortedSet&lt;java.lang.String&gt;&gt;, boolean, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, org.apache.calcite.rex.RexNode)</code></a>.</div>
</td>
</tr>
<tr id="i113" class="rowColor">
<td class="colFirst"><code><a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#patternQuantify(java.lang.Iterable)">patternQuantify</a></span>&#8203;(java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;nodes)</code></th>
<td class="colLast">
<div class="block">Creates a call that creates quantify patterns;
for use in <a href="#match(org.apache.calcite.rex.RexNode,boolean,boolean,java.util.Map,java.lang.Iterable,org.apache.calcite.rex.RexNode,java.util.Map,boolean,java.lang.Iterable,java.lang.Iterable,org.apache.calcite.rex.RexNode)"><code>match(org.apache.calcite.rex.RexNode, boolean, boolean, java.util.Map&lt;java.lang.String, org.apache.calcite.rex.RexNode&gt;, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, org.apache.calcite.rex.RexNode, java.util.Map&lt;java.lang.String, ? extends java.util.SortedSet&lt;java.lang.String&gt;&gt;, boolean, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, org.apache.calcite.rex.RexNode)</code></a>.</div>
</td>
</tr>
<tr id="i114" class="altColor">
<td class="colFirst"><code><a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#patternQuantify(org.apache.calcite.rex.RexNode...)">patternQuantify</a></span>&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>...&nbsp;nodes)</code></th>
<td class="colLast">
<div class="block">Creates a call that creates quantify patterns;
for use in <a href="#match(org.apache.calcite.rex.RexNode,boolean,boolean,java.util.Map,java.lang.Iterable,org.apache.calcite.rex.RexNode,java.util.Map,boolean,java.lang.Iterable,java.lang.Iterable,org.apache.calcite.rex.RexNode)"><code>match(org.apache.calcite.rex.RexNode, boolean, boolean, java.util.Map&lt;java.lang.String, org.apache.calcite.rex.RexNode&gt;, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, org.apache.calcite.rex.RexNode, java.util.Map&lt;java.lang.String, ? extends java.util.SortedSet&lt;java.lang.String&gt;&gt;, boolean, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, org.apache.calcite.rex.RexNode)</code></a>.</div>
</td>
</tr>
<tr id="i115" class="rowColor">
<td class="colFirst"><code><a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#peek()">peek</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the relational expression at the top of the stack, but does not
remove it.</div>
</td>
</tr>
<tr id="i116" class="altColor">
<td class="colFirst"><code><a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#peek(int)">peek</a></span>&#8203;(int&nbsp;n)</code></th>
<td class="colLast">
<div class="block">Returns the relational expression <code>n</code> positions from the top of the
stack, but does not remove it.</div>
</td>
</tr>
<tr id="i117" class="rowColor">
<td class="colFirst"><code><a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#peek(int,int)">peek</a></span>&#8203;(int&nbsp;inputCount,
int&nbsp;inputOrdinal)</code></th>
<td class="colLast">
<div class="block">Returns the relational expression <code>n</code> positions from the top of the
stack, but does not remove it.</div>
</td>
</tr>
<tr id="i118" class="altColor">
<td class="colFirst"><code>private <a href="RelBuilder.Frame.html" title="class in org.apache.calcite.tools">RelBuilder.Frame</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#peek_()">peek_</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i119" class="rowColor">
<td class="colFirst"><code>private <a href="RelBuilder.Frame.html" title="class in org.apache.calcite.tools">RelBuilder.Frame</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#peek_(int)">peek_</a></span>&#8203;(int&nbsp;n)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i120" class="altColor">
<td class="colFirst"><code>private <a href="RelBuilder.Frame.html" title="class in org.apache.calcite.tools">RelBuilder.Frame</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#peek_(int,int)">peek_</a></span>&#8203;(int&nbsp;inputCount,
int&nbsp;inputOrdinal)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i121" class="rowColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#permute(org.apache.calcite.util.mapping.Mapping)">permute</a></span>&#8203;(<a href="../util/mapping/Mapping.html" title="interface in org.apache.calcite.util.mapping">Mapping</a>&nbsp;mapping)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i122" class="altColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#project(java.lang.Iterable)">project</a></span>&#8203;(java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;nodes)</code></th>
<td class="colLast">
<div class="block">Creates a <a href="../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a> of the given list
of expressions.</div>
</td>
</tr>
<tr id="i123" class="rowColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#project(java.lang.Iterable,java.lang.Iterable)">project</a></span>&#8203;(java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;nodes,
java.lang.Iterable&lt;java.lang.String&gt;&nbsp;fieldNames)</code></th>
<td class="colLast">
<div class="block">Creates a <a href="../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a> of the given list
of expressions and field names.</div>
</td>
</tr>
<tr id="i124" class="altColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#project(java.lang.Iterable,java.lang.Iterable,boolean)">project</a></span>&#8203;(java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;nodes,
java.lang.Iterable&lt;java.lang.String&gt;&nbsp;fieldNames,
boolean&nbsp;force)</code></th>
<td class="colLast">
<div class="block">Creates a <a href="../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a> of the given list
of expressions, using the given names.</div>
</td>
</tr>
<tr id="i125" class="rowColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#project(org.apache.calcite.rex.RexNode...)">project</a></span>&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>...&nbsp;nodes)</code></th>
<td class="colLast">
<div class="block">Creates a <a href="../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a> of the given
expressions.</div>
</td>
</tr>
<tr id="i126" class="altColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#projectNamed(java.lang.Iterable,java.lang.Iterable,boolean)">projectNamed</a></span>&#8203;(java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;nodes,
java.lang.Iterable&lt;java.lang.String&gt;&nbsp;fieldNames,
boolean&nbsp;force)</code></th>
<td class="colLast">
<div class="block">Creates a <a href="../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a> of the given
expressions and field names, and optionally optimizing.</div>
</td>
</tr>
<tr id="i127" class="rowColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#projectPlus(java.lang.Iterable)">projectPlus</a></span>&#8203;(java.lang.Iterable&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;nodes)</code></th>
<td class="colLast">
<div class="block">Creates a <a href="../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a> of all original fields, plus the given list of
expressions.</div>
</td>
</tr>
<tr id="i128" class="altColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#projectPlus(org.apache.calcite.rex.RexNode...)">projectPlus</a></span>&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>...&nbsp;nodes)</code></th>
<td class="colLast">
<div class="block">Creates a <a href="../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a> of all original fields, plus the given
expressions.</div>
</td>
</tr>
<tr id="i129" class="rowColor">
<td class="colFirst"><code>static <a href="RelBuilderFactory.html" title="interface in org.apache.calcite.tools">RelBuilderFactory</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#proto(java.lang.Object...)">proto</a></span>&#8203;(java.lang.Object...&nbsp;factories)</code></th>
<td class="colLast">
<div class="block">Creates a <a href="RelBuilderFactory.html" title="interface in org.apache.calcite.tools"><code>RelBuilderFactory</code></a> that uses a given set of factories.</div>
</td>
</tr>
<tr id="i130" class="altColor">
<td class="colFirst"><code>static <a href="RelBuilderFactory.html" title="interface in org.apache.calcite.tools">RelBuilderFactory</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#proto(org.apache.calcite.plan.Context)">proto</a></span>&#8203;(<a href="../plan/Context.html" title="interface in org.apache.calcite.plan">Context</a>&nbsp;context)</code></th>
<td class="colLast">
<div class="block">Creates a <a href="RelBuilderFactory.html" title="interface in org.apache.calcite.tools"><code>RelBuilderFactory</code></a>, a partially-created RelBuilder.</div>
</td>
</tr>
<tr id="i131" class="rowColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#push(org.apache.calcite.rel.RelNode)">push</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;node)</code></th>
<td class="colLast">
<div class="block">Adds a relational expression to be the input to the next relational
expression constructed.</div>
</td>
</tr>
<tr id="i132" class="altColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#pushAll(java.lang.Iterable)">pushAll</a></span>&#8203;(java.lang.Iterable&lt;? extends <a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&gt;&nbsp;nodes)</code></th>
<td class="colLast">
<div class="block">Pushes a collection of relational expressions.</div>
</td>
</tr>
<tr id="i133" class="rowColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#rename(java.util.List)">rename</a></span>&#8203;(java.util.List&lt;java.lang.String&gt;&nbsp;fieldNames)</code></th>
<td class="colLast">
<div class="block">Ensures that the field names match those given.</div>
</td>
</tr>
<tr id="i134" class="altColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#repeatUnion(java.lang.String,boolean)">repeatUnion</a></span>&#8203;(java.lang.String&nbsp;tableName,
boolean&nbsp;all)</code></th>
<td class="colLast">
<div class="block">Creates a <a href="../rel/core/RepeatUnion.html" title="class in org.apache.calcite.rel.core"><code>RepeatUnion</code></a> associated to a <a href="../schema/TransientTable.html" title="interface in org.apache.calcite.schema"><code>TransientTable</code></a> without a maximum number
of iterations, i.e.</div>
</td>
</tr>
<tr id="i135" class="rowColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#repeatUnion(java.lang.String,boolean,int)">repeatUnion</a></span>&#8203;(java.lang.String&nbsp;tableName,
boolean&nbsp;all,
int&nbsp;maxRep)</code></th>
<td class="colLast">
<div class="block">Creates a <a href="../rel/core/RepeatUnion.html" title="class in org.apache.calcite.rel.core"><code>RepeatUnion</code></a> associated to a <a href="../schema/TransientTable.html" title="interface in org.apache.calcite.schema"><code>TransientTable</code></a> of the
two most recent relational expressions on the stack.</div>
</td>
</tr>
<tr id="i136" class="altColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#replaceTop(org.apache.calcite.rel.RelNode)">replaceTop</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;node)</code></th>
<td class="colLast">
<div class="block">Adds a rel node to the top of the stack while preserving the field names
and aliases.</div>
</td>
</tr>
<tr id="i137" class="rowColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#scan(java.lang.Iterable)">scan</a></span>&#8203;(java.lang.Iterable&lt;java.lang.String&gt;&nbsp;tableNames)</code></th>
<td class="colLast">
<div class="block">Creates a <a href="../rel/core/TableScan.html" title="class in org.apache.calcite.rel.core"><code>TableScan</code></a> of the table
with a given name.</div>
</td>
</tr>
<tr id="i138" class="altColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#scan(java.lang.String...)">scan</a></span>&#8203;(java.lang.String...&nbsp;tableNames)</code></th>
<td class="colLast">
<div class="block">Creates a <a href="../rel/core/TableScan.html" title="class in org.apache.calcite.rel.core"><code>TableScan</code></a> of the table
with a given name.</div>
</td>
</tr>
<tr id="i139" class="rowColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#semiJoin(java.lang.Iterable)">semiJoin</a></span>&#8203;(java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;conditions)</code></th>
<td class="colLast">
<div class="block">Creates a <a href="../rel/core/Join.html" title="class in org.apache.calcite.rel.core"><code>Join</code></a> with <a href="../rel/core/JoinRelType.html#SEMI"><code>JoinRelType.SEMI</code></a>.</div>
</td>
</tr>
<tr id="i140" class="altColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#semiJoin(org.apache.calcite.rex.RexNode...)">semiJoin</a></span>&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>...&nbsp;conditions)</code></th>
<td class="colLast">
<div class="block">Creates a <a href="../rel/core/Join.html" title="class in org.apache.calcite.rel.core"><code>Join</code></a> with <a href="../rel/core/JoinRelType.html#SEMI"><code>JoinRelType.SEMI</code></a>.</div>
</td>
</tr>
<tr id="i141" class="rowColor">
<td class="colFirst"><code>private <a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setOp(boolean,org.apache.calcite.sql.SqlKind,int)">setOp</a></span>&#8203;(boolean&nbsp;all,
<a href="../sql/SqlKind.html" title="enum in org.apache.calcite.sql">SqlKind</a>&nbsp;kind,
int&nbsp;n)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i142" class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#shouldMergeProject()">shouldMergeProject</a></span>()</code></th>
<td class="colLast">
<div class="block">Whether to attempt to merge consecutive <a href="../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a> operators.</div>
</td>
</tr>
<tr id="i143" class="rowColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#snapshot(org.apache.calcite.rex.RexNode)">snapshot</a></span>&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;period)</code></th>
<td class="colLast">
<div class="block">Creates a <a href="../rel/core/Snapshot.html" title="class in org.apache.calcite.rel.core"><code>Snapshot</code></a> of a given snapshot period.</div>
</td>
</tr>
<tr id="i144" class="altColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sort(int...)">sort</a></span>&#8203;(int...&nbsp;fields)</code></th>
<td class="colLast">
<div class="block">Creates a <a href="../rel/core/Sort.html" title="class in org.apache.calcite.rel.core"><code>Sort</code></a> by field ordinals.</div>
</td>
</tr>
<tr id="i145" class="rowColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sort(java.lang.Iterable)">sort</a></span>&#8203;(java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;nodes)</code></th>
<td class="colLast">
<div class="block">Creates a <a href="../rel/core/Sort.html" title="class in org.apache.calcite.rel.core"><code>Sort</code></a> by expressions.</div>
</td>
</tr>
<tr id="i146" class="altColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sort(org.apache.calcite.rex.RexNode...)">sort</a></span>&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>...&nbsp;nodes)</code></th>
<td class="colLast">
<div class="block">Creates a <a href="../rel/core/Sort.html" title="class in org.apache.calcite.rel.core"><code>Sort</code></a> by expressions.</div>
</td>
</tr>
<tr id="i147" class="rowColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sortExchange(org.apache.calcite.rel.RelDistribution,org.apache.calcite.rel.RelCollation)">sortExchange</a></span>&#8203;(<a href="../rel/RelDistribution.html" title="interface in org.apache.calcite.rel">RelDistribution</a>&nbsp;distribution,
<a href="../rel/RelCollation.html" title="interface in org.apache.calcite.rel">RelCollation</a>&nbsp;collation)</code></th>
<td class="colLast">
<div class="block">Creates a SortExchange by distribution and collation.</div>
</td>
</tr>
<tr id="i148" class="altColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sortLimit(int,int,java.lang.Iterable)">sortLimit</a></span>&#8203;(int&nbsp;offset,
int&nbsp;fetch,
java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;nodes)</code></th>
<td class="colLast">
<div class="block">Creates a <a href="../rel/core/Sort.html" title="class in org.apache.calcite.rel.core"><code>Sort</code></a> by a list of expressions, with limit and offset.</div>
</td>
</tr>
<tr id="i149" class="rowColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sortLimit(int,int,org.apache.calcite.rex.RexNode...)">sortLimit</a></span>&#8203;(int&nbsp;offset,
int&nbsp;fetch,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>...&nbsp;nodes)</code></th>
<td class="colLast">
<div class="block">Creates a <a href="../rel/core/Sort.html" title="class in org.apache.calcite.rel.core"><code>Sort</code></a> by expressions, with limit and offset.</div>
</td>
</tr>
<tr id="i150" class="altColor">
<td class="colFirst"><code><a href="RelBuilder.AggCall.html" title="interface in org.apache.calcite.tools">RelBuilder.AggCall</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sum(boolean,java.lang.String,org.apache.calcite.rex.RexNode)">sum</a></span>&#8203;(boolean&nbsp;distinct,
java.lang.String&nbsp;alias,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;operand)</code></th>
<td class="colLast">
<div class="block">Creates a call to the <code>SUM</code> aggregate function,
optionally distinct and with an alias.</div>
</td>
</tr>
<tr id="i151" class="rowColor">
<td class="colFirst"><code><a href="RelBuilder.AggCall.html" title="interface in org.apache.calcite.tools">RelBuilder.AggCall</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sum(org.apache.calcite.rex.RexNode)">sum</a></span>&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;operand)</code></th>
<td class="colLast">
<div class="block">Creates a call to the <code>SUM</code> aggregate function.</div>
</td>
</tr>
<tr id="i152" class="altColor">
<td class="colFirst"><code>private <a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#tableSpool(org.apache.calcite.rel.core.Spool.Type,org.apache.calcite.rel.core.Spool.Type,java.lang.String)">tableSpool</a></span>&#8203;(<a href="../rel/core/Spool.Type.html" title="enum in org.apache.calcite.rel.core">Spool.Type</a>&nbsp;readType,
<a href="../rel/core/Spool.Type.html" title="enum in org.apache.calcite.rel.core">Spool.Type</a>&nbsp;writeType,
java.lang.String&nbsp;tableName)</code></th>
<td class="colLast">
<div class="block">Creates a <a href="../rel/core/TableSpool.html" title="class in org.apache.calcite.rel.core"><code>TableSpool</code></a> for the most recent relational expression.</div>
</td>
</tr>
<tr id="i153" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
<td class="colLast">
<div class="block">Converts this RelBuilder to a string.</div>
</td>
</tr>
<tr id="i154" class="altColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#transientScan(java.lang.String)">transientScan</a></span>&#8203;(java.lang.String&nbsp;tableName)</code></th>
<td class="colLast">
<div class="block">Creates a <a href="../rel/core/TableScan.html" title="class in org.apache.calcite.rel.core"><code>TableScan</code></a> on a <a href="../schema/TransientTable.html" title="interface in org.apache.calcite.schema"><code>TransientTable</code></a> with the given name, using as type
the top of the stack's type.</div>
</td>
</tr>
<tr id="i155" class="rowColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#transientScan(java.lang.String,org.apache.calcite.rel.type.RelDataType)">transientScan</a></span>&#8203;(java.lang.String&nbsp;tableName,
<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;rowType)</code></th>
<td class="colLast">
<div class="block">Creates a <a href="../rel/core/TableScan.html" title="class in org.apache.calcite.rel.core"><code>TableScan</code></a> on a <a href="../schema/TransientTable.html" title="interface in org.apache.calcite.schema"><code>TransientTable</code></a> with the given name and type.</div>
</td>
</tr>
<tr id="i156" class="altColor">
<td class="colFirst"><code>private com.google.common.collect.ImmutableList&lt;com.google.common.collect.ImmutableList&lt;<a href="../rex/RexLiteral.html" title="class in org.apache.calcite.rex">RexLiteral</a>&gt;&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#tupleList(int,java.lang.Object%5B%5D)">tupleList</a></span>&#8203;(int&nbsp;columnCount,
java.lang.Object[]&nbsp;values)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i157" class="rowColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#union(boolean)">union</a></span>&#8203;(boolean&nbsp;all)</code></th>
<td class="colLast">
<div class="block">Creates a <a href="../rel/core/Union.html" title="class in org.apache.calcite.rel.core"><code>Union</code></a> of the two most recent
relational expressions on the stack.</div>
</td>
</tr>
<tr id="i158" class="altColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#union(boolean,int)">union</a></span>&#8203;(boolean&nbsp;all,
int&nbsp;n)</code></th>
<td class="colLast">
<div class="block">Creates a <a href="../rel/core/Union.html" title="class in org.apache.calcite.rel.core"><code>Union</code></a> of the <code>n</code>
most recent relational expressions on the stack.</div>
</td>
</tr>
<tr id="i159" class="rowColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#values(java.lang.Iterable,org.apache.calcite.rel.type.RelDataType)">values</a></span>&#8203;(java.lang.Iterable&lt;? extends java.util.List&lt;<a href="../rex/RexLiteral.html" title="class in org.apache.calcite.rex">RexLiteral</a>&gt;&gt;&nbsp;tupleList,
<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;rowType)</code></th>
<td class="colLast">
<div class="block">Creates a <a href="../rel/core/Values.html" title="class in org.apache.calcite.rel.core"><code>Values</code></a> with a specified row type.</div>
</td>
</tr>
<tr id="i160" class="altColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#values(java.lang.String%5B%5D,java.lang.Object...)">values</a></span>&#8203;(java.lang.String[]&nbsp;fieldNames,
java.lang.Object...&nbsp;values)</code></th>
<td class="colLast">
<div class="block">Creates a <a href="../rel/core/Values.html" title="class in org.apache.calcite.rel.core"><code>Values</code></a>.</div>
</td>
</tr>
<tr id="i161" class="rowColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#values(org.apache.calcite.rel.type.RelDataType)">values</a></span>&#8203;(<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;rowType)</code></th>
<td class="colLast">
<div class="block">Creates a <a href="../rel/core/Values.html" title="class in org.apache.calcite.rel.core"><code>Values</code></a> with a specified row type and
zero rows.</div>
</td>
</tr>
<tr id="i162" class="altColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#values(org.apache.calcite.rel.type.RelDataType,java.lang.Object...)">values</a></span>&#8203;(<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;rowType,
java.lang.Object...&nbsp;columnValues)</code></th>
<td class="colLast">
<div class="block">Creates a <a href="../rel/core/Values.html" title="class in org.apache.calcite.rel.core"><code>Values</code></a> with a specified row type.</div>
</td>
</tr>
<tr id="i163" class="rowColor">
<td class="colFirst"><code><a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#variable(org.apache.calcite.util.Holder)">variable</a></span>&#8203;(<a href="../util/Holder.html" title="class in org.apache.calcite.util">Holder</a>&lt;<a href="../rex/RexCorrelVariable.html" title="class in org.apache.calcite.rex">RexCorrelVariable</a>&gt;&nbsp;v)</code></th>
<td class="colLast">
<div class="block">Creates a correlation variable for the current input, and writes it into
a Holder.</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, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a id="cluster">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>cluster</h4>
<pre>protected final&nbsp;<a href="../plan/RelOptCluster.html" title="class in org.apache.calcite.plan">RelOptCluster</a> cluster</pre>
</li>
</ul>
<a id="relOptSchema">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>relOptSchema</h4>
<pre>protected final&nbsp;<a href="../plan/RelOptSchema.html" title="interface in org.apache.calcite.plan">RelOptSchema</a> relOptSchema</pre>
</li>
</ul>
<a id="filterFactory">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>filterFactory</h4>
<pre>private final&nbsp;<a href="../rel/core/RelFactories.FilterFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.FilterFactory</a> filterFactory</pre>
</li>
</ul>
<a id="projectFactory">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>projectFactory</h4>
<pre>private final&nbsp;<a href="../rel/core/RelFactories.ProjectFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.ProjectFactory</a> projectFactory</pre>
</li>
</ul>
<a id="aggregateFactory">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>aggregateFactory</h4>
<pre>private final&nbsp;<a href="../rel/core/RelFactories.AggregateFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.AggregateFactory</a> aggregateFactory</pre>
</li>
</ul>
<a id="sortFactory">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sortFactory</h4>
<pre>private final&nbsp;<a href="../rel/core/RelFactories.SortFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.SortFactory</a> sortFactory</pre>
</li>
</ul>
<a id="exchangeFactory">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>exchangeFactory</h4>
<pre>private final&nbsp;<a href="../rel/core/RelFactories.ExchangeFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.ExchangeFactory</a> exchangeFactory</pre>
</li>
</ul>
<a id="sortExchangeFactory">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sortExchangeFactory</h4>
<pre>private final&nbsp;<a href="../rel/core/RelFactories.SortExchangeFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.SortExchangeFactory</a> sortExchangeFactory</pre>
</li>
</ul>
<a id="setOpFactory">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setOpFactory</h4>
<pre>private final&nbsp;<a href="../rel/core/RelFactories.SetOpFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.SetOpFactory</a> setOpFactory</pre>
</li>
</ul>
<a id="joinFactory">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>joinFactory</h4>
<pre>private final&nbsp;<a href="../rel/core/RelFactories.JoinFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.JoinFactory</a> joinFactory</pre>
</li>
</ul>
<a id="correlateFactory">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>correlateFactory</h4>
<pre>private final&nbsp;<a href="../rel/core/RelFactories.CorrelateFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.CorrelateFactory</a> correlateFactory</pre>
</li>
</ul>
<a id="valuesFactory">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>valuesFactory</h4>
<pre>private final&nbsp;<a href="../rel/core/RelFactories.ValuesFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.ValuesFactory</a> valuesFactory</pre>
</li>
</ul>
<a id="scanFactory">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>scanFactory</h4>
<pre>private final&nbsp;<a href="../rel/core/RelFactories.TableScanFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.TableScanFactory</a> scanFactory</pre>
</li>
</ul>
<a id="tableFunctionScanFactory">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>tableFunctionScanFactory</h4>
<pre>private final&nbsp;<a href="../rel/core/RelFactories.TableFunctionScanFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.TableFunctionScanFactory</a> tableFunctionScanFactory</pre>
</li>
</ul>
<a id="snapshotFactory">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>snapshotFactory</h4>
<pre>private final&nbsp;<a href="../rel/core/RelFactories.SnapshotFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.SnapshotFactory</a> snapshotFactory</pre>
</li>
</ul>
<a id="matchFactory">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>matchFactory</h4>
<pre>private final&nbsp;<a href="../rel/core/RelFactories.MatchFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.MatchFactory</a> matchFactory</pre>
</li>
</ul>
<a id="spoolFactory">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>spoolFactory</h4>
<pre>private final&nbsp;<a href="../rel/core/RelFactories.SpoolFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.SpoolFactory</a> spoolFactory</pre>
</li>
</ul>
<a id="repeatUnionFactory">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>repeatUnionFactory</h4>
<pre>private final&nbsp;<a href="../rel/core/RelFactories.RepeatUnionFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.RepeatUnionFactory</a> repeatUnionFactory</pre>
</li>
</ul>
<a id="stack">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>stack</h4>
<pre>private final&nbsp;java.util.Deque&lt;<a href="RelBuilder.Frame.html" title="class in org.apache.calcite.tools">RelBuilder.Frame</a>&gt; stack</pre>
</li>
</ul>
<a id="simplify">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>simplify</h4>
<pre>private final&nbsp;boolean simplify</pre>
</li>
</ul>
<a id="simplifier">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>simplifier</h4>
<pre>private final&nbsp;<a href="../rex/RexSimplify.html" title="class in org.apache.calcite.rex">RexSimplify</a> simplifier</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ========= 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;(org.apache.calcite.plan.Context,org.apache.calcite.plan.RelOptCluster,org.apache.calcite.plan.RelOptSchema)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>RelBuilder</h4>
<pre>protected&nbsp;RelBuilder&#8203;(<a href="../plan/Context.html" title="interface in org.apache.calcite.plan">Context</a>&nbsp;context,
<a href="../plan/RelOptCluster.html" title="class in org.apache.calcite.plan">RelOptCluster</a>&nbsp;cluster,
<a href="../plan/RelOptSchema.html" title="interface in org.apache.calcite.plan">RelOptSchema</a>&nbsp;relOptSchema)</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="create(org.apache.calcite.tools.FrameworkConfig)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>create</h4>
<pre class="methodSignature">public static&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;create&#8203;(<a href="FrameworkConfig.html" title="interface in org.apache.calcite.tools">FrameworkConfig</a>&nbsp;config)</pre>
<div class="block">Creates a RelBuilder.</div>
</li>
</ul>
<a id="toString()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;toString()</pre>
<div class="block">Converts this RelBuilder to a string.
The string is the string representation of all of the RelNodes on the stack.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>toString</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
</dl>
</li>
</ul>
<a id="getTypeFactory()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTypeFactory</h4>
<pre class="methodSignature">public&nbsp;<a href="../rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;getTypeFactory()</pre>
<div class="block">Returns the type factory.</div>
</li>
</ul>
<a id="getRexBuilder()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRexBuilder</h4>
<pre class="methodSignature">public&nbsp;<a href="../rex/RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a>&nbsp;getRexBuilder()</pre>
<div class="block">Returns the builder for <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex"><code>RexNode</code></a> expressions.</div>
</li>
</ul>
<a id="proto(org.apache.calcite.plan.Context)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>proto</h4>
<pre class="methodSignature">public static&nbsp;<a href="RelBuilderFactory.html" title="interface in org.apache.calcite.tools">RelBuilderFactory</a>&nbsp;proto&#8203;(<a href="../plan/Context.html" title="interface in org.apache.calcite.plan">Context</a>&nbsp;context)</pre>
<div class="block">Creates a <a href="RelBuilderFactory.html" title="interface in org.apache.calcite.tools"><code>RelBuilderFactory</code></a>, a partially-created RelBuilder.
Just add a <a href="../plan/RelOptCluster.html" title="class in org.apache.calcite.plan"><code>RelOptCluster</code></a> and a <a href="../plan/RelOptSchema.html" title="interface in org.apache.calcite.plan"><code>RelOptSchema</code></a></div>
</li>
</ul>
<a id="proto(java.lang.Object...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>proto</h4>
<pre class="methodSignature">public static&nbsp;<a href="RelBuilderFactory.html" title="interface in org.apache.calcite.tools">RelBuilderFactory</a>&nbsp;proto&#8203;(java.lang.Object...&nbsp;factories)</pre>
<div class="block">Creates a <a href="RelBuilderFactory.html" title="interface in org.apache.calcite.tools"><code>RelBuilderFactory</code></a> that uses a given set of factories.</div>
</li>
</ul>
<a id="push(org.apache.calcite.rel.RelNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>push</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;push&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;node)</pre>
<div class="block">Adds a relational expression to be the input to the next relational
expression constructed.
<p>This method is usual when you want to weave in relational expressions
that are not supported by the builder. If, while creating such expressions,
you need to use previously built expressions as inputs, call
<a href="#build()"><code>build()</code></a> to pop those inputs.</div>
</li>
</ul>
<a id="replaceTop(org.apache.calcite.rel.RelNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>replaceTop</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;replaceTop&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;node)</pre>
<div class="block">Adds a rel node to the top of the stack while preserving the field names
and aliases.</div>
</li>
</ul>
<a id="pushAll(java.lang.Iterable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>pushAll</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;pushAll&#8203;(java.lang.Iterable&lt;? extends <a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&gt;&nbsp;nodes)</pre>
<div class="block">Pushes a collection of relational expressions.</div>
</li>
</ul>
<a id="build()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>build</h4>
<pre class="methodSignature">public&nbsp;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;build()</pre>
<div class="block">Returns the final relational expression.
<p>Throws if the stack is empty.</div>
</li>
</ul>
<a id="peek()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>peek</h4>
<pre class="methodSignature">public&nbsp;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;peek()</pre>
<div class="block">Returns the relational expression at the top of the stack, but does not
remove it.</div>
</li>
</ul>
<a id="peek_()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>peek_</h4>
<pre class="methodSignature">private&nbsp;<a href="RelBuilder.Frame.html" title="class in org.apache.calcite.tools">RelBuilder.Frame</a>&nbsp;peek_()</pre>
</li>
</ul>
<a id="peek(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>peek</h4>
<pre class="methodSignature">public&nbsp;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;peek&#8203;(int&nbsp;n)</pre>
<div class="block">Returns the relational expression <code>n</code> positions from the top of the
stack, but does not remove it.</div>
</li>
</ul>
<a id="peek_(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>peek_</h4>
<pre class="methodSignature">private&nbsp;<a href="RelBuilder.Frame.html" title="class in org.apache.calcite.tools">RelBuilder.Frame</a>&nbsp;peek_&#8203;(int&nbsp;n)</pre>
</li>
</ul>
<a id="peek(int,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>peek</h4>
<pre class="methodSignature">public&nbsp;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;peek&#8203;(int&nbsp;inputCount,
int&nbsp;inputOrdinal)</pre>
<div class="block">Returns the relational expression <code>n</code> positions from the top of the
stack, but does not remove it.</div>
</li>
</ul>
<a id="peek_(int,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>peek_</h4>
<pre class="methodSignature">private&nbsp;<a href="RelBuilder.Frame.html" title="class in org.apache.calcite.tools">RelBuilder.Frame</a>&nbsp;peek_&#8203;(int&nbsp;inputCount,
int&nbsp;inputOrdinal)</pre>
</li>
</ul>
<a id="inputOffset(int,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>inputOffset</h4>
<pre class="methodSignature">private&nbsp;int&nbsp;inputOffset&#8203;(int&nbsp;inputCount,
int&nbsp;inputOrdinal)</pre>
<div class="block">Returns the number of fields in all inputs before (to the left of)
the given input.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>inputCount</code> - Number of inputs</dd>
<dd><code>inputOrdinal</code> - Input ordinal</dd>
</dl>
</li>
</ul>
<a id="literal(java.lang.Object)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>literal</h4>
<pre class="methodSignature">public&nbsp;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;literal&#8203;(java.lang.Object&nbsp;value)</pre>
<div class="block">Creates a literal (constant expression).</div>
</li>
</ul>
<a id="variable(org.apache.calcite.util.Holder)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>variable</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;variable&#8203;(<a href="../util/Holder.html" title="class in org.apache.calcite.util">Holder</a>&lt;<a href="../rex/RexCorrelVariable.html" title="class in org.apache.calcite.rex">RexCorrelVariable</a>&gt;&nbsp;v)</pre>
<div class="block">Creates a correlation variable for the current input, and writes it into
a Holder.</div>
</li>
</ul>
<a id="field(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>field</h4>
<pre class="methodSignature">public&nbsp;<a href="../rex/RexInputRef.html" title="class in org.apache.calcite.rex">RexInputRef</a>&nbsp;field&#8203;(java.lang.String&nbsp;fieldName)</pre>
<div class="block">Creates a reference to a field by name.
<p>Equivalent to <code>field(1, 0, fieldName)</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>fieldName</code> - Field name</dd>
</dl>
</li>
</ul>
<a id="field(int,int,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>field</h4>
<pre class="methodSignature">public&nbsp;<a href="../rex/RexInputRef.html" title="class in org.apache.calcite.rex">RexInputRef</a>&nbsp;field&#8203;(int&nbsp;inputCount,
int&nbsp;inputOrdinal,
java.lang.String&nbsp;fieldName)</pre>
<div class="block">Creates a reference to a field of given input relational expression
by name.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>inputCount</code> - Number of inputs</dd>
<dd><code>inputOrdinal</code> - Input ordinal</dd>
<dd><code>fieldName</code> - Field name</dd>
</dl>
</li>
</ul>
<a id="field(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>field</h4>
<pre class="methodSignature">public&nbsp;<a href="../rex/RexInputRef.html" title="class in org.apache.calcite.rex">RexInputRef</a>&nbsp;field&#8203;(int&nbsp;fieldOrdinal)</pre>
<div class="block">Creates a reference to an input field by ordinal.
<p>Equivalent to <code>field(1, 0, ordinal)</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>fieldOrdinal</code> - Field ordinal</dd>
</dl>
</li>
</ul>
<a id="field(int,int,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>field</h4>
<pre class="methodSignature">public&nbsp;<a href="../rex/RexInputRef.html" title="class in org.apache.calcite.rex">RexInputRef</a>&nbsp;field&#8203;(int&nbsp;inputCount,
int&nbsp;inputOrdinal,
int&nbsp;fieldOrdinal)</pre>
<div class="block">Creates a reference to a field of a given input relational expression
by ordinal.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>inputCount</code> - Number of inputs</dd>
<dd><code>inputOrdinal</code> - Input ordinal</dd>
<dd><code>fieldOrdinal</code> - Field ordinal within input</dd>
</dl>
</li>
</ul>
<a id="field(int,int,int,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>field</h4>
<pre class="methodSignature">private&nbsp;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;field&#8203;(int&nbsp;inputCount,
int&nbsp;inputOrdinal,
int&nbsp;fieldOrdinal,
boolean&nbsp;alias)</pre>
<div class="block">As <a href="#field(int,int,int)"><code>field(int, int, int)</code></a>, but if <code>alias</code> is true, the method
may apply an alias to make sure that the field has the same name as in the
input frame. If no alias is applied the expression is definitely a
<a href="../rex/RexInputRef.html" title="class in org.apache.calcite.rex"><code>RexInputRef</code></a>.</div>
</li>
</ul>
<a id="field(java.lang.String,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>field</h4>
<pre class="methodSignature">public&nbsp;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;field&#8203;(java.lang.String&nbsp;alias,
java.lang.String&nbsp;fieldName)</pre>
<div class="block">Creates a reference to a field of the current record which originated
in a relation with a given alias.</div>
</li>
</ul>
<a id="field(int,java.lang.String,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>field</h4>
<pre class="methodSignature">public&nbsp;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;field&#8203;(int&nbsp;inputCount,
java.lang.String&nbsp;alias,
java.lang.String&nbsp;fieldName)</pre>
<div class="block">Creates a reference to a field which originated in a relation with the
given alias. Searches for the relation starting at the top of the
stack.</div>
</li>
</ul>
<a id="field(org.apache.calcite.rex.RexNode,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>field</h4>
<pre class="methodSignature">public&nbsp;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;field&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;e,
java.lang.String&nbsp;name)</pre>
<div class="block">Returns a reference to a given field of a record-valued expression.</div>
</li>
</ul>
<a id="fields()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>fields</h4>
<pre class="methodSignature">public&nbsp;com.google.common.collect.ImmutableList&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;fields()</pre>
<div class="block">Returns references to the fields of the top input.</div>
</li>
</ul>
<a id="fields(int,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>fields</h4>
<pre class="methodSignature">public&nbsp;com.google.common.collect.ImmutableList&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;fields&#8203;(int&nbsp;inputCount,
int&nbsp;inputOrdinal)</pre>
<div class="block">Returns references to the fields of a given input.</div>
</li>
</ul>
<a id="fields(org.apache.calcite.rel.RelCollation)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>fields</h4>
<pre class="methodSignature">public&nbsp;com.google.common.collect.ImmutableList&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;fields&#8203;(<a href="../rel/RelCollation.html" title="interface in org.apache.calcite.rel">RelCollation</a>&nbsp;collation)</pre>
<div class="block">Returns references to fields for a given collation.</div>
</li>
</ul>
<a id="fields(java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>fields</h4>
<pre class="methodSignature">public&nbsp;com.google.common.collect.ImmutableList&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;fields&#8203;(java.util.List&lt;? extends java.lang.Number&gt;&nbsp;ordinals)</pre>
<div class="block">Returns references to fields for a given list of input ordinals.</div>
</li>
</ul>
<a id="fields(java.lang.Iterable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>fields</h4>
<pre class="methodSignature">public&nbsp;com.google.common.collect.ImmutableList&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;fields&#8203;(java.lang.Iterable&lt;java.lang.String&gt;&nbsp;fieldNames)</pre>
<div class="block">Returns references to fields identified by name.</div>
</li>
</ul>
<a id="fields(org.apache.calcite.util.mapping.Mappings.TargetMapping)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>fields</h4>
<pre class="methodSignature">public&nbsp;com.google.common.collect.ImmutableList&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;fields&#8203;(<a href="../util/mapping/Mappings.TargetMapping.html" title="interface in org.apache.calcite.util.mapping">Mappings.TargetMapping</a>&nbsp;mapping)</pre>
<div class="block">Returns references to fields identified by a mapping.</div>
</li>
</ul>
<a id="dot(org.apache.calcite.rex.RexNode,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>dot</h4>
<pre class="methodSignature">public&nbsp;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;dot&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;node,
java.lang.String&nbsp;fieldName)</pre>
<div class="block">Creates an access to a field by name.</div>
</li>
</ul>
<a id="dot(org.apache.calcite.rex.RexNode,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>dot</h4>
<pre class="methodSignature">public&nbsp;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;dot&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;node,
int&nbsp;fieldOrdinal)</pre>
<div class="block">Creates an access to a field by ordinal.</div>
</li>
</ul>
<a id="call(org.apache.calcite.sql.SqlOperator,org.apache.calcite.rex.RexNode...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>call</h4>
<pre class="methodSignature">@Nonnull
public&nbsp;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;call&#8203;(<a href="../sql/SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&nbsp;operator,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>...&nbsp;operands)</pre>
<div class="block">Creates a call to a scalar operator.</div>
</li>
</ul>
<a id="call(org.apache.calcite.sql.SqlOperator,java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>call</h4>
<pre class="methodSignature">@Nonnull
private&nbsp;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;call&#8203;(<a href="../sql/SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&nbsp;operator,
java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;operandList)</pre>
<div class="block">Creates a call to a scalar operator.</div>
</li>
</ul>
<a id="call(org.apache.calcite.sql.SqlOperator,java.lang.Iterable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>call</h4>
<pre class="methodSignature">@Nonnull
public&nbsp;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;call&#8203;(<a href="../sql/SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&nbsp;operator,
java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;operands)</pre>
<div class="block">Creates a call to a scalar operator.</div>
</li>
</ul>
<a id="and(org.apache.calcite.rex.RexNode...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>and</h4>
<pre class="methodSignature">public&nbsp;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;and&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>...&nbsp;operands)</pre>
<div class="block">Creates an AND.</div>
</li>
</ul>
<a id="and(java.lang.Iterable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>and</h4>
<pre class="methodSignature">public&nbsp;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;and&#8203;(java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;operands)</pre>
<div class="block">Creates an AND.
<p>Simplifies the expression a little:
<code>e AND TRUE</code> becomes <code>e</code>;
<code>e AND e2 AND NOT e</code> becomes <code>e2</code>.</div>
</li>
</ul>
<a id="or(org.apache.calcite.rex.RexNode...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>or</h4>
<pre class="methodSignature">public&nbsp;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;or&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>...&nbsp;operands)</pre>
<div class="block">Creates an OR.</div>
</li>
</ul>
<a id="or(java.lang.Iterable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>or</h4>
<pre class="methodSignature">public&nbsp;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;or&#8203;(java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;operands)</pre>
<div class="block">Creates an OR.</div>
</li>
</ul>
<a id="not(org.apache.calcite.rex.RexNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>not</h4>
<pre class="methodSignature">public&nbsp;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;not&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;operand)</pre>
<div class="block">Creates a NOT.</div>
</li>
</ul>
<a id="equals(org.apache.calcite.rex.RexNode,org.apache.calcite.rex.RexNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>equals</h4>
<pre class="methodSignature">public&nbsp;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;equals&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;operand0,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;operand1)</pre>
<div class="block">Creates an <code>=</code>.</div>
</li>
</ul>
<a id="notEquals(org.apache.calcite.rex.RexNode,org.apache.calcite.rex.RexNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>notEquals</h4>
<pre class="methodSignature">public&nbsp;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;notEquals&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;operand0,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;operand1)</pre>
<div class="block">Creates a <code>&lt;&gt;</code>.</div>
</li>
</ul>
<a id="isNull(org.apache.calcite.rex.RexNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isNull</h4>
<pre class="methodSignature">public&nbsp;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;isNull&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;operand)</pre>
<div class="block">Creates a IS NULL.</div>
</li>
</ul>
<a id="isNotNull(org.apache.calcite.rex.RexNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isNotNull</h4>
<pre class="methodSignature">public&nbsp;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;isNotNull&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;operand)</pre>
<div class="block">Creates a IS NOT NULL.</div>
</li>
</ul>
<a id="cast(org.apache.calcite.rex.RexNode,org.apache.calcite.sql.type.SqlTypeName)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>cast</h4>
<pre class="methodSignature">public&nbsp;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;cast&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;expr,
<a href="../sql/type/SqlTypeName.html" title="enum in org.apache.calcite.sql.type">SqlTypeName</a>&nbsp;typeName)</pre>
<div class="block">Creates an expression that casts an expression to a given type.</div>
</li>
</ul>
<a id="cast(org.apache.calcite.rex.RexNode,org.apache.calcite.sql.type.SqlTypeName,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>cast</h4>
<pre class="methodSignature">public&nbsp;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;cast&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;expr,
<a href="../sql/type/SqlTypeName.html" title="enum in org.apache.calcite.sql.type">SqlTypeName</a>&nbsp;typeName,
int&nbsp;precision)</pre>
<div class="block">Creates an expression that casts an expression to a type with a given name
and precision or length.</div>
</li>
</ul>
<a id="cast(org.apache.calcite.rex.RexNode,org.apache.calcite.sql.type.SqlTypeName,int,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>cast</h4>
<pre class="methodSignature">public&nbsp;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;cast&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;expr,
<a href="../sql/type/SqlTypeName.html" title="enum in org.apache.calcite.sql.type">SqlTypeName</a>&nbsp;typeName,
int&nbsp;precision,
int&nbsp;scale)</pre>
<div class="block">Creates an expression that casts an expression to a type with a given
name, precision and scale.</div>
</li>
</ul>
<a id="alias(org.apache.calcite.rex.RexNode,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>alias</h4>
<pre class="methodSignature">public&nbsp;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;alias&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;expr,
java.lang.String&nbsp;alias)</pre>
<div class="block">Returns an expression wrapped in an alias.
<p>This method is idempotent: If the expression is already wrapped in the
correct alias, does nothing; if wrapped in an incorrect alias, removes
the incorrect alias and applies the correct alias.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#project(org.apache.calcite.rex.RexNode...)"><code>project(org.apache.calcite.rex.RexNode...)</code></a></dd>
</dl>
</li>
</ul>
<a id="desc(org.apache.calcite.rex.RexNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>desc</h4>
<pre class="methodSignature">public&nbsp;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;desc&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;node)</pre>
<div class="block">Converts a sort expression to descending.</div>
</li>
</ul>
<a id="nullsLast(org.apache.calcite.rex.RexNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nullsLast</h4>
<pre class="methodSignature">public&nbsp;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;nullsLast&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;node)</pre>
<div class="block">Converts a sort expression to nulls last.</div>
</li>
</ul>
<a id="nullsFirst(org.apache.calcite.rex.RexNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nullsFirst</h4>
<pre class="methodSignature">public&nbsp;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;nullsFirst&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;node)</pre>
<div class="block">Converts a sort expression to nulls first.</div>
</li>
</ul>
<a id="groupKey()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>groupKey</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.GroupKey.html" title="interface in org.apache.calcite.tools">RelBuilder.GroupKey</a>&nbsp;groupKey()</pre>
<div class="block">Creates an empty group key.</div>
</li>
</ul>
<a id="groupKey(org.apache.calcite.rex.RexNode...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>groupKey</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.GroupKey.html" title="interface in org.apache.calcite.tools">RelBuilder.GroupKey</a>&nbsp;groupKey&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>...&nbsp;nodes)</pre>
<div class="block">Creates a group key.</div>
</li>
</ul>
<a id="groupKey(java.lang.Iterable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>groupKey</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.GroupKey.html" title="interface in org.apache.calcite.tools">RelBuilder.GroupKey</a>&nbsp;groupKey&#8203;(java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;nodes)</pre>
<div class="block">Creates a group key.</div>
</li>
</ul>
<a id="groupKey(java.lang.Iterable,java.lang.Iterable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>groupKey</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.GroupKey.html" title="interface in org.apache.calcite.tools">RelBuilder.GroupKey</a>&nbsp;groupKey&#8203;(java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;nodes,
java.lang.Iterable&lt;? extends java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&gt;&nbsp;nodeLists)</pre>
<div class="block">Creates a group key with grouping sets.</div>
</li>
</ul>
<a id="groupKey(java.lang.Iterable,boolean,java.lang.Iterable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>groupKey</h4>
<pre class="methodSignature">@Deprecated
public&nbsp;<a href="RelBuilder.GroupKey.html" title="interface in org.apache.calcite.tools">RelBuilder.GroupKey</a>&nbsp;groupKey&#8203;(java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;nodes,
boolean&nbsp;indicator,
java.lang.Iterable&lt;? extends java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&gt;&nbsp;nodeLists)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Now that indicator is deprecated, use
<a href="#groupKey(java.lang.Iterable,java.lang.Iterable)"><code>groupKey(Iterable, Iterable)</code></a>, which has the same behavior as
calling this method with <code>indicator = false</code>.</div>
</div>
</li>
</ul>
<a id="groupKey_(java.lang.Iterable,java.lang.Iterable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>groupKey_</h4>
<pre class="methodSignature">private&nbsp;<a href="RelBuilder.GroupKey.html" title="interface in org.apache.calcite.tools">RelBuilder.GroupKey</a>&nbsp;groupKey_&#8203;(java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;nodes,
java.lang.Iterable&lt;? extends java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&gt;&nbsp;nodeLists)</pre>
</li>
</ul>
<a id="groupKey(int...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>groupKey</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.GroupKey.html" title="interface in org.apache.calcite.tools">RelBuilder.GroupKey</a>&nbsp;groupKey&#8203;(int...&nbsp;fieldOrdinals)</pre>
<div class="block">Creates a group key of fields identified by ordinal.</div>
</li>
</ul>
<a id="groupKey(java.lang.String...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>groupKey</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.GroupKey.html" title="interface in org.apache.calcite.tools">RelBuilder.GroupKey</a>&nbsp;groupKey&#8203;(java.lang.String...&nbsp;fieldNames)</pre>
<div class="block">Creates a group key of fields identified by name.</div>
</li>
</ul>
<a id="groupKey(org.apache.calcite.util.ImmutableBitSet)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>groupKey</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.GroupKey.html" title="interface in org.apache.calcite.tools">RelBuilder.GroupKey</a>&nbsp;groupKey&#8203;(@Nonnull
<a href="../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;groupSet)</pre>
<div class="block">Creates a group key, identified by field positions
in the underlying relational expression.
<p>This method of creating a group key does not allow you to group on new
expressions, only column projections, but is efficient, especially when you
are coming from an existing <a href="../rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a>.</div>
</li>
</ul>
<a id="groupKey(org.apache.calcite.util.ImmutableBitSet,java.lang.Iterable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>groupKey</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.GroupKey.html" title="interface in org.apache.calcite.tools">RelBuilder.GroupKey</a>&nbsp;groupKey&#8203;(<a href="../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;groupSet,
@Nonnull
java.lang.Iterable&lt;? extends <a href="../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&nbsp;groupSets)</pre>
<div class="block">Creates a group key with grouping sets, both identified by field positions
in the underlying relational expression.
<p>This method of creating a group key does not allow you to group on new
expressions, only column projections, but is efficient, especially when you
are coming from an existing <a href="../rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a>.</div>
</li>
</ul>
<a id="groupKey(org.apache.calcite.util.ImmutableBitSet,com.google.common.collect.ImmutableList)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>groupKey</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.GroupKey.html" title="interface in org.apache.calcite.tools">RelBuilder.GroupKey</a>&nbsp;groupKey&#8203;(<a href="../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;groupSet,
com.google.common.collect.ImmutableList&lt;<a href="../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&nbsp;groupSets)</pre>
<div class="block">As <a href="#groupKey(org.apache.calcite.util.ImmutableBitSet,java.lang.Iterable)"><code>groupKey(ImmutableBitSet, Iterable)</code></a>.</div>
</li>
</ul>
<a id="groupKey(org.apache.calcite.util.ImmutableBitSet,boolean,com.google.common.collect.ImmutableList)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>groupKey</h4>
<pre class="methodSignature">@Deprecated
public&nbsp;<a href="RelBuilder.GroupKey.html" title="interface in org.apache.calcite.tools">RelBuilder.GroupKey</a>&nbsp;groupKey&#8203;(<a href="../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;groupSet,
boolean&nbsp;indicator,
com.google.common.collect.ImmutableList&lt;<a href="../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&nbsp;groupSets)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="#groupKey(org.apache.calcite.util.ImmutableBitSet,java.lang.Iterable)"><code>groupKey(ImmutableBitSet, Iterable)</code></a>.</div>
</div>
</li>
</ul>
<a id="groupKey_(org.apache.calcite.util.ImmutableBitSet,com.google.common.collect.ImmutableList)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>groupKey_</h4>
<pre class="methodSignature">private&nbsp;<a href="RelBuilder.GroupKey.html" title="interface in org.apache.calcite.tools">RelBuilder.GroupKey</a>&nbsp;groupKey_&#8203;(<a href="../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;groupSet,
@Nonnull
com.google.common.collect.ImmutableList&lt;<a href="../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&nbsp;groupSets)</pre>
</li>
</ul>
<a id="aggregateCall(org.apache.calcite.sql.SqlAggFunction,boolean,org.apache.calcite.rex.RexNode,java.lang.String,org.apache.calcite.rex.RexNode...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>aggregateCall</h4>
<pre class="methodSignature">@Deprecated
public&nbsp;<a href="RelBuilder.AggCall.html" title="interface in org.apache.calcite.tools">RelBuilder.AggCall</a>&nbsp;aggregateCall&#8203;(<a href="../sql/SqlAggFunction.html" title="class in org.apache.calcite.sql">SqlAggFunction</a>&nbsp;aggFunction,
boolean&nbsp;distinct,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;filter,
java.lang.String&nbsp;alias,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>...&nbsp;operands)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
</li>
</ul>
<a id="aggregateCall(org.apache.calcite.sql.SqlAggFunction,boolean,boolean,org.apache.calcite.rex.RexNode,java.lang.String,org.apache.calcite.rex.RexNode...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>aggregateCall</h4>
<pre class="methodSignature">@Deprecated
public&nbsp;<a href="RelBuilder.AggCall.html" title="interface in org.apache.calcite.tools">RelBuilder.AggCall</a>&nbsp;aggregateCall&#8203;(<a href="../sql/SqlAggFunction.html" title="class in org.apache.calcite.sql">SqlAggFunction</a>&nbsp;aggFunction,
boolean&nbsp;distinct,
boolean&nbsp;approximate,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;filter,
java.lang.String&nbsp;alias,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>...&nbsp;operands)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
</li>
</ul>
<a id="aggregateCall(org.apache.calcite.sql.SqlAggFunction,boolean,org.apache.calcite.rex.RexNode,java.lang.String,java.lang.Iterable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>aggregateCall</h4>
<pre class="methodSignature">@Deprecated
public&nbsp;<a href="RelBuilder.AggCall.html" title="interface in org.apache.calcite.tools">RelBuilder.AggCall</a>&nbsp;aggregateCall&#8203;(<a href="../sql/SqlAggFunction.html" title="class in org.apache.calcite.sql">SqlAggFunction</a>&nbsp;aggFunction,
boolean&nbsp;distinct,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;filter,
java.lang.String&nbsp;alias,
java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;operands)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
</li>
</ul>
<a id="aggregateCall(org.apache.calcite.sql.SqlAggFunction,boolean,boolean,org.apache.calcite.rex.RexNode,java.lang.String,java.lang.Iterable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>aggregateCall</h4>
<pre class="methodSignature">@Deprecated
public&nbsp;<a href="RelBuilder.AggCall.html" title="interface in org.apache.calcite.tools">RelBuilder.AggCall</a>&nbsp;aggregateCall&#8203;(<a href="../sql/SqlAggFunction.html" title="class in org.apache.calcite.sql">SqlAggFunction</a>&nbsp;aggFunction,
boolean&nbsp;distinct,
boolean&nbsp;approximate,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;filter,
java.lang.String&nbsp;alias,
java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;operands)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
</li>
</ul>
<a id="aggregateCall(org.apache.calcite.sql.SqlAggFunction,java.lang.Iterable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>aggregateCall</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.AggCall.html" title="interface in org.apache.calcite.tools">RelBuilder.AggCall</a>&nbsp;aggregateCall&#8203;(<a href="../sql/SqlAggFunction.html" title="class in org.apache.calcite.sql">SqlAggFunction</a>&nbsp;aggFunction,
java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;operands)</pre>
<div class="block">Creates a call to an aggregate function.
<p>To add other operands, apply
<a href="RelBuilder.AggCall.html#distinct()"><code>RelBuilder.AggCall.distinct()</code></a>,
<a href="RelBuilder.AggCall.html#approximate(boolean)"><code>RelBuilder.AggCall.approximate(boolean)</code></a>,
<a href="#filter(org.apache.calcite.rex.RexNode...)"><code>filter(RexNode...)</code></a>,
<a href="RelBuilder.AggCall.html#sort(java.lang.Iterable)"><code>RelBuilder.AggCall.sort(java.lang.Iterable&lt;org.apache.calcite.rex.RexNode&gt;)</code></a>,
<a href="RelBuilder.AggCall.html#as(java.lang.String)"><code>RelBuilder.AggCall.as(java.lang.String)</code></a> to the result.</div>
</li>
</ul>
<a id="aggregateCall(org.apache.calcite.sql.SqlAggFunction,org.apache.calcite.rex.RexNode...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>aggregateCall</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.AggCall.html" title="interface in org.apache.calcite.tools">RelBuilder.AggCall</a>&nbsp;aggregateCall&#8203;(<a href="../sql/SqlAggFunction.html" title="class in org.apache.calcite.sql">SqlAggFunction</a>&nbsp;aggFunction,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>...&nbsp;operands)</pre>
<div class="block">Creates a call to an aggregate function.
<p>To add other operands, apply
<a href="RelBuilder.AggCall.html#distinct()"><code>RelBuilder.AggCall.distinct()</code></a>,
<a href="RelBuilder.AggCall.html#approximate(boolean)"><code>RelBuilder.AggCall.approximate(boolean)</code></a>,
<a href="#filter(org.apache.calcite.rex.RexNode...)"><code>filter(RexNode...)</code></a>,
<a href="RelBuilder.AggCall.html#sort(java.lang.Iterable)"><code>RelBuilder.AggCall.sort(java.lang.Iterable&lt;org.apache.calcite.rex.RexNode&gt;)</code></a>,
<a href="RelBuilder.AggCall.html#as(java.lang.String)"><code>RelBuilder.AggCall.as(java.lang.String)</code></a> to the result.</div>
</li>
</ul>
<a id="aggregateCall(org.apache.calcite.sql.SqlAggFunction,boolean,boolean,boolean,org.apache.calcite.rex.RexNode,com.google.common.collect.ImmutableList,java.lang.String,com.google.common.collect.ImmutableList)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>aggregateCall</h4>
<pre class="methodSignature">protected&nbsp;<a href="RelBuilder.AggCall.html" title="interface in org.apache.calcite.tools">RelBuilder.AggCall</a>&nbsp;aggregateCall&#8203;(<a href="../sql/SqlAggFunction.html" title="class in org.apache.calcite.sql">SqlAggFunction</a>&nbsp;aggFunction,
boolean&nbsp;distinct,
boolean&nbsp;approximate,
boolean&nbsp;ignoreNulls,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;filter,
com.google.common.collect.ImmutableList&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;orderKeys,
java.lang.String&nbsp;alias,
com.google.common.collect.ImmutableList&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;operands)</pre>
<div class="block">Creates a call to an aggregate function with all applicable operands.</div>
</li>
</ul>
<a id="count(org.apache.calcite.rex.RexNode...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>count</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.AggCall.html" title="interface in org.apache.calcite.tools">RelBuilder.AggCall</a>&nbsp;count&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>...&nbsp;operands)</pre>
<div class="block">Creates a call to the <code>COUNT</code> aggregate function.</div>
</li>
</ul>
<a id="count(java.lang.Iterable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>count</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.AggCall.html" title="interface in org.apache.calcite.tools">RelBuilder.AggCall</a>&nbsp;count&#8203;(java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;operands)</pre>
<div class="block">Creates a call to the <code>COUNT</code> aggregate function.</div>
</li>
</ul>
<a id="count(boolean,java.lang.String,org.apache.calcite.rex.RexNode...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>count</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.AggCall.html" title="interface in org.apache.calcite.tools">RelBuilder.AggCall</a>&nbsp;count&#8203;(boolean&nbsp;distinct,
java.lang.String&nbsp;alias,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>...&nbsp;operands)</pre>
<div class="block">Creates a call to the <code>COUNT</code> aggregate function,
optionally distinct and with an alias.</div>
</li>
</ul>
<a id="count(boolean,java.lang.String,java.lang.Iterable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>count</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.AggCall.html" title="interface in org.apache.calcite.tools">RelBuilder.AggCall</a>&nbsp;count&#8203;(boolean&nbsp;distinct,
java.lang.String&nbsp;alias,
java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;operands)</pre>
<div class="block">Creates a call to the <code>COUNT</code> aggregate function,
optionally distinct and with an alias.</div>
</li>
</ul>
<a id="countStar(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>countStar</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.AggCall.html" title="interface in org.apache.calcite.tools">RelBuilder.AggCall</a>&nbsp;countStar&#8203;(java.lang.String&nbsp;alias)</pre>
<div class="block">Creates a call to the <code>COUNT(*)</code> aggregate function.</div>
</li>
</ul>
<a id="sum(org.apache.calcite.rex.RexNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sum</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.AggCall.html" title="interface in org.apache.calcite.tools">RelBuilder.AggCall</a>&nbsp;sum&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;operand)</pre>
<div class="block">Creates a call to the <code>SUM</code> aggregate function.</div>
</li>
</ul>
<a id="sum(boolean,java.lang.String,org.apache.calcite.rex.RexNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sum</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.AggCall.html" title="interface in org.apache.calcite.tools">RelBuilder.AggCall</a>&nbsp;sum&#8203;(boolean&nbsp;distinct,
java.lang.String&nbsp;alias,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;operand)</pre>
<div class="block">Creates a call to the <code>SUM</code> aggregate function,
optionally distinct and with an alias.</div>
</li>
</ul>
<a id="avg(org.apache.calcite.rex.RexNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>avg</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.AggCall.html" title="interface in org.apache.calcite.tools">RelBuilder.AggCall</a>&nbsp;avg&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;operand)</pre>
<div class="block">Creates a call to the <code>AVG</code> aggregate function.</div>
</li>
</ul>
<a id="avg(boolean,java.lang.String,org.apache.calcite.rex.RexNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>avg</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.AggCall.html" title="interface in org.apache.calcite.tools">RelBuilder.AggCall</a>&nbsp;avg&#8203;(boolean&nbsp;distinct,
java.lang.String&nbsp;alias,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;operand)</pre>
<div class="block">Creates a call to the <code>AVG</code> aggregate function,
optionally distinct and with an alias.</div>
</li>
</ul>
<a id="min(org.apache.calcite.rex.RexNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>min</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.AggCall.html" title="interface in org.apache.calcite.tools">RelBuilder.AggCall</a>&nbsp;min&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;operand)</pre>
<div class="block">Creates a call to the <code>MIN</code> aggregate function.</div>
</li>
</ul>
<a id="min(java.lang.String,org.apache.calcite.rex.RexNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>min</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.AggCall.html" title="interface in org.apache.calcite.tools">RelBuilder.AggCall</a>&nbsp;min&#8203;(java.lang.String&nbsp;alias,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;operand)</pre>
<div class="block">Creates a call to the <code>MIN</code> aggregate function,
optionally with an alias.</div>
</li>
</ul>
<a id="max(org.apache.calcite.rex.RexNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>max</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.AggCall.html" title="interface in org.apache.calcite.tools">RelBuilder.AggCall</a>&nbsp;max&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;operand)</pre>
<div class="block">Creates a call to the <code>MAX</code> aggregate function,
optionally with an alias.</div>
</li>
</ul>
<a id="max(java.lang.String,org.apache.calcite.rex.RexNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>max</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.AggCall.html" title="interface in org.apache.calcite.tools">RelBuilder.AggCall</a>&nbsp;max&#8203;(java.lang.String&nbsp;alias,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;operand)</pre>
<div class="block">Creates a call to the <code>MAX</code> aggregate function.</div>
</li>
</ul>
<a id="patternField(java.lang.String,org.apache.calcite.rel.type.RelDataType,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>patternField</h4>
<pre class="methodSignature">public&nbsp;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;patternField&#8203;(java.lang.String&nbsp;alpha,
<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type,
int&nbsp;i)</pre>
<div class="block">Creates a reference to a given field of the pattern.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>alpha</code> - the pattern name</dd>
<dd><code>type</code> - Type of field</dd>
<dd><code>i</code> - Ordinal of field</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Reference to field of pattern</dd>
</dl>
</li>
</ul>
<a id="patternConcat(java.lang.Iterable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>patternConcat</h4>
<pre class="methodSignature">public&nbsp;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;patternConcat&#8203;(java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;nodes)</pre>
<div class="block">Creates a call that concatenates patterns;
for use in <a href="#match(org.apache.calcite.rex.RexNode,boolean,boolean,java.util.Map,java.lang.Iterable,org.apache.calcite.rex.RexNode,java.util.Map,boolean,java.lang.Iterable,java.lang.Iterable,org.apache.calcite.rex.RexNode)"><code>match(org.apache.calcite.rex.RexNode, boolean, boolean, java.util.Map&lt;java.lang.String, org.apache.calcite.rex.RexNode&gt;, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, org.apache.calcite.rex.RexNode, java.util.Map&lt;java.lang.String, ? extends java.util.SortedSet&lt;java.lang.String&gt;&gt;, boolean, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, org.apache.calcite.rex.RexNode)</code></a>.</div>
</li>
</ul>
<a id="patternConcat(org.apache.calcite.rex.RexNode...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>patternConcat</h4>
<pre class="methodSignature">public&nbsp;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;patternConcat&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>...&nbsp;nodes)</pre>
<div class="block">Creates a call that concatenates patterns;
for use in <a href="#match(org.apache.calcite.rex.RexNode,boolean,boolean,java.util.Map,java.lang.Iterable,org.apache.calcite.rex.RexNode,java.util.Map,boolean,java.lang.Iterable,java.lang.Iterable,org.apache.calcite.rex.RexNode)"><code>match(org.apache.calcite.rex.RexNode, boolean, boolean, java.util.Map&lt;java.lang.String, org.apache.calcite.rex.RexNode&gt;, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, org.apache.calcite.rex.RexNode, java.util.Map&lt;java.lang.String, ? extends java.util.SortedSet&lt;java.lang.String&gt;&gt;, boolean, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, org.apache.calcite.rex.RexNode)</code></a>.</div>
</li>
</ul>
<a id="patternAlter(java.lang.Iterable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>patternAlter</h4>
<pre class="methodSignature">public&nbsp;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;patternAlter&#8203;(java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;nodes)</pre>
<div class="block">Creates a call that creates alternate patterns;
for use in <a href="#match(org.apache.calcite.rex.RexNode,boolean,boolean,java.util.Map,java.lang.Iterable,org.apache.calcite.rex.RexNode,java.util.Map,boolean,java.lang.Iterable,java.lang.Iterable,org.apache.calcite.rex.RexNode)"><code>match(org.apache.calcite.rex.RexNode, boolean, boolean, java.util.Map&lt;java.lang.String, org.apache.calcite.rex.RexNode&gt;, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, org.apache.calcite.rex.RexNode, java.util.Map&lt;java.lang.String, ? extends java.util.SortedSet&lt;java.lang.String&gt;&gt;, boolean, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, org.apache.calcite.rex.RexNode)</code></a>.</div>
</li>
</ul>
<a id="patternAlter(org.apache.calcite.rex.RexNode...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>patternAlter</h4>
<pre class="methodSignature">public&nbsp;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;patternAlter&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>...&nbsp;nodes)</pre>
<div class="block">Creates a call that creates alternate patterns;
for use in <a href="#match(org.apache.calcite.rex.RexNode,boolean,boolean,java.util.Map,java.lang.Iterable,org.apache.calcite.rex.RexNode,java.util.Map,boolean,java.lang.Iterable,java.lang.Iterable,org.apache.calcite.rex.RexNode)"><code>match(org.apache.calcite.rex.RexNode, boolean, boolean, java.util.Map&lt;java.lang.String, org.apache.calcite.rex.RexNode&gt;, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, org.apache.calcite.rex.RexNode, java.util.Map&lt;java.lang.String, ? extends java.util.SortedSet&lt;java.lang.String&gt;&gt;, boolean, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, org.apache.calcite.rex.RexNode)</code></a>.</div>
</li>
</ul>
<a id="patternQuantify(java.lang.Iterable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>patternQuantify</h4>
<pre class="methodSignature">public&nbsp;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;patternQuantify&#8203;(java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;nodes)</pre>
<div class="block">Creates a call that creates quantify patterns;
for use in <a href="#match(org.apache.calcite.rex.RexNode,boolean,boolean,java.util.Map,java.lang.Iterable,org.apache.calcite.rex.RexNode,java.util.Map,boolean,java.lang.Iterable,java.lang.Iterable,org.apache.calcite.rex.RexNode)"><code>match(org.apache.calcite.rex.RexNode, boolean, boolean, java.util.Map&lt;java.lang.String, org.apache.calcite.rex.RexNode&gt;, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, org.apache.calcite.rex.RexNode, java.util.Map&lt;java.lang.String, ? extends java.util.SortedSet&lt;java.lang.String&gt;&gt;, boolean, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, org.apache.calcite.rex.RexNode)</code></a>.</div>
</li>
</ul>
<a id="patternQuantify(org.apache.calcite.rex.RexNode...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>patternQuantify</h4>
<pre class="methodSignature">public&nbsp;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;patternQuantify&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>...&nbsp;nodes)</pre>
<div class="block">Creates a call that creates quantify patterns;
for use in <a href="#match(org.apache.calcite.rex.RexNode,boolean,boolean,java.util.Map,java.lang.Iterable,org.apache.calcite.rex.RexNode,java.util.Map,boolean,java.lang.Iterable,java.lang.Iterable,org.apache.calcite.rex.RexNode)"><code>match(org.apache.calcite.rex.RexNode, boolean, boolean, java.util.Map&lt;java.lang.String, org.apache.calcite.rex.RexNode&gt;, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, org.apache.calcite.rex.RexNode, java.util.Map&lt;java.lang.String, ? extends java.util.SortedSet&lt;java.lang.String&gt;&gt;, boolean, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, org.apache.calcite.rex.RexNode)</code></a>.</div>
</li>
</ul>
<a id="patternPermute(java.lang.Iterable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>patternPermute</h4>
<pre class="methodSignature">public&nbsp;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;patternPermute&#8203;(java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;nodes)</pre>
<div class="block">Creates a call that creates permute patterns;
for use in <a href="#match(org.apache.calcite.rex.RexNode,boolean,boolean,java.util.Map,java.lang.Iterable,org.apache.calcite.rex.RexNode,java.util.Map,boolean,java.lang.Iterable,java.lang.Iterable,org.apache.calcite.rex.RexNode)"><code>match(org.apache.calcite.rex.RexNode, boolean, boolean, java.util.Map&lt;java.lang.String, org.apache.calcite.rex.RexNode&gt;, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, org.apache.calcite.rex.RexNode, java.util.Map&lt;java.lang.String, ? extends java.util.SortedSet&lt;java.lang.String&gt;&gt;, boolean, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, org.apache.calcite.rex.RexNode)</code></a>.</div>
</li>
</ul>
<a id="patternPermute(org.apache.calcite.rex.RexNode...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>patternPermute</h4>
<pre class="methodSignature">public&nbsp;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;patternPermute&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>...&nbsp;nodes)</pre>
<div class="block">Creates a call that creates permute patterns;
for use in <a href="#match(org.apache.calcite.rex.RexNode,boolean,boolean,java.util.Map,java.lang.Iterable,org.apache.calcite.rex.RexNode,java.util.Map,boolean,java.lang.Iterable,java.lang.Iterable,org.apache.calcite.rex.RexNode)"><code>match(org.apache.calcite.rex.RexNode, boolean, boolean, java.util.Map&lt;java.lang.String, org.apache.calcite.rex.RexNode&gt;, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, org.apache.calcite.rex.RexNode, java.util.Map&lt;java.lang.String, ? extends java.util.SortedSet&lt;java.lang.String&gt;&gt;, boolean, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, org.apache.calcite.rex.RexNode)</code></a>.</div>
</li>
</ul>
<a id="patternExclude(org.apache.calcite.rex.RexNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>patternExclude</h4>
<pre class="methodSignature">public&nbsp;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;patternExclude&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;node)</pre>
<div class="block">Creates a call that creates an exclude pattern;
for use in <a href="#match(org.apache.calcite.rex.RexNode,boolean,boolean,java.util.Map,java.lang.Iterable,org.apache.calcite.rex.RexNode,java.util.Map,boolean,java.lang.Iterable,java.lang.Iterable,org.apache.calcite.rex.RexNode)"><code>match(org.apache.calcite.rex.RexNode, boolean, boolean, java.util.Map&lt;java.lang.String, org.apache.calcite.rex.RexNode&gt;, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, org.apache.calcite.rex.RexNode, java.util.Map&lt;java.lang.String, ? extends java.util.SortedSet&lt;java.lang.String&gt;&gt;, boolean, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;, org.apache.calcite.rex.RexNode)</code></a>.</div>
</li>
</ul>
<a id="scan(java.lang.Iterable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>scan</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;scan&#8203;(java.lang.Iterable&lt;java.lang.String&gt;&nbsp;tableNames)</pre>
<div class="block">Creates a <a href="../rel/core/TableScan.html" title="class in org.apache.calcite.rel.core"><code>TableScan</code></a> of the table
with a given name.
<p>Throws if the table does not exist.
<p>Returns this builder.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>tableNames</code> - Name of table (can optionally be qualified)</dd>
</dl>
</li>
</ul>
<a id="scan(java.lang.String...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>scan</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;scan&#8203;(java.lang.String...&nbsp;tableNames)</pre>
<div class="block">Creates a <a href="../rel/core/TableScan.html" title="class in org.apache.calcite.rel.core"><code>TableScan</code></a> of the table
with a given name.
<p>Throws if the table does not exist.
<p>Returns this builder.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>tableNames</code> - Name of table (can optionally be qualified)</dd>
</dl>
</li>
</ul>
<a id="snapshot(org.apache.calcite.rex.RexNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>snapshot</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;snapshot&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;period)</pre>
<div class="block">Creates a <a href="../rel/core/Snapshot.html" title="class in org.apache.calcite.rel.core"><code>Snapshot</code></a> of a given snapshot period.
<p>Returns this builder.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>period</code> - Name of table (can optionally be qualified)</dd>
</dl>
</li>
</ul>
<a id="getColumnMappings(org.apache.calcite.sql.SqlOperator)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getColumnMappings</h4>
<pre class="methodSignature">private&nbsp;java.util.Set&lt;<a href="../rel/metadata/RelColumnMapping.html" title="class in org.apache.calcite.rel.metadata">RelColumnMapping</a>&gt;&nbsp;getColumnMappings&#8203;(<a href="../sql/SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&nbsp;op)</pre>
<div class="block">Gets column mappings of the operator.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>op</code> - operator instance</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>column mappings associated with this function</dd>
</dl>
</li>
</ul>
<a id="cursor(int,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>cursor</h4>
<pre class="methodSignature">public&nbsp;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;cursor&#8203;(int&nbsp;inputCount,
int&nbsp;ordinal)</pre>
<div class="block">Creates a RexCall to the <code>CURSOR</code> function by ordinal.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>inputCount</code> - Number of inputs</dd>
<dd><code>ordinal</code> - The reference to the relational input</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>RexCall to CURSOR function</dd>
</dl>
</li>
</ul>
<a id="functionScan(org.apache.calcite.sql.SqlOperator,int,org.apache.calcite.rex.RexNode...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>functionScan</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;functionScan&#8203;(<a href="../sql/SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&nbsp;operator,
int&nbsp;inputCount,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>...&nbsp;operands)</pre>
<div class="block">Creates a <a href="../rel/core/TableFunctionScan.html" title="class in org.apache.calcite.rel.core"><code>TableFunctionScan</code></a>.</div>
</li>
</ul>
<a id="functionScan(org.apache.calcite.sql.SqlOperator,int,java.lang.Iterable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>functionScan</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;functionScan&#8203;(<a href="../sql/SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&nbsp;operator,
int&nbsp;inputCount,
java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;operands)</pre>
<div class="block">Creates a <a href="../rel/core/TableFunctionScan.html" title="class in org.apache.calcite.rel.core"><code>TableFunctionScan</code></a>.</div>
</li>
</ul>
<a id="filter(org.apache.calcite.rex.RexNode...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>filter</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;filter&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>...&nbsp;predicates)</pre>
<div class="block">Creates a <a href="../rel/core/Filter.html" title="class in org.apache.calcite.rel.core"><code>Filter</code></a> of an array of
predicates.
<p>The predicates are combined using AND,
and optimized in a similar way to the <a href="#and(org.apache.calcite.rex.RexNode...)"><code>and(org.apache.calcite.rex.RexNode...)</code></a> method.
If the result is TRUE no filter is created.</div>
</li>
</ul>
<a id="filter(java.lang.Iterable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>filter</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;filter&#8203;(java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;predicates)</pre>
<div class="block">Creates a <a href="../rel/core/Filter.html" title="class in org.apache.calcite.rel.core"><code>Filter</code></a> of a list of
predicates.
<p>The predicates are combined using AND,
and optimized in a similar way to the <a href="#and(org.apache.calcite.rex.RexNode...)"><code>and(org.apache.calcite.rex.RexNode...)</code></a> method.
If the result is TRUE no filter is created.</div>
</li>
</ul>
<a id="project(org.apache.calcite.rex.RexNode...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>project</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;project&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>...&nbsp;nodes)</pre>
<div class="block">Creates a <a href="../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a> of the given
expressions.</div>
</li>
</ul>
<a id="project(java.lang.Iterable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>project</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;project&#8203;(java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;nodes)</pre>
<div class="block">Creates a <a href="../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a> of the given list
of expressions.
<p>Infers names as would <a href="#project(java.lang.Iterable,java.lang.Iterable)"><code>project(Iterable, Iterable)</code></a> if all
suggested names were null.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>nodes</code> - Expressions</dd>
</dl>
</li>
</ul>
<a id="project(java.lang.Iterable,java.lang.Iterable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>project</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;project&#8203;(java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;nodes,
java.lang.Iterable&lt;java.lang.String&gt;&nbsp;fieldNames)</pre>
<div class="block">Creates a <a href="../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a> of the given list
of expressions and field names.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>nodes</code> - Expressions</dd>
<dd><code>fieldNames</code> - field names for expressions</dd>
</dl>
</li>
</ul>
<a id="projectPlus(org.apache.calcite.rex.RexNode...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>projectPlus</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;projectPlus&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>...&nbsp;nodes)</pre>
<div class="block">Creates a <a href="../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a> of all original fields, plus the given
expressions.</div>
</li>
</ul>
<a id="projectPlus(java.lang.Iterable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>projectPlus</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;projectPlus&#8203;(java.lang.Iterable&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;nodes)</pre>
<div class="block">Creates a <a href="../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a> of all original fields, plus the given list of
expressions.</div>
</li>
</ul>
<a id="project(java.lang.Iterable,java.lang.Iterable,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>project</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;project&#8203;(java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;nodes,
java.lang.Iterable&lt;java.lang.String&gt;&nbsp;fieldNames,
boolean&nbsp;force)</pre>
<div class="block">Creates a <a href="../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a> of the given list
of expressions, using the given names.
<p>Names are deduced as follows:
<ul>
<li>If the length of <code>fieldNames</code> is greater than the index of
the current entry in <code>nodes</code>, and the entry in
<code>fieldNames</code> is not null, uses it; otherwise
<li>If an expression projects an input field,
or is a cast an input field,
uses the input field name; otherwise
<li>If an expression is a call to
<a href="../sql/fun/SqlStdOperatorTable.html#AS"><code>SqlStdOperatorTable.AS</code></a>
(see <a href="#alias(org.apache.calcite.rex.RexNode,java.lang.String)"><code>alias(org.apache.calcite.rex.RexNode, java.lang.String)</code></a>), removes the call but uses the intended alias.
</ul>
<p>After the field names have been inferred, makes the
field names unique by appending numeric suffixes.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>nodes</code> - Expressions</dd>
<dd><code>fieldNames</code> - Suggested field names</dd>
<dd><code>force</code> - create project even if it is identity</dd>
</dl>
</li>
</ul>
<a id="shouldMergeProject()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>shouldMergeProject</h4>
<pre class="methodSignature">protected&nbsp;boolean&nbsp;shouldMergeProject()</pre>
<div class="block">Whether to attempt to merge consecutive <a href="../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a> operators.
<p>The default implementation returns <code>true</code>;
sub-classes may disable merge by overriding to return <code>false</code>.</div>
</li>
</ul>
<a id="projectNamed(java.lang.Iterable,java.lang.Iterable,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>projectNamed</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;projectNamed&#8203;(java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;nodes,
java.lang.Iterable&lt;java.lang.String&gt;&nbsp;fieldNames,
boolean&nbsp;force)</pre>
<div class="block">Creates a <a href="../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a> of the given
expressions and field names, and optionally optimizing.
<p>If <code>fieldNames</code> is null, or if a particular entry in
<code>fieldNames</code> is null, derives field names from the input
expressions.
<p>If <code>force</code> is false,
and the input is a <code>Project</code>,
and the expressions make the trivial projection ($0, $1, ...),
modifies the input.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>nodes</code> - Expressions</dd>
<dd><code>fieldNames</code> - Suggested field names, or null to generate</dd>
<dd><code>force</code> - Whether to create a renaming Project if the
projections are trivial</dd>
</dl>
</li>
</ul>
<a id="rename(java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rename</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;rename&#8203;(java.util.List&lt;java.lang.String&gt;&nbsp;fieldNames)</pre>
<div class="block">Ensures that the field names match those given.
<p>If all fields have the same name, adds nothing;
if any fields do not have the same name, adds a <a href="../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a>.
<p>Note that the names can be short-lived. Other <code>RelBuilder</code>
operations make no guarantees about the field names of the rows they
produce.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>fieldNames</code> - List of desired field names; may contain null values or
have fewer fields than the current row type</dd>
</dl>
</li>
</ul>
<a id="inferAlias(java.util.List,org.apache.calcite.rex.RexNode,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>inferAlias</h4>
<pre class="methodSignature">private&nbsp;java.lang.String&nbsp;inferAlias&#8203;(java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;exprList,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;expr,
int&nbsp;i)</pre>
<div class="block">Infers the alias of an expression.
<p>If the expression was created by <a href="#alias(org.apache.calcite.rex.RexNode,java.lang.String)"><code>alias(org.apache.calcite.rex.RexNode, java.lang.String)</code></a>, replaces the expression
in the project list.</div>
</li>
</ul>
<a id="distinct()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>distinct</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;distinct()</pre>
<div class="block">Creates an <a href="../rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a> that makes the
relational expression distinct on all fields.</div>
</li>
</ul>
<a id="aggregate(org.apache.calcite.tools.RelBuilder.GroupKey,org.apache.calcite.tools.RelBuilder.AggCall...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>aggregate</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;aggregate&#8203;(<a href="RelBuilder.GroupKey.html" title="interface in org.apache.calcite.tools">RelBuilder.GroupKey</a>&nbsp;groupKey,
<a href="RelBuilder.AggCall.html" title="interface in org.apache.calcite.tools">RelBuilder.AggCall</a>...&nbsp;aggCalls)</pre>
<div class="block">Creates an <a href="../rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a> with an array of
calls.</div>
</li>
</ul>
<a id="aggregate(org.apache.calcite.tools.RelBuilder.GroupKey,java.lang.Iterable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>aggregate</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;aggregate&#8203;(<a href="RelBuilder.GroupKey.html" title="interface in org.apache.calcite.tools">RelBuilder.GroupKey</a>&nbsp;groupKey,
java.lang.Iterable&lt;<a href="RelBuilder.AggCall.html" title="interface in org.apache.calcite.tools">RelBuilder.AggCall</a>&gt;&nbsp;aggCalls)</pre>
<div class="block">Creates an <a href="../rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a> with a list of
calls.</div>
</li>
</ul>
<a id="aggregate_(org.apache.calcite.util.ImmutableBitSet,com.google.common.collect.ImmutableList,org.apache.calcite.rel.RelNode,java.util.List,java.util.List,com.google.common.collect.ImmutableList)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>aggregate_</h4>
<pre class="methodSignature">private&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;aggregate_&#8203;(<a href="../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;groupSet,
com.google.common.collect.ImmutableList&lt;<a href="../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&nbsp;groupSets,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;input,
java.util.List&lt;<a href="../rel/core/AggregateCall.html" title="class in org.apache.calcite.rel.core">AggregateCall</a>&gt;&nbsp;aggregateCalls,
java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;extraNodes,
com.google.common.collect.ImmutableList&lt;<a href="RelBuilder.Field.html" title="class in org.apache.calcite.tools">RelBuilder.Field</a>&gt;&nbsp;inFields)</pre>
<div class="block">Finishes the implementation of <a href="#aggregate(org.apache.calcite.tools.RelBuilder.GroupKey,org.apache.calcite.tools.RelBuilder.AggCall...)"><code>aggregate(org.apache.calcite.tools.RelBuilder.GroupKey, org.apache.calcite.tools.RelBuilder.AggCall...)</code></a> by creating an
<a href="../rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a> and pushing it onto the stack.</div>
</li>
</ul>
<a id="setOp(boolean,org.apache.calcite.sql.SqlKind,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setOp</h4>
<pre class="methodSignature">private&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;setOp&#8203;(boolean&nbsp;all,
<a href="../sql/SqlKind.html" title="enum in org.apache.calcite.sql">SqlKind</a>&nbsp;kind,
int&nbsp;n)</pre>
</li>
</ul>
<a id="union(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>union</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;union&#8203;(boolean&nbsp;all)</pre>
<div class="block">Creates a <a href="../rel/core/Union.html" title="class in org.apache.calcite.rel.core"><code>Union</code></a> of the two most recent
relational expressions on the stack.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>all</code> - Whether to create UNION ALL</dd>
</dl>
</li>
</ul>
<a id="union(boolean,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>union</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;union&#8203;(boolean&nbsp;all,
int&nbsp;n)</pre>
<div class="block">Creates a <a href="../rel/core/Union.html" title="class in org.apache.calcite.rel.core"><code>Union</code></a> of the <code>n</code>
most recent relational expressions on the stack.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>all</code> - Whether to create UNION ALL</dd>
<dd><code>n</code> - Number of inputs to the UNION operator</dd>
</dl>
</li>
</ul>
<a id="intersect(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>intersect</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;intersect&#8203;(boolean&nbsp;all)</pre>
<div class="block">Creates an <a href="../rel/core/Intersect.html" title="class in org.apache.calcite.rel.core"><code>Intersect</code></a> of the two most
recent relational expressions on the stack.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>all</code> - Whether to create INTERSECT ALL</dd>
</dl>
</li>
</ul>
<a id="intersect(boolean,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>intersect</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;intersect&#8203;(boolean&nbsp;all,
int&nbsp;n)</pre>
<div class="block">Creates an <a href="../rel/core/Intersect.html" title="class in org.apache.calcite.rel.core"><code>Intersect</code></a> of the <code>n</code>
most recent relational expressions on the stack.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>all</code> - Whether to create INTERSECT ALL</dd>
<dd><code>n</code> - Number of inputs to the INTERSECT operator</dd>
</dl>
</li>
</ul>
<a id="minus(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>minus</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;minus&#8203;(boolean&nbsp;all)</pre>
<div class="block">Creates a <a href="../rel/core/Minus.html" title="class in org.apache.calcite.rel.core"><code>Minus</code></a> of the two most recent
relational expressions on the stack.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>all</code> - Whether to create EXCEPT ALL</dd>
</dl>
</li>
</ul>
<a id="minus(boolean,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>minus</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;minus&#8203;(boolean&nbsp;all,
int&nbsp;n)</pre>
<div class="block">Creates a <a href="../rel/core/Minus.html" title="class in org.apache.calcite.rel.core"><code>Minus</code></a> of the <code>n</code>
most recent relational expressions on the stack.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>all</code> - Whether to create EXCEPT ALL</dd>
</dl>
</li>
</ul>
<a id="transientScan(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>transientScan</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;transientScan&#8203;(java.lang.String&nbsp;tableName)</pre>
<div class="block">Creates a <a href="../rel/core/TableScan.html" title="class in org.apache.calcite.rel.core"><code>TableScan</code></a> on a <a href="../schema/TransientTable.html" title="interface in org.apache.calcite.schema"><code>TransientTable</code></a> with the given name, using as type
the top of the stack's type.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>tableName</code> - table name</dd>
</dl>
</li>
</ul>
<a id="transientScan(java.lang.String,org.apache.calcite.rel.type.RelDataType)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>transientScan</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;transientScan&#8203;(java.lang.String&nbsp;tableName,
<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;rowType)</pre>
<div class="block">Creates a <a href="../rel/core/TableScan.html" title="class in org.apache.calcite.rel.core"><code>TableScan</code></a> on a <a href="../schema/TransientTable.html" title="interface in org.apache.calcite.schema"><code>TransientTable</code></a> with the given name and type.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>tableName</code> - table name</dd>
<dd><code>rowType</code> - row type of the table</dd>
</dl>
</li>
</ul>
<a id="tableSpool(org.apache.calcite.rel.core.Spool.Type,org.apache.calcite.rel.core.Spool.Type,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>tableSpool</h4>
<pre class="methodSignature">private&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;tableSpool&#8203;(<a href="../rel/core/Spool.Type.html" title="enum in org.apache.calcite.rel.core">Spool.Type</a>&nbsp;readType,
<a href="../rel/core/Spool.Type.html" title="enum in org.apache.calcite.rel.core">Spool.Type</a>&nbsp;writeType,
java.lang.String&nbsp;tableName)</pre>
<div class="block">Creates a <a href="../rel/core/TableSpool.html" title="class in org.apache.calcite.rel.core"><code>TableSpool</code></a> for the most recent relational expression.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>readType</code> - Spool's read type (as described in <a href="../rel/core/Spool.Type.html" title="enum in org.apache.calcite.rel.core"><code>Spool.Type</code></a>)</dd>
<dd><code>writeType</code> - Spool's write type (as described in <a href="../rel/core/Spool.Type.html" title="enum in org.apache.calcite.rel.core"><code>Spool.Type</code></a>)</dd>
<dd><code>tableName</code> - Table name</dd>
</dl>
</li>
</ul>
<a id="repeatUnion(java.lang.String,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>repeatUnion</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;repeatUnion&#8203;(java.lang.String&nbsp;tableName,
boolean&nbsp;all)</pre>
<div class="block">Creates a <a href="../rel/core/RepeatUnion.html" title="class in org.apache.calcite.rel.core"><code>RepeatUnion</code></a> associated to a <a href="../schema/TransientTable.html" title="interface in org.apache.calcite.schema"><code>TransientTable</code></a> without a maximum number
of iterations, i.e. repeatUnion(tableName, all, -1).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>tableName</code> - name of the <a href="../schema/TransientTable.html" title="interface in org.apache.calcite.schema"><code>TransientTable</code></a> associated to the <a href="../rel/core/RepeatUnion.html" title="class in org.apache.calcite.rel.core"><code>RepeatUnion</code></a></dd>
<dd><code>all</code> - whether duplicates will be considered or not</dd>
</dl>
</li>
</ul>
<a id="repeatUnion(java.lang.String,boolean,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>repeatUnion</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;repeatUnion&#8203;(java.lang.String&nbsp;tableName,
boolean&nbsp;all,
int&nbsp;maxRep)</pre>
<div class="block">Creates a <a href="../rel/core/RepeatUnion.html" title="class in org.apache.calcite.rel.core"><code>RepeatUnion</code></a> associated to a <a href="../schema/TransientTable.html" title="interface in org.apache.calcite.schema"><code>TransientTable</code></a> of the
two most recent relational expressions on the stack.
<p>Warning: if these relational expressions are not
correctly defined, this operation might lead to an infinite loop.
<p>The generated <a href="../rel/core/RepeatUnion.html" title="class in org.apache.calcite.rel.core"><code>RepeatUnion</code></a> operates as follows:
<ul>
<li>Evaluate its left term once, propagating the results into the
<a href="../schema/TransientTable.html" title="interface in org.apache.calcite.schema"><code>TransientTable</code></a>;
<li>Evaluate its right term (which may contain a <a href="../rel/core/TableScan.html" title="class in org.apache.calcite.rel.core"><code>TableScan</code></a> on the
<a href="../schema/TransientTable.html" title="interface in org.apache.calcite.schema"><code>TransientTable</code></a>) over and over until it produces no more results
(or until an optional maximum number of iterations is reached). On each
iteration, the results are propagated into the <a href="../schema/TransientTable.html" title="interface in org.apache.calcite.schema"><code>TransientTable</code></a>,
overwriting the results from the previous one.
</ul></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>tableName</code> - Name of the <a href="../schema/TransientTable.html" title="interface in org.apache.calcite.schema"><code>TransientTable</code></a> associated to the
<a href="../rel/core/RepeatUnion.html" title="class in org.apache.calcite.rel.core"><code>RepeatUnion</code></a></dd>
<dd><code>all</code> - Whether duplicates are considered</dd>
<dd><code>maxRep</code> - Maximum number of iterations; -1 means no limit</dd>
</dl>
</li>
</ul>
<a id="join(org.apache.calcite.rel.core.JoinRelType,org.apache.calcite.rex.RexNode,org.apache.calcite.rex.RexNode...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>join</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;join&#8203;(<a href="../rel/core/JoinRelType.html" title="enum in org.apache.calcite.rel.core">JoinRelType</a>&nbsp;joinType,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;condition0,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>...&nbsp;conditions)</pre>
<div class="block">Creates a <a href="../rel/core/Join.html" title="class in org.apache.calcite.rel.core"><code>Join</code></a>.</div>
</li>
</ul>
<a id="join(org.apache.calcite.rel.core.JoinRelType,java.lang.Iterable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>join</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;join&#8203;(<a href="../rel/core/JoinRelType.html" title="enum in org.apache.calcite.rel.core">JoinRelType</a>&nbsp;joinType,
java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;conditions)</pre>
<div class="block">Creates a <a href="../rel/core/Join.html" title="class in org.apache.calcite.rel.core"><code>Join</code></a> with multiple
conditions.</div>
</li>
</ul>
<a id="join(org.apache.calcite.rel.core.JoinRelType,org.apache.calcite.rex.RexNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>join</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;join&#8203;(<a href="../rel/core/JoinRelType.html" title="enum in org.apache.calcite.rel.core">JoinRelType</a>&nbsp;joinType,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;condition)</pre>
</li>
</ul>
<a id="join(org.apache.calcite.rel.core.JoinRelType,org.apache.calcite.rex.RexNode,java.util.Set)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>join</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;join&#8203;(<a href="../rel/core/JoinRelType.html" title="enum in org.apache.calcite.rel.core">JoinRelType</a>&nbsp;joinType,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;condition,
java.util.Set&lt;<a href="../rel/core/CorrelationId.html" title="class in org.apache.calcite.rel.core">CorrelationId</a>&gt;&nbsp;variablesSet)</pre>
<div class="block">Creates a <a href="../rel/core/Join.html" title="class in org.apache.calcite.rel.core"><code>Join</code></a> with correlating
variables.</div>
</li>
</ul>
<a id="join(org.apache.calcite.rel.core.JoinRelType,java.lang.String...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>join</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;join&#8203;(<a href="../rel/core/JoinRelType.html" title="enum in org.apache.calcite.rel.core">JoinRelType</a>&nbsp;joinType,
java.lang.String...&nbsp;fieldNames)</pre>
<div class="block">Creates a <a href="../rel/core/Join.html" title="class in org.apache.calcite.rel.core"><code>Join</code></a> using USING syntax.
<p>For each of the field names, both left and right inputs must have a
field of that name. Constructs a join condition that the left and right
fields are equal.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>joinType</code> - Join type</dd>
<dd><code>fieldNames</code> - Field names</dd>
</dl>
</li>
</ul>
<a id="semiJoin(java.lang.Iterable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>semiJoin</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;semiJoin&#8203;(java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;conditions)</pre>
<div class="block">Creates a <a href="../rel/core/Join.html" title="class in org.apache.calcite.rel.core"><code>Join</code></a> with <a href="../rel/core/JoinRelType.html#SEMI"><code>JoinRelType.SEMI</code></a>.
<p>A semi-join is a form of join that combines two relational expressions
according to some condition, and outputs only rows from the left input for
which at least one row from the right input matches. It only outputs
columns from the left input, and ignores duplicates on the right.
<p>For example, <code>EMP semi-join DEPT</code> finds all <code>EMP</code> records
that do not have a corresponding <code>DEPT</code> record, similar to the
following SQL:
<blockquote><pre>
SELECT * FROM EMP
WHERE EXISTS (SELECT 1 FROM DEPT
WHERE DEPT.DEPTNO = EMP.DEPTNO)</pre>
</blockquote></div>
</li>
</ul>
<a id="semiJoin(org.apache.calcite.rex.RexNode...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>semiJoin</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;semiJoin&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>...&nbsp;conditions)</pre>
<div class="block">Creates a <a href="../rel/core/Join.html" title="class in org.apache.calcite.rel.core"><code>Join</code></a> with <a href="../rel/core/JoinRelType.html#SEMI"><code>JoinRelType.SEMI</code></a>.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#semiJoin(java.lang.Iterable)"><code>semiJoin(Iterable)</code></a></dd>
</dl>
</li>
</ul>
<a id="antiJoin(java.lang.Iterable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>antiJoin</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;antiJoin&#8203;(java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;conditions)</pre>
<div class="block">Creates an anti-join.
<p>An anti-join is a form of join that combines two relational expressions
according to some condition, but outputs only rows from the left input
for which no rows from the right input match.
<p>For example, <code>EMP anti-join DEPT</code> finds all <code>EMP</code> records
that do not have a corresponding <code>DEPT</code> record, similar to the
following SQL:
<blockquote><pre>
SELECT * FROM EMP
WHERE NOT EXISTS (SELECT 1 FROM DEPT
WHERE DEPT.DEPTNO = EMP.DEPTNO)</pre>
</blockquote></div>
</li>
</ul>
<a id="antiJoin(org.apache.calcite.rex.RexNode...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>antiJoin</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;antiJoin&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>...&nbsp;conditions)</pre>
<div class="block">Creates an anti-join.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#antiJoin(java.lang.Iterable)"><code>antiJoin(Iterable)</code></a></dd>
</dl>
</li>
</ul>
<a id="as(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>as</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;as&#8203;(java.lang.String&nbsp;alias)</pre>
<div class="block">Assigns a table alias to the top entry on the stack.</div>
</li>
</ul>
<a id="values(java.lang.String[],java.lang.Object...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>values</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;values&#8203;(java.lang.String[]&nbsp;fieldNames,
java.lang.Object...&nbsp;values)</pre>
<div class="block">Creates a <a href="../rel/core/Values.html" title="class in org.apache.calcite.rel.core"><code>Values</code></a>.
<p>The <code>values</code> array must have the same number of entries as
<code>fieldNames</code>, or an integer multiple if you wish to create multiple
rows.
<p>If there are zero rows, or if all values of a any column are
null, this method cannot deduce the type of columns. For these cases,
call <a href="#values(java.lang.Iterable,org.apache.calcite.rel.type.RelDataType)"><code>values(Iterable, RelDataType)</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>fieldNames</code> - Field names</dd>
<dd><code>values</code> - Values</dd>
</dl>
</li>
</ul>
<a id="tupleList(int,java.lang.Object[])">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>tupleList</h4>
<pre class="methodSignature">private&nbsp;com.google.common.collect.ImmutableList&lt;com.google.common.collect.ImmutableList&lt;<a href="../rex/RexLiteral.html" title="class in org.apache.calcite.rex">RexLiteral</a>&gt;&gt;&nbsp;tupleList&#8203;(int&nbsp;columnCount,
java.lang.Object[]&nbsp;values)</pre>
</li>
</ul>
<a id="allNull(java.lang.Object[],int,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>allNull</h4>
<pre class="methodSignature">private&nbsp;boolean&nbsp;allNull&#8203;(java.lang.Object[]&nbsp;values,
int&nbsp;column,
int&nbsp;columnCount)</pre>
<div class="block">Returns whether all values for a given column are null.</div>
</li>
</ul>
<a id="empty()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>empty</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;empty()</pre>
<div class="block">Creates a relational expression that reads from an input and throws
all of the rows away.
<p>Note that this method always pops one relational expression from the
stack. <code>values</code>, in contrast, does not pop any relational
expressions, and always produces a leaf.
<p>The default implementation creates a <a href="../rel/core/Values.html" title="class in org.apache.calcite.rel.core"><code>Values</code></a> with the same
specified row type as the input, and ignores the input entirely.
But schema-on-query systems such as Drill might override this method to
create a relation expression that retains the input, just to read its
schema.</div>
</li>
</ul>
<a id="values(org.apache.calcite.rel.type.RelDataType,java.lang.Object...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>values</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;values&#8203;(<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;rowType,
java.lang.Object...&nbsp;columnValues)</pre>
<div class="block">Creates a <a href="../rel/core/Values.html" title="class in org.apache.calcite.rel.core"><code>Values</code></a> with a specified row type.
<p>This method can handle cases that <a href="#values(java.lang.String%5B%5D,java.lang.Object...)"><code>values(String[], Object...)</code></a>
cannot, such as all values of a column being null, or there being zero
rows.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>rowType</code> - Row type</dd>
<dd><code>columnValues</code> - Values</dd>
</dl>
</li>
</ul>
<a id="values(java.lang.Iterable,org.apache.calcite.rel.type.RelDataType)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>values</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;values&#8203;(java.lang.Iterable&lt;? extends java.util.List&lt;<a href="../rex/RexLiteral.html" title="class in org.apache.calcite.rex">RexLiteral</a>&gt;&gt;&nbsp;tupleList,
<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;rowType)</pre>
<div class="block">Creates a <a href="../rel/core/Values.html" title="class in org.apache.calcite.rel.core"><code>Values</code></a> with a specified row type.
<p>This method can handle cases that <a href="#values(java.lang.String%5B%5D,java.lang.Object...)"><code>values(String[], Object...)</code></a>
cannot, such as all values of a column being null, or there being zero
rows.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>tupleList</code> - Tuple list</dd>
<dd><code>rowType</code> - Row type</dd>
</dl>
</li>
</ul>
<a id="values(org.apache.calcite.rel.type.RelDataType)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>values</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;values&#8203;(<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;rowType)</pre>
<div class="block">Creates a <a href="../rel/core/Values.html" title="class in org.apache.calcite.rel.core"><code>Values</code></a> with a specified row type and
zero rows.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>rowType</code> - Row type</dd>
</dl>
</li>
</ul>
<a id="copy(java.lang.Iterable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>copy</h4>
<pre class="methodSignature">private static&nbsp;&lt;E&gt;&nbsp;com.google.common.collect.ImmutableList&lt;com.google.common.collect.ImmutableList&lt;E&gt;&gt;&nbsp;copy&#8203;(java.lang.Iterable&lt;? extends java.util.List&lt;E&gt;&gt;&nbsp;tupleList)</pre>
<div class="block">Converts an iterable of lists into an immutable list of immutable lists
with the same contents. Returns the same object if possible.</div>
</li>
</ul>
<a id="limit(int,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>limit</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;limit&#8203;(int&nbsp;offset,
int&nbsp;fetch)</pre>
<div class="block">Creates a limit without a sort.</div>
</li>
</ul>
<a id="exchange(org.apache.calcite.rel.RelDistribution)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>exchange</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;exchange&#8203;(<a href="../rel/RelDistribution.html" title="interface in org.apache.calcite.rel">RelDistribution</a>&nbsp;distribution)</pre>
<div class="block">Creates an Exchange by distribution.</div>
</li>
</ul>
<a id="sortExchange(org.apache.calcite.rel.RelDistribution,org.apache.calcite.rel.RelCollation)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sortExchange</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;sortExchange&#8203;(<a href="../rel/RelDistribution.html" title="interface in org.apache.calcite.rel">RelDistribution</a>&nbsp;distribution,
<a href="../rel/RelCollation.html" title="interface in org.apache.calcite.rel">RelCollation</a>&nbsp;collation)</pre>
<div class="block">Creates a SortExchange by distribution and collation.</div>
</li>
</ul>
<a id="sort(int...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sort</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;sort&#8203;(int...&nbsp;fields)</pre>
<div class="block">Creates a <a href="../rel/core/Sort.html" title="class in org.apache.calcite.rel.core"><code>Sort</code></a> by field ordinals.
<p>Negative fields mean descending: -1 means field(0) descending,
-2 means field(1) descending, etc.</div>
</li>
</ul>
<a id="sort(org.apache.calcite.rex.RexNode...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sort</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;sort&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>...&nbsp;nodes)</pre>
<div class="block">Creates a <a href="../rel/core/Sort.html" title="class in org.apache.calcite.rel.core"><code>Sort</code></a> by expressions.</div>
</li>
</ul>
<a id="sort(java.lang.Iterable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sort</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;sort&#8203;(java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;nodes)</pre>
<div class="block">Creates a <a href="../rel/core/Sort.html" title="class in org.apache.calcite.rel.core"><code>Sort</code></a> by expressions.</div>
</li>
</ul>
<a id="sortLimit(int,int,org.apache.calcite.rex.RexNode...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sortLimit</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;sortLimit&#8203;(int&nbsp;offset,
int&nbsp;fetch,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>...&nbsp;nodes)</pre>
<div class="block">Creates a <a href="../rel/core/Sort.html" title="class in org.apache.calcite.rel.core"><code>Sort</code></a> by expressions, with limit and offset.</div>
</li>
</ul>
<a id="sortLimit(int,int,java.lang.Iterable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sortLimit</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;sortLimit&#8203;(int&nbsp;offset,
int&nbsp;fetch,
java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;nodes)</pre>
<div class="block">Creates a <a href="../rel/core/Sort.html" title="class in org.apache.calcite.rel.core"><code>Sort</code></a> by a list of expressions, with limit and offset.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>offset</code> - Number of rows to skip; non-positive means don't skip any</dd>
<dd><code>fetch</code> - Maximum number of rows to fetch; negative means no limit</dd>
<dd><code>nodes</code> - Sort expressions</dd>
</dl>
</li>
</ul>
<a id="collation(org.apache.calcite.rex.RexNode,org.apache.calcite.rel.RelFieldCollation.Direction,org.apache.calcite.rel.RelFieldCollation.NullDirection,java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>collation</h4>
<pre class="methodSignature">private static&nbsp;<a href="../rel/RelFieldCollation.html" title="class in org.apache.calcite.rel">RelFieldCollation</a>&nbsp;collation&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;node,
<a href="../rel/RelFieldCollation.Direction.html" title="enum in org.apache.calcite.rel">RelFieldCollation.Direction</a>&nbsp;direction,
<a href="../rel/RelFieldCollation.NullDirection.html" title="enum in org.apache.calcite.rel">RelFieldCollation.NullDirection</a>&nbsp;nullDirection,
java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;extraNodes)</pre>
</li>
</ul>
<a id="convert(org.apache.calcite.rel.type.RelDataType,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convert</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;convert&#8203;(<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;castRowType,
boolean&nbsp;rename)</pre>
<div class="block">Creates a projection that converts the current relational expression's
output to a desired row type.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>castRowType</code> - row type after cast</dd>
<dd><code>rename</code> - if true, use field names from castRowType; if false,
preserve field names from rel</dd>
</dl>
</li>
</ul>
<a id="permute(org.apache.calcite.util.mapping.Mapping)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>permute</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;permute&#8203;(<a href="../util/mapping/Mapping.html" title="interface in org.apache.calcite.util.mapping">Mapping</a>&nbsp;mapping)</pre>
</li>
</ul>
<a id="aggregate(org.apache.calcite.tools.RelBuilder.GroupKey,java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>aggregate</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;aggregate&#8203;(<a href="RelBuilder.GroupKey.html" title="interface in org.apache.calcite.tools">RelBuilder.GroupKey</a>&nbsp;groupKey,
java.util.List&lt;<a href="../rel/core/AggregateCall.html" title="class in org.apache.calcite.rel.core">AggregateCall</a>&gt;&nbsp;aggregateCalls)</pre>
</li>
</ul>
<a id="match(org.apache.calcite.rex.RexNode,boolean,boolean,java.util.Map,java.lang.Iterable,org.apache.calcite.rex.RexNode,java.util.Map,boolean,java.lang.Iterable,java.lang.Iterable,org.apache.calcite.rex.RexNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>match</h4>
<pre class="methodSignature">public&nbsp;<a href="RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;match&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;pattern,
boolean&nbsp;strictStart,
boolean&nbsp;strictEnd,
java.util.Map&lt;java.lang.String,&#8203;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;patternDefinitions,
java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;measureList,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;after,
java.util.Map&lt;java.lang.String,&#8203;? extends java.util.SortedSet&lt;java.lang.String&gt;&gt;&nbsp;subsets,
boolean&nbsp;allRows,
java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;partitionKeys,
java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;orderKeys,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;interval)</pre>
<div class="block">Creates a <a href="../rel/core/Match.html" title="class in org.apache.calcite.rel.core"><code>Match</code></a>.</div>
</li>
</ul>
<a id="clear()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>clear</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;clear()</pre>
<div class="block">Clears the stack.
<p>The builder's state is now the same as when it was created.</div>
</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/RelBuilder.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><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a 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>