blob: eb1761ea7ea72f811b024a47089a38fc85864d63 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>RelOptUtil (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="RelOptUtil (Apache Calcite API)";
}
}
catch(err) {
}
//-->
var data = {"i0":9,"i1":9,"i2":9,"i3":41,"i4":9,"i5":9,"i6":41,"i7":9,"i8":9,"i9":9,"i10":9,"i11":9,"i12":9,"i13":9,"i14":9,"i15":9,"i16":9,"i17":9,"i18":9,"i19":9,"i20":41,"i21":9,"i22":9,"i23":41,"i24":41,"i25":9,"i26":9,"i27":9,"i28":41,"i29":41,"i30":41,"i31":9,"i32":41,"i33":41,"i34":41,"i35":9,"i36":41,"i37":9,"i38":9,"i39":41,"i40":41,"i41":41,"i42":9,"i43":9,"i44":9,"i45":9,"i46":9,"i47":9,"i48":9,"i49":9,"i50":9,"i51":9,"i52":41,"i53":9,"i54":9,"i55":9,"i56":9,"i57":9,"i58":9,"i59":9,"i60":9,"i61":9,"i62":9,"i63":9,"i64":41,"i65":9,"i66":9,"i67":41,"i68":9,"i69":9,"i70":9,"i71":9,"i72":9,"i73":41,"i74":9,"i75":9,"i76":9,"i77":9,"i78":9,"i79":9,"i80":9,"i81":9,"i82":9,"i83":9,"i84":41,"i85":41,"i86":9,"i87":9,"i88":41,"i89":41,"i90":9,"i91":9,"i92":41,"i93":9,"i94":9,"i95":9,"i96":9,"i97":41,"i98":9,"i99":9,"i100":9,"i101":9,"i102":9,"i103":9,"i104":9,"i105":41,"i106":9,"i107":9,"i108":9,"i109":9,"i110":9,"i111":9,"i112":9,"i113":41,"i114":9,"i115":9,"i116":9,"i117":9,"i118":9,"i119":9,"i120":9,"i121":9,"i122":9,"i123":9,"i124":9,"i125":9,"i126":9,"i127":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static 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/RelOptUtil.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.plan</a></div>
<h2 title="Class RelOptUtil" class="title">Class RelOptUtil</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.calcite.plan.RelOptUtil</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<pre>public abstract class <span class="typeNameLabel">RelOptUtil</span>
extends java.lang.Object</pre>
<div class="block"><code>RelOptUtil</code> defines static utility methods for use in optimizing
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel"><code>RelNode</code></a>s.</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>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RelOptUtil.CorrelationCollector.html" title="class in org.apache.calcite.plan">RelOptUtil.CorrelationCollector</a></span></code></th>
<td class="colLast">
<div class="block">Shuttle that finds correlation variables inside a given relational
expression, including those that are inside
<a href="../rex/RexSubQuery.html" title="class in org.apache.calcite.rex"><code>sub-queries</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RelOptUtil.Exists.html" title="class in org.apache.calcite.plan">RelOptUtil.Exists</a></span></code></th>
<td class="colLast">
<div class="block">Result of calling
<a href="#createExistsPlan(org.apache.calcite.plan.RelOptCluster,org.apache.calcite.rel.RelNode,java.util.List,org.apache.calcite.rex.RexLiteral,java.lang.String)"><code>createExistsPlan(org.apache.calcite.plan.RelOptCluster, org.apache.calcite.rel.RelNode, java.util.List&lt;org.apache.calcite.rex.RexNode&gt;, org.apache.calcite.rex.RexLiteral, java.lang.String)</code></a></div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RelOptUtil.InputFinder.html" title="class in org.apache.calcite.plan">RelOptUtil.InputFinder</a></span></code></th>
<td class="colLast">
<div class="block">Visitor which builds a bitmap of the inputs used by an expression.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RelOptUtil.InputReferencedVisitor.html" title="class in org.apache.calcite.plan">RelOptUtil.InputReferencedVisitor</a></span></code></th>
<td class="colLast">
<div class="block">Shuttle that finds the set of inputs that are used.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RelOptUtil.Logic.html" title="enum in org.apache.calcite.plan">RelOptUtil.Logic</a></span></code></th>
<td class="colLast">
<div class="block">Policies for handling two- and three-valued boolean logic.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RelOptUtil.RexInputConverter.html" title="class in org.apache.calcite.plan">RelOptUtil.RexInputConverter</a></span></code></th>
<td class="colLast">
<div class="block">Walks an expression tree, converting the index of RexInputRefs based on
some adjustment factor.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>(package private) static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RelOptUtil.Side.html" title="enum in org.apache.calcite.plan">RelOptUtil.Side</a></span></code></th>
<td class="colLast">
<div class="block">Categorizes whether a bit set contains bits left and right of a
line.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RelOptUtil.SubQueryType.html" title="enum in org.apache.calcite.plan">RelOptUtil.SubQueryType</a></span></code></th>
<td class="colLast">
<div class="block">What kind of sub-query.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RelOptUtil.TypeDumper.html" title="class in org.apache.calcite.plan">RelOptUtil.TypeDumper</a></span></code></th>
<td class="colLast">
<div class="block">Converts types to descriptive strings.</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="RelOptUtil.VariableSetVisitor.html" title="class in org.apache.calcite.plan">RelOptUtil.VariableSetVisitor</a></span></code></th>
<td class="colLast">
<div class="block">Visitor that finds all variables used but not stopped in an expression.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RelOptUtil.VariableUsedVisitor.html" title="class in org.apache.calcite.plan">RelOptUtil.VariableUsedVisitor</a></span></code></th>
<td class="colLast">
<div class="block">Visitor that finds all variables used in an expression.</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>(package private) static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#B">B</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static com.google.common.base.Predicate&lt;<a href="../rel/core/Calc.html" title="class in org.apache.calcite.rel.core">Calc</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#CALC_PREDICATE">CALC_PREDICATE</a></span></code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EPSILON">EPSILON</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static com.google.common.base.Predicate&lt;<a href="../rel/core/Filter.html" title="class in org.apache.calcite.rel.core">Filter</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#FILTER_PREDICATE">FILTER_PREDICATE</a></span></code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static com.google.common.base.Predicate&lt;<a href="../rel/core/Project.html" title="class in org.apache.calcite.rel.core">Project</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PROJECT_PREDICATE">PROJECT_PREDICATE</a></span></code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</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">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">RelOptUtil</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="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>private static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addJoinKey(java.util.List,org.apache.calcite.rex.RexNode,boolean)">addJoinKey</a></span>&#8203;(java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;joinKeyList,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;key,
boolean&nbsp;preserveLastElementInList)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static &lt;T extends <a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&gt;<br>T</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addTrait(T,org.apache.calcite.plan.RelTrait)">addTrait</a></span>&#8203;(T&nbsp;rel,
<a href="RelTrait.html" title="interface in org.apache.calcite.plan">RelTrait</a>&nbsp;trait)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static java.util.List&lt;java.lang.Integer&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#adjustKeys(java.util.List,int)">adjustKeys</a></span>&#8203;(java.util.List&lt;java.lang.Integer&gt;&nbsp;keys,
int&nbsp;adjustment)</code></th>
<td class="colLast">
<div class="block">Adjusts key values in a list by some fixed amount.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#analyzeSimpleEquiJoin(org.apache.calcite.rel.logical.LogicalJoin,int%5B%5D)">analyzeSimpleEquiJoin</a></span>&#8203;(<a href="../rel/logical/LogicalJoin.html" title="class in org.apache.calcite.rel.logical">LogicalJoin</a>&nbsp;join,
int[]&nbsp;joinFieldOrdinals)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>static <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="#andJoinFilters(org.apache.calcite.rex.RexBuilder,org.apache.calcite.rex.RexNode,org.apache.calcite.rex.RexNode)">andJoinFilters</a></span>&#8203;(<a href="../rex/RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a>&nbsp;rexBuilder,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;left,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;right)</code></th>
<td class="colLast">
<div class="block">Ands two sets of join filters together, either of which can be null.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#areRowTypesEqual(org.apache.calcite.rel.type.RelDataType,org.apache.calcite.rel.type.RelDataType,boolean)">areRowTypesEqual</a></span>&#8203;(<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;rowType1,
<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;rowType2,
boolean&nbsp;compareNames)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkProjAndChildInputs(org.apache.calcite.rel.core.Project,boolean)">checkProjAndChildInputs</a></span>&#8203;(<a href="../rel/core/Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;project,
boolean&nbsp;checkNames)</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>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#classifyFilters(org.apache.calcite.rel.RelNode,java.util.List,org.apache.calcite.rel.core.JoinRelType,boolean,boolean,boolean,java.util.List,java.util.List,java.util.List)">classifyFilters</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;joinRel,
java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;filters,
<a href="../rel/core/JoinRelType.html" title="enum in org.apache.calcite.rel.core">JoinRelType</a>&nbsp;joinType,
boolean&nbsp;pushInto,
boolean&nbsp;pushLeft,
boolean&nbsp;pushRight,
java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;joinFilters,
java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;leftFilters,
java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;rightFilters)</code></th>
<td class="colLast">
<div class="block">Classifies filters according to where they should be processed.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>static <a href="../rex/RexCall.html" title="class in org.apache.calcite.rex">RexCall</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#collapseExpandedIsNotDistinctFromExpr(org.apache.calcite.rex.RexCall,org.apache.calcite.rex.RexBuilder)">collapseExpandedIsNotDistinctFromExpr</a></span>&#8203;(<a href="../rex/RexCall.html" title="class in org.apache.calcite.rex">RexCall</a>&nbsp;call,
<a href="../rex/RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a>&nbsp;rexBuilder)</code></th>
<td class="colLast">
<div class="block">Collapses an expanded version of <code>IS NOT DISTINCT FROM</code> expression.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>static java.util.List&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="#conjunctions(org.apache.calcite.rex.RexNode)">conjunctions</a></span>&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;rexPredicate)</code></th>
<td class="colLast">
<div class="block">Returns a condition decomposed by AND.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#contains(org.apache.calcite.rel.RelNode,org.apache.calcite.rel.RelNode)">contains</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;ancestor,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;target)</code></th>
<td class="colLast">
<div class="block">Returns whether relational expression <code>target</code> occurs within a
relational expression <code>ancestor</code>.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>private static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#containsGet(org.apache.calcite.rex.RexNode)">containsGet</a></span>&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;node)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#containsMultisetOrWindowedAgg(org.apache.calcite.rel.core.Calc)">containsMultisetOrWindowedAgg</a></span>&#8203;(<a href="../rel/core/Calc.html" title="class in org.apache.calcite.rel.core">Calc</a>&nbsp;calc)</code></th>
<td class="colLast">
<div class="block">Predicate for whether a <a href="../rel/core/Calc.html" title="class in org.apache.calcite.rel.core"><code>Calc</code></a> contains multisets or windowed
aggregates.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#containsMultisetOrWindowedAgg(org.apache.calcite.rel.core.Filter)">containsMultisetOrWindowedAgg</a></span>&#8203;(<a href="../rel/core/Filter.html" title="class in org.apache.calcite.rel.core">Filter</a>&nbsp;filter)</code></th>
<td class="colLast">
<div class="block">Predicate for whether a <a href="../rel/core/Filter.html" title="class in org.apache.calcite.rel.core"><code>Filter</code></a> contains multisets or windowed
aggregates.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#containsMultisetOrWindowedAgg(org.apache.calcite.rel.core.Project)">containsMultisetOrWindowedAgg</a></span>&#8203;(<a href="../rel/core/Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;project)</code></th>
<td class="colLast">
<div class="block">Predicate for whether a <a href="../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a> contains multisets or windowed
aggregates.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>private static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#containsNullableFields(org.apache.calcite.rel.RelNode)">containsNullableFields</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;r)</code></th>
<td class="colLast">
<div class="block">Determines whether any of the fields in a given relational expression may
contain null values, taking into account constraints on the field types and
also deduced predicates.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>static <a href="../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#correlationColumns(org.apache.calcite.rel.core.CorrelationId,org.apache.calcite.rel.RelNode)">correlationColumns</a></span>&#8203;(<a href="../rel/core/CorrelationId.html" title="class in org.apache.calcite.rel.core">CorrelationId</a>&nbsp;id,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel)</code></th>
<td class="colLast">
<div class="block">Finds which columns of a correlation variable are used within a
relational expression.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#countJoins(org.apache.calcite.rel.RelNode)">countJoins</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rootRel)</code></th>
<td class="colLast">
<div class="block">Returns the number of <a href="../rel/core/Join.html" title="class in org.apache.calcite.rel.core"><code>Join</code></a> nodes in a
tree.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>static <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="#createCastRel(org.apache.calcite.rel.RelNode,org.apache.calcite.rel.type.RelDataType,boolean)">createCastRel</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel,
<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 which casts a rel's output to a desired row type.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>static <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="#createCastRel(org.apache.calcite.rel.RelNode,org.apache.calcite.rel.type.RelDataType,boolean,org.apache.calcite.rel.core.RelFactories.ProjectFactory)">createCastRel</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel,
<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;castRowType,
boolean&nbsp;rename,
<a href="../rel/core/RelFactories.ProjectFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.ProjectFactory</a>&nbsp;projectFactory)</code></th>
<td class="colLast">
<div class="block">Creates a projection which casts a rel's output to a desired row type.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>static <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="#createDistinctRel(org.apache.calcite.rel.RelNode)">createDistinctRel</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="../tools/RelBuilder.html#distinct()"><code>RelBuilder.distinct()</code></a>.</div>
</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>static <a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createDmlRowType(org.apache.calcite.sql.SqlKind,org.apache.calcite.rel.type.RelDataTypeFactory)">createDmlRowType</a></span>&#8203;(<a href="../sql/SqlKind.html" title="enum in org.apache.calcite.sql">SqlKind</a>&nbsp;kind,
<a href="../rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;typeFactory)</code></th>
<td class="colLast">
<div class="block">Creates the row type descriptor for the result of a DML operation, which
is a single column named ROWCOUNT of type BIGINT for INSERT;
a single column named PLAN for EXPLAIN.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>static <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="#createEquiJoinCondition(org.apache.calcite.rel.RelNode,java.util.List,org.apache.calcite.rel.RelNode,java.util.List,org.apache.calcite.rex.RexBuilder)">createEquiJoinCondition</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;left,
java.util.List&lt;java.lang.Integer&gt;&nbsp;leftKeys,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;right,
java.util.List&lt;java.lang.Integer&gt;&nbsp;rightKeys,
<a href="../rex/RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a>&nbsp;rexBuilder)</code></th>
<td class="colLast">
<div class="block">Builds an equi-join condition from a set of left and right keys.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>static <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="#createExistsPlan(org.apache.calcite.plan.RelOptCluster,org.apache.calcite.rel.RelNode,java.util.List,org.apache.calcite.rex.RexLiteral,java.lang.String)">createExistsPlan</a></span>&#8203;(<a href="RelOptCluster.html" title="class in org.apache.calcite.plan">RelOptCluster</a>&nbsp;cluster,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;seekRel,
java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;conditions,
<a href="../rex/RexLiteral.html" title="class in org.apache.calcite.rex">RexLiteral</a>&nbsp;extraExpr,
java.lang.String&nbsp;extraName)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>static <a href="RelOptUtil.Exists.html" title="class in org.apache.calcite.plan">RelOptUtil.Exists</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createExistsPlan(org.apache.calcite.rel.RelNode,org.apache.calcite.plan.RelOptUtil.SubQueryType,org.apache.calcite.plan.RelOptUtil.Logic,boolean)">createExistsPlan</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;seekRel,
<a href="RelOptUtil.SubQueryType.html" title="enum in org.apache.calcite.plan">RelOptUtil.SubQueryType</a>&nbsp;subQueryType,
<a href="RelOptUtil.Logic.html" title="enum in org.apache.calcite.plan">RelOptUtil.Logic</a>&nbsp;logic,
boolean&nbsp;notIn)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>static <a href="RelOptUtil.Exists.html" title="class in org.apache.calcite.plan">RelOptUtil.Exists</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createExistsPlan(org.apache.calcite.rel.RelNode,org.apache.calcite.plan.RelOptUtil.SubQueryType,org.apache.calcite.plan.RelOptUtil.Logic,boolean,org.apache.calcite.tools.RelBuilder)">createExistsPlan</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;seekRel,
<a href="RelOptUtil.SubQueryType.html" title="enum in org.apache.calcite.plan">RelOptUtil.SubQueryType</a>&nbsp;subQueryType,
<a href="RelOptUtil.Logic.html" title="enum in org.apache.calcite.plan">RelOptUtil.Logic</a>&nbsp;logic,
boolean&nbsp;notIn,
<a href="../tools/RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;relBuilder)</code></th>
<td class="colLast">
<div class="block">Creates a plan suitable for use in <code>EXISTS</code> or <code>IN</code>
statements.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>static <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="#createFilter(org.apache.calcite.rel.RelNode,java.lang.Iterable)">createFilter</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;child,
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 filter, using the default filter factory,
or returns the original relational expression if the
condition is trivial.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>static <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="#createFilter(org.apache.calcite.rel.RelNode,java.lang.Iterable,org.apache.calcite.rel.core.RelFactories.FilterFactory)">createFilter</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;child,
java.lang.Iterable&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;conditions,
<a href="../rel/core/RelFactories.FilterFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.FilterFactory</a>&nbsp;filterFactory)</code></th>
<td class="colLast">
<div class="block">Creates a filter using the default factory,
or returns the original relational expression if the
condition is trivial.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>static <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="#createFilter(org.apache.calcite.rel.RelNode,org.apache.calcite.rex.RexNode)">createFilter</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;child,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;condition)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>static <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="#createFilter(org.apache.calcite.rel.RelNode,org.apache.calcite.rex.RexNode,org.apache.calcite.rel.core.RelFactories.FilterFactory)">createFilter</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;child,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;condition,
<a href="../rel/core/RelFactories.FilterFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.FilterFactory</a>&nbsp;filterFactory)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>static <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="#createNullFilter(org.apache.calcite.rel.RelNode,java.lang.Integer%5B%5D)">createNullFilter</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel,
java.lang.Integer[]&nbsp;fieldOrdinals)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>static <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="#createProject(org.apache.calcite.rel.core.RelFactories.ProjectFactory,org.apache.calcite.rel.RelNode,java.util.List)">createProject</a></span>&#8203;(<a href="../rel/core/RelFactories.ProjectFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.ProjectFactory</a>&nbsp;factory,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;child,
java.util.List&lt;java.lang.Integer&gt;&nbsp;posList)</code></th>
<td class="colLast">
<div class="block">Creates a relational expression that projects the given fields of the
input.</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>static <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="#createProject(org.apache.calcite.rel.RelNode,java.util.List,java.util.List)">createProject</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;child,
java.util.List&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;exprList,
java.util.List&lt;java.lang.String&gt;&nbsp;fieldNameList)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>static <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="#createProject(org.apache.calcite.rel.RelNode,java.util.List,java.util.List,boolean)">createProject</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;child,
java.util.List&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;exprs,
java.util.List&lt;java.lang.String&gt;&nbsp;fieldNames,
boolean&nbsp;optimize)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code>static <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="#createProject(org.apache.calcite.rel.RelNode,java.util.List,java.util.List,boolean,org.apache.calcite.tools.RelBuilder)">createProject</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;child,
java.util.List&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;exprs,
java.util.List&lt;java.lang.String&gt;&nbsp;fieldNames,
boolean&nbsp;optimize,
<a href="../tools/RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;relBuilder)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use
<a href="../tools/RelBuilder.html#projectNamed(java.lang.Iterable,java.lang.Iterable,boolean)"><code>RelBuilder.projectNamed(Iterable, Iterable, boolean)</code></a></div>
</div>
</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code>static <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="#createProject(org.apache.calcite.rel.RelNode,java.util.List)">createProject</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;child,
java.util.List&lt;java.lang.Integer&gt;&nbsp;posList)</code></th>
<td class="colLast">
<div class="block">Creates a relational expression that projects the given fields of the
input.</div>
</td>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><code>static <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="#createProject(org.apache.calcite.rel.RelNode,java.util.List,boolean)">createProject</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;child,
java.util.List&lt;<a href="../util/Pair.html" title="class in org.apache.calcite.util">Pair</a>&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>,&#8203;java.lang.String&gt;&gt;&nbsp;projectList,
boolean&nbsp;optimize)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr id="i37" class="rowColor">
<td class="colFirst"><code>static <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="#createProject(org.apache.calcite.rel.RelNode,org.apache.calcite.util.mapping.Mappings.TargetMapping)">createProject</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;child,
<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">Creates a <a href="../rel/logical/LogicalProject.html" title="class in org.apache.calcite.rel.logical"><code>LogicalProject</code></a> that
projects particular fields of its input, according to a mapping.</div>
</td>
</tr>
<tr id="i38" class="altColor">
<td class="colFirst"><code>static <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="#createProject(org.apache.calcite.rel.RelNode,org.apache.calcite.util.mapping.Mappings.TargetMapping,org.apache.calcite.rel.core.RelFactories.ProjectFactory)">createProject</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;child,
<a href="../util/mapping/Mappings.TargetMapping.html" title="interface in org.apache.calcite.util.mapping">Mappings.TargetMapping</a>&nbsp;mapping,
<a href="../rel/core/RelFactories.ProjectFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.ProjectFactory</a>&nbsp;projectFactory)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i39" class="rowColor">
<td class="colFirst"><code>static <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="#createProjectJoinRel(java.util.List,org.apache.calcite.rel.RelNode)">createProjectJoinRel</a></span>&#8203;(java.util.List&lt;java.lang.Integer&gt;&nbsp;outputProj,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;joinRel)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr id="i40" class="altColor">
<td class="colFirst"><code>static <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="#createRename(org.apache.calcite.rel.RelNode,java.util.List)">createRename</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel,
java.util.List&lt;java.lang.String&gt;&nbsp;fieldNames)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr id="i41" class="rowColor">
<td class="colFirst"><code>static <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="#createRenameRel(org.apache.calcite.rel.type.RelDataType,org.apache.calcite.rel.RelNode)">createRenameRel</a></span>&#8203;(<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;outputType,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr id="i42" class="altColor">
<td class="colFirst"><code>static <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="#createSingleValueAggRel(org.apache.calcite.plan.RelOptCluster,org.apache.calcite.rel.RelNode)">createSingleValueAggRel</a></span>&#8203;(<a href="RelOptCluster.html" title="class in org.apache.calcite.plan">RelOptCluster</a>&nbsp;cluster,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel)</code></th>
<td class="colLast">
<div class="block">Creates a LogicalAggregate that removes all duplicates from the result of
an underlying relational expression.</div>
</td>
</tr>
<tr id="i43" class="rowColor">
<td class="colFirst"><code>static java.util.List&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="#createSwappedJoinExprs(org.apache.calcite.rel.RelNode,org.apache.calcite.rel.core.Join,boolean)">createSwappedJoinExprs</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;newJoin,
<a href="../rel/core/Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;origJoin,
boolean&nbsp;origOrder)</code></th>
<td class="colLast">
<div class="block">Creates projection expressions reflecting the swapping of a join's input.</div>
</td>
</tr>
<tr id="i44" class="altColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#decomposeConjunction(org.apache.calcite.rex.RexNode,java.util.List)">decomposeConjunction</a></span>&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;rexPredicate,
java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;rexList)</code></th>
<td class="colLast">
<div class="block">Decomposes a predicate into a list of expressions that are AND'ed
together.</div>
</td>
</tr>
<tr id="i45" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#decomposeConjunction(org.apache.calcite.rex.RexNode,java.util.List,java.util.List)">decomposeConjunction</a></span>&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;rexPredicate,
java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;rexList,
java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;notList)</code></th>
<td class="colLast">
<div class="block">Decomposes a predicate into a list of expressions that are AND'ed
together, and a list of expressions that are preceded by NOT.</div>
</td>
</tr>
<tr id="i46" class="altColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#decomposeDisjunction(org.apache.calcite.rex.RexNode,java.util.List)">decomposeDisjunction</a></span>&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;rexPredicate,
java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;rexList)</code></th>
<td class="colLast">
<div class="block">Decomposes a predicate into a list of expressions that are OR'ed
together.</div>
</td>
</tr>
<tr id="i47" class="rowColor">
<td class="colFirst"><code>static java.util.List&lt;<a href="../rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#deduplicateColumns(java.util.List,java.util.List)">deduplicateColumns</a></span>&#8203;(java.util.List&lt;<a href="../rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;baseColumns,
java.util.List&lt;<a href="../rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;extendedColumns)</code></th>
<td class="colLast">
<div class="block">Returns the set of columns with unique names, with prior columns taking
precedence over columns that appear later in the list.</div>
</td>
</tr>
<tr id="i48" class="altColor">
<td class="colFirst"><code>static java.util.List&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="#disjunctions(org.apache.calcite.rex.RexNode)">disjunctions</a></span>&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;rexPredicate)</code></th>
<td class="colLast">
<div class="block">Returns a condition decomposed by OR.</div>
</td>
</tr>
<tr id="i49" class="rowColor">
<td class="colFirst"><code>private static <a href="../rex/RexCall.html" title="class in org.apache.calcite.rex">RexCall</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#doCollapseExpandedIsNotDistinctFrom(org.apache.calcite.rex.RexBuilder,org.apache.calcite.rex.RexCall,org.apache.calcite.rex.RexCall,org.apache.calcite.rex.RexCall,org.apache.calcite.rex.RexCall)">doCollapseExpandedIsNotDistinctFrom</a></span>&#8203;(<a href="../rex/RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a>&nbsp;rexBuilder,
<a href="../rex/RexCall.html" title="class in org.apache.calcite.rex">RexCall</a>&nbsp;call,
<a href="../rex/RexCall.html" title="class in org.apache.calcite.rex">RexCall</a>&nbsp;ifNull0Call,
<a href="../rex/RexCall.html" title="class in org.apache.calcite.rex">RexCall</a>&nbsp;ifNull1Call,
<a href="../rex/RexCall.html" title="class in org.apache.calcite.rex">RexCall</a>&nbsp;equalsCall)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i50" class="altColor">
<td class="colFirst"><code>private static <a href="../rex/RexCall.html" title="class in org.apache.calcite.rex">RexCall</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#doCollapseExpandedIsNotDistinctFromCaseExpr(org.apache.calcite.rex.RexCall,org.apache.calcite.rex.RexBuilder)">doCollapseExpandedIsNotDistinctFromCaseExpr</a></span>&#8203;(<a href="../rex/RexCall.html" title="class in org.apache.calcite.rex">RexCall</a>&nbsp;call,
<a href="../rex/RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a>&nbsp;rexBuilder)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i51" class="rowColor">
<td class="colFirst"><code>private static <a href="../rex/RexCall.html" title="class in org.apache.calcite.rex">RexCall</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#doCollapseExpandedIsNotDistinctFromOrExpr(org.apache.calcite.rex.RexCall,org.apache.calcite.rex.RexBuilder)">doCollapseExpandedIsNotDistinctFromOrExpr</a></span>&#8203;(<a href="../rex/RexCall.html" title="class in org.apache.calcite.rex">RexCall</a>&nbsp;call,
<a href="../rex/RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a>&nbsp;rexBuilder)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i52" class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#dumpPlan(java.lang.String,org.apache.calcite.rel.RelNode,boolean,org.apache.calcite.sql.SqlExplainLevel)">dumpPlan</a></span>&#8203;(java.lang.String&nbsp;header,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel,
boolean&nbsp;asXml,
<a href="../sql/SqlExplainLevel.html" title="enum in org.apache.calcite.sql">SqlExplainLevel</a>&nbsp;detailLevel)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr id="i53" class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#dumpPlan(java.lang.String,org.apache.calcite.rel.RelNode,org.apache.calcite.sql.SqlExplainFormat,org.apache.calcite.sql.SqlExplainLevel)">dumpPlan</a></span>&#8203;(java.lang.String&nbsp;header,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel,
<a href="../sql/SqlExplainFormat.html" title="enum in org.apache.calcite.sql">SqlExplainFormat</a>&nbsp;format,
<a href="../sql/SqlExplainLevel.html" title="enum in org.apache.calcite.sql">SqlExplainLevel</a>&nbsp;detailLevel)</code></th>
<td class="colLast">
<div class="block">Dumps a plan as a string.</div>
</td>
</tr>
<tr id="i54" class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#dumpType(org.apache.calcite.rel.type.RelDataType)">dumpType</a></span>&#8203;(<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i55" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#eq(java.lang.String,org.apache.calcite.rel.type.RelDataType,java.lang.String,org.apache.calcite.rel.type.RelDataType,org.apache.calcite.util.Litmus)">eq</a></span>&#8203;(java.lang.String&nbsp;desc1,
<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type1,
java.lang.String&nbsp;desc2,
<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type2,
<a href="../util/Litmus.html" title="interface in org.apache.calcite.util">Litmus</a>&nbsp;litmus)</code></th>
<td class="colLast">
<div class="block">Returns whether two types are equal using '='.</div>
</td>
</tr>
<tr id="i56" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equal(java.lang.String,org.apache.calcite.rel.type.RelDataType,java.lang.String,org.apache.calcite.rel.type.RelDataType,org.apache.calcite.util.Litmus)">equal</a></span>&#8203;(java.lang.String&nbsp;desc1,
<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type1,
java.lang.String&nbsp;desc2,
<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type2,
<a href="../util/Litmus.html" title="interface in org.apache.calcite.util">Litmus</a>&nbsp;litmus)</code></th>
<td class="colLast">
<div class="block">Returns whether two types are equal using
<a href="#areRowTypesEqual(org.apache.calcite.rel.type.RelDataType,org.apache.calcite.rel.type.RelDataType,boolean)"><code>areRowTypesEqual(RelDataType, RelDataType, boolean)</code></a>.</div>
</td>
</tr>
<tr id="i57" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equalType(java.lang.String,org.apache.calcite.rel.RelNode,java.lang.String,org.apache.calcite.rel.RelNode,org.apache.calcite.util.Litmus)">equalType</a></span>&#8203;(java.lang.String&nbsp;desc0,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel0,
java.lang.String&nbsp;desc1,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel1,
<a href="../util/Litmus.html" title="interface in org.apache.calcite.util">Litmus</a>&nbsp;litmus)</code></th>
<td class="colLast">
<div class="block">Returns whether two relational expressions have the same row-type.</div>
</td>
</tr>
<tr id="i58" class="altColor">
<td class="colFirst"><code>static java.util.List&lt;java.lang.String&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#findAllTableQualifiedNames(org.apache.calcite.rel.RelNode)">findAllTableQualifiedNames</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel)</code></th>
<td class="colLast">
<div class="block">Returns a list of all table qualified names used by this expression
or its children.</div>
</td>
</tr>
<tr id="i59" class="rowColor">
<td class="colFirst"><code>static java.util.List&lt;<a href="RelOptTable.html" title="interface in org.apache.calcite.plan">RelOptTable</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#findAllTables(org.apache.calcite.rel.RelNode)">findAllTables</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel)</code></th>
<td class="colLast">
<div class="block">Returns a list of all tables used by this expression or its children</div>
</td>
</tr>
<tr id="i60" class="altColor">
<td class="colFirst"><code>static java.util.Set&lt;<a href="RelOptTable.html" title="interface in org.apache.calcite.plan">RelOptTable</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#findTables(org.apache.calcite.rel.RelNode)">findTables</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel)</code></th>
<td class="colLast">
<div class="block">Returns a set of tables used by this expression or its children</div>
</td>
</tr>
<tr id="i61" class="rowColor">
<td class="colFirst"><code>private static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fix(java.util.List,int,int)">fix</a></span>&#8203;(java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;operands,
int&nbsp;before,
int&nbsp;after)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i62" class="altColor">
<td class="colFirst"><code>static java.util.Set&lt;java.lang.Integer&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAllFields(org.apache.calcite.rel.core.Aggregate)">getAllFields</a></span>&#8203;(<a href="../rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core">Aggregate</a>&nbsp;aggregate)</code></th>
<td class="colLast">
<div class="block">Gets all fields in an aggregate.</div>
</td>
</tr>
<tr id="i63" class="rowColor">
<td class="colFirst"><code>static java.util.Map&lt;java.lang.Integer,&#8203;<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="#getColumnConstraints(org.apache.calcite.schema.ModifiableView,org.apache.calcite.rel.type.RelDataType,org.apache.calcite.rel.type.RelDataTypeFactory)">getColumnConstraints</a></span>&#8203;(<a href="../schema/ModifiableView.html" title="interface in org.apache.calcite.schema">ModifiableView</a>&nbsp;modifiableViewTable,
<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetRowType,
<a href="../rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;typeFactory)</code></th>
<td class="colLast">
<div class="block">Returns a mapping of the column ordinal in the underlying table to a column
constraint of the modifiable view.</div>
</td>
</tr>
<tr id="i64" class="altColor">
<td class="colFirst"><code>static <a href="RelOptTable.ToRelContext.html" title="interface in org.apache.calcite.plan">RelOptTable.ToRelContext</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getContext(org.apache.calcite.plan.RelOptCluster)">getContext</a></span>&#8203;(<a href="RelOptCluster.html" title="class in org.apache.calcite.plan">RelOptCluster</a>&nbsp;cluster)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr id="i65" class="rowColor">
<td class="colFirst"><code>static java.util.List&lt;<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getFieldTypeList(org.apache.calcite.rel.type.RelDataType)">getFieldTypeList</a></span>&#8203;(<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</code></th>
<td class="colLast">
<div class="block">Returns a list of the types of the fields in a given struct type.</div>
</td>
</tr>
<tr id="i66" class="altColor">
<td class="colFirst"><code>static java.util.Set&lt;<a href="../rel/core/CorrelationId.html" title="class in org.apache.calcite.rel.core">CorrelationId</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getVariablesSet(org.apache.calcite.rel.RelNode)">getVariablesSet</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel)</code></th>
<td class="colLast">
<div class="block">Returns a list of variables set by a relational expression or its
descendants.</div>
</td>
</tr>
<tr id="i67" class="rowColor">
<td class="colFirst"><code>static java.util.List&lt;<a href="../rel/core/CorrelationId.html" title="class in org.apache.calcite.rel.core">CorrelationId</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getVariablesSetAndUsed(org.apache.calcite.rel.RelNode,org.apache.calcite.rel.RelNode)">getVariablesSetAndUsed</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel0,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel1)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr id="i68" class="altColor">
<td class="colFirst"><code>static java.util.Set&lt;<a href="../rel/core/CorrelationId.html" title="class in org.apache.calcite.rel.core">CorrelationId</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getVariablesUsed(org.apache.calcite.rel.RelNode)">getVariablesUsed</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel)</code></th>
<td class="colLast">
<div class="block">Returns a set of variables used by a relational expression or its
descendants.</div>
</td>
</tr>
<tr id="i69" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#go(org.apache.calcite.rel.RelVisitor,org.apache.calcite.rel.RelNode)">go</a></span>&#8203;(<a href="../rel/RelVisitor.html" title="class in org.apache.calcite.rel">RelVisitor</a>&nbsp;visitor,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;p)</code></th>
<td class="colLast">
<div class="block">Sets a <a href="../rel/RelVisitor.html" title="class in org.apache.calcite.rel"><code>RelVisitor</code></a> going on a given relational expression, and
returns the result.</div>
</td>
</tr>
<tr id="i70" class="altColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#inferViewPredicates(java.util.Map,java.util.List,org.apache.calcite.rex.RexNode)">inferViewPredicates</a></span>&#8203;(java.util.Map&lt;java.lang.Integer,&#8203;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;projectMap,
java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;filters,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;constraint)</code></th>
<td class="colLast">
<div class="block">Decomposes the WHERE clause of a view into predicates that constraint
a column to a particular value.</div>
</td>
</tr>
<tr id="i71" class="rowColor">
<td class="colFirst"><code>static <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="#isDistinctFrom(org.apache.calcite.rex.RexBuilder,org.apache.calcite.rex.RexNode,org.apache.calcite.rex.RexNode,boolean)">isDistinctFrom</a></span>&#8203;(<a href="../rex/RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a>&nbsp;rexBuilder,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;x,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;y,
boolean&nbsp;neg)</code></th>
<td class="colLast">
<div class="block">Returns a translation of the <code>IS DISTINCT FROM</code> (or <code>IS
NOT DISTINCT FROM</code>) sql operator.</div>
</td>
</tr>
<tr id="i72" class="altColor">
<td class="colFirst"><code>private static <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="#isDistinctFromInternal(org.apache.calcite.rex.RexBuilder,org.apache.calcite.rex.RexNode,org.apache.calcite.rex.RexNode,boolean)">isDistinctFromInternal</a></span>&#8203;(<a href="../rex/RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a>&nbsp;rexBuilder,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;x,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;y,
boolean&nbsp;neg)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i73" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isEqui(org.apache.calcite.rel.RelNode,org.apache.calcite.rel.RelNode,org.apache.calcite.rex.RexNode)">isEqui</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;left,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;right,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;condition)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr id="i74" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isLimit(org.apache.calcite.rel.RelNode)">isLimit</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel)</code></th>
<td class="colLast">
<div class="block">Whether this node contains a limit specification.</div>
</td>
</tr>
<tr id="i75" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isOrder(org.apache.calcite.rel.RelNode)">isOrder</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel)</code></th>
<td class="colLast">
<div class="block">Whether this node contains a sort specification.</div>
</td>
</tr>
<tr id="i76" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isPureLimit(org.apache.calcite.rel.RelNode)">isPureLimit</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel)</code></th>
<td class="colLast">
<div class="block">Whether this node is a limit without sort specification.</div>
</td>
</tr>
<tr id="i77" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isPureOrder(org.apache.calcite.rel.RelNode)">isPureOrder</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel)</code></th>
<td class="colLast">
<div class="block">Whether this node is a sort without limit specification.</div>
</td>
</tr>
<tr id="i78" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#notContainsCorrelation(org.apache.calcite.rel.RelNode,org.apache.calcite.rel.core.CorrelationId,org.apache.calcite.util.Litmus)">notContainsCorrelation</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;r,
<a href="../rel/core/CorrelationId.html" title="class in org.apache.calcite.rel.core">CorrelationId</a>&nbsp;correlationId,
<a href="../util/Litmus.html" title="interface in org.apache.calcite.util">Litmus</a>&nbsp;litmus)</code></th>
<td class="colLast">
<div class="block">Returns true, and calls <a href="../util/Litmus.html#succeed()"><code>Litmus.succeed()</code></a> if a given relational
expression does not contain a given correlation.</div>
</td>
</tr>
<tr id="i79" class="rowColor">
<td class="colFirst"><code>static <a href="../sql/SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#op(org.apache.calcite.sql.SqlKind,org.apache.calcite.sql.SqlOperator)">op</a></span>&#8203;(<a href="../sql/SqlKind.html" title="enum in org.apache.calcite.sql">SqlKind</a>&nbsp;kind,
<a href="../sql/SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&nbsp;operator)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i80" class="altColor">
<td class="colFirst"><code>static <a href="../util/mapping/Mappings.TargetMapping.html" title="interface in org.apache.calcite.util.mapping">Mappings.TargetMapping</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#permutation(java.util.List,org.apache.calcite.rel.type.RelDataType)">permutation</a></span>&#8203;(java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;nodes,
<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;inputRowType)</code></th>
<td class="colLast">
<div class="block">Returns a permutation describing where output fields come from.</div>
</td>
</tr>
<tr id="i81" class="rowColor">
<td class="colFirst"><code>static <a href="../util/mapping/Mappings.TargetMapping.html" title="interface in org.apache.calcite.util.mapping">Mappings.TargetMapping</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#permutationIgnoreCast(java.util.List,org.apache.calcite.rel.type.RelDataType)">permutationIgnoreCast</a></span>&#8203;(java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;nodes,
<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;inputRowType)</code></th>
<td class="colLast">
<div class="block">Returns a permutation describing where output fields come from.</div>
</td>
</tr>
<tr id="i82" class="altColor">
<td class="colFirst"><code>static <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="#permute(org.apache.calcite.rel.RelNode,org.apache.calcite.util.Permutation,java.util.List)">permute</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel,
<a href="../util/Permutation.html" title="class in org.apache.calcite.util">Permutation</a>&nbsp;permutation,
java.util.List&lt;java.lang.String&gt;&nbsp;fieldNames)</code></th>
<td class="colLast">
<div class="block">Creates a relational expression which permutes the output fields of a
relational expression according to a permutation.</div>
</td>
</tr>
<tr id="i83" class="rowColor">
<td class="colFirst"><code>static <a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#permute(org.apache.calcite.rel.type.RelDataTypeFactory,org.apache.calcite.rel.type.RelDataType,org.apache.calcite.util.mapping.Mapping)">permute</a></span>&#8203;(<a href="../rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;typeFactory,
<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;rowType,
<a href="../util/mapping/Mapping.html" title="interface in org.apache.calcite.util.mapping">Mapping</a>&nbsp;mapping)</code></th>
<td class="colLast">
<div class="block">Permutes a record type according to a mapping.</div>
</td>
</tr>
<tr id="i84" class="altColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#projectJoinInputs(org.apache.calcite.rel.RelNode%5B%5D,java.util.List,java.util.List,int,java.util.List,java.util.List,java.util.List)">projectJoinInputs</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>[]&nbsp;inputRels,
java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;leftJoinKeys,
java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;rightJoinKeys,
int&nbsp;systemColCount,
java.util.List&lt;java.lang.Integer&gt;&nbsp;leftKeys,
java.util.List&lt;java.lang.Integer&gt;&nbsp;rightKeys,
java.util.List&lt;java.lang.Integer&gt;&nbsp;outputProj)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr id="i85" class="rowColor">
<td class="colFirst"><code>static <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="#projectMapping(org.apache.calcite.rel.RelNode,org.apache.calcite.util.mapping.Mapping,java.util.List,org.apache.calcite.rel.core.RelFactories.ProjectFactory)">projectMapping</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel,
<a href="../util/mapping/Mapping.html" title="interface in org.apache.calcite.util.mapping">Mapping</a>&nbsp;mapping,
java.util.List&lt;java.lang.String&gt;&nbsp;fieldNames,
<a href="../rel/core/RelFactories.ProjectFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.ProjectFactory</a>&nbsp;projectFactory)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr id="i86" class="altColor">
<td class="colFirst"><code>static <a href="../rel/rules/MultiJoin.html" title="class in org.apache.calcite.rel.rules">MultiJoin</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#projectMultiJoin(org.apache.calcite.rel.rules.MultiJoin,org.apache.calcite.rel.core.Project)">projectMultiJoin</a></span>&#8203;(<a href="../rel/rules/MultiJoin.html" title="class in org.apache.calcite.rel.rules">MultiJoin</a>&nbsp;multiJoin,
<a href="../rel/core/Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;project)</code></th>
<td class="colLast">
<div class="block">Creates a new <a href="../rel/rules/MultiJoin.html" title="class in org.apache.calcite.rel.rules"><code>MultiJoin</code></a> to reflect
projection references from a
<a href="../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a> that is on top of the
<a href="../rel/rules/MultiJoin.html" title="class in org.apache.calcite.rel.rules"><code>MultiJoin</code></a>.</div>
</td>
</tr>
<tr id="i87" class="rowColor">
<td class="colFirst"><code>private static <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="#pushDownEqualJoinConditions(org.apache.calcite.rex.RexNode,int,int,java.util.List,java.util.List,org.apache.calcite.rex.RexBuilder)">pushDownEqualJoinConditions</a></span>&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;condition,
int&nbsp;leftCount,
int&nbsp;rightCount,
java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;extraLeftExprs,
java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;extraRightExprs,
<a href="../rex/RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a>&nbsp;builder)</code></th>
<td class="colLast">
<div class="block">Pushes down parts of a join condition.</div>
</td>
</tr>
<tr id="i88" class="altColor">
<td class="colFirst"><code>static <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="#pushDownJoinConditions(org.apache.calcite.rel.core.Join)">pushDownJoinConditions</a></span>&#8203;(<a href="../rel/core/Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;originalJoin)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr id="i89" class="rowColor">
<td class="colFirst"><code>static <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="#pushDownJoinConditions(org.apache.calcite.rel.core.Join,org.apache.calcite.rel.core.RelFactories.ProjectFactory)">pushDownJoinConditions</a></span>&#8203;(<a href="../rel/core/Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;originalJoin,
<a href="../rel/core/RelFactories.ProjectFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.ProjectFactory</a>&nbsp;projectFactory)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr id="i90" class="altColor">
<td class="colFirst"><code>static <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="#pushDownJoinConditions(org.apache.calcite.rel.core.Join,org.apache.calcite.tools.RelBuilder)">pushDownJoinConditions</a></span>&#8203;(<a href="../rel/core/Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;originalJoin,
<a href="../tools/RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;relBuilder)</code></th>
<td class="colLast">
<div class="block">Pushes down expressions in "equal" join condition.</div>
</td>
</tr>
<tr id="i91" class="rowColor">
<td class="colFirst"><code>private static <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="#pushDownJoinConditions(org.apache.calcite.rel.core.Join,org.apache.calcite.tools.RelBuilderFactory)">pushDownJoinConditions</a></span>&#8203;(<a href="../rel/core/Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;originalJoin,
<a href="../tools/RelBuilderFactory.html" title="interface in org.apache.calcite.tools">RelBuilderFactory</a>&nbsp;relBuilderFactory)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i92" class="altColor">
<td class="colFirst"><code>static <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="#pushFilterPastProject(org.apache.calcite.rex.RexNode,org.apache.calcite.rel.core.Project)">pushFilterPastProject</a></span>&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;filter,
<a href="../rel/core/Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;projRel)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr id="i93" class="rowColor">
<td class="colFirst"><code>static java.util.List&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="#pushPastProject(java.util.List,org.apache.calcite.rel.core.Project)">pushPastProject</a></span>&#8203;(java.util.List&lt;? extends <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;nodes,
<a href="../rel/core/Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;project)</code></th>
<td class="colLast">
<div class="block">Converts a list of expressions that are based on the output fields of a
<a href="../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a> to equivalent expressions on the Project's
input fields.</div>
</td>
</tr>
<tr id="i94" class="altColor">
<td class="colFirst"><code>static <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="#pushPastProject(org.apache.calcite.rex.RexNode,org.apache.calcite.rel.core.Project)">pushPastProject</a></span>&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;node,
<a href="../rel/core/Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;project)</code></th>
<td class="colLast">
<div class="block">Converts an expression that is based on the output fields of a
<a href="../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a> to an equivalent expression on the Project's
input fields.</div>
</td>
</tr>
<tr id="i95" class="rowColor">
<td class="colFirst"><code>private static <a href="../rex/RexShuttle.html" title="class in org.apache.calcite.rex">RexShuttle</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#pushShuttle(org.apache.calcite.rel.core.Project)">pushShuttle</a></span>&#8203;(<a href="../rel/core/Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;project)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i96" class="altColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#registerAbstractRelationalRules(org.apache.calcite.plan.RelOptPlanner)">registerAbstractRelationalRules</a></span>&#8203;(<a href="RelOptPlanner.html" title="interface in org.apache.calcite.plan">RelOptPlanner</a>&nbsp;planner)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i97" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#registerAbstractRels(org.apache.calcite.plan.RelOptPlanner)">registerAbstractRels</a></span>&#8203;(<a href="RelOptPlanner.html" title="interface in org.apache.calcite.plan">RelOptPlanner</a>&nbsp;planner)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr id="i98" class="altColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#registerAbstractRules(org.apache.calcite.plan.RelOptPlanner)">registerAbstractRules</a></span>&#8203;(<a href="RelOptPlanner.html" title="interface in org.apache.calcite.plan">RelOptPlanner</a>&nbsp;planner)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i99" class="rowColor">
<td class="colFirst"><code>private static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#registerBaseRules(org.apache.calcite.plan.RelOptPlanner)">registerBaseRules</a></span>&#8203;(<a href="RelOptPlanner.html" title="interface in org.apache.calcite.plan">RelOptPlanner</a>&nbsp;planner)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i100" class="altColor">
<td class="colFirst"><code>private static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#registerCalcRules(org.apache.calcite.plan.RelOptPlanner)">registerCalcRules</a></span>&#8203;(<a href="RelOptPlanner.html" title="interface in org.apache.calcite.plan">RelOptPlanner</a>&nbsp;planner)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i101" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#registerDefaultRules(org.apache.calcite.plan.RelOptPlanner,boolean,boolean)">registerDefaultRules</a></span>&#8203;(<a href="RelOptPlanner.html" title="interface in org.apache.calcite.plan">RelOptPlanner</a>&nbsp;planner,
boolean&nbsp;enableMaterialziations,
boolean&nbsp;enableBindable)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i102" class="altColor">
<td class="colFirst"><code>private static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#registerEnumerableRules(org.apache.calcite.plan.RelOptPlanner)">registerEnumerableRules</a></span>&#8203;(<a href="RelOptPlanner.html" title="interface in org.apache.calcite.plan">RelOptPlanner</a>&nbsp;planner)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i103" class="rowColor">
<td class="colFirst"><code>private static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#registerMaterializationRules(org.apache.calcite.plan.RelOptPlanner)">registerMaterializationRules</a></span>&#8203;(<a href="RelOptPlanner.html" title="interface in org.apache.calcite.plan">RelOptPlanner</a>&nbsp;planner)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i104" class="altColor">
<td class="colFirst"><code>private static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#registerReductionRules(org.apache.calcite.plan.RelOptPlanner)">registerReductionRules</a></span>&#8203;(<a href="RelOptPlanner.html" title="interface in org.apache.calcite.plan">RelOptPlanner</a>&nbsp;planner)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i105" class="rowColor">
<td class="colFirst"><code>static <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="#renameIfNecessary(org.apache.calcite.rel.RelNode,org.apache.calcite.rel.type.RelDataType)">renameIfNecessary</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel,
<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;desiredRowType)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr id="i106" class="altColor">
<td class="colFirst"><code>static <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="#replace(org.apache.calcite.rel.RelNode,org.apache.calcite.rel.RelNode,org.apache.calcite.rel.RelNode)">replace</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;query,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;find,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;replace)</code></th>
<td class="colLast">
<div class="block">Within a relational expression <code>query</code>, replaces occurrences of
<code>find</code> with <code>replace</code>.</div>
</td>
</tr>
<tr id="i107" class="rowColor">
<td class="colFirst"><code>static <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="#replaceInput(org.apache.calcite.rel.RelNode,int,org.apache.calcite.rel.RelNode)">replaceInput</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;parent,
int&nbsp;ordinal,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;newInput)</code></th>
<td class="colLast">
<div class="block">Returns a shallow copy of a relational expression with a particular
input replaced.</div>
</td>
</tr>
<tr id="i108" class="altColor">
<td class="colFirst"><code>private static <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="#replaceRecurse(org.apache.calcite.rel.RelNode,org.apache.calcite.rel.RelNode,org.apache.calcite.rel.RelNode)">replaceRecurse</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;query,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;find,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;replace)</code></th>
<td class="colLast">
<div class="block">Helper for <a href="#replace(org.apache.calcite.rel.RelNode,org.apache.calcite.rel.RelNode,org.apache.calcite.rel.RelNode)"><code>replace(org.apache.calcite.rel.RelNode, org.apache.calcite.rel.RelNode, org.apache.calcite.rel.RelNode)</code></a>.</div>
</td>
</tr>
<tr id="i109" class="rowColor">
<td class="colFirst"><code>private static <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="#shiftFilter(int,int,int,org.apache.calcite.rex.RexBuilder,java.util.List,int,java.util.List,org.apache.calcite.rex.RexNode)">shiftFilter</a></span>&#8203;(int&nbsp;start,
int&nbsp;end,
int&nbsp;offset,
<a href="../rex/RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a>&nbsp;rexBuilder,
java.util.List&lt;<a href="../rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;joinFields,
int&nbsp;nTotalFields,
java.util.List&lt;<a href="../rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;rightFields,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;filter)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i110" class="altColor">
<td class="colFirst"><code>static <a href="../rel/core/JoinRelType.html" title="enum in org.apache.calcite.rel.core">JoinRelType</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#simplifyJoin(org.apache.calcite.rel.RelNode,com.google.common.collect.ImmutableList,org.apache.calcite.rel.core.JoinRelType)">simplifyJoin</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;joinRel,
com.google.common.collect.ImmutableList&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;aboveFilters,
<a href="../rel/core/JoinRelType.html" title="enum in org.apache.calcite.rel.core">JoinRelType</a>&nbsp;joinType)</code></th>
<td class="colLast">
<div class="block">Simplifies outer joins if filter above would reject nulls.</div>
</td>
</tr>
<tr id="i111" class="rowColor">
<td class="colFirst"><code>static <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="#splitCorrelatedFilterCondition(org.apache.calcite.rel.core.Filter,java.util.List,java.util.List,boolean)">splitCorrelatedFilterCondition</a></span>&#8203;(<a href="../rel/core/Filter.html" title="class in org.apache.calcite.rel.core">Filter</a>&nbsp;filter,
java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;joinKeys,
java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;correlatedJoinKeys,
boolean&nbsp;extractCorrelatedFieldAccess)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i112" class="altColor">
<td class="colFirst"><code>private static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#splitCorrelatedFilterCondition(org.apache.calcite.rel.core.Filter,org.apache.calcite.rex.RexNode,java.util.List,java.util.List,java.util.List,boolean)">splitCorrelatedFilterCondition</a></span>&#8203;(<a href="../rel/core/Filter.html" title="class in org.apache.calcite.rel.core">Filter</a>&nbsp;filter,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;condition,
java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;joinKeys,
java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;correlatedJoinKeys,
java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;nonEquiList,
boolean&nbsp;extractCorrelatedFieldAccess)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i113" class="rowColor">
<td class="colFirst"><code>static <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="#splitCorrelatedFilterCondition(org.apache.calcite.rel.logical.LogicalFilter,java.util.List,java.util.List)">splitCorrelatedFilterCondition</a></span>&#8203;(<a href="../rel/logical/LogicalFilter.html" title="class in org.apache.calcite.rel.logical">LogicalFilter</a>&nbsp;filter,
java.util.List&lt;<a href="../rex/RexInputRef.html" title="class in org.apache.calcite.rex">RexInputRef</a>&gt;&nbsp;joinKeys,
java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;correlatedJoinKeys)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr id="i114" class="altColor">
<td class="colFirst"><code>static <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="#splitCorrelatedFilterCondition(org.apache.calcite.rel.logical.LogicalFilter,java.util.List,java.util.List,boolean)">splitCorrelatedFilterCondition</a></span>&#8203;(<a href="../rel/logical/LogicalFilter.html" title="class in org.apache.calcite.rel.logical">LogicalFilter</a>&nbsp;filter,
java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;joinKeys,
java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;correlatedJoinKeys,
boolean&nbsp;extractCorrelatedFieldAccess)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i115" class="rowColor">
<td class="colFirst"><code>private static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#splitCorrelatedFilterCondition(org.apache.calcite.rel.logical.LogicalFilter,org.apache.calcite.rex.RexNode,java.util.List,java.util.List,java.util.List)">splitCorrelatedFilterCondition</a></span>&#8203;(<a href="../rel/logical/LogicalFilter.html" title="class in org.apache.calcite.rel.logical">LogicalFilter</a>&nbsp;filter,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;condition,
java.util.List&lt;<a href="../rex/RexInputRef.html" title="class in org.apache.calcite.rex">RexInputRef</a>&gt;&nbsp;joinKeys,
java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;correlatedJoinKeys,
java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;nonEquiList)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i116" class="altColor">
<td class="colFirst"><code>private static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#splitCorrelatedFilterCondition(org.apache.calcite.rel.logical.LogicalFilter,org.apache.calcite.rex.RexNode,java.util.List,java.util.List,java.util.List,boolean)">splitCorrelatedFilterCondition</a></span>&#8203;(<a href="../rel/logical/LogicalFilter.html" title="class in org.apache.calcite.rel.logical">LogicalFilter</a>&nbsp;filter,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;condition,
java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;joinKeys,
java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;correlatedJoinKeys,
java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;nonEquiList,
boolean&nbsp;extractCorrelatedFieldAccess)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i117" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#splitFilters(org.apache.calcite.util.ImmutableBitSet,org.apache.calcite.rex.RexNode,java.util.List,java.util.List)">splitFilters</a></span>&#8203;(<a href="../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;childBitmap,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;predicate,
java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;pushable,
java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;notPushable)</code></th>
<td class="colLast">
<div class="block">Splits a filter into two lists, depending on whether or not the filter
only references its child input</div>
</td>
</tr>
<tr id="i118" class="altColor">
<td class="colFirst"><code>static <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="#splitJoinCondition(java.util.List,java.util.List,org.apache.calcite.rex.RexNode,java.util.List,java.util.List,java.util.List)">splitJoinCondition</a></span>&#8203;(java.util.List&lt;<a href="../rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;sysFieldList,
java.util.List&lt;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&gt;&nbsp;inputs,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;condition,
java.util.List&lt;java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&gt;&nbsp;joinKeys,
java.util.List&lt;java.lang.Integer&gt;&nbsp;filterNulls,
java.util.List&lt;<a href="../sql/SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&gt;&nbsp;rangeOp)</code></th>
<td class="colLast">
<div class="block">Splits out the equi-join (and optionally, a single non-equi) components
of a join condition, and returns what's left.</div>
</td>
</tr>
<tr id="i119" class="rowColor">
<td class="colFirst"><code>private static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#splitJoinCondition(java.util.List,java.util.List,org.apache.calcite.rex.RexNode,java.util.List,java.util.List,java.util.List,java.util.List)">splitJoinCondition</a></span>&#8203;(java.util.List&lt;<a href="../rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;sysFieldList,
java.util.List&lt;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&gt;&nbsp;inputs,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;condition,
java.util.List&lt;java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&gt;&nbsp;joinKeys,
java.util.List&lt;java.lang.Integer&gt;&nbsp;filterNulls,
java.util.List&lt;<a href="../sql/SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&gt;&nbsp;rangeOp,
java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;nonEquiList)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i120" class="altColor">
<td class="colFirst"><code>static <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="#splitJoinCondition(java.util.List,org.apache.calcite.rel.RelNode,org.apache.calcite.rel.RelNode,org.apache.calcite.rex.RexNode,java.util.List,java.util.List,java.util.List,java.util.List)">splitJoinCondition</a></span>&#8203;(java.util.List&lt;<a href="../rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;sysFieldList,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;leftRel,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rightRel,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;condition,
java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;leftJoinKeys,
java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;rightJoinKeys,
java.util.List&lt;java.lang.Integer&gt;&nbsp;filterNulls,
java.util.List&lt;<a href="../sql/SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&gt;&nbsp;rangeOp)</code></th>
<td class="colLast">
<div class="block">Splits out the equi-join (and optionally, a single non-equi) components
of a join condition, and returns what's left.</div>
</td>
</tr>
<tr id="i121" class="rowColor">
<td class="colFirst"><code>static <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="#splitJoinCondition(org.apache.calcite.rel.RelNode,org.apache.calcite.rel.RelNode,org.apache.calcite.rex.RexNode,java.util.List,java.util.List,java.util.List)">splitJoinCondition</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;left,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;right,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;condition,
java.util.List&lt;java.lang.Integer&gt;&nbsp;leftKeys,
java.util.List&lt;java.lang.Integer&gt;&nbsp;rightKeys,
java.util.List&lt;java.lang.Boolean&gt;&nbsp;filterNulls)</code></th>
<td class="colLast">
<div class="block">Splits out the equi-join components of a join condition, and returns
what's left.</div>
</td>
</tr>
<tr id="i122" class="altColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#splitJoinCondition(org.apache.calcite.rel.RelNode,org.apache.calcite.rel.RelNode,org.apache.calcite.rex.RexNode,java.util.List,java.util.List,java.util.List,java.util.List)">splitJoinCondition</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;left,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;right,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;condition,
java.util.List&lt;java.lang.Integer&gt;&nbsp;leftKeys,
java.util.List&lt;java.lang.Integer&gt;&nbsp;rightKeys,
java.util.List&lt;java.lang.Boolean&gt;&nbsp;filterNulls,
java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;nonEquiList)</code></th>
<td class="colLast">
<div class="block">As
<a href="#splitJoinCondition(org.apache.calcite.rel.RelNode,org.apache.calcite.rel.RelNode,org.apache.calcite.rex.RexNode,java.util.List,java.util.List,java.util.List)"><code>splitJoinCondition(RelNode, RelNode, RexNode, List, List, List)</code></a>,
but writes non-equi conditions to a conjunctive list.</div>
</td>
</tr>
<tr id="i123" class="rowColor">
<td class="colFirst"><code>private static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#splitJoinCondition(org.apache.calcite.rex.RexBuilder,int,org.apache.calcite.rex.RexNode,java.util.List,java.util.List,java.util.List,java.util.List)">splitJoinCondition</a></span>&#8203;(<a href="../rex/RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a>&nbsp;rexBuilder,
int&nbsp;leftFieldCount,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;condition,
java.util.List&lt;java.lang.Integer&gt;&nbsp;leftKeys,
java.util.List&lt;java.lang.Integer&gt;&nbsp;rightKeys,
java.util.List&lt;java.lang.Boolean&gt;&nbsp;filterNulls,
java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;nonEquiList)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i124" class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString(org.apache.calcite.rel.RelNode)">toString</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel)</code></th>
<td class="colLast">
<div class="block">Converts a relational expression to a string, showing just basic
attributes.</div>
</td>
</tr>
<tr id="i125" class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString(org.apache.calcite.rel.RelNode,org.apache.calcite.sql.SqlExplainLevel)">toString</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel,
<a href="../sql/SqlExplainLevel.html" title="enum in org.apache.calcite.sql">SqlExplainLevel</a>&nbsp;detailLevel)</code></th>
<td class="colLast">
<div class="block">Converts a relational expression to a string.</div>
</td>
</tr>
<tr id="i126" class="altColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateValueAgainstConstraint(org.apache.calcite.sql.SqlNode,org.apache.calcite.rex.RexNode,java.util.function.Supplier)">validateValueAgainstConstraint</a></span>&#8203;(<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;sourceValue,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;targetConstraint,
java.util.function.Supplier&lt;<a href="../runtime/CalciteContextException.html" title="class in org.apache.calcite.runtime">CalciteContextException</a>&gt;&nbsp;errorSupplier)</code></th>
<td class="colLast">
<div class="block">Ensures that a source value does not violate the constraint of the target
column.</div>
</td>
</tr>
<tr id="i127" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#verifyTypeEquivalence(org.apache.calcite.rel.RelNode,org.apache.calcite.rel.RelNode,java.lang.Object)">verifyTypeEquivalence</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;originalRel,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;newRel,
java.lang.Object&nbsp;equivalenceClass)</code></th>
<td class="colLast">
<div class="block">Verifies that a row type being added to an equivalence class matches the
existing type, raising an assertion if this is not the case.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a id="B">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>B</h4>
<pre>static final&nbsp;boolean B</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.calcite.plan.RelOptUtil.B">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="EPSILON">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EPSILON</h4>
<pre>public static final&nbsp;double EPSILON</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.calcite.plan.RelOptUtil.EPSILON">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="FILTER_PREDICATE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FILTER_PREDICATE</h4>
<pre>@Deprecated
public static final&nbsp;com.google.common.base.Predicate&lt;<a href="../rel/core/Filter.html" title="class in org.apache.calcite.rel.core">Filter</a>&gt; FILTER_PREDICATE</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
</li>
</ul>
<a id="PROJECT_PREDICATE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>PROJECT_PREDICATE</h4>
<pre>@Deprecated
public static final&nbsp;com.google.common.base.Predicate&lt;<a href="../rel/core/Project.html" title="class in org.apache.calcite.rel.core">Project</a>&gt; PROJECT_PREDICATE</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
</li>
</ul>
<a id="CALC_PREDICATE">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>CALC_PREDICATE</h4>
<pre>@Deprecated
public static final&nbsp;com.google.common.base.Predicate&lt;<a href="../rel/core/Calc.html" title="class in org.apache.calcite.rel.core">Calc</a>&gt; CALC_PREDICATE</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
</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;()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>RelOptUtil</h4>
<pre>public&nbsp;RelOptUtil()</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="isPureLimit(org.apache.calcite.rel.RelNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isPureLimit</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;isPureLimit&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel)</pre>
<div class="block">Whether this node is a limit without sort specification.</div>
</li>
</ul>
<a id="isPureOrder(org.apache.calcite.rel.RelNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isPureOrder</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;isPureOrder&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel)</pre>
<div class="block">Whether this node is a sort without limit specification.</div>
</li>
</ul>
<a id="isLimit(org.apache.calcite.rel.RelNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isLimit</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;isLimit&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel)</pre>
<div class="block">Whether this node contains a limit specification.</div>
</li>
</ul>
<a id="isOrder(org.apache.calcite.rel.RelNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isOrder</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;isOrder&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel)</pre>
<div class="block">Whether this node contains a sort specification.</div>
</li>
</ul>
<a id="findTables(org.apache.calcite.rel.RelNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>findTables</h4>
<pre class="methodSignature">public static&nbsp;java.util.Set&lt;<a href="RelOptTable.html" title="interface in org.apache.calcite.plan">RelOptTable</a>&gt;&nbsp;findTables&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel)</pre>
<div class="block">Returns a set of tables used by this expression or its children</div>
</li>
</ul>
<a id="findAllTables(org.apache.calcite.rel.RelNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>findAllTables</h4>
<pre class="methodSignature">public static&nbsp;java.util.List&lt;<a href="RelOptTable.html" title="interface in org.apache.calcite.plan">RelOptTable</a>&gt;&nbsp;findAllTables&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel)</pre>
<div class="block">Returns a list of all tables used by this expression or its children</div>
</li>
</ul>
<a id="findAllTableQualifiedNames(org.apache.calcite.rel.RelNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>findAllTableQualifiedNames</h4>
<pre class="methodSignature">public static&nbsp;java.util.List&lt;java.lang.String&gt;&nbsp;findAllTableQualifiedNames&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel)</pre>
<div class="block">Returns a list of all table qualified names used by this expression
or its children.</div>
</li>
</ul>
<a id="getVariablesSet(org.apache.calcite.rel.RelNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getVariablesSet</h4>
<pre class="methodSignature">public static&nbsp;java.util.Set&lt;<a href="../rel/core/CorrelationId.html" title="class in org.apache.calcite.rel.core">CorrelationId</a>&gt;&nbsp;getVariablesSet&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel)</pre>
<div class="block">Returns a list of variables set by a relational expression or its
descendants.</div>
</li>
</ul>
<a id="getVariablesSetAndUsed(org.apache.calcite.rel.RelNode,org.apache.calcite.rel.RelNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getVariablesSetAndUsed</h4>
<pre class="methodSignature">@Deprecated
public static&nbsp;java.util.List&lt;<a href="../rel/core/CorrelationId.html" title="class in org.apache.calcite.rel.core">CorrelationId</a>&gt;&nbsp;getVariablesSetAndUsed&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel0,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel1)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
</li>
</ul>
<a id="getVariablesUsed(org.apache.calcite.rel.RelNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getVariablesUsed</h4>
<pre class="methodSignature">public static&nbsp;java.util.Set&lt;<a href="../rel/core/CorrelationId.html" title="class in org.apache.calcite.rel.core">CorrelationId</a>&gt;&nbsp;getVariablesUsed&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel)</pre>
<div class="block">Returns a set of variables used by a relational expression or its
descendants.
<p>The set may contain "duplicates" (variables with different ids that,
when resolved, will reference the same source relational expression).
<p>The item type is the same as
<a href="../rex/RexCorrelVariable.html#id"><code>RexCorrelVariable.id</code></a>.</div>
</li>
</ul>
<a id="correlationColumns(org.apache.calcite.rel.core.CorrelationId,org.apache.calcite.rel.RelNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>correlationColumns</h4>
<pre class="methodSignature">public static&nbsp;<a href="../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;correlationColumns&#8203;(<a href="../rel/core/CorrelationId.html" title="class in org.apache.calcite.rel.core">CorrelationId</a>&nbsp;id,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel)</pre>
<div class="block">Finds which columns of a correlation variable are used within a
relational expression.</div>
</li>
</ul>
<a id="notContainsCorrelation(org.apache.calcite.rel.RelNode,org.apache.calcite.rel.core.CorrelationId,org.apache.calcite.util.Litmus)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>notContainsCorrelation</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;notContainsCorrelation&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;r,
<a href="../rel/core/CorrelationId.html" title="class in org.apache.calcite.rel.core">CorrelationId</a>&nbsp;correlationId,
<a href="../util/Litmus.html" title="interface in org.apache.calcite.util">Litmus</a>&nbsp;litmus)</pre>
<div class="block">Returns true, and calls <a href="../util/Litmus.html#succeed()"><code>Litmus.succeed()</code></a> if a given relational
expression does not contain a given correlation.</div>
</li>
</ul>
<a id="go(org.apache.calcite.rel.RelVisitor,org.apache.calcite.rel.RelNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>go</h4>
<pre class="methodSignature">public static&nbsp;void&nbsp;go&#8203;(<a href="../rel/RelVisitor.html" title="class in org.apache.calcite.rel">RelVisitor</a>&nbsp;visitor,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;p)</pre>
<div class="block">Sets a <a href="../rel/RelVisitor.html" title="class in org.apache.calcite.rel"><code>RelVisitor</code></a> going on a given relational expression, and
returns the result.</div>
</li>
</ul>
<a id="getFieldTypeList(org.apache.calcite.rel.type.RelDataType)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFieldTypeList</h4>
<pre class="methodSignature">public static&nbsp;java.util.List&lt;<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&nbsp;getFieldTypeList&#8203;(<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</pre>
<div class="block">Returns a list of the types of the fields in a given struct type. The
list is immutable.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>type</code> - Struct type</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>List of field types</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../rel/type/RelDataType.html#getFieldNames()"><code>RelDataType.getFieldNames()</code></a></dd>
</dl>
</li>
</ul>
<a id="areRowTypesEqual(org.apache.calcite.rel.type.RelDataType,org.apache.calcite.rel.type.RelDataType,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>areRowTypesEqual</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;areRowTypesEqual&#8203;(<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;rowType1,
<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;rowType2,
boolean&nbsp;compareNames)</pre>
</li>
</ul>
<a id="verifyTypeEquivalence(org.apache.calcite.rel.RelNode,org.apache.calcite.rel.RelNode,java.lang.Object)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>verifyTypeEquivalence</h4>
<pre class="methodSignature">public static&nbsp;void&nbsp;verifyTypeEquivalence&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;originalRel,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;newRel,
java.lang.Object&nbsp;equivalenceClass)</pre>
<div class="block">Verifies that a row type being added to an equivalence class matches the
existing type, raising an assertion if this is not the case.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>originalRel</code> - canonical rel for equivalence class</dd>
<dd><code>newRel</code> - rel being added to equivalence class</dd>
<dd><code>equivalenceClass</code> - object representing equivalence class</dd>
</dl>
</li>
</ul>
<a id="permutationIgnoreCast(java.util.List,org.apache.calcite.rel.type.RelDataType)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>permutationIgnoreCast</h4>
<pre class="methodSignature">public static&nbsp;<a href="../util/mapping/Mappings.TargetMapping.html" title="interface in org.apache.calcite.util.mapping">Mappings.TargetMapping</a>&nbsp;permutationIgnoreCast&#8203;(java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;nodes,
<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;inputRowType)</pre>
<div class="block">Returns a permutation describing where output fields come from. In
the returned map, value of <code>map.getTargetOpt(i)</code> is <code>n</code> if
field <code>i</code> projects input field <code>n</code> or applies a cast on
<code>n</code>, -1 if it is another expression.</div>
</li>
</ul>
<a id="permutation(java.util.List,org.apache.calcite.rel.type.RelDataType)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>permutation</h4>
<pre class="methodSignature">public static&nbsp;<a href="../util/mapping/Mappings.TargetMapping.html" title="interface in org.apache.calcite.util.mapping">Mappings.TargetMapping</a>&nbsp;permutation&#8203;(java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;nodes,
<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;inputRowType)</pre>
<div class="block">Returns a permutation describing where output fields come from. In
the returned map, value of <code>map.getTargetOpt(i)</code> is <code>n</code> if
field <code>i</code> projects input field <code>n</code>, -1 if it is an
expression.</div>
</li>
</ul>
<a id="createExistsPlan(org.apache.calcite.plan.RelOptCluster,org.apache.calcite.rel.RelNode,java.util.List,org.apache.calcite.rex.RexLiteral,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createExistsPlan</h4>
<pre class="methodSignature">@Deprecated
public static&nbsp;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;createExistsPlan&#8203;(<a href="RelOptCluster.html" title="class in org.apache.calcite.plan">RelOptCluster</a>&nbsp;cluster,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;seekRel,
java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;conditions,
<a href="../rex/RexLiteral.html" title="class in org.apache.calcite.rex">RexLiteral</a>&nbsp;extraExpr,
java.lang.String&nbsp;extraName)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
</li>
</ul>
<a id="createExistsPlan(org.apache.calcite.rel.RelNode,org.apache.calcite.plan.RelOptUtil.SubQueryType,org.apache.calcite.plan.RelOptUtil.Logic,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createExistsPlan</h4>
<pre class="methodSignature">@Deprecated
public static&nbsp;<a href="RelOptUtil.Exists.html" title="class in org.apache.calcite.plan">RelOptUtil.Exists</a>&nbsp;createExistsPlan&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;seekRel,
<a href="RelOptUtil.SubQueryType.html" title="enum in org.apache.calcite.plan">RelOptUtil.SubQueryType</a>&nbsp;subQueryType,
<a href="RelOptUtil.Logic.html" title="enum in org.apache.calcite.plan">RelOptUtil.Logic</a>&nbsp;logic,
boolean&nbsp;notIn)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
</li>
</ul>
<a id="createExistsPlan(org.apache.calcite.rel.RelNode,org.apache.calcite.plan.RelOptUtil.SubQueryType,org.apache.calcite.plan.RelOptUtil.Logic,boolean,org.apache.calcite.tools.RelBuilder)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createExistsPlan</h4>
<pre class="methodSignature">public static&nbsp;<a href="RelOptUtil.Exists.html" title="class in org.apache.calcite.plan">RelOptUtil.Exists</a>&nbsp;createExistsPlan&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;seekRel,
<a href="RelOptUtil.SubQueryType.html" title="enum in org.apache.calcite.plan">RelOptUtil.SubQueryType</a>&nbsp;subQueryType,
<a href="RelOptUtil.Logic.html" title="enum in org.apache.calcite.plan">RelOptUtil.Logic</a>&nbsp;logic,
boolean&nbsp;notIn,
<a href="../tools/RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;relBuilder)</pre>
<div class="block">Creates a plan suitable for use in <code>EXISTS</code> or <code>IN</code>
statements.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>seekRel</code> - A query rel, for example the resulting rel from 'select *
from emp' or 'values (1,2,3)' or '('Foo', 34)'.</dd>
<dd><code>subQueryType</code> - Sub-query type</dd>
<dd><code>logic</code> - Whether to use 2- or 3-valued boolean logic</dd>
<dd><code>notIn</code> - Whether the operator is NOT IN</dd>
<dd><code>relBuilder</code> - Builder for relational expressions</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A pair of a relational expression which outer joins a boolean
condition column, and a numeric offset. The offset is 2 if column 0 is
the number of rows and column 1 is the number of rows with not-null keys;
0 otherwise.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../sql2rel/SqlToRelConverter.html#convertExists(org.apache.calcite.sql.SqlNode,org.apache.calcite.plan.RelOptUtil.SubQueryType,org.apache.calcite.plan.RelOptUtil.Logic,boolean,org.apache.calcite.rel.type.RelDataType)"><code>SqlToRelConverter.convertExists(org.apache.calcite.sql.SqlNode, org.apache.calcite.plan.RelOptUtil.SubQueryType, org.apache.calcite.plan.RelOptUtil.Logic, boolean, org.apache.calcite.rel.type.RelDataType)</code></a></dd>
</dl>
</li>
</ul>
<a id="createRenameRel(org.apache.calcite.rel.type.RelDataType,org.apache.calcite.rel.RelNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createRenameRel</h4>
<pre class="methodSignature">@Deprecated
public static&nbsp;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;createRenameRel&#8203;(<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;outputType,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel)</pre>