blob: b9301dd3520f0e23b673d2e58e6d57f1fefab674 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>RelOptUtil (Apache Calcite calcite API)</title>
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="RelOptUtil (Apache Calcite calcite API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":9,"i1":9,"i2":41,"i3":9,"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":41,"i18":9,"i19":9,"i20":41,"i21":9,"i22":41,"i23":9,"i24":9,"i25":41,"i26":41,"i27":41,"i28":9,"i29":41,"i30":41,"i31":41,"i32":9,"i33":41,"i34":9,"i35":9,"i36":41,"i37":41,"i38":41,"i39":9,"i40":9,"i41":9,"i42":9,"i43":9,"i44":9,"i45":9,"i46":41,"i47":9,"i48":9,"i49":9,"i50":9,"i51":9,"i52":9,"i53":9,"i54":9,"i55":9,"i56":9,"i57":9,"i58":41,"i59":9,"i60":9,"i61":41,"i62":9,"i63":9,"i64":9,"i65":9,"i66":41,"i67":9,"i68":9,"i69":9,"i70":9,"i71":9,"i72":9,"i73":9,"i74":9,"i75":9,"i76":9,"i77":9,"i78":9,"i79":9,"i80":9,"i81":41,"i82":41,"i83":9,"i84":9,"i85":9,"i86":41,"i87":9,"i88":41,"i89":41,"i90":9,"i91":9,"i92":9,"i93":9,"i94":41,"i95":9,"i96":9,"i97":41,"i98":9,"i99":9,"i100":9,"i101":9,"i102":41,"i103":9,"i104":9,"i105":9,"i106":9,"i107":9,"i108":9,"i109":9,"i110":9,"i111":9,"i112":9};
var tabs = {65535:["t0","所有方法"],1:["t1","静态方法"],8:["t4","具体方法"],32:["t6","已过时的方法"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>您的浏览器已禁用 JavaScript。</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="跳过导航链接">跳过导航链接</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="导航">
<li><a href="../../../../overview-summary.html">概览</a></li>
<li><a href="package-summary.html">程序包</a></li>
<li class="navBarCell1Rev"></li>
<li><a href="package-tree.html"></a></li>
<li><a href="../../../../deprecated-list.html">已过时</a></li>
<li><a href="../../../../index-all.html">索引</a></li>
<li><a href="../../../../help-doc.html">帮助</a></li>
</ul>
<div class="aboutLanguage"><b>Apache Calcite</b></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/calcite/plan/RelOptTable.ViewExpander.html" title="org.apache.calcite.plan中的接口"><span class="typeNameLink">上一个类</span></a></li>
<li><a href="../../../../org/apache/calcite/plan/RelOptUtil.Exists.html" title="org.apache.calcite.plan中的类"><span class="typeNameLink">下一个类</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/calcite/plan/RelOptUtil.html" target="_top">框架</a></li>
<li><a href="RelOptUtil.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>概要:&nbsp;</li>
<li><a href="#nested.class.summary">嵌套</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">字段</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">构造器</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">方法</a></li>
</ul>
<ul class="subNavList">
<li>详细资料:&nbsp;</li>
<li><a href="#field.detail">字段</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">构造器</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">方法</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.calcite.plan</div>
<h2 title="类 RelOptUtil" class="title">类 RelOptUtil</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="java.lang中的类或接口">java.lang.Object</a></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>
<br>
<pre>public abstract class <span class="typeNameLabel">RelOptUtil</span>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="java.lang中的类或接口">Object</a></pre>
<div class="block"><code>RelOptUtil</code> defines static utility methods for use in optimizing
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="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 ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- -->
</a>
<h3>嵌套类概要</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="嵌套类概要表, 列表嵌套类和解释">
<caption><span>嵌套类</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">限定符和类型</th>
<th class="colLast" scope="col">类和说明</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.Exists.html" title="org.apache.calcite.plan中的类">RelOptUtil.Exists</a></span></code>
<div class="block">Result of calling
<a href="../../../../org/apache/calcite/plan/RelOptUtil.html#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="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.InputFinder.html" title="org.apache.calcite.plan中的类">RelOptUtil.InputFinder</a></span></code>
<div class="block">Visitor which builds a bitmap of the inputs used by an expression.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.InputReferencedVisitor.html" title="org.apache.calcite.plan中的类">RelOptUtil.InputReferencedVisitor</a></span></code>
<div class="block">Shuttle that finds the set of inputs that are used.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.Logic.html" title="org.apache.calcite.plan中的枚举">RelOptUtil.Logic</a></span></code>
<div class="block">Policies for handling two- and three-valued boolean logic.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.RexInputConverter.html" title="org.apache.calcite.plan中的类">RelOptUtil.RexInputConverter</a></span></code>
<div class="block">Walks an expression tree, converting the index of RexInputRefs based on
some adjustment factor.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.SubQueryType.html" title="org.apache.calcite.plan中的枚举">RelOptUtil.SubQueryType</a></span></code>
<div class="block">What kind of sub-query.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.TypeDumper.html" title="org.apache.calcite.plan中的类">RelOptUtil.TypeDumper</a></span></code>
<div class="block">Converts types to descriptive strings.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.VariableUsedVisitor.html" title="org.apache.calcite.plan中的类">RelOptUtil.VariableUsedVisitor</a></span></code>
<div class="block">Visitor that finds all variables used in an expression.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>字段概要</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="字段概要表, 列表字段和解释">
<caption><span>字段</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">限定符和类型</th>
<th class="colLast" scope="col">字段和说明</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static com.google.common.base.Predicate&lt;<a href="../../../../org/apache/calcite/rel/core/Calc.html" title="org.apache.calcite.rel.core中的类">Calc</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#CALC_PREDICATE">CALC_PREDICATE</a></span></code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#EPSILON">EPSILON</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static com.google.common.base.Predicate&lt;<a href="../../../../org/apache/calcite/rel/core/Filter.html" title="org.apache.calcite.rel.core中的类">Filter</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#FILTER_PREDICATE">FILTER_PREDICATE</a></span></code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static com.google.common.base.Predicate&lt;<a href="../../../../org/apache/calcite/rel/core/Project.html" title="org.apache.calcite.rel.core中的类">Project</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#PROJECT_PREDICATE">PROJECT_PREDICATE</a></span></code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>构造器概要</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="构造器概要表, 列表构造器和解释">
<caption><span>构造器</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">构造器和说明</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#RelOptUtil--">RelOptUtil</a></span>()</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>方法概要</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="方法概要表, 列表方法和解释">
<caption><span id="t0" class="activeTableTab"><span>所有方法</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">静态方法</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">具体方法</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">已过时的方法</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">限定符和类型</th>
<th class="colLast" scope="col">方法和说明</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>static &lt;T extends <a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&gt;<br>T</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#addTrait-T-org.apache.calcite.plan.RelTrait-">addTrait</a></span>(T&nbsp;rel,
<a href="../../../../org/apache/calcite/plan/RelTrait.html" title="org.apache.calcite.plan中的接口">RelTrait</a>&nbsp;trait)</code>&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="java.lang中的类或接口">Integer</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#adjustKeys-java.util.List-int-">adjustKeys</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="java.lang中的类或接口">Integer</a>&gt;&nbsp;keys,
int&nbsp;adjustment)</code>
<div class="block">Adjusts key values in a list by some fixed amount.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#analyzeSimpleEquiJoin-org.apache.calcite.rel.logical.LogicalJoin-int:A-">analyzeSimpleEquiJoin</a></span>(<a href="../../../../org/apache/calcite/rel/logical/LogicalJoin.html" title="org.apache.calcite.rel.logical中的类">LogicalJoin</a>&nbsp;join,
int[]&nbsp;joinFieldOrdinals)</code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#andJoinFilters-org.apache.calcite.rex.RexBuilder-org.apache.calcite.rex.RexNode-org.apache.calcite.rex.RexNode-">andJoinFilters</a></span>(<a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a>&nbsp;rexBuilder,
<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;left,
<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;right)</code>
<div class="block">Ands two sets of join filters together, either of which can be null.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html?is-external=true" title="java.lang中的类或接口">StringBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#appendRelDescription-java.lang.StringBuilder-org.apache.calcite.rel.RelNode-">appendRelDescription</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html?is-external=true" title="java.lang中的类或接口">StringBuilder</a>&nbsp;sb,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</code>&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#areRowTypesEqual-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.rel.type.RelDataType-boolean-">areRowTypesEqual</a></span>(<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;rowType1,
<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;rowType2,
boolean&nbsp;compareNames)</code>&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#checkProjAndChildInputs-org.apache.calcite.rel.core.Project-boolean-">checkProjAndChildInputs</a></span>(<a href="../../../../org/apache/calcite/rel/core/Project.html" title="org.apache.calcite.rel.core中的类">Project</a>&nbsp;project,
boolean&nbsp;checkNames)</code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#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>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;joinRel,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;filters,
<a href="../../../../org/apache/calcite/rel/core/JoinRelType.html" title="org.apache.calcite.rel.core中的枚举">JoinRelType</a>&nbsp;joinType,
boolean&nbsp;pushInto,
boolean&nbsp;pushLeft,
boolean&nbsp;pushRight,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;joinFilters,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;leftFilters,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;rightFilters)</code>
<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="../../../../org/apache/calcite/rex/RexCall.html" title="org.apache.calcite.rex中的类">RexCall</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#collapseExpandedIsNotDistinctFromExpr-org.apache.calcite.rex.RexCall-org.apache.calcite.rex.RexBuilder-">collapseExpandedIsNotDistinctFromExpr</a></span>(<a href="../../../../org/apache/calcite/rex/RexCall.html" title="org.apache.calcite.rex中的类">RexCall</a>&nbsp;call,
<a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a>&nbsp;rexBuilder)</code>
<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 <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#conjunctions-org.apache.calcite.rex.RexNode-">conjunctions</a></span>(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;rexPredicate)</code>
<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>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#contains-org.apache.calcite.rel.RelNode-org.apache.calcite.rel.RelNode-">contains</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;ancestor,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;target)</code>
<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>static <a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#copyRelHints-org.apache.calcite.rel.RelNode-org.apache.calcite.rel.RelNode-">copyRelHints</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;originalRel,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;newRel)</code>
<div class="block">Copy the <a href="../../../../org/apache/calcite/rel/hint/RelHint.html" title="org.apache.calcite.rel.hint中的类"><code>RelHint</code></a>s from <code>originalRel</code>
to <code>newRel</code> if both of them are <a href="../../../../org/apache/calcite/rel/hint/Hintable.html" title="org.apache.calcite.rel.hint中的接口"><code>Hintable</code></a>.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#copyRelHints-org.apache.calcite.rel.RelNode-org.apache.calcite.rel.RelNode-boolean-">copyRelHints</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;originalRel,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;newRel,
boolean&nbsp;filterHints)</code>
<div class="block">Copy the <a href="../../../../org/apache/calcite/rel/hint/RelHint.html" title="org.apache.calcite.rel.hint中的类"><code>RelHint</code></a>s from <code>originalRel</code>
to <code>newRel</code> if both of them are <a href="../../../../org/apache/calcite/rel/hint/Hintable.html" title="org.apache.calcite.rel.hint中的接口"><code>Hintable</code></a>.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/util/ImmutableBitSet.html" title="org.apache.calcite.util中的类">ImmutableBitSet</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#correlationColumns-org.apache.calcite.rel.core.CorrelationId-org.apache.calcite.rel.RelNode-">correlationColumns</a></span>(<a href="../../../../org/apache/calcite/rel/core/CorrelationId.html" title="org.apache.calcite.rel.core中的类">CorrelationId</a>&nbsp;id,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</code>
<div class="block">Finds which columns of a correlation variable are used within a
relational expression.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#countJoins-org.apache.calcite.rel.RelNode-">countJoins</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rootRel)</code>
<div class="block">Returns the number of <a href="../../../../org/apache/calcite/rel/core/Join.html" title="org.apache.calcite.rel.core中的类"><code>Join</code></a> nodes in a
tree.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#createCastRel-org.apache.calcite.rel.RelNode-org.apache.calcite.rel.type.RelDataType-boolean-">createCastRel</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel,
<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;castRowType,
boolean&nbsp;rename)</code>
<div class="block">Creates a projection which casts a rel's output to a desired row type.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#createCastRel-org.apache.calcite.rel.RelNode-org.apache.calcite.rel.type.RelDataType-boolean-org.apache.calcite.rel.core.RelFactories.ProjectFactory-">createCastRel</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel,
<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;castRowType,
boolean&nbsp;rename,
<a href="../../../../org/apache/calcite/rel/core/RelFactories.ProjectFactory.html" title="org.apache.calcite.rel.core中的接口">RelFactories.ProjectFactory</a>&nbsp;projectFactory)</code>
<div class="block">Creates a projection which casts a rel's output to a desired row type.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#createDistinctRel-org.apache.calcite.rel.RelNode-">createDistinctRel</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;
<div class="block"><span class="deprecationComment">Use <a href="../../../../org/apache/calcite/tools/RelBuilder.html#distinct--"><code>RelBuilder.distinct()</code></a>.</span></div>
</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#createDmlRowType-org.apache.calcite.sql.SqlKind-org.apache.calcite.rel.type.RelDataTypeFactory-">createDmlRowType</a></span>(<a href="../../../../org/apache/calcite/sql/SqlKind.html" title="org.apache.calcite.sql中的枚举">SqlKind</a>&nbsp;kind,
<a href="../../../../org/apache/calcite/rel/type/RelDataTypeFactory.html" title="org.apache.calcite.rel.type中的接口">RelDataTypeFactory</a>&nbsp;typeFactory)</code>
<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="i19" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#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>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;left,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="java.lang中的类或接口">Integer</a>&gt;&nbsp;leftKeys,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;right,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="java.lang中的类或接口">Integer</a>&gt;&nbsp;rightKeys,
<a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a>&nbsp;rexBuilder)</code>
<div class="block">Builds an equi-join condition from a set of left and right keys.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/plan/RelOptUtil.Exists.html" title="org.apache.calcite.plan中的类">RelOptUtil.Exists</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#createExistsPlan-org.apache.calcite.rel.RelNode-org.apache.calcite.plan.RelOptUtil.SubQueryType-org.apache.calcite.plan.RelOptUtil.Logic-boolean-">createExistsPlan</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;seekRel,
<a href="../../../../org/apache/calcite/plan/RelOptUtil.SubQueryType.html" title="org.apache.calcite.plan中的枚举">RelOptUtil.SubQueryType</a>&nbsp;subQueryType,
<a href="../../../../org/apache/calcite/plan/RelOptUtil.Logic.html" title="org.apache.calcite.plan中的枚举">RelOptUtil.Logic</a>&nbsp;logic,
boolean&nbsp;notIn)</code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/plan/RelOptUtil.Exists.html" title="org.apache.calcite.plan中的类">RelOptUtil.Exists</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#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>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;seekRel,
<a href="../../../../org/apache/calcite/plan/RelOptUtil.SubQueryType.html" title="org.apache.calcite.plan中的枚举">RelOptUtil.SubQueryType</a>&nbsp;subQueryType,
<a href="../../../../org/apache/calcite/plan/RelOptUtil.Logic.html" title="org.apache.calcite.plan中的枚举">RelOptUtil.Logic</a>&nbsp;logic,
boolean&nbsp;notIn,
<a href="../../../../org/apache/calcite/tools/RelBuilder.html" title="org.apache.calcite.tools中的类">RelBuilder</a>&nbsp;relBuilder)</code>
<div class="block">Creates a plan suitable for use in <code>EXISTS</code> or <code>IN</code>
statements.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#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>(<a href="../../../../org/apache/calcite/plan/RelOptCluster.html" title="org.apache.calcite.plan中的类">RelOptCluster</a>&nbsp;cluster,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;seekRel,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;conditions,
<a href="../../../../org/apache/calcite/rex/RexLiteral.html" title="org.apache.calcite.rex中的类">RexLiteral</a>&nbsp;extraExpr,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&nbsp;extraName)</code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#createFilter-org.apache.calcite.rel.RelNode-java.lang.Iterable-">createFilter</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;child,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="java.lang中的类或接口">Iterable</a>&lt;? extends <a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;conditions)</code>
<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="i24" class="altColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#createFilter-org.apache.calcite.rel.RelNode-java.lang.Iterable-org.apache.calcite.rel.core.RelFactories.FilterFactory-">createFilter</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;child,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="java.lang中的类或接口">Iterable</a>&lt;? extends <a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;conditions,
<a href="../../../../org/apache/calcite/rel/core/RelFactories.FilterFactory.html" title="org.apache.calcite.rel.core中的接口">RelFactories.FilterFactory</a>&nbsp;filterFactory)</code>
<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="i25" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#createFilter-org.apache.calcite.rel.RelNode-org.apache.calcite.rex.RexNode-">createFilter</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;child,
<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;condition)</code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#createFilter-org.apache.calcite.rel.RelNode-org.apache.calcite.rex.RexNode-org.apache.calcite.rel.core.RelFactories.FilterFactory-">createFilter</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;child,
<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;condition,
<a href="../../../../org/apache/calcite/rel/core/RelFactories.FilterFactory.html" title="org.apache.calcite.rel.core中的接口">RelFactories.FilterFactory</a>&nbsp;filterFactory)</code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#createNullFilter-org.apache.calcite.rel.RelNode-java.lang.Integer:A-">createNullFilter</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="java.lang中的类或接口">Integer</a>[]&nbsp;fieldOrdinals)</code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#createProject-org.apache.calcite.rel.core.RelFactories.ProjectFactory-org.apache.calcite.rel.RelNode-java.util.List-">createProject</a></span>(<a href="../../../../org/apache/calcite/rel/core/RelFactories.ProjectFactory.html" title="org.apache.calcite.rel.core中的接口">RelFactories.ProjectFactory</a>&nbsp;factory,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;child,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="java.lang中的类或接口">Integer</a>&gt;&nbsp;posList)</code>
<div class="block">Creates a relational expression that projects the given fields of the
input.</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#createProject-org.apache.calcite.rel.RelNode-java.util.List-java.util.List-">createProject</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;child,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;? extends <a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;exprList,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&gt;&nbsp;fieldNameList)</code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#createProject-org.apache.calcite.rel.RelNode-java.util.List-java.util.List-boolean-">createProject</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;child,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;? extends <a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;exprs,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&gt;&nbsp;fieldNames,
boolean&nbsp;optimize)</code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#createProject-org.apache.calcite.rel.RelNode-java.util.List-java.util.List-boolean-org.apache.calcite.tools.RelBuilder-">createProject</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;child,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;? extends <a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;exprs,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&gt;&nbsp;fieldNames,
boolean&nbsp;optimize,
<a href="../../../../org/apache/calcite/tools/RelBuilder.html" title="org.apache.calcite.tools中的类">RelBuilder</a>&nbsp;relBuilder)</code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;
<div class="block"><span class="deprecationComment">Use
<a href="../../../../org/apache/calcite/tools/RelBuilder.html#projectNamed-java.lang.Iterable-java.lang.Iterable-boolean-"><code>RelBuilder.projectNamed(Iterable, Iterable, boolean)</code></a></span></div>
</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#createProject-org.apache.calcite.rel.RelNode-java.util.List-">createProject</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;child,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="java.lang中的类或接口">Integer</a>&gt;&nbsp;posList)</code>
<div class="block">Creates a relational expression that projects the given fields of the
input.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#createProject-org.apache.calcite.rel.RelNode-java.util.List-boolean-">createProject</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;child,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/util/Pair.html" title="org.apache.calcite.util中的类">Pair</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&gt;&gt;&nbsp;projectList,
boolean&nbsp;optimize)</code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#createProject-org.apache.calcite.rel.RelNode-org.apache.calcite.util.mapping.Mappings.TargetMapping-">createProject</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;child,
<a href="../../../../org/apache/calcite/util/mapping/Mappings.TargetMapping.html" title="org.apache.calcite.util.mapping中的接口">Mappings.TargetMapping</a>&nbsp;mapping)</code>
<div class="block">Creates a <a href="../../../../org/apache/calcite/rel/logical/LogicalProject.html" title="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="i35" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#createProject-org.apache.calcite.rel.RelNode-org.apache.calcite.util.mapping.Mappings.TargetMapping-org.apache.calcite.rel.core.RelFactories.ProjectFactory-">createProject</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;child,
<a href="../../../../org/apache/calcite/util/mapping/Mappings.TargetMapping.html" title="org.apache.calcite.util.mapping中的接口">Mappings.TargetMapping</a>&nbsp;mapping,
<a href="../../../../org/apache/calcite/rel/core/RelFactories.ProjectFactory.html" title="org.apache.calcite.rel.core中的接口">RelFactories.ProjectFactory</a>&nbsp;projectFactory)</code>&nbsp;</td>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#createProjectJoinRel-java.util.List-org.apache.calcite.rel.RelNode-">createProjectJoinRel</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="java.lang中的类或接口">Integer</a>&gt;&nbsp;outputProj,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;joinRel)</code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</td>
</tr>
<tr id="i37" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#createRename-org.apache.calcite.rel.RelNode-java.util.List-">createRename</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&gt;&nbsp;fieldNames)</code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</td>
</tr>
<tr id="i38" class="altColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#createRenameRel-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.rel.RelNode-">createRenameRel</a></span>(<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;outputType,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</td>
</tr>
<tr id="i39" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#createSingleValueAggRel-org.apache.calcite.plan.RelOptCluster-org.apache.calcite.rel.RelNode-">createSingleValueAggRel</a></span>(<a href="../../../../org/apache/calcite/plan/RelOptCluster.html" title="org.apache.calcite.plan中的类">RelOptCluster</a>&nbsp;cluster,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</code>
<div class="block">Creates a LogicalAggregate that removes all duplicates from the result of
an underlying relational expression.</div>
</td>
</tr>
<tr id="i40" class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#createSwappedJoinExprs-org.apache.calcite.rel.RelNode-org.apache.calcite.rel.core.Join-boolean-">createSwappedJoinExprs</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;newJoin,
<a href="../../../../org/apache/calcite/rel/core/Join.html" title="org.apache.calcite.rel.core中的类">Join</a>&nbsp;origJoin,
boolean&nbsp;origOrder)</code>
<div class="block">Creates projection expressions reflecting the swapping of a join's input.</div>
</td>
</tr>
<tr id="i41" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#decomposeConjunction-org.apache.calcite.rex.RexNode-java.util.List-">decomposeConjunction</a></span>(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;rexPredicate,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;rexList)</code>
<div class="block">Decomposes a predicate into a list of expressions that are AND'ed
together.</div>
</td>
</tr>
<tr id="i42" class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#decomposeConjunction-org.apache.calcite.rex.RexNode-java.util.List-java.util.List-">decomposeConjunction</a></span>(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;rexPredicate,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;rexList,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;notList)</code>
<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="i43" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#decomposeDisjunction-org.apache.calcite.rex.RexNode-java.util.List-">decomposeDisjunction</a></span>(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;rexPredicate,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;rexList)</code>
<div class="block">Decomposes a predicate into a list of expressions that are OR'ed
together.</div>
</td>
</tr>
<tr id="i44" class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataTypeField.html" title="org.apache.calcite.rel.type中的接口">RelDataTypeField</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#deduplicateColumns-java.util.List-java.util.List-">deduplicateColumns</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataTypeField.html" title="org.apache.calcite.rel.type中的接口">RelDataTypeField</a>&gt;&nbsp;baseColumns,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataTypeField.html" title="org.apache.calcite.rel.type中的接口">RelDataTypeField</a>&gt;&nbsp;extendedColumns)</code>
<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="i45" class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#disjunctions-org.apache.calcite.rex.RexNode-">disjunctions</a></span>(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;rexPredicate)</code>
<div class="block">Returns a condition decomposed by OR.</div>
</td>
</tr>
<tr id="i46" class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#dumpPlan-java.lang.String-org.apache.calcite.rel.RelNode-boolean-org.apache.calcite.sql.SqlExplainLevel-">dumpPlan</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&nbsp;header,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel,
boolean&nbsp;asXml,
<a href="../../../../org/apache/calcite/sql/SqlExplainLevel.html" title="org.apache.calcite.sql中的枚举">SqlExplainLevel</a>&nbsp;detailLevel)</code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</td>
</tr>
<tr id="i47" class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#dumpPlan-java.lang.String-org.apache.calcite.rel.RelNode-org.apache.calcite.sql.SqlExplainFormat-org.apache.calcite.sql.SqlExplainLevel-">dumpPlan</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&nbsp;header,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel,
<a href="../../../../org/apache/calcite/sql/SqlExplainFormat.html" title="org.apache.calcite.sql中的枚举">SqlExplainFormat</a>&nbsp;format,
<a href="../../../../org/apache/calcite/sql/SqlExplainLevel.html" title="org.apache.calcite.sql中的枚举">SqlExplainLevel</a>&nbsp;detailLevel)</code>
<div class="block">Dumps a plan as a string.</div>
</td>
</tr>
<tr id="i48" class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#dumpType-org.apache.calcite.rel.type.RelDataType-">dumpType</a></span>(<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;type)</code>&nbsp;</td>
</tr>
<tr id="i49" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#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>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&nbsp;desc1,
<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;type1,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&nbsp;desc2,
<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;type2,
<a href="../../../../org/apache/calcite/util/Litmus.html" title="org.apache.calcite.util中的接口">Litmus</a>&nbsp;litmus)</code>
<div class="block">Returns whether two types are equal using '='.</div>
</td>
</tr>
<tr id="i50" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#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>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&nbsp;desc1,
<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;type1,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&nbsp;desc2,
<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;type2,
<a href="../../../../org/apache/calcite/util/Litmus.html" title="org.apache.calcite.util中的接口">Litmus</a>&nbsp;litmus)</code>
<div class="block">Returns whether two types are equal using
<a href="../../../../org/apache/calcite/plan/RelOptUtil.html#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="i51" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#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>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&nbsp;desc0,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel0,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&nbsp;desc1,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel1,
<a href="../../../../org/apache/calcite/util/Litmus.html" title="org.apache.calcite.util中的接口">Litmus</a>&nbsp;litmus)</code>
<div class="block">Returns whether two relational expressions have the same row-type.</div>
</td>
</tr>
<tr id="i52" class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#findAllTableQualifiedNames-org.apache.calcite.rel.RelNode-">findAllTableQualifiedNames</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</code>
<div class="block">Returns a list of all table qualified names used by this expression
or its children.</div>
</td>
</tr>
<tr id="i53" class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/plan/RelOptTable.html" title="org.apache.calcite.plan中的接口">RelOptTable</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#findAllTables-org.apache.calcite.rel.RelNode-">findAllTables</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</code>
<div class="block">Returns a list of all tables used by this expression or its children</div>
</td>
</tr>
<tr id="i54" class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="java.util中的类或接口">Set</a>&lt;<a href="../../../../org/apache/calcite/plan/RelOptTable.html" title="org.apache.calcite.plan中的接口">RelOptTable</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#findTables-org.apache.calcite.rel.RelNode-">findTables</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</code>
<div class="block">Returns a set of tables used by this expression or its children</div>
</td>
</tr>
<tr id="i55" class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="java.util中的类或接口">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="java.lang中的类或接口">Integer</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#getAllFields-org.apache.calcite.rel.core.Aggregate-">getAllFields</a></span>(<a href="../../../../org/apache/calcite/rel/core/Aggregate.html" title="org.apache.calcite.rel.core中的类">Aggregate</a>&nbsp;aggregate)</code>
<div class="block">Gets all fields in an aggregate.</div>
</td>
</tr>
<tr id="i56" class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="java.util中的类或接口">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="java.lang中的类或接口">Integer</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#getAllFields2-org.apache.calcite.util.ImmutableBitSet-java.util.List-">getAllFields2</a></span>(<a href="../../../../org/apache/calcite/util/ImmutableBitSet.html" title="org.apache.calcite.util中的类">ImmutableBitSet</a>&nbsp;groupSet,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rel/core/AggregateCall.html" title="org.apache.calcite.rel.core中的类">AggregateCall</a>&gt;&nbsp;aggCallList)</code>
<div class="block">Gets all fields in an aggregate.</div>
</td>
</tr>
<tr id="i57" class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="java.util中的类或接口">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="java.lang中的类或接口">Integer</a>,<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#getColumnConstraints-org.apache.calcite.schema.ModifiableView-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.rel.type.RelDataTypeFactory-">getColumnConstraints</a></span>(<a href="../../../../org/apache/calcite/schema/ModifiableView.html" title="org.apache.calcite.schema中的接口">ModifiableView</a>&nbsp;modifiableViewTable,
<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;targetRowType,
<a href="../../../../org/apache/calcite/rel/type/RelDataTypeFactory.html" title="org.apache.calcite.rel.type中的接口">RelDataTypeFactory</a>&nbsp;typeFactory)</code>
<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="i58" class="altColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/plan/RelOptTable.ToRelContext.html" title="org.apache.calcite.plan中的接口">RelOptTable.ToRelContext</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#getContext-org.apache.calcite.plan.RelOptCluster-">getContext</a></span>(<a href="../../../../org/apache/calcite/plan/RelOptCluster.html" title="org.apache.calcite.plan中的类">RelOptCluster</a>&nbsp;cluster)</code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</td>
</tr>
<tr id="i59" class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#getFieldTypeList-org.apache.calcite.rel.type.RelDataType-">getFieldTypeList</a></span>(<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;type)</code>
<div class="block">Returns a list of the types of the fields in a given struct type.</div>
</td>
</tr>
<tr id="i60" class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="java.util中的类或接口">Set</a>&lt;<a href="../../../../org/apache/calcite/rel/core/CorrelationId.html" title="org.apache.calcite.rel.core中的类">CorrelationId</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#getVariablesSet-org.apache.calcite.rel.RelNode-">getVariablesSet</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</code>
<div class="block">Returns a list of variables set by a relational expression or its
descendants.</div>
</td>
</tr>
<tr id="i61" class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rel/core/CorrelationId.html" title="org.apache.calcite.rel.core中的类">CorrelationId</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#getVariablesSetAndUsed-org.apache.calcite.rel.RelNode-org.apache.calcite.rel.RelNode-">getVariablesSetAndUsed</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel0,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel1)</code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</td>
</tr>
<tr id="i62" class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="java.util中的类或接口">Set</a>&lt;<a href="../../../../org/apache/calcite/rel/core/CorrelationId.html" title="org.apache.calcite.rel.core中的类">CorrelationId</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#getVariablesUsed-org.apache.calcite.rel.RelNode-">getVariablesUsed</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</code>
<div class="block">Returns a set of variables used by a relational expression or its
descendants.</div>
</td>
</tr>
<tr id="i63" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#go-org.apache.calcite.rel.RelVisitor-org.apache.calcite.rel.RelNode-">go</a></span>(<a href="../../../../org/apache/calcite/rel/RelVisitor.html" title="org.apache.calcite.rel中的类">RelVisitor</a>&nbsp;visitor,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;p)</code>
<div class="block">Sets a <a href="../../../../org/apache/calcite/rel/RelVisitor.html" title="org.apache.calcite.rel中的类"><code>RelVisitor</code></a> going on a given relational expression, and
returns the result.</div>
</td>
</tr>
<tr id="i64" class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#inferViewPredicates-java.util.Map-java.util.List-org.apache.calcite.rex.RexNode-">inferViewPredicates</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="java.util中的类或接口">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="java.lang中的类或接口">Integer</a>,<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;projectMap,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;filters,
<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;constraint)</code>
<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="i65" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#isDistinctFrom-org.apache.calcite.rex.RexBuilder-org.apache.calcite.rex.RexNode-org.apache.calcite.rex.RexNode-boolean-">isDistinctFrom</a></span>(<a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a>&nbsp;rexBuilder,
<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;x,
<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;y,
boolean&nbsp;neg)</code>
<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="i66" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#isEqui-org.apache.calcite.rel.RelNode-org.apache.calcite.rel.RelNode-org.apache.calcite.rex.RexNode-">isEqui</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;left,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;right,
<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;condition)</code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</td>
</tr>
<tr id="i67" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#isLimit-org.apache.calcite.rel.RelNode-">isLimit</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</code>
<div class="block">Whether this node contains a limit specification.</div>
</td>
</tr>
<tr id="i68" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#isOrder-org.apache.calcite.rel.RelNode-">isOrder</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</code>
<div class="block">Whether this node contains a sort specification.</div>
</td>
</tr>
<tr id="i69" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#isPureLimit-org.apache.calcite.rel.RelNode-">isPureLimit</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</code>
<div class="block">Whether this node is a limit without sort specification.</div>
</td>
</tr>
<tr id="i70" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#isPureOrder-org.apache.calcite.rel.RelNode-">isPureOrder</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</code>
<div class="block">Whether this node is a sort without limit specification.</div>
</td>
</tr>
<tr id="i71" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#notContainsCorrelation-org.apache.calcite.rel.RelNode-org.apache.calcite.rel.core.CorrelationId-org.apache.calcite.util.Litmus-">notContainsCorrelation</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;r,
<a href="../../../../org/apache/calcite/rel/core/CorrelationId.html" title="org.apache.calcite.rel.core中的类">CorrelationId</a>&nbsp;correlationId,
<a href="../../../../org/apache/calcite/util/Litmus.html" title="org.apache.calcite.util中的接口">Litmus</a>&nbsp;litmus)</code>
<div class="block">Returns true, and calls <a href="../../../../org/apache/calcite/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="i72" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#notContainsWindowedAgg-org.apache.calcite.rel.core.Calc-">notContainsWindowedAgg</a></span>(<a href="../../../../org/apache/calcite/rel/core/Calc.html" title="org.apache.calcite.rel.core中的类">Calc</a>&nbsp;calc)</code>
<div class="block">Predicate for if a <a href="../../../../org/apache/calcite/rel/core/Calc.html" title="org.apache.calcite.rel.core中的类"><code>Calc</code></a> does not contain windowed aggregates.</div>
</td>
</tr>
<tr id="i73" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#notContainsWindowedAgg-org.apache.calcite.rel.core.Filter-">notContainsWindowedAgg</a></span>(<a href="../../../../org/apache/calcite/rel/core/Filter.html" title="org.apache.calcite.rel.core中的类">Filter</a>&nbsp;filter)</code>
<div class="block">Predicate for if a <a href="../../../../org/apache/calcite/rel/core/Filter.html" title="org.apache.calcite.rel.core中的类"><code>Filter</code></a> does not windowed aggregates.</div>
</td>
</tr>
<tr id="i74" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#notContainsWindowedAgg-org.apache.calcite.rel.core.Project-">notContainsWindowedAgg</a></span>(<a href="../../../../org/apache/calcite/rel/core/Project.html" title="org.apache.calcite.rel.core中的类">Project</a>&nbsp;project)</code>
<div class="block">Predicate for if a <a href="../../../../org/apache/calcite/rel/core/Project.html" title="org.apache.calcite.rel.core中的类"><code>Project</code></a> does not contain windowed aggregates.</div>
</td>
</tr>
<tr id="i75" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/sql/SqlOperator.html" title="org.apache.calcite.sql中的类">SqlOperator</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#op-org.apache.calcite.sql.SqlKind-org.apache.calcite.sql.SqlOperator-">op</a></span>(<a href="../../../../org/apache/calcite/sql/SqlKind.html" title="org.apache.calcite.sql中的枚举">SqlKind</a>&nbsp;kind,
<a href="../../../../org/apache/calcite/sql/SqlOperator.html" title="org.apache.calcite.sql中的类">SqlOperator</a>&nbsp;operator)</code>&nbsp;</td>
</tr>
<tr id="i76" class="altColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/util/mapping/Mappings.TargetMapping.html" title="org.apache.calcite.util.mapping中的接口">Mappings.TargetMapping</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#permutation-java.util.List-org.apache.calcite.rel.type.RelDataType-">permutation</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;nodes,
<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;inputRowType)</code>
<div class="block">Returns a permutation describing where output fields come from.</div>
</td>
</tr>
<tr id="i77" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/util/mapping/Mappings.TargetMapping.html" title="org.apache.calcite.util.mapping中的接口">Mappings.TargetMapping</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#permutationIgnoreCast-java.util.List-org.apache.calcite.rel.type.RelDataType-">permutationIgnoreCast</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;nodes,
<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;inputRowType)</code>
<div class="block">Returns a permutation describing where output fields come from.</div>
</td>
</tr>
<tr id="i78" class="altColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/util/mapping/Mappings.TargetMapping.html" title="org.apache.calcite.util.mapping中的接口">Mappings.TargetMapping</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#permutationPushDownProject-java.util.List-org.apache.calcite.rel.type.RelDataType-int-int-">permutationPushDownProject</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;nodes,
<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;inputRowType,
int&nbsp;sourceOffset,
int&nbsp;targetOffset)</code>
<div class="block">Returns a permutation describing where the Project's fields come from
after the Project is pushed down.</div>
</td>
</tr>
<tr id="i79" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#permute-org.apache.calcite.rel.type.RelDataTypeFactory-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.util.mapping.Mapping-">permute</a></span>(<a href="../../../../org/apache/calcite/rel/type/RelDataTypeFactory.html" title="org.apache.calcite.rel.type中的接口">RelDataTypeFactory</a>&nbsp;typeFactory,
<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;rowType,
<a href="../../../../org/apache/calcite/util/mapping/Mapping.html" title="org.apache.calcite.util.mapping中的接口">Mapping</a>&nbsp;mapping)</code>
<div class="block">Permutes a record type according to a mapping.</div>
</td>
</tr>
<tr id="i80" class="altColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#permute-org.apache.calcite.rel.RelNode-org.apache.calcite.util.Permutation-java.util.List-">permute</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel,
<a href="../../../../org/apache/calcite/util/Permutation.html" title="org.apache.calcite.util中的类">Permutation</a>&nbsp;permutation,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&gt;&nbsp;fieldNames)</code>
<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="i81" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#projectJoinInputs-org.apache.calcite.rel.RelNode:A-java.util.List-java.util.List-int-java.util.List-java.util.List-java.util.List-">projectJoinInputs</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>[]&nbsp;inputRels,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;leftJoinKeys,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;rightJoinKeys,
int&nbsp;systemColCount,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="java.lang中的类或接口">Integer</a>&gt;&nbsp;leftKeys,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="java.lang中的类或接口">Integer</a>&gt;&nbsp;rightKeys,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="java.lang中的类或接口">Integer</a>&gt;&nbsp;outputProj)</code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</td>
</tr>
<tr id="i82" class="altColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#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>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel,
<a href="../../../../org/apache/calcite/util/mapping/Mapping.html" title="org.apache.calcite.util.mapping中的接口">Mapping</a>&nbsp;mapping,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&gt;&nbsp;fieldNames,
<a href="../../../../org/apache/calcite/rel/core/RelFactories.ProjectFactory.html" title="org.apache.calcite.rel.core中的接口">RelFactories.ProjectFactory</a>&nbsp;projectFactory)</code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</td>
</tr>
<tr id="i83" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/rel/rules/MultiJoin.html" title="org.apache.calcite.rel.rules中的类">MultiJoin</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#projectMultiJoin-org.apache.calcite.rel.rules.MultiJoin-org.apache.calcite.rel.core.Project-">projectMultiJoin</a></span>(<a href="../../../../org/apache/calcite/rel/rules/MultiJoin.html" title="org.apache.calcite.rel.rules中的类">MultiJoin</a>&nbsp;multiJoin,
<a href="../../../../org/apache/calcite/rel/core/Project.html" title="org.apache.calcite.rel.core中的类">Project</a>&nbsp;project)</code>
<div class="block">Creates a new <a href="../../../../org/apache/calcite/rel/rules/MultiJoin.html" title="org.apache.calcite.rel.rules中的类"><code>MultiJoin</code></a> to reflect
projection references from a
<a href="../../../../org/apache/calcite/rel/core/Project.html" title="org.apache.calcite.rel.core中的类"><code>Project</code></a> that is on top of the
<a href="../../../../org/apache/calcite/rel/rules/MultiJoin.html" title="org.apache.calcite.rel.rules中的类"><code>MultiJoin</code></a>.</div>
</td>
</tr>
<tr id="i84" class="altColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#propagateRelHints-org.apache.calcite.rel.RelNode-boolean-">propagateRelHints</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel,
boolean&nbsp;reset)</code>
<div class="block">Propagates the relational expression hints from root node to leaf node.</div>
</td>
</tr>
<tr id="i85" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#propagateRelHints-org.apache.calcite.rel.RelNode-org.apache.calcite.rel.RelNode-">propagateRelHints</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;originalRel,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;equiv)</code>
<div class="block">Copy the <a href="../../../../org/apache/calcite/rel/hint/RelHint.html" title="org.apache.calcite.rel.hint中的类"><code>RelHint</code></a>s from <code>originalRel</code>
to <code>newRel</code> if both of them are <a href="../../../../org/apache/calcite/rel/hint/Hintable.html" title="org.apache.calcite.rel.hint中的接口"><code>Hintable</code></a>.</div>
</td>
</tr>
<tr id="i86" class="altColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#pushDownJoinConditions-org.apache.calcite.rel.core.Join-">pushDownJoinConditions</a></span>(<a href="../../../../org/apache/calcite/rel/core/Join.html" title="org.apache.calcite.rel.core中的类">Join</a>&nbsp;originalJoin)</code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</td>
</tr>
<tr id="i87" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#pushDownJoinConditions-org.apache.calcite.rel.core.Join-org.apache.calcite.tools.RelBuilder-">pushDownJoinConditions</a></span>(<a href="../../../../org/apache/calcite/rel/core/Join.html" title="org.apache.calcite.rel.core中的类">Join</a>&nbsp;originalJoin,
<a href="../../../../org/apache/calcite/tools/RelBuilder.html" title="org.apache.calcite.tools中的类">RelBuilder</a>&nbsp;relBuilder)</code>
<div class="block">Pushes down expressions in "equal" join condition.</div>
</td>
</tr>
<tr id="i88" class="altColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#pushDownJoinConditions-org.apache.calcite.rel.core.Join-org.apache.calcite.rel.core.RelFactories.ProjectFactory-">pushDownJoinConditions</a></span>(<a href="../../../../org/apache/calcite/rel/core/Join.html" title="org.apache.calcite.rel.core中的类">Join</a>&nbsp;originalJoin,
<a href="../../../../org/apache/calcite/rel/core/RelFactories.ProjectFactory.html" title="org.apache.calcite.rel.core中的接口">RelFactories.ProjectFactory</a>&nbsp;projectFactory)</code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</td>
</tr>
<tr id="i89" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#pushFilterPastProject-org.apache.calcite.rex.RexNode-org.apache.calcite.rel.core.Project-">pushFilterPastProject</a></span>(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;filter,
<a href="../../../../org/apache/calcite/rel/core/Project.html" title="org.apache.calcite.rel.core中的类">Project</a>&nbsp;projRel)</code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</td>
</tr>
<tr id="i90" class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#pushPastProject-java.util.List-org.apache.calcite.rel.core.Project-">pushPastProject</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;? extends <a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;nodes,
<a href="../../../../org/apache/calcite/rel/core/Project.html" title="org.apache.calcite.rel.core中的类">Project</a>&nbsp;project)</code>
<div class="block">Converts a list of expressions that are based on the output fields of a
<a href="../../../../org/apache/calcite/rel/core/Project.html" title="org.apache.calcite.rel.core中的类"><code>Project</code></a> to equivalent expressions on the Project's
input fields.</div>
</td>
</tr>
<tr id="i91" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#pushPastProject-org.apache.calcite.rex.RexNode-org.apache.calcite.rel.core.Project-">pushPastProject</a></span>(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;node,
<a href="../../../../org/apache/calcite/rel/core/Project.html" title="org.apache.calcite.rel.core中的类">Project</a>&nbsp;project)</code>
<div class="block">Converts an expression that is based on the output fields of a
<a href="../../../../org/apache/calcite/rel/core/Project.html" title="org.apache.calcite.rel.core中的类"><code>Project</code></a> to an equivalent expression on the Project's
input fields.</div>
</td>
</tr>
<tr id="i92" class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#pushPastProjectUnlessBloat-java.util.List-org.apache.calcite.rel.core.Project-int-">pushPastProjectUnlessBloat</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;? extends <a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;nodes,
<a href="../../../../org/apache/calcite/rel/core/Project.html" title="org.apache.calcite.rel.core中的类">Project</a>&nbsp;project,
int&nbsp;bloat)</code>
<div class="block">As <a href="../../../../org/apache/calcite/plan/RelOptUtil.html#pushPastProject-org.apache.calcite.rex.RexNode-org.apache.calcite.rel.core.Project-"><code>pushPastProject(org.apache.calcite.rex.RexNode, org.apache.calcite.rel.core.Project)</code></a>, but returns null if the resulting expressions
are significantly more complex.</div>
</td>
</tr>
<tr id="i93" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#registerAbstractRelationalRules-org.apache.calcite.plan.RelOptPlanner-">registerAbstractRelationalRules</a></span>(<a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="org.apache.calcite.plan中的接口">RelOptPlanner</a>&nbsp;planner)</code>&nbsp;</td>
</tr>
<tr id="i94" class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#registerAbstractRels-org.apache.calcite.plan.RelOptPlanner-">registerAbstractRels</a></span>(<a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="org.apache.calcite.plan中的接口">RelOptPlanner</a>&nbsp;planner)</code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</td>
</tr>
<tr id="i95" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#registerAbstractRules-org.apache.calcite.plan.RelOptPlanner-">registerAbstractRules</a></span>(<a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="org.apache.calcite.plan中的接口">RelOptPlanner</a>&nbsp;planner)</code>&nbsp;</td>
</tr>
<tr id="i96" class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#registerDefaultRules-org.apache.calcite.plan.RelOptPlanner-boolean-boolean-">registerDefaultRules</a></span>(<a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="org.apache.calcite.plan中的接口">RelOptPlanner</a>&nbsp;planner,
boolean&nbsp;enableMaterialziations,
boolean&nbsp;enableBindable)</code>&nbsp;</td>
</tr>
<tr id="i97" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#renameIfNecessary-org.apache.calcite.rel.RelNode-org.apache.calcite.rel.type.RelDataType-">renameIfNecessary</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel,
<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;desiredRowType)</code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</td>
</tr>
<tr id="i98" class="altColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#replace-org.apache.calcite.rel.RelNode-org.apache.calcite.rel.RelNode-org.apache.calcite.rel.RelNode-">replace</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;query,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;find,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;replace)</code>
<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="i99" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#replaceInput-org.apache.calcite.rel.RelNode-int-org.apache.calcite.rel.RelNode-">replaceInput</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;parent,
int&nbsp;ordinal,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;newInput)</code>
<div class="block">Returns a shallow copy of a relational expression with a particular
input replaced.</div>
</td>
</tr>
<tr id="i100" class="altColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/rel/core/JoinRelType.html" title="org.apache.calcite.rel.core中的枚举">JoinRelType</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#simplifyJoin-org.apache.calcite.rel.RelNode-com.google.common.collect.ImmutableList-org.apache.calcite.rel.core.JoinRelType-">simplifyJoin</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;joinRel,
com.google.common.collect.ImmutableList&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;aboveFilters,
<a href="../../../../org/apache/calcite/rel/core/JoinRelType.html" title="org.apache.calcite.rel.core中的枚举">JoinRelType</a>&nbsp;joinType)</code>
<div class="block">Simplifies outer joins if filter above would reject nulls.</div>
</td>
</tr>
<tr id="i101" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#splitCorrelatedFilterCondition-org.apache.calcite.rel.core.Filter-java.util.List-java.util.List-boolean-">splitCorrelatedFilterCondition</a></span>(<a href="../../../../org/apache/calcite/rel/core/Filter.html" title="org.apache.calcite.rel.core中的类">Filter</a>&nbsp;filter,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;joinKeys,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;correlatedJoinKeys,
boolean&nbsp;extractCorrelatedFieldAccess)</code>&nbsp;</td>
</tr>
<tr id="i102" class="altColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#splitCorrelatedFilterCondition-org.apache.calcite.rel.logical.LogicalFilter-java.util.List-java.util.List-">splitCorrelatedFilterCondition</a></span>(<a href="../../../../org/apache/calcite/rel/logical/LogicalFilter.html" title="org.apache.calcite.rel.logical中的类">LogicalFilter</a>&nbsp;filter,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexInputRef.html" title="org.apache.calcite.rex中的类">RexInputRef</a>&gt;&nbsp;joinKeys,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;correlatedJoinKeys)</code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</td>
</tr>
<tr id="i103" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#splitCorrelatedFilterCondition-org.apache.calcite.rel.logical.LogicalFilter-java.util.List-java.util.List-boolean-">splitCorrelatedFilterCondition</a></span>(<a href="../../../../org/apache/calcite/rel/logical/LogicalFilter.html" title="org.apache.calcite.rel.logical中的类">LogicalFilter</a>&nbsp;filter,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;joinKeys,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;correlatedJoinKeys,
boolean&nbsp;extractCorrelatedFieldAccess)</code>&nbsp;</td>
</tr>
<tr id="i104" class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#splitFilters-org.apache.calcite.util.ImmutableBitSet-org.apache.calcite.rex.RexNode-java.util.List-java.util.List-">splitFilters</a></span>(<a href="../../../../org/apache/calcite/util/ImmutableBitSet.html" title="org.apache.calcite.util中的类">ImmutableBitSet</a>&nbsp;childBitmap,
<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;predicate,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;pushable,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;notPushable)</code>
<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="i105" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#splitJoinCondition-java.util.List-java.util.List-org.apache.calcite.rex.RexNode-java.util.List-java.util.List-java.util.List-">splitJoinCondition</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataTypeField.html" title="org.apache.calcite.rel.type中的接口">RelDataTypeField</a>&gt;&nbsp;sysFieldList,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&gt;&nbsp;inputs,
<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;condition,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&gt;&nbsp;joinKeys,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="java.lang中的类或接口">Integer</a>&gt;&nbsp;filterNulls,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/sql/SqlOperator.html" title="org.apache.calcite.sql中的类">SqlOperator</a>&gt;&nbsp;rangeOp)</code>
<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="i106" class="altColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#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>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataTypeField.html" title="org.apache.calcite.rel.type中的接口">RelDataTypeField</a>&gt;&nbsp;sysFieldList,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;leftRel,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rightRel,
<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;condition,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;leftJoinKeys,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;rightJoinKeys,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="java.lang中的类或接口">Integer</a>&gt;&nbsp;filterNulls,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/sql/SqlOperator.html" title="org.apache.calcite.sql中的类">SqlOperator</a>&gt;&nbsp;rangeOp)</code>
<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="i107" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#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>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;left,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;right,
<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;condition,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="java.lang中的类或接口">Integer</a>&gt;&nbsp;leftKeys,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="java.lang中的类或接口">Integer</a>&gt;&nbsp;rightKeys,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="java.lang中的类或接口">Boolean</a>&gt;&nbsp;filterNulls)</code>
<div class="block">Splits out the equi-join components of a join condition, and returns
what's left.</div>
</td>
</tr>
<tr id="i108" class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#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>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;left,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;right,
<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;condition,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="java.lang中的类或接口">Integer</a>&gt;&nbsp;leftKeys,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="java.lang中的类或接口">Integer</a>&gt;&nbsp;rightKeys,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="java.lang中的类或接口">Boolean</a>&gt;&nbsp;filterNulls,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;nonEquiList)</code>
<div class="block">As
<a href="../../../../org/apache/calcite/plan/RelOptUtil.html#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="i109" class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#toString-org.apache.calcite.rel.RelNode-">toString</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</code>
<div class="block">Converts a relational expression to a string, showing just basic
attributes.</div>
</td>
</tr>
<tr id="i110" class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#toString-org.apache.calcite.rel.RelNode-org.apache.calcite.sql.SqlExplainLevel-">toString</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel,
<a href="../../../../org/apache/calcite/sql/SqlExplainLevel.html" title="org.apache.calcite.sql中的枚举">SqlExplainLevel</a>&nbsp;detailLevel)</code>
<div class="block">Converts a relational expression to a string.</div>
</td>
</tr>
<tr id="i111" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#validateValueAgainstConstraint-org.apache.calcite.sql.SqlNode-org.apache.calcite.rex.RexNode-java.util.function.Supplier-">validateValueAgainstConstraint</a></span>(<a href="../../../../org/apache/calcite/sql/SqlNode.html" title="org.apache.calcite.sql中的类">SqlNode</a>&nbsp;sourceValue,
<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;targetConstraint,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="java.util.function中的类或接口">Supplier</a>&lt;<a href="../../../../org/apache/calcite/runtime/CalciteContextException.html" title="org.apache.calcite.runtime中的类">CalciteContextException</a>&gt;&nbsp;errorSupplier)</code>
<div class="block">Ensures that a source value does not violate the constraint of the target
column.</div>
</td>
</tr>
<tr id="i112" class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptUtil.html#verifyTypeEquivalence-org.apache.calcite.rel.RelNode-org.apache.calcite.rel.RelNode-java.lang.Object-">verifyTypeEquivalence</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;originalRel,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;newRel,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="java.lang中的类或接口">Object</a>&nbsp;equivalenceClass)</code>
<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 name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>从类继承的方法&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="java.lang中的类或接口">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="java.lang中的类或接口">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="java.lang中的类或接口">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="java.lang中的类或接口">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="java.lang中的类或接口">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="java.lang中的类或接口">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="java.lang中的类或接口">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="java.lang中的类或接口">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="java.lang中的类或接口">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="java.lang中的类或接口">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="java.lang中的类或接口">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="java.lang中的类或接口">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>字段详细资料</h3>
<a name="EPSILON">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EPSILON</h4>
<pre>public static final&nbsp;double EPSILON</pre>
<dl>
<dt><span class="seeLabel">另请参阅:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.calcite.plan.RelOptUtil.EPSILON">常量字段值</a></dd>
</dl>
</li>
</ul>
<a name="FILTER_PREDICATE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FILTER_PREDICATE</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="java.lang中的类或接口">@Deprecated</a>
public static final&nbsp;com.google.common.base.Predicate&lt;<a href="../../../../org/apache/calcite/rel/core/Filter.html" title="org.apache.calcite.rel.core中的类">Filter</a>&gt; FILTER_PREDICATE</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</li>
</ul>
<a name="PROJECT_PREDICATE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>PROJECT_PREDICATE</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="java.lang中的类或接口">@Deprecated</a>
public static final&nbsp;com.google.common.base.Predicate&lt;<a href="../../../../org/apache/calcite/rel/core/Project.html" title="org.apache.calcite.rel.core中的类">Project</a>&gt; PROJECT_PREDICATE</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</li>
</ul>
<a name="CALC_PREDICATE">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>CALC_PREDICATE</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="java.lang中的类或接口">@Deprecated</a>
public static final&nbsp;com.google.common.base.Predicate&lt;<a href="../../../../org/apache/calcite/rel/core/Calc.html" title="org.apache.calcite.rel.core中的类">Calc</a>&gt; CALC_PREDICATE</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>构造器详细资料</h3>
<a name="RelOptUtil--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>RelOptUtil</h4>
<pre>public&nbsp;RelOptUtil()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>方法详细资料</h3>
<a name="isPureLimit-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isPureLimit</h4>
<pre>public static&nbsp;boolean&nbsp;isPureLimit(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="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 name="isPureOrder-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isPureOrder</h4>
<pre>public static&nbsp;boolean&nbsp;isPureOrder(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="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 name="isLimit-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isLimit</h4>
<pre>public static&nbsp;boolean&nbsp;isLimit(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</pre>
<div class="block">Whether this node contains a limit specification.</div>
</li>
</ul>
<a name="isOrder-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isOrder</h4>
<pre>public static&nbsp;boolean&nbsp;isOrder(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</pre>
<div class="block">Whether this node contains a sort specification.</div>
</li>
</ul>
<a name="findTables-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>findTables</h4>
<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="java.util中的类或接口">Set</a>&lt;<a href="../../../../org/apache/calcite/plan/RelOptTable.html" title="org.apache.calcite.plan中的接口">RelOptTable</a>&gt;&nbsp;findTables(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="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 name="findAllTables-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>findAllTables</h4>
<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/plan/RelOptTable.html" title="org.apache.calcite.plan中的接口">RelOptTable</a>&gt;&nbsp;findAllTables(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="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 name="findAllTableQualifiedNames-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>findAllTableQualifiedNames</h4>
<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&gt;&nbsp;findAllTableQualifiedNames(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="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 name="getVariablesSet-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getVariablesSet</h4>
<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="java.util中的类或接口">Set</a>&lt;<a href="../../../../org/apache/calcite/rel/core/CorrelationId.html" title="org.apache.calcite.rel.core中的类">CorrelationId</a>&gt;&nbsp;getVariablesSet(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="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 name="getVariablesSetAndUsed-org.apache.calcite.rel.RelNode-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getVariablesSetAndUsed</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="java.lang中的类或接口">@Deprecated</a>
public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rel/core/CorrelationId.html" title="org.apache.calcite.rel.core中的类">CorrelationId</a>&gt;&nbsp;getVariablesSetAndUsed(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel0,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel1)</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</li>
</ul>
<a name="getVariablesUsed-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getVariablesUsed</h4>
<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="java.util中的类或接口">Set</a>&lt;<a href="../../../../org/apache/calcite/rel/core/CorrelationId.html" title="org.apache.calcite.rel.core中的类">CorrelationId</a>&gt;&nbsp;getVariablesUsed(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="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="../../../../org/apache/calcite/rex/RexCorrelVariable.html#id"><code>RexCorrelVariable.id</code></a>.</div>
</li>
</ul>
<a name="correlationColumns-org.apache.calcite.rel.core.CorrelationId-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>correlationColumns</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/util/ImmutableBitSet.html" title="org.apache.calcite.util中的类">ImmutableBitSet</a>&nbsp;correlationColumns(<a href="../../../../org/apache/calcite/rel/core/CorrelationId.html" title="org.apache.calcite.rel.core中的类">CorrelationId</a>&nbsp;id,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="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 name="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>public static&nbsp;boolean&nbsp;notContainsCorrelation(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;r,
<a href="../../../../org/apache/calcite/rel/core/CorrelationId.html" title="org.apache.calcite.rel.core中的类">CorrelationId</a>&nbsp;correlationId,
<a href="../../../../org/apache/calcite/util/Litmus.html" title="org.apache.calcite.util中的接口">Litmus</a>&nbsp;litmus)</pre>
<div class="block">Returns true, and calls <a href="../../../../org/apache/calcite/util/Litmus.html#succeed--"><code>Litmus.succeed()</code></a> if a given relational
expression does not contain a given correlation.</div>
</li>
</ul>
<a name="go-org.apache.calcite.rel.RelVisitor-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>go</h4>
<pre>public static&nbsp;void&nbsp;go(<a href="../../../../org/apache/calcite/rel/RelVisitor.html" title="org.apache.calcite.rel中的类">RelVisitor</a>&nbsp;visitor,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;p)</pre>
<div class="block">Sets a <a href="../../../../org/apache/calcite/rel/RelVisitor.html" title="org.apache.calcite.rel中的类"><code>RelVisitor</code></a> going on a given relational expression, and
returns the result.</div>
</li>
</ul>
<a name="getFieldTypeList-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFieldTypeList</h4>
<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&gt;&nbsp;getFieldTypeList(<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="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">参数:</span></dt>
<dd><code>type</code> - Struct type</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>List of field types</dd>
<dt><span class="seeLabel">另请参阅:</span></dt>
<dd><a href="../../../../org/apache/calcite/rel/type/RelDataType.html#getFieldNames--"><code>RelDataType.getFieldNames()</code></a></dd>
</dl>
</li>
</ul>
<a name="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>public static&nbsp;boolean&nbsp;areRowTypesEqual(<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;rowType1,
<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;rowType2,
boolean&nbsp;compareNames)</pre>
</li>
</ul>
<a name="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>public static&nbsp;void&nbsp;verifyTypeEquivalence(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;originalRel,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;newRel,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="java.lang中的类或接口">Object</a>&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">参数:</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 name="propagateRelHints-org.apache.calcite.rel.RelNode-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>propagateRelHints</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;propagateRelHints(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;originalRel,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;equiv)</pre>
<div class="block">Copy the <a href="../../../../org/apache/calcite/rel/hint/RelHint.html" title="org.apache.calcite.rel.hint中的类"><code>RelHint</code></a>s from <code>originalRel</code>
to <code>newRel</code> if both of them are <a href="../../../../org/apache/calcite/rel/hint/Hintable.html" title="org.apache.calcite.rel.hint中的接口"><code>Hintable</code></a>.
<p>The two relational expressions are assumed as semantically equivalent,
that means the hints should be attached to the relational expression
that expects to have them.
<p>Try to propagate the hints to the first relational expression that matches,
this is needed because many planner rules would generate a sub-tree whose
root rel type is different with the original matched rel.
<p>For the worst case, there is no relational expression that can apply these hints,
and the whole sub-tree would be visited. We add a protection here:
if the visiting depth is over than 3, just returns, because there are rare cases
the new created sub-tree has layers bigger than that.
<p>This is a best effort, we do not know exactly how the nodes are transformed
in all kinds of planner rules, so for some complex relational expressions,
the hints would very probably lost.
<p>This function is experimental and would change without any notes.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>originalRel</code> - Original relational expression</dd>
<dd><code>equiv</code> - New equivalent relational expression</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>A copy of <code>newRel</code> with attached qualified hints from <code>originalRel</code>,
or <code>newRel</code> directly if one of them are not <a href="../../../../org/apache/calcite/rel/hint/Hintable.html" title="org.apache.calcite.rel.hint中的接口"><code>Hintable</code></a></dd>
</dl>
</li>
</ul>
<a name="propagateRelHints-org.apache.calcite.rel.RelNode-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>propagateRelHints</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;propagateRelHints(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel,
boolean&nbsp;reset)</pre>
<div class="block">Propagates the relational expression hints from root node to leaf node.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rel</code> - The relational expression</dd>
<dd><code>reset</code> - Flag saying if to reset the existing hints before the propagation</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>New relational expression with hints propagated</dd>
</dl>
</li>
</ul>
<a name="copyRelHints-org.apache.calcite.rel.RelNode-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>copyRelHints</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;copyRelHints(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;originalRel,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;newRel)</pre>
<div class="block">Copy the <a href="../../../../org/apache/calcite/rel/hint/RelHint.html" title="org.apache.calcite.rel.hint中的类"><code>RelHint</code></a>s from <code>originalRel</code>
to <code>newRel</code> if both of them are <a href="../../../../org/apache/calcite/rel/hint/Hintable.html" title="org.apache.calcite.rel.hint中的接口"><code>Hintable</code></a>.
<p>The hints would be attached directly(e.g. without any filtering).</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>originalRel</code> - Original relational expression</dd>
<dd><code>newRel</code> - New relational expression</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>A copy of <code>newRel</code> with attached hints from <code>originalRel</code>,
or <code>newRel</code> directly if one of them are not <a href="../../../../org/apache/calcite/rel/hint/Hintable.html" title="org.apache.calcite.rel.hint中的接口"><code>Hintable</code></a></dd>
</dl>
</li>
</ul>
<a name="copyRelHints-org.apache.calcite.rel.RelNode-org.apache.calcite.rel.RelNode-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>copyRelHints</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;copyRelHints(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;originalRel,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;newRel,
boolean&nbsp;filterHints)</pre>
<div class="block">Copy the <a href="../../../../org/apache/calcite/rel/hint/RelHint.html" title="org.apache.calcite.rel.hint中的类"><code>RelHint</code></a>s from <code>originalRel</code>
to <code>newRel</code> if both of them are <a href="../../../../org/apache/calcite/rel/hint/Hintable.html" title="org.apache.calcite.rel.hint中的接口"><code>Hintable</code></a>.
<p>The hints would be filtered by the specified hint strategies
if <code>filterHints</code> is true.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>originalRel</code> - Original relational expression</dd>
<dd><code>newRel</code> - New relational expression</dd>
<dd><code>filterHints</code> - Flag saying if to filter out unqualified hints for <code>newRel</code></dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>A copy of <code>newRel</code> with attached hints from <code>originalRel</code>,
or <code>newRel</code> directly if one of them are not <a href="../../../../org/apache/calcite/rel/hint/Hintable.html" title="org.apache.calcite.rel.hint中的接口"><code>Hintable</code></a></dd>
</dl>
</li>
</ul>
<a name="permutationIgnoreCast-java.util.List-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>permutationIgnoreCast</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/util/mapping/Mappings.TargetMapping.html" title="org.apache.calcite.util.mapping中的接口">Mappings.TargetMapping</a>&nbsp;permutationIgnoreCast(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;nodes,
<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="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 name="permutation-java.util.List-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>permutation</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/util/mapping/Mappings.TargetMapping.html" title="org.apache.calcite.util.mapping中的接口">Mappings.TargetMapping</a>&nbsp;permutation(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;nodes,
<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="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 name="permutationPushDownProject-java.util.List-org.apache.calcite.rel.type.RelDataType-int-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>permutationPushDownProject</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/util/mapping/Mappings.TargetMapping.html" title="org.apache.calcite.util.mapping中的接口">Mappings.TargetMapping</a>&nbsp;permutationPushDownProject(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;nodes,
<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;inputRowType,
int&nbsp;sourceOffset,
int&nbsp;targetOffset)</pre>
<div class="block">Returns a permutation describing where the Project's fields come from
after the Project is pushed down.</div>
</li>
</ul>
<a name="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><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="java.lang中的类或接口">@Deprecated</a>
public static&nbsp;<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;createExistsPlan(<a href="../../../../org/apache/calcite/plan/RelOptCluster.html" title="org.apache.calcite.plan中的类">RelOptCluster</a>&nbsp;cluster,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;seekRel,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;conditions,
<a href="../../../../org/apache/calcite/rex/RexLiteral.html" title="org.apache.calcite.rex中的类">RexLiteral</a>&nbsp;extraExpr,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&nbsp;extraName)</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</li>
</ul>
<a name="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><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="java.lang中的类或接口">@Deprecated</a>
public static&nbsp;<a href="../../../../org/apache/calcite/plan/RelOptUtil.Exists.html" title="org.apache.calcite.plan中的类">RelOptUtil.Exists</a>&nbsp;createExistsPlan(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;seekRel,
<a href="../../../../org/apache/calcite/plan/RelOptUtil.SubQueryType.html" title="org.apache.calcite.plan中的枚举">RelOptUtil.SubQueryType</a>&nbsp;subQueryType,
<a href="../../../../org/apache/calcite/plan/RelOptUtil.Logic.html" title="org.apache.calcite.plan中的枚举">RelOptUtil.Logic</a>&nbsp;logic,
boolean&nbsp;notIn)</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</li>
</ul>
<a name="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>public static&nbsp;<a href="../../../../org/apache/calcite/plan/RelOptUtil.Exists.html" title="org.apache.calcite.plan中的类">RelOptUtil.Exists</a>&nbsp;createExistsPlan(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;seekRel,
<a href="../../../../org/apache/calcite/plan/RelOptUtil.SubQueryType.html" title="org.apache.calcite.plan中的枚举">RelOptUtil.SubQueryType</a>&nbsp;subQueryType,
<a href="../../../../org/apache/calcite/plan/RelOptUtil.Logic.html" title="org.apache.calcite.plan中的枚举">RelOptUtil.Logic</a>&nbsp;logic,
boolean&nbsp;notIn,
<a href="../../../../org/apache/calcite/tools/RelBuilder.html" title="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">参数:</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">返回:</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">另请参阅:</span></dt>
<dd><a href="../../../../org/apache/calcite/sql2rel/SqlToRelConverter.html" title="org.apache.calcite.sql2rel中的类"><code>SqlToRelConverter#convertExists</code></a></dd>
</dl>
</li>
</ul>
<a name="createRenameRel-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createRenameRel</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="java.lang中的类或接口">@Deprecated</a>
public static&nbsp;<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;createRenameRel(<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;outputType,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</li>
</ul>
<a name="createFilter-org.apache.calcite.rel.RelNode-org.apache.calcite.rex.RexNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createFilter</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="java.lang中的类或接口">@Deprecated</a>
public static&nbsp;<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;createFilter(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;child,
<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;condition)</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</li>
</ul>
<a name="createFilter-org.apache.calcite.rel.RelNode-org.apache.calcite.rex.RexNode-org.apache.calcite.rel.core.RelFactories.FilterFactory-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createFilter</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="java.lang中的类或接口">@Deprecated</a>
public static&nbsp;<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;createFilter(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;child,
<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;condition,
<a href="../../../../org/apache/calcite/rel/core/RelFactories.FilterFactory.html" title="org.apache.calcite.rel.core中的接口">RelFactories.FilterFactory</a>&nbsp;filterFactory)</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</li>
</ul>
<a name="createFilter-org.apache.calcite.rel.RelNode-java.lang.Iterable-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createFilter</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;createFilter(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;child,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="java.lang中的类或接口">Iterable</a>&lt;? extends <a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;conditions)</pre>
<div class="block">Creates a filter, using the default filter factory,
or returns the original relational expression if the
condition is trivial.</div>
</li>
</ul>
<a name="createFilter-org.apache.calcite.rel.RelNode-java.lang.Iterable-org.apache.calcite.rel.core.RelFactories.FilterFactory-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createFilter</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;createFilter(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;child,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="java.lang中的类或接口">Iterable</a>&lt;? extends <a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;conditions,
<a href="../../../../org/apache/calcite/rel/core/RelFactories.FilterFactory.html" title="org.apache.calcite.rel.core中的接口">RelFactories.FilterFactory</a>&nbsp;filterFactory)</pre>
<div class="block">Creates a filter using the default factory,
or returns the original relational expression if the
condition is trivial.</div>
</li>
</ul>
<a name="createNullFilter-org.apache.calcite.rel.RelNode-java.lang.Integer:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createNullFilter</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="java.lang中的类或接口">@Deprecated</a>
public static&nbsp;<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;createNullFilter(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="java.lang中的类或接口">Integer</a>[]&nbsp;fieldOrdinals)</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</li>
</ul>
<a name="createCastRel-org.apache.calcite.rel.RelNode-org.apache.calcite.rel.type.RelDataType-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createCastRel</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;createCastRel(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel,
<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;castRowType,
boolean&nbsp;rename)</pre>
<div class="block">Creates a projection which casts a rel's output to a desired row type.
<p>No need to create new projection if <code>rel</code> is already a project,
instead, create a projection with the input of <code>rel</code> and the new
cast expressions.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rel</code> - producer of rows to be converted</dd>
<dd><code>castRowType</code> - row type after cast</dd>
<dd><code>rename</code> - if true, use field names from castRowType; if false,
preserve field names from rel</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>conversion rel</dd>
</dl>
</li>
</ul>
<a name="createCastRel-org.apache.calcite.rel.RelNode-org.apache.calcite.rel.type.RelDataType-boolean-org.apache.calcite.rel.core.RelFactories.ProjectFactory-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createCastRel</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;createCastRel(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel,
<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;castRowType,
boolean&nbsp;rename,
<a href="../../../../org/apache/calcite/rel/core/RelFactories.ProjectFactory.html" title="org.apache.calcite.rel.core中的接口">RelFactories.ProjectFactory</a>&nbsp;projectFactory)</pre>
<div class="block">Creates a projection which casts a rel's output to a desired row type.
<p>No need to create new projection if <code>rel</code> is already a project,
instead, create a projection with the input of <code>rel</code> and the new
cast expressions.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rel</code> - producer of rows to be converted</dd>
<dd><code>castRowType</code> - row type after cast</dd>
<dd><code>rename</code> - if true, use field names from castRowType; if false,
preserve field names from rel</dd>
<dd><code>projectFactory</code> - Project Factory</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>conversion rel</dd>
</dl>
</li>
</ul>
<a name="getAllFields-org.apache.calcite.rel.core.Aggregate-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAllFields</h4>
<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="java.util中的类或接口">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="java.lang中的类或接口">Integer</a>&gt;&nbsp;getAllFields(<a href="../../../../org/apache/calcite/rel/core/Aggregate.html" title="org.apache.calcite.rel.core中的类">Aggregate</a>&nbsp;aggregate)</pre>
<div class="block">Gets all fields in an aggregate.</div>
</li>
</ul>
<a name="getAllFields2-org.apache.calcite.util.ImmutableBitSet-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAllFields2</h4>
<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="java.util中的类或接口">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="java.lang中的类或接口">Integer</a>&gt;&nbsp;getAllFields2(<a href="../../../../org/apache/calcite/util/ImmutableBitSet.html" title="org.apache.calcite.util中的类">ImmutableBitSet</a>&nbsp;groupSet,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rel/core/AggregateCall.html" title="org.apache.calcite.rel.core中的类">AggregateCall</a>&gt;&nbsp;aggCallList)</pre>
<div class="block">Gets all fields in an aggregate.</div>
</li>
</ul>
<a name="createSingleValueAggRel-org.apache.calcite.plan.RelOptCluster-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createSingleValueAggRel</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;createSingleValueAggRel(<a href="../../../../org/apache/calcite/plan/RelOptCluster.html" title="org.apache.calcite.plan中的类">RelOptCluster</a>&nbsp;cluster,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</pre>
<div class="block">Creates a LogicalAggregate that removes all duplicates from the result of
an underlying relational expression.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rel</code> - underlying rel</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>rel implementing SingleValueAgg</dd>
</dl>
</li>
</ul>
<a name="createDistinctRel-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createDistinctRel</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="java.lang中的类或接口">@Deprecated</a>
public static&nbsp;<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;createDistinctRel(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;<span class="deprecationComment">Use <a href="../../../../org/apache/calcite/tools/RelBuilder.html#distinct--"><code>RelBuilder.distinct()</code></a>.</span></div>
</li>
</ul>
<a name="analyzeSimpleEquiJoin-org.apache.calcite.rel.logical.LogicalJoin-int:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>analyzeSimpleEquiJoin</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="java.lang中的类或接口">@Deprecated</a>
public static&nbsp;boolean&nbsp;analyzeSimpleEquiJoin(<a href="../../../../org/apache/calcite/rel/logical/LogicalJoin.html" title="org.apache.calcite.rel.logical中的类">LogicalJoin</a>&nbsp;join,
int[]&nbsp;joinFieldOrdinals)</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</li>
</ul>
<a name="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-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>splitJoinCondition</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/javax/annotation/Nonnull.html?is-external=true" title="javax.annotation中的类或接口">@Nonnull</a>
public static&nbsp;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;splitJoinCondition(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;left,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;right,
<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;condition,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="java.lang中的类或接口">Integer</a>&gt;&nbsp;leftKeys,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="java.lang中的类或接口">Integer</a>&gt;&nbsp;rightKeys,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="java.lang中的类或接口">Boolean</a>&gt;&nbsp;filterNulls)</pre>
<div class="block">Splits out the equi-join components of a join condition, and returns
what's left. For example, given the condition
<blockquote><code>L.A = R.X AND L.B = L.C AND (L.D = 5 OR L.E =
R.Y)</code></blockquote>
<p>returns
<ul>
<li>leftKeys = {A}
<li>rightKeys = {X}
<li>rest = L.B = L.C AND (L.D = 5 OR L.E = R.Y)</li>
</ul></div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>left</code> - left input to join</dd>
<dd><code>right</code> - right input to join</dd>
<dd><code>condition</code> - join condition</dd>
<dd><code>leftKeys</code> - The ordinals of the fields from the left input which are
equi-join keys</dd>
<dd><code>rightKeys</code> - The ordinals of the fields from the right input which
are equi-join keys</dd>
<dd><code>filterNulls</code> - List of boolean values for each join key position
indicating whether the operator filters out nulls or not.
Value is true if the operator is EQUALS and false if the
operator is IS NOT DISTINCT FROM (or an expanded version).
If <code>filterNulls</code> is null, only join conditions
with EQUALS operators are considered equi-join components.
Rest (including IS NOT DISTINCT FROM) are returned in
remaining join condition.</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>remaining join filters that are not equijoins; may return a
<a href="../../../../org/apache/calcite/rex/RexLiteral.html" title="org.apache.calcite.rex中的类"><code>RexLiteral</code></a> true, but never null</dd>
</dl>
</li>
</ul>
<a name="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-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>splitJoinCondition</h4>
<pre>public static&nbsp;void&nbsp;splitJoinCondition(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;left,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;right,
<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;condition,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="java.lang中的类或接口">Integer</a>&gt;&nbsp;leftKeys,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="java.lang中的类或接口">Integer</a>&gt;&nbsp;rightKeys,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="java.lang中的类或接口">Boolean</a>&gt;&nbsp;filterNulls,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;nonEquiList)</pre>
<div class="block">As
<a href="../../../../org/apache/calcite/plan/RelOptUtil.html#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>
</li>
</ul>
<a name="isEqui-org.apache.calcite.rel.RelNode-org.apache.calcite.rel.RelNode-org.apache.calcite.rex.RexNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isEqui</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="java.lang中的类或接口">@Deprecated</a>
public static&nbsp;boolean&nbsp;isEqui(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;left,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;right,
<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;condition)</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</li>
</ul>
<a name="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-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>splitJoinCondition</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;splitJoinCondition(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataTypeField.html" title="org.apache.calcite.rel.type中的接口">RelDataTypeField</a>&gt;&nbsp;sysFieldList,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;leftRel,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rightRel,
<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;condition,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;leftJoinKeys,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;rightJoinKeys,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="java.lang中的类或接口">Integer</a>&gt;&nbsp;filterNulls,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/sql/SqlOperator.html" title="org.apache.calcite.sql中的类">SqlOperator</a>&gt;&nbsp;rangeOp)</pre>
<div class="block">Splits out the equi-join (and optionally, a single non-equi) components
of a join condition, and returns what's left. Projection might be
required by the caller to provide join keys that are not direct field
references.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>sysFieldList</code> - list of system fields</dd>
<dd><code>leftRel</code> - left join input</dd>
<dd><code>rightRel</code> - right join input</dd>
<dd><code>condition</code> - join condition</dd>
<dd><code>leftJoinKeys</code> - The join keys from the left input which are equi-join
keys</dd>
<dd><code>rightJoinKeys</code> - The join keys from the right input which are
equi-join keys</dd>
<dd><code>filterNulls</code> - The join key positions for which null values will not
match. null values only match for the "is not distinct
from" condition.</dd>
<dd><code>rangeOp</code> - if null, only locate equi-joins; otherwise, locate a
single non-equi join predicate and return its operator
in this list; join keys associated with the non-equi
join predicate are at the end of the key lists
returned</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>What's left, never null</dd>
</dl>
</li>
</ul>
<a name="splitJoinCondition-java.util.List-java.util.List-org.apache.calcite.rex.RexNode-java.util.List-java.util.List-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>splitJoinCondition</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/javax/annotation/Nonnull.html?is-external=true" title="javax.annotation中的类或接口">@Nonnull</a>
public static&nbsp;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;splitJoinCondition(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataTypeField.html" title="org.apache.calcite.rel.type中的接口">RelDataTypeField</a>&gt;&nbsp;sysFieldList,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&gt;&nbsp;inputs,
<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;condition,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&gt;&nbsp;joinKeys,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="java.lang中的类或接口">Integer</a>&gt;&nbsp;filterNulls,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/sql/SqlOperator.html" title="org.apache.calcite.sql中的类">SqlOperator</a>&gt;&nbsp;rangeOp)</pre>
<div class="block">Splits out the equi-join (and optionally, a single non-equi) components
of a join condition, and returns what's left. Projection might be
required by the caller to provide join keys that are not direct field
references.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>sysFieldList</code> - list of system fields</dd>
<dd><code>inputs</code> - join inputs</dd>
<dd><code>condition</code> - join condition</dd>
<dd><code>joinKeys</code> - The join keys from the inputs which are equi-join
keys</dd>
<dd><code>filterNulls</code> - The join key positions for which null values will not
match. null values only match for the "is not distinct
from" condition.</dd>
<dd><code>rangeOp</code> - if null, only locate equi-joins; otherwise, locate a
single non-equi join predicate and return its operator
in this list; join keys associated with the non-equi
join predicate are at the end of the key lists
returned</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>What's left, never null</dd>
</dl>
</li>
</ul>
<a name="splitCorrelatedFilterCondition-org.apache.calcite.rel.logical.LogicalFilter-java.util.List-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>splitCorrelatedFilterCondition</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="java.lang中的类或接口">@Deprecated</a>
public static&nbsp;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;splitCorrelatedFilterCondition(<a href="../../../../org/apache/calcite/rel/logical/LogicalFilter.html" title="org.apache.calcite.rel.logical中的类">LogicalFilter</a>&nbsp;filter,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexInputRef.html" title="org.apache.calcite.rex中的类">RexInputRef</a>&gt;&nbsp;joinKeys,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;correlatedJoinKeys)</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</li>
</ul>
<a name="splitCorrelatedFilterCondition-org.apache.calcite.rel.logical.LogicalFilter-java.util.List-java.util.List-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>splitCorrelatedFilterCondition</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;splitCorrelatedFilterCondition(<a href="../../../../org/apache/calcite/rel/logical/LogicalFilter.html" title="org.apache.calcite.rel.logical中的类">LogicalFilter</a>&nbsp;filter,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;joinKeys,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;correlatedJoinKeys,
boolean&nbsp;extractCorrelatedFieldAccess)</pre>
</li>
</ul>
<a name="splitCorrelatedFilterCondition-org.apache.calcite.rel.core.Filter-java.util.List-java.util.List-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>splitCorrelatedFilterCondition</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;splitCorrelatedFilterCondition(<a href="../../../../org/apache/calcite/rel/core/Filter.html" title="org.apache.calcite.rel.core中的类">Filter</a>&nbsp;filter,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;joinKeys,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;correlatedJoinKeys,
boolean&nbsp;extractCorrelatedFieldAccess)</pre>
</li>
</ul>
<a name="createEquiJoinCondition-org.apache.calcite.rel.RelNode-java.util.List-org.apache.calcite.rel.RelNode-java.util.List-org.apache.calcite.rex.RexBuilder-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createEquiJoinCondition</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/javax/annotation/Nonnull.html?is-external=true" title="javax.annotation中的类或接口">@Nonnull</a>
public static&nbsp;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;createEquiJoinCondition(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;left,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="java.lang中的类或接口">Integer</a>&gt;&nbsp;leftKeys,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;right,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="java.lang中的类或接口">Integer</a>&gt;&nbsp;rightKeys,
<a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a>&nbsp;rexBuilder)</pre>
<div class="block">Builds an equi-join condition from a set of left and right keys.</div>
</li>
</ul>
<a name="op-org.apache.calcite.sql.SqlKind-org.apache.calcite.sql.SqlOperator-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>op</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/sql/SqlOperator.html" title="org.apache.calcite.sql中的类">SqlOperator</a>&nbsp;op(<a href="../../../../org/apache/calcite/sql/SqlKind.html" title="org.apache.calcite.sql中的枚举">SqlKind</a>&nbsp;kind,
<a href="../../../../org/apache/calcite/sql/SqlOperator.html" title="org.apache.calcite.sql中的类">SqlOperator</a>&nbsp;operator)</pre>
</li>
</ul>
<a name="collapseExpandedIsNotDistinctFromExpr-org.apache.calcite.rex.RexCall-org.apache.calcite.rex.RexBuilder-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>collapseExpandedIsNotDistinctFromExpr</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rex/RexCall.html" title="org.apache.calcite.rex中的类">RexCall</a>&nbsp;collapseExpandedIsNotDistinctFromExpr(<a href="../../../../org/apache/calcite/rex/RexCall.html" title="org.apache.calcite.rex中的类">RexCall</a>&nbsp;call,
<a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a>&nbsp;rexBuilder)</pre>
<div class="block">Collapses an expanded version of <code>IS NOT DISTINCT FROM</code> expression.
<p>Helper method for
<a href="../../../../org/apache/calcite/plan/RelOptUtil.html#splitJoinCondition-org.apache.calcite.rex.RexBuilder-int-org.apache.calcite.rex.RexNode-java.util.List-java.util.List-java.util.List-java.util.List-"><code>splitJoinCondition(RexBuilder, int, RexNode, List, List, List, List)</code></a>
and
<a href="../../../../org/apache/calcite/plan/RelOptUtil.html#splitJoinCondition-java.util.List-java.util.List-org.apache.calcite.rex.RexNode-java.util.List-java.util.List-java.util.List-java.util.List-"><code>splitJoinCondition(List, List, RexNode, List, List, List, List)</code></a>.
<p>If the given expr <code>call</code> is an expanded version of
<code>IS NOT DISTINCT FROM</code> function call, collapses it and return a
<code>IS NOT DISTINCT FROM</code> function call.
<p>For example: <code>t1.key IS NOT DISTINCT FROM t2.key</code>
can rewritten in expanded form as
<code>t1.key = t2.key OR (t1.key IS NULL AND t2.key IS NULL)</code>.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>call</code> - Function expression to try collapsing</dd>
<dd><code>rexBuilder</code> - <a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类"><code>RexBuilder</code></a> instance to create new <a href="../../../../org/apache/calcite/rex/RexCall.html" title="org.apache.calcite.rex中的类"><code>RexCall</code></a> instances.</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>If the given function is an expanded IS NOT DISTINCT FROM function call,
return a IS NOT DISTINCT FROM function call. Otherwise return the input
function call as it is.</dd>
</dl>
</li>
</ul>
<a name="projectJoinInputs-org.apache.calcite.rel.RelNode:A-java.util.List-java.util.List-int-java.util.List-java.util.List-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>projectJoinInputs</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="java.lang中的类或接口">@Deprecated</a>
public static&nbsp;void&nbsp;projectJoinInputs(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>[]&nbsp;inputRels,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;leftJoinKeys,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;rightJoinKeys,
int&nbsp;systemColCount,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="java.lang中的类或接口">Integer</a>&gt;&nbsp;leftKeys,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="java.lang中的类或接口">Integer</a>&gt;&nbsp;rightKeys,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="java.lang中的类或接口">Integer</a>&gt;&nbsp;outputProj)</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</li>
</ul>
<a name="createProjectJoinRel-java.util.List-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createProjectJoinRel</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="java.lang中的类或接口">@Deprecated</a>
public static&nbsp;<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;createProjectJoinRel(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="java.lang中的类或接口">Integer</a>&gt;&nbsp;outputProj,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;joinRel)</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</li>
</ul>
<a name="registerAbstractRels-org.apache.calcite.plan.RelOptPlanner-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerAbstractRels</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="java.lang中的类或接口">@Deprecated</a>
public static&nbsp;void&nbsp;registerAbstractRels(<a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="org.apache.calcite.plan中的接口">RelOptPlanner</a>&nbsp;planner)</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</li>
</ul>
<a name="registerAbstractRules-org.apache.calcite.plan.RelOptPlanner-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerAbstractRules</h4>
<pre>public static&nbsp;void&nbsp;registerAbstractRules(<a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="org.apache.calcite.plan中的接口">RelOptPlanner</a>&nbsp;planner)</pre>
</li>
</ul>
<a name="registerAbstractRelationalRules-org.apache.calcite.plan.RelOptPlanner-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerAbstractRelationalRules</h4>
<pre>public static&nbsp;void&nbsp;registerAbstractRelationalRules(<a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="org.apache.calcite.plan中的接口">RelOptPlanner</a>&nbsp;planner)</pre>
</li>
</ul>
<a name="registerDefaultRules-org.apache.calcite.plan.RelOptPlanner-boolean-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerDefaultRules</h4>
<pre>public static&nbsp;void&nbsp;registerDefaultRules(<a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="org.apache.calcite.plan中的接口">RelOptPlanner</a>&nbsp;planner,
boolean&nbsp;enableMaterialziations,
boolean&nbsp;enableBindable)</pre>
</li>
</ul>
<a name="appendRelDescription-java.lang.StringBuilder-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>appendRelDescription</h4>
<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html?is-external=true" title="java.lang中的类或接口">StringBuilder</a>&nbsp;appendRelDescription(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html?is-external=true" title="java.lang中的类或接口">StringBuilder</a>&nbsp;sb,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</pre>
</li>
</ul>
<a name="dumpPlan-java.lang.String-org.apache.calcite.rel.RelNode-org.apache.calcite.sql.SqlExplainFormat-org.apache.calcite.sql.SqlExplainLevel-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>dumpPlan</h4>
<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&nbsp;dumpPlan(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&nbsp;header,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel,
<a href="../../../../org/apache/calcite/sql/SqlExplainFormat.html" title="org.apache.calcite.sql中的枚举">SqlExplainFormat</a>&nbsp;format,
<a href="../../../../org/apache/calcite/sql/SqlExplainLevel.html" title="org.apache.calcite.sql中的枚举">SqlExplainLevel</a>&nbsp;detailLevel)</pre>
<div class="block">Dumps a plan as a string.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>header</code> - Header to print before the plan. Ignored if the format
is XML</dd>
<dd><code>rel</code> - Relational expression to explain</dd>
<dd><code>format</code> - Output format</dd>
<dd><code>detailLevel</code> - Detail level</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>Plan</dd>
</dl>
</li>
</ul>
<a name="dumpPlan-java.lang.String-org.apache.calcite.rel.RelNode-boolean-org.apache.calcite.sql.SqlExplainLevel-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>dumpPlan</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="java.lang中的类或接口">@Deprecated</a>
public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&nbsp;dumpPlan(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&nbsp;header,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel,
boolean&nbsp;asXml,
<a href="../../../../org/apache/calcite/sql/SqlExplainLevel.html" title="org.apache.calcite.sql中的枚举">SqlExplainLevel</a>&nbsp;detailLevel)</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</li>
</ul>
<a name="createDmlRowType-org.apache.calcite.sql.SqlKind-org.apache.calcite.rel.type.RelDataTypeFactory-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createDmlRowType</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;createDmlRowType(<a href="../../../../org/apache/calcite/sql/SqlKind.html" title="org.apache.calcite.sql中的枚举">SqlKind</a>&nbsp;kind,
<a href="../../../../org/apache/calcite/rel/type/RelDataTypeFactory.html" title="org.apache.calcite.rel.type中的接口">RelDataTypeFactory</a>&nbsp;typeFactory)</pre>
<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>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>kind</code> - Kind of node</dd>
<dd><code>typeFactory</code> - factory to use for creating type descriptor</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>created type</dd>
</dl>
</li>
</ul>
<a name="eq-java.lang.String-org.apache.calcite.rel.type.RelDataType-java.lang.String-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.util.Litmus-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>eq</h4>
<pre>public static&nbsp;boolean&nbsp;eq(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&nbsp;desc1,
<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;type1,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&nbsp;desc2,
<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;type2,
<a href="../../../../org/apache/calcite/util/Litmus.html" title="org.apache.calcite.util中的接口">Litmus</a>&nbsp;litmus)</pre>
<div class="block">Returns whether two types are equal using '='.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>desc1</code> - Description of first type</dd>
<dd><code>type1</code> - First type</dd>
<dd><code>desc2</code> - Description of second type</dd>
<dd><code>type2</code> - Second type</dd>
<dd><code>litmus</code> - What to do if an error is detected (types are not equal)</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>Whether the types are equal</dd>
</dl>
</li>
</ul>
<a name="equal-java.lang.String-org.apache.calcite.rel.type.RelDataType-java.lang.String-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.util.Litmus-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>equal</h4>
<pre>public static&nbsp;boolean&nbsp;equal(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&nbsp;desc1,
<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;type1,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&nbsp;desc2,
<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;type2,
<a href="../../../../org/apache/calcite/util/Litmus.html" title="org.apache.calcite.util中的接口">Litmus</a>&nbsp;litmus)</pre>
<div class="block">Returns whether two types are equal using
<a href="../../../../org/apache/calcite/plan/RelOptUtil.html#areRowTypesEqual-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.rel.type.RelDataType-boolean-"><code>areRowTypesEqual(RelDataType, RelDataType, boolean)</code></a>. Both types
must not be null.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>desc1</code> - Description of role of first type</dd>
<dd><code>type1</code> - First type</dd>
<dd><code>desc2</code> - Description of role of second type</dd>
<dd><code>type2</code> - Second type</dd>
<dd><code>litmus</code> - Whether to assert if they are not equal</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>Whether the types are equal</dd>
</dl>
</li>
</ul>
<a name="equalType-java.lang.String-org.apache.calcite.rel.RelNode-java.lang.String-org.apache.calcite.rel.RelNode-org.apache.calcite.util.Litmus-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>equalType</h4>
<pre>public static&nbsp;boolean&nbsp;equalType(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&nbsp;desc0,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel0,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&nbsp;desc1,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel1,
<a href="../../../../org/apache/calcite/util/Litmus.html" title="org.apache.calcite.util中的接口">Litmus</a>&nbsp;litmus)</pre>
<div class="block">Returns whether two relational expressions have the same row-type.</div>
</li>
</ul>
<a name="isDistinctFrom-org.apache.calcite.rex.RexBuilder-org.apache.calcite.rex.RexNode-org.apache.calcite.rex.RexNode-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isDistinctFrom</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;isDistinctFrom(<a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a>&nbsp;rexBuilder,
<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;x,
<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;y,
boolean&nbsp;neg)</pre>
<div class="block">Returns a translation of the <code>IS DISTINCT FROM</code> (or <code>IS
NOT DISTINCT FROM</code>) sql operator.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>neg</code> - if false, returns a translation of IS NOT DISTINCT FROM</dd>
</dl>
</li>
</ul>
<a name="toString-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&nbsp;toString(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</pre>
<div class="block">Converts a relational expression to a string, showing just basic
attributes.</div>
</li>
</ul>
<a name="toString-org.apache.calcite.rel.RelNode-org.apache.calcite.sql.SqlExplainLevel-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&nbsp;toString(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel,
<a href="../../../../org/apache/calcite/sql/SqlExplainLevel.html" title="org.apache.calcite.sql中的枚举">SqlExplainLevel</a>&nbsp;detailLevel)</pre>
<div class="block">Converts a relational expression to a string.</div>
</li>
</ul>
<a name="renameIfNecessary-org.apache.calcite.rel.RelNode-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>renameIfNecessary</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="java.lang中的类或接口">@Deprecated</a>
public static&nbsp;<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;renameIfNecessary(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel,
<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;desiredRowType)</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</li>
</ul>
<a name="dumpType-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>dumpType</h4>
<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&nbsp;dumpType(<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;type)</pre>
</li>
</ul>
<a name="deduplicateColumns-java.util.List-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>deduplicateColumns</h4>
<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataTypeField.html" title="org.apache.calcite.rel.type中的接口">RelDataTypeField</a>&gt;&nbsp;deduplicateColumns(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataTypeField.html" title="org.apache.calcite.rel.type中的接口">RelDataTypeField</a>&gt;&nbsp;baseColumns,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataTypeField.html" title="org.apache.calcite.rel.type中的接口">RelDataTypeField</a>&gt;&nbsp;extendedColumns)</pre>
<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>
</li>
</ul>
<a name="decomposeConjunction-org.apache.calcite.rex.RexNode-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>decomposeConjunction</h4>
<pre>public static&nbsp;void&nbsp;decomposeConjunction(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;rexPredicate,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;rexList)</pre>
<div class="block">Decomposes a predicate into a list of expressions that are AND'ed
together.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rexPredicate</code> - predicate to be analyzed</dd>
<dd><code>rexList</code> - list of decomposed RexNodes</dd>
</dl>
</li>
</ul>
<a name="decomposeConjunction-org.apache.calcite.rex.RexNode-java.util.List-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>decomposeConjunction</h4>
<pre>public static&nbsp;void&nbsp;decomposeConjunction(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;rexPredicate,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;rexList,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;notList)</pre>
<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.
<p>For example, <code>a AND NOT b AND NOT (c and d) AND TRUE AND NOT
FALSE</code> returns <code>rexList = [a], notList = [b, c AND d]</code>.</p>
<p>TRUE and NOT FALSE expressions are ignored. FALSE and NOT TRUE
expressions are placed on <code>rexList</code> and <code>notList</code> as other
expressions.</p>
<p>For example, <code>a AND TRUE AND NOT TRUE</code> returns
<code>rexList = [a], notList = [TRUE]</code>.</p></div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rexPredicate</code> - predicate to be analyzed</dd>
<dd><code>rexList</code> - list of decomposed RexNodes (except those with NOT)</dd>
<dd><code>notList</code> - list of decomposed RexNodes that were prefixed NOT</dd>
</dl>
</li>
</ul>
<a name="decomposeDisjunction-org.apache.calcite.rex.RexNode-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>decomposeDisjunction</h4>
<pre>public static&nbsp;void&nbsp;decomposeDisjunction(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;rexPredicate,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;rexList)</pre>
<div class="block">Decomposes a predicate into a list of expressions that are OR'ed
together.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rexPredicate</code> - predicate to be analyzed</dd>
<dd><code>rexList</code> - list of decomposed RexNodes</dd>
</dl>
</li>
</ul>
<a name="conjunctions-org.apache.calcite.rex.RexNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>conjunctions</h4>
<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;conjunctions(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;rexPredicate)</pre>
<div class="block">Returns a condition decomposed by AND.
<p>For example, <code>conjunctions(TRUE)</code> returns the empty list;
<code>conjunctions(FALSE)</code> returns list <code>{FALSE}</code>.</p></div>
</li>
</ul>
<a name="disjunctions-org.apache.calcite.rex.RexNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>disjunctions</h4>
<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;disjunctions(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;rexPredicate)</pre>
<div class="block">Returns a condition decomposed by OR.
<p>For example, <code>disjunctions(FALSE)</code> returns the empty list.</p></div>
</li>
</ul>
<a name="andJoinFilters-org.apache.calcite.rex.RexBuilder-org.apache.calcite.rex.RexNode-org.apache.calcite.rex.RexNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>andJoinFilters</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;andJoinFilters(<a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a>&nbsp;rexBuilder,
<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;left,
<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;right)</pre>
<div class="block">Ands two sets of join filters together, either of which can be null.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rexBuilder</code> - rexBuilder to create AND expression</dd>
<dd><code>left</code> - filter on the left that the right will be AND'd to</dd>
<dd><code>right</code> - filter on the right</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>AND'd filter</dd>
<dt><span class="seeLabel">另请参阅:</span></dt>
<dd><a href="../../../../org/apache/calcite/rex/RexUtil.html#composeConjunction-org.apache.calcite.rex.RexBuilder-java.lang.Iterable-"><code>RexUtil.composeConjunction(org.apache.calcite.rex.RexBuilder, java.lang.Iterable&lt;? extends org.apache.calcite.rex.RexNode&gt;)</code></a></dd>
</dl>
</li>
</ul>
<a name="inferViewPredicates-java.util.Map-java.util.List-org.apache.calcite.rex.RexNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>inferViewPredicates</h4>
<pre>public static&nbsp;void&nbsp;inferViewPredicates(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="java.util中的类或接口">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="java.lang中的类或接口">Integer</a>,<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;projectMap,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;filters,
<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;constraint)</pre>
<div class="block">Decomposes the WHERE clause of a view into predicates that constraint
a column to a particular value.
<p>This method is key to the validation of a modifiable view. Columns that
are constrained to a single value can be omitted from the
SELECT clause of a modifiable view.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>projectMap</code> - Mapping from column ordinal to the expression that
populate that column, to be populated by this method</dd>
<dd><code>filters</code> - List of remaining filters, to be populated by this method</dd>
<dd><code>constraint</code> - Constraint to be analyzed</dd>
</dl>
</li>
</ul>
<a name="getColumnConstraints-org.apache.calcite.schema.ModifiableView-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.rel.type.RelDataTypeFactory-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getColumnConstraints</h4>
<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="java.util中的类或接口">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="java.lang中的类或接口">Integer</a>,<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;getColumnConstraints(<a href="../../../../org/apache/calcite/schema/ModifiableView.html" title="org.apache.calcite.schema中的接口">ModifiableView</a>&nbsp;modifiableViewTable,
<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;targetRowType,
<a href="../../../../org/apache/calcite/rel/type/RelDataTypeFactory.html" title="org.apache.calcite.rel.type中的接口">RelDataTypeFactory</a>&nbsp;typeFactory)</pre>
<div class="block">Returns a mapping of the column ordinal in the underlying table to a column
constraint of the modifiable view.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>modifiableViewTable</code> - The modifiable view which has a constraint</dd>
<dd><code>targetRowType</code> - The target type</dd>
</dl>
</li>
</ul>
<a name="validateValueAgainstConstraint-org.apache.calcite.sql.SqlNode-org.apache.calcite.rex.RexNode-java.util.function.Supplier-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateValueAgainstConstraint</h4>
<pre>public static&nbsp;void&nbsp;validateValueAgainstConstraint(<a href="../../../../org/apache/calcite/sql/SqlNode.html" title="org.apache.calcite.sql中的类">SqlNode</a>&nbsp;sourceValue,
<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;targetConstraint,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="java.util.function中的类或接口">Supplier</a>&lt;<a href="../../../../org/apache/calcite/runtime/CalciteContextException.html" title="org.apache.calcite.runtime中的类">CalciteContextException</a>&gt;&nbsp;errorSupplier)</pre>
<div class="block">Ensures that a source value does not violate the constraint of the target
column.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>sourceValue</code> - The insert value being validated</dd>
<dd><code>targetConstraint</code> - The constraint applied to sourceValue for validation</dd>
<dd><code>errorSupplier</code> - The function to apply when validation fails</dd>
</dl>
</li>
</ul>
<a name="adjustKeys-java.util.List-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>adjustKeys</h4>
<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="java.lang中的类或接口">Integer</a>&gt;&nbsp;adjustKeys(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="java.lang中的类或接口">Integer</a>&gt;&nbsp;keys,
int&nbsp;adjustment)</pre>
<div class="block">Adjusts key values in a list by some fixed amount.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>keys</code> - list of key values</dd>
<dd><code>adjustment</code> - the amount to adjust the key values by</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>modified list</dd>
</dl>
</li>
</ul>
<a name="simplifyJoin-org.apache.calcite.rel.RelNode-com.google.common.collect.ImmutableList-org.apache.calcite.rel.core.JoinRelType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>simplifyJoin</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rel/core/JoinRelType.html" title="org.apache.calcite.rel.core中的枚举">JoinRelType</a>&nbsp;simplifyJoin(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;joinRel,
com.google.common.collect.ImmutableList&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;aboveFilters,
<a href="../../../../org/apache/calcite/rel/core/JoinRelType.html" title="org.apache.calcite.rel.core中的枚举">JoinRelType</a>&nbsp;joinType)</pre>
<div class="block">Simplifies outer joins if filter above would reject nulls.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>joinRel</code> - Join</dd>
<dd><code>aboveFilters</code> - Filters from above</dd>
<dd><code>joinType</code> - Join type, can not be inner join</dd>
</dl>
</li>
</ul>
<a name="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-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>classifyFilters</h4>
<pre>public static&nbsp;boolean&nbsp;classifyFilters(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;joinRel,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;filters,
<a href="../../../../org/apache/calcite/rel/core/JoinRelType.html" title="org.apache.calcite.rel.core中的枚举">JoinRelType</a>&nbsp;joinType,
boolean&nbsp;pushInto,
boolean&nbsp;pushLeft,
boolean&nbsp;pushRight,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;joinFilters,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;leftFilters,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;rightFilters)</pre>
<div class="block">Classifies filters according to where they should be processed. They
either stay where they are, are pushed to the join (if they originated
from above the join), or are pushed to one of the children. Filters that
are pushed are added to list passed in as input parameters.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>joinRel</code> - join node</dd>
<dd><code>filters</code> - filters to be classified</dd>
<dd><code>joinType</code> - join type</dd>
<dd><code>pushInto</code> - whether filters can be pushed into the ON clause</dd>
<dd><code>pushLeft</code> - true if filters can be pushed to the left</dd>
<dd><code>pushRight</code> - true if filters can be pushed to the right</dd>
<dd><code>joinFilters</code> - list of filters to push to the join</dd>
<dd><code>leftFilters</code> - list of filters to push to the left child</dd>
<dd><code>rightFilters</code> - list of filters to push to the right child</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>whether at least one filter was pushed</dd>
</dl>
</li>
</ul>
<a name="splitFilters-org.apache.calcite.util.ImmutableBitSet-org.apache.calcite.rex.RexNode-java.util.List-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>splitFilters</h4>
<pre>public static&nbsp;void&nbsp;splitFilters(<a href="../../../../org/apache/calcite/util/ImmutableBitSet.html" title="org.apache.calcite.util中的类">ImmutableBitSet</a>&nbsp;childBitmap,
<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;predicate,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;pushable,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;notPushable)</pre>
<div class="block">Splits a filter into two lists, depending on whether or not the filter
only references its child input</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>childBitmap</code> - Fields in the child</dd>
<dd><code>predicate</code> - filters that will be split</dd>
<dd><code>pushable</code> - returns the list of filters that can be pushed to the
child input</dd>
<dd><code>notPushable</code> - returns the list of filters that cannot be pushed to
the child input</dd>
</dl>
</li>
</ul>
<a name="checkProjAndChildInputs-org.apache.calcite.rel.core.Project-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkProjAndChildInputs</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="java.lang中的类或接口">@Deprecated</a>
public static&nbsp;boolean&nbsp;checkProjAndChildInputs(<a href="../../../../org/apache/calcite/rel/core/Project.html" title="org.apache.calcite.rel.core中的类">Project</a>&nbsp;project,
boolean&nbsp;checkNames)</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</li>
</ul>
<a name="createSwappedJoinExprs-org.apache.calcite.rel.RelNode-org.apache.calcite.rel.core.Join-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createSwappedJoinExprs</h4>
<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;createSwappedJoinExprs(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;newJoin,
<a href="../../../../org/apache/calcite/rel/core/Join.html" title="org.apache.calcite.rel.core中的类">Join</a>&nbsp;origJoin,
boolean&nbsp;origOrder)</pre>
<div class="block">Creates projection expressions reflecting the swapping of a join's input.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>newJoin</code> - the RelNode corresponding to the join with its inputs
swapped</dd>
<dd><code>origJoin</code> - original LogicalJoin</dd>
<dd><code>origOrder</code> - if true, create the projection expressions to reflect
the original (pre-swapped) join projection; otherwise,
create the projection to reflect the order of the swapped
projection</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>array of expression representing the swapped join inputs</dd>
</dl>
</li>
</ul>
<a name="pushFilterPastProject-org.apache.calcite.rex.RexNode-org.apache.calcite.rel.core.Project-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>pushFilterPastProject</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="java.lang中的类或接口">@Deprecated</a>
public static&nbsp;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;pushFilterPastProject(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;filter,
<a href="../../../../org/apache/calcite/rel/core/Project.html" title="org.apache.calcite.rel.core中的类">Project</a>&nbsp;projRel)</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</li>
</ul>
<a name="pushPastProject-org.apache.calcite.rex.RexNode-org.apache.calcite.rel.core.Project-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>pushPastProject</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;pushPastProject(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;node,
<a href="../../../../org/apache/calcite/rel/core/Project.html" title="org.apache.calcite.rel.core中的类">Project</a>&nbsp;project)</pre>
<div class="block">Converts an expression that is based on the output fields of a
<a href="../../../../org/apache/calcite/rel/core/Project.html" title="org.apache.calcite.rel.core中的类"><code>Project</code></a> to an equivalent expression on the Project's
input fields.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>node</code> - The expression to be converted</dd>
<dd><code>project</code> - Project underneath the expression</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>converted expression</dd>
</dl>
</li>
</ul>
<a name="pushPastProject-java.util.List-org.apache.calcite.rel.core.Project-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>pushPastProject</h4>
<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;pushPastProject(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;? extends <a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;nodes,
<a href="../../../../org/apache/calcite/rel/core/Project.html" title="org.apache.calcite.rel.core中的类">Project</a>&nbsp;project)</pre>
<div class="block">Converts a list of expressions that are based on the output fields of a
<a href="../../../../org/apache/calcite/rel/core/Project.html" title="org.apache.calcite.rel.core中的类"><code>Project</code></a> to equivalent expressions on the Project's
input fields.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>nodes</code> - The expressions to be converted</dd>
<dd><code>project</code> - Project underneath the expression</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>converted expressions</dd>
</dl>
</li>
</ul>
<a name="pushPastProjectUnlessBloat-java.util.List-org.apache.calcite.rel.core.Project-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>pushPastProjectUnlessBloat</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/javax/annotation/Nullable.html?is-external=true" title="javax.annotation中的类或接口">@Nullable</a>
public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;pushPastProjectUnlessBloat(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;? extends <a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;nodes,
<a href="../../../../org/apache/calcite/rel/core/Project.html" title="org.apache.calcite.rel.core中的类">Project</a>&nbsp;project,
int&nbsp;bloat)</pre>
<div class="block">As <a href="../../../../org/apache/calcite/plan/RelOptUtil.html#pushPastProject-org.apache.calcite.rex.RexNode-org.apache.calcite.rel.core.Project-"><code>pushPastProject(org.apache.calcite.rex.RexNode, org.apache.calcite.rel.core.Project)</code></a>, but returns null if the resulting expressions
are significantly more complex.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>bloat</code> - Maximum allowable increase in complexity</dd>
</dl>
</li>
</ul>
<a name="projectMultiJoin-org.apache.calcite.rel.rules.MultiJoin-org.apache.calcite.rel.core.Project-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>projectMultiJoin</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rel/rules/MultiJoin.html" title="org.apache.calcite.rel.rules中的类">MultiJoin</a>&nbsp;projectMultiJoin(<a href="../../../../org/apache/calcite/rel/rules/MultiJoin.html" title="org.apache.calcite.rel.rules中的类">MultiJoin</a>&nbsp;multiJoin,
<a href="../../../../org/apache/calcite/rel/core/Project.html" title="org.apache.calcite.rel.core中的类">Project</a>&nbsp;project)</pre>
<div class="block">Creates a new <a href="../../../../org/apache/calcite/rel/rules/MultiJoin.html" title="org.apache.calcite.rel.rules中的类"><code>MultiJoin</code></a> to reflect
projection references from a
<a href="../../../../org/apache/calcite/rel/core/Project.html" title="org.apache.calcite.rel.core中的类"><code>Project</code></a> that is on top of the
<a href="../../../../org/apache/calcite/rel/rules/MultiJoin.html" title="org.apache.calcite.rel.rules中的类"><code>MultiJoin</code></a>.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>multiJoin</code> - the original MultiJoin</dd>
<dd><code>project</code> - the Project on top of the MultiJoin</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>the new MultiJoin</dd>
</dl>
</li>
</ul>
<a name="addTrait-org.apache.calcite.rel.RelNode-org.apache.calcite.plan.RelTrait-">
<!-- -->
</a><a name="addTrait-T-org.apache.calcite.plan.RelTrait-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addTrait</h4>
<pre>public static&nbsp;&lt;T extends <a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&gt;&nbsp;T&nbsp;addTrait(T&nbsp;rel,
<a href="../../../../org/apache/calcite/plan/RelTrait.html" title="org.apache.calcite.plan中的接口">RelTrait</a>&nbsp;trait)</pre>
</li>
</ul>
<a name="replaceInput-org.apache.calcite.rel.RelNode-int-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>replaceInput</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;replaceInput(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;parent,
int&nbsp;ordinal,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;newInput)</pre>
<div class="block">Returns a shallow copy of a relational expression with a particular
input replaced.</div>
</li>
</ul>
<a name="createProject-org.apache.calcite.rel.RelNode-org.apache.calcite.util.mapping.Mappings.TargetMapping-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createProject</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;createProject(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;child,
<a href="../../../../org/apache/calcite/util/mapping/Mappings.TargetMapping.html" title="org.apache.calcite.util.mapping中的接口">Mappings.TargetMapping</a>&nbsp;mapping)</pre>
<div class="block">Creates a <a href="../../../../org/apache/calcite/rel/logical/LogicalProject.html" title="org.apache.calcite.rel.logical中的类"><code>LogicalProject</code></a> that
projects particular fields of its input, according to a mapping.</div>
</li>
</ul>
<a name="createProject-org.apache.calcite.rel.RelNode-org.apache.calcite.util.mapping.Mappings.TargetMapping-org.apache.calcite.rel.core.RelFactories.ProjectFactory-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createProject</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;createProject(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;child,
<a href="../../../../org/apache/calcite/util/mapping/Mappings.TargetMapping.html" title="org.apache.calcite.util.mapping中的接口">Mappings.TargetMapping</a>&nbsp;mapping,
<a href="../../../../org/apache/calcite/rel/core/RelFactories.ProjectFactory.html" title="org.apache.calcite.rel.core中的接口">RelFactories.ProjectFactory</a>&nbsp;projectFactory)</pre>
</li>
</ul>
<a name="contains-org.apache.calcite.rel.RelNode-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>contains</h4>
<pre>public static&nbsp;boolean&nbsp;contains(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;ancestor,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;target)</pre>
<div class="block">Returns whether relational expression <code>target</code> occurs within a
relational expression <code>ancestor</code>.</div>
</li>
</ul>
<a name="replace-org.apache.calcite.rel.RelNode-org.apache.calcite.rel.RelNode-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>replace</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;replace(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;query,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;find,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;replace)</pre>
<div class="block">Within a relational expression <code>query</code>, replaces occurrences of
<code>find</code> with <code>replace</code>.</div>
</li>
</ul>
<a name="getContext-org.apache.calcite.plan.RelOptCluster-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getContext</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="java.lang中的类或接口">@Deprecated</a>
public static&nbsp;<a href="../../../../org/apache/calcite/plan/RelOptTable.ToRelContext.html" title="org.apache.calcite.plan中的接口">RelOptTable.ToRelContext</a>&nbsp;getContext(<a href="../../../../org/apache/calcite/plan/RelOptCluster.html" title="org.apache.calcite.plan中的类">RelOptCluster</a>&nbsp;cluster)</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</li>
</ul>
<a name="countJoins-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>countJoins</h4>
<pre>public static&nbsp;int&nbsp;countJoins(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rootRel)</pre>
<div class="block">Returns the number of <a href="../../../../org/apache/calcite/rel/core/Join.html" title="org.apache.calcite.rel.core中的类"><code>Join</code></a> nodes in a
tree.</div>
</li>
</ul>
<a name="permute-org.apache.calcite.rel.type.RelDataTypeFactory-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.util.mapping.Mapping-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>permute</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;permute(<a href="../../../../org/apache/calcite/rel/type/RelDataTypeFactory.html" title="org.apache.calcite.rel.type中的接口">RelDataTypeFactory</a>&nbsp;typeFactory,
<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;rowType,
<a href="../../../../org/apache/calcite/util/mapping/Mapping.html" title="org.apache.calcite.util.mapping中的接口">Mapping</a>&nbsp;mapping)</pre>
<div class="block">Permutes a record type according to a mapping.</div>
</li>
</ul>
<a name="createProject-org.apache.calcite.rel.RelNode-java.util.List-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createProject</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="java.lang中的类或接口">@Deprecated</a>
public static&nbsp;<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;createProject(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;child,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;? extends <a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;exprList,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&gt;&nbsp;fieldNameList)</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</li>
</ul>
<a name="createProject-org.apache.calcite.rel.RelNode-java.util.List-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createProject</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="java.lang中的类或接口">@Deprecated</a>
public static&nbsp;<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;createProject(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;child,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/util/Pair.html" title="org.apache.calcite.util中的类">Pair</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&gt;&gt;&nbsp;projectList,
boolean&nbsp;optimize)</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</li>
</ul>
<a name="createProject-org.apache.calcite.rel.RelNode-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createProject</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;createProject(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;child,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="java.lang中的类或接口">Integer</a>&gt;&nbsp;posList)</pre>
<div class="block">Creates a relational expression that projects the given fields of the
input.
<p>Optimizes if the fields are the identity projection.</p></div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>child</code> - Input relational expression</dd>
<dd><code>posList</code> - Source of each projected field</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>Relational expression that projects given fields</dd>
</dl>
</li>
</ul>
<a name="createProject-org.apache.calcite.rel.RelNode-java.util.List-java.util.List-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createProject</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="java.lang中的类或接口">@Deprecated</a>
public static&nbsp;<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;createProject(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;child,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;? extends <a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;exprs,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&gt;&nbsp;fieldNames,
boolean&nbsp;optimize)</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</li>
</ul>
<a name="createProject-org.apache.calcite.rel.RelNode-java.util.List-java.util.List-boolean-org.apache.calcite.tools.RelBuilder-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createProject</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="java.lang中的类或接口">@Deprecated</a>
public static&nbsp;<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;createProject(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;child,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;? extends <a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;exprs,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&gt;&nbsp;fieldNames,
boolean&nbsp;optimize,
<a href="../../../../org/apache/calcite/tools/RelBuilder.html" title="org.apache.calcite.tools中的类">RelBuilder</a>&nbsp;relBuilder)</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;<span class="deprecationComment">Use
<a href="../../../../org/apache/calcite/tools/RelBuilder.html#projectNamed-java.lang.Iterable-java.lang.Iterable-boolean-"><code>RelBuilder.projectNamed(Iterable, Iterable, boolean)</code></a></span></div>
</li>
</ul>
<a name="createRename-org.apache.calcite.rel.RelNode-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createRename</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="java.lang中的类或接口">@Deprecated</a>
public static&nbsp;<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;createRename(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&gt;&nbsp;fieldNames)</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</li>
</ul>
<a name="permute-org.apache.calcite.rel.RelNode-org.apache.calcite.util.Permutation-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>permute</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;permute(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel,
<a href="../../../../org/apache/calcite/util/Permutation.html" title="org.apache.calcite.util中的类">Permutation</a>&nbsp;permutation,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&gt;&nbsp;fieldNames)</pre>
<div class="block">Creates a relational expression which permutes the output fields of a
relational expression according to a permutation.
<p>Optimizations:</p>
<ul>
<li>If the relational expression is a
<a href="../../../../org/apache/calcite/rel/logical/LogicalCalc.html" title="org.apache.calcite.rel.logical中的类"><code>LogicalCalc</code></a> or
<a href="../../../../org/apache/calcite/rel/logical/LogicalProject.html" title="org.apache.calcite.rel.logical中的类"><code>LogicalProject</code></a> that is already
acting as a permutation, combines the new permutation with the old;</li>
<li>If the permutation is the identity, returns the original relational
expression.</li>
</ul>
<p>If a permutation is combined with its inverse, these optimizations
would combine to remove them both.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rel</code> - Relational expression</dd>
<dd><code>permutation</code> - Permutation to apply to fields</dd>
<dd><code>fieldNames</code> - Field names; if null, or if a particular entry is null,
the name of the permuted field is used</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>relational expression which permutes its input fields</dd>
</dl>
</li>
</ul>
<a name="createProject-org.apache.calcite.rel.core.RelFactories.ProjectFactory-org.apache.calcite.rel.RelNode-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createProject</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;createProject(<a href="../../../../org/apache/calcite/rel/core/RelFactories.ProjectFactory.html" title="org.apache.calcite.rel.core中的接口">RelFactories.ProjectFactory</a>&nbsp;factory,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;child,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="java.lang中的类或接口">Integer</a>&gt;&nbsp;posList)</pre>
<div class="block">Creates a relational expression that projects the given fields of the
input.
<p>Optimizes if the fields are the identity projection.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>factory</code> - ProjectFactory</dd>
<dd><code>child</code> - Input relational expression</dd>
<dd><code>posList</code> - Source of each projected field</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>Relational expression that projects given fields</dd>
</dl>
</li>
</ul>
<a name="projectMapping-org.apache.calcite.rel.RelNode-org.apache.calcite.util.mapping.Mapping-java.util.List-org.apache.calcite.rel.core.RelFactories.ProjectFactory-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>projectMapping</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="java.lang中的类或接口">@Deprecated</a>
public static&nbsp;<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;projectMapping(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel,
<a href="../../../../org/apache/calcite/util/mapping/Mapping.html" title="org.apache.calcite.util.mapping中的接口">Mapping</a>&nbsp;mapping,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&gt;&nbsp;fieldNames,
<a href="../../../../org/apache/calcite/rel/core/RelFactories.ProjectFactory.html" title="org.apache.calcite.rel.core中的接口">RelFactories.ProjectFactory</a>&nbsp;projectFactory)</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</li>
</ul>
<a name="notContainsWindowedAgg-org.apache.calcite.rel.core.Calc-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>notContainsWindowedAgg</h4>
<pre>public static&nbsp;boolean&nbsp;notContainsWindowedAgg(<a href="../../../../org/apache/calcite/rel/core/Calc.html" title="org.apache.calcite.rel.core中的类">Calc</a>&nbsp;calc)</pre>
<div class="block">Predicate for if a <a href="../../../../org/apache/calcite/rel/core/Calc.html" title="org.apache.calcite.rel.core中的类"><code>Calc</code></a> does not contain windowed aggregates.</div>
</li>
</ul>
<a name="notContainsWindowedAgg-org.apache.calcite.rel.core.Filter-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>notContainsWindowedAgg</h4>
<pre>public static&nbsp;boolean&nbsp;notContainsWindowedAgg(<a href="../../../../org/apache/calcite/rel/core/Filter.html" title="org.apache.calcite.rel.core中的类">Filter</a>&nbsp;filter)</pre>
<div class="block">Predicate for if a <a href="../../../../org/apache/calcite/rel/core/Filter.html" title="org.apache.calcite.rel.core中的类"><code>Filter</code></a> does not windowed aggregates.</div>
</li>
</ul>
<a name="notContainsWindowedAgg-org.apache.calcite.rel.core.Project-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>notContainsWindowedAgg</h4>
<pre>public static&nbsp;boolean&nbsp;notContainsWindowedAgg(<a href="../../../../org/apache/calcite/rel/core/Project.html" title="org.apache.calcite.rel.core中的类">Project</a>&nbsp;project)</pre>
<div class="block">Predicate for if a <a href="../../../../org/apache/calcite/rel/core/Project.html" title="org.apache.calcite.rel.core中的类"><code>Project</code></a> does not contain windowed aggregates.</div>
</li>
</ul>
<a name="pushDownJoinConditions-org.apache.calcite.rel.core.Join-org.apache.calcite.tools.RelBuilder-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>pushDownJoinConditions</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;pushDownJoinConditions(<a href="../../../../org/apache/calcite/rel/core/Join.html" title="org.apache.calcite.rel.core中的类">Join</a>&nbsp;originalJoin,
<a href="../../../../org/apache/calcite/tools/RelBuilder.html" title="org.apache.calcite.tools中的类">RelBuilder</a>&nbsp;relBuilder)</pre>
<div class="block">Pushes down expressions in "equal" join condition.
<p>For example, given
"emp JOIN dept ON emp.deptno + 1 = dept.deptno", adds a project above
"emp" that computes the expression
"emp.deptno + 1". The resulting join condition is a simple combination
of AND, equals, and input fields, plus the remaining non-equal conditions.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>originalJoin</code> - Join whose condition is to be pushed down</dd>
<dd><code>relBuilder</code> - Factory to create project operator</dd>
</dl>
</li>
</ul>
<a name="pushDownJoinConditions-org.apache.calcite.rel.core.Join-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>pushDownJoinConditions</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="java.lang中的类或接口">@Deprecated</a>
public static&nbsp;<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;pushDownJoinConditions(<a href="../../../../org/apache/calcite/rel/core/Join.html" title="org.apache.calcite.rel.core中的类">Join</a>&nbsp;originalJoin)</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</li>
</ul>
<a name="pushDownJoinConditions-org.apache.calcite.rel.core.Join-org.apache.calcite.rel.core.RelFactories.ProjectFactory-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>pushDownJoinConditions</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="java.lang中的类或接口">@Deprecated</a>
public static&nbsp;<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;pushDownJoinConditions(<a href="../../../../org/apache/calcite/rel/core/Join.html" title="org.apache.calcite.rel.core中的类">Join</a>&nbsp;originalJoin,
<a href="../../../../org/apache/calcite/rel/core/RelFactories.ProjectFactory.html" title="org.apache.calcite.rel.core中的接口">RelFactories.ProjectFactory</a>&nbsp;projectFactory)</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="跳过导航链接">跳过导航链接</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="导航">
<li><a href="../../../../overview-summary.html">概览</a></li>
<li><a href="package-summary.html">程序包</a></li>
<li class="navBarCell1Rev"></li>
<li><a href="package-tree.html"></a></li>
<li><a href="../../../../deprecated-list.html">已过时</a></li>
<li><a href="../../../../index-all.html">索引</a></li>
<li><a href="../../../../help-doc.html">帮助</a></li>
</ul>
<div class="aboutLanguage"><b>Apache Calcite</b></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/calcite/plan/RelOptTable.ViewExpander.html" title="org.apache.calcite.plan中的接口"><span class="typeNameLink">上一个类</span></a></li>
<li><a href="../../../../org/apache/calcite/plan/RelOptUtil.Exists.html" title="org.apache.calcite.plan中的类"><span class="typeNameLink">下一个类</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/calcite/plan/RelOptUtil.html" target="_top">框架</a></li>
<li><a href="RelOptUtil.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>概要:&nbsp;</li>
<li><a href="#nested.class.summary">嵌套</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">字段</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">构造器</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">方法</a></li>
</ul>
<ul class="subNavList">
<li>详细资料:&nbsp;</li>
<li><a href="#field.detail">字段</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">构造器</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">方法</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &copy; 2012-2020 Apache Software Foundation. All Rights Reserved.</small></p>
</body>
</html>