blob: 4fbad64287fdf7fed9ceee5c3ee504deea5ff231 [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>RexUtil (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="RexUtil (Apache Calcite calcite API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9,"i11":9,"i12":9,"i13":9,"i14":9,"i15":9,"i16":9,"i17":9,"i18":9,"i19":9,"i20":9,"i21":9,"i22":9,"i23":9,"i24":9,"i25":9,"i26":9,"i27":9,"i28":41,"i29":9,"i30":9,"i31":41,"i32":9,"i33":9,"i34":9,"i35":9,"i36":41,"i37":9,"i38":9,"i39":9,"i40":9,"i41":9,"i42":9,"i43":9,"i44":9,"i45":9,"i46":9,"i47":9,"i48":9,"i49":9,"i50":9,"i51":9,"i52":9,"i53":9,"i54":9,"i55":9,"i56":9,"i57":9,"i58":9,"i59":9,"i60":9,"i61":9,"i62":9,"i63":9,"i64":41,"i65":9,"i66":9,"i67":9,"i68":9,"i69":9,"i70":9,"i71":9,"i72":9,"i73":9,"i74":9,"i75":9,"i76":9,"i77":41,"i78":41,"i79":41,"i80":41,"i81":41,"i82":41,"i83":41,"i84":41,"i85":41,"i86":41,"i87":9,"i88":9,"i89":9,"i90":9,"i91":9,"i92":9,"i93":9,"i94":9,"i95":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/rex/RexUnknownAs.html" title="org.apache.calcite.rex中的枚举"><span class="typeNameLink">上一个类</span></a></li>
<li><a href="../../../../org/apache/calcite/rex/RexUtil.ExprSimplifier.html" title="org.apache.calcite.rex中的类"><span class="typeNameLink">下一个类</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/calcite/rex/RexUtil.html" target="_top">框架</a></li>
<li><a href="RexUtil.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>构造器&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>构造器&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.rex</div>
<h2 title="类 RexUtil" class="title">类 RexUtil</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.rex.RexUtil</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="typeNameLabel">RexUtil</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">Utility methods concerning row-expressions.</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/rex/RexUtil.ExprSimplifier.html" title="org.apache.calcite.rex中的类">RexUtil.ExprSimplifier</a></span></code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</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/rex/RexUtil.FieldAccessFinder.html" title="org.apache.calcite.rex中的类">RexUtil.FieldAccessFinder</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/rex/RexUtil.FixNullabilityShuttle.html" title="org.apache.calcite.rex中的类">RexUtil.FixNullabilityShuttle</a></span></code>
<div class="block">Shuttle that fixes up an expression to match changes in nullability of
input fields.</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/rex/RexUtil.SubQueryFinder.html" title="org.apache.calcite.rex中的类">RexUtil.SubQueryFinder</a></span></code>
<div class="block">Visitor that throws <a href="../../../../org/apache/calcite/util/Util.FoundOne.html" title="org.apache.calcite.util中的类"><code>Util.FoundOne</code></a> if
applied to an expression that contains a <a href="../../../../org/apache/calcite/rex/RexSubQuery.html" title="org.apache.calcite.rex中的类"><code>RexSubQuery</code></a>.</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 <a href="../../../../org/apache/calcite/rex/RexExecutor.html" title="org.apache.calcite.rex中的接口">RexExecutor</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rex/RexUtil.html#EXECUTOR">EXECUTOR</a></span></code>
<div class="block">Executor for a bit of constant reduction.</div>
</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;E&gt;&nbsp;boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rex/RexUtil.html#all-java.util.List-org.apache.calcite.linq4j.function.Predicate1-">all</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 E&gt;&nbsp;list,
<a href="../../../../org/apache/calcite/linq4j/function/Predicate1.html" title="org.apache.calcite.linq4j.function中的接口">Predicate1</a>&lt;E&gt;&nbsp;predicate)</code>
<div class="block">Returns whether <code>predicate</code> is true for all elements of
<code>list</code>.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rex/RexUtil.html#allLiterals-java.util.List-">allLiterals</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;expressionOperands)</code>
<div class="block">Returns whether every expression in a list is a literal.</div>
</td>
</tr>
<tr id="i2" 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/rex/RexUtil.html#andNot-org.apache.calcite.rex.RexBuilder-org.apache.calcite.rex.RexNode-java.lang.Iterable-">andNot</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;e,
<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;notTerms)</code>
<div class="block">Creates the expression <code>e1 AND NOT notTerm1 AND NOT notTerm2 ...</code>.</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/rex/RexUtil.html#andNot-org.apache.calcite.rex.RexBuilder-org.apache.calcite.rex.RexNode-org.apache.calcite.rex.RexNode...-">andNot</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;e,
<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>...&nbsp;notTerms)</code>
<div class="block">Creates the expression <code>e1 AND NOT notTerm1 AND NOT notTerm2 ...</code>.</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/Iterable.html?is-external=true" title="java.lang中的类或接口">Iterable</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/rex/RexUtil.html#apply-org.apache.calcite.util.mapping.Mappings.TargetMapping-java.lang.Iterable-">apply</a></span>(<a href="../../../../org/apache/calcite/util/mapping/Mappings.TargetMapping.html" title="org.apache.calcite.util.mapping中的接口">Mappings.TargetMapping</a>&nbsp;mapping,
<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;nodes)</code>
<div class="block">Applies a mapping to an iterable over expressions.</div>
</td>
</tr>
<tr id="i5" 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/RelCollation.html" title="org.apache.calcite.rel中的接口">RelCollation</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rex/RexUtil.html#apply-org.apache.calcite.util.mapping.Mappings.TargetMapping-java.util.List-">apply</a></span>(<a href="../../../../org/apache/calcite/util/mapping/Mappings.TargetMapping.html" title="org.apache.calcite.util.mapping中的接口">Mappings.TargetMapping</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="../../../../org/apache/calcite/rel/RelCollation.html" title="org.apache.calcite.rel中的接口">RelCollation</a>&gt;&nbsp;collationList)</code>
<div class="block">Applies a mapping to a collation list.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/rel/RelCollation.html" title="org.apache.calcite.rel中的接口">RelCollation</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rex/RexUtil.html#apply-org.apache.calcite.util.mapping.Mappings.TargetMapping-org.apache.calcite.rel.RelCollation-">apply</a></span>(<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/RelCollation.html" title="org.apache.calcite.rel中的接口">RelCollation</a>&nbsp;collation)</code>
<div class="block">Applies a mapping to a collation.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/rel/RelFieldCollation.html" title="org.apache.calcite.rel中的类">RelFieldCollation</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rex/RexUtil.html#apply-org.apache.calcite.util.mapping.Mappings.TargetMapping-org.apache.calcite.rel.RelFieldCollation-">apply</a></span>(<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/RelFieldCollation.html" title="org.apache.calcite.rel中的类">RelFieldCollation</a>&nbsp;fieldCollation)</code>
<div class="block">Applies a mapping to a field collation.</div>
</td>
</tr>
<tr id="i8" 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/rex/RexUtil.html#apply-org.apache.calcite.util.mapping.Mappings.TargetMapping-org.apache.calcite.rex.RexNode-">apply</a></span>(<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/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;node)</code>
<div class="block">Applies a mapping to an expression.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>static &lt;T extends <a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;<br>T[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rex/RexUtil.html#apply-org.apache.calcite.rex.RexVisitor-T:A-">apply</a></span>(<a href="../../../../org/apache/calcite/rex/RexVisitor.html" title="org.apache.calcite.rex中的接口">RexVisitor</a>&lt;T&gt;&nbsp;shuttle,
T[]&nbsp;exprs)</code>
<div class="block">Applies a shuttle to an array of expressions.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rex/RexUtil.html#apply-org.apache.calcite.rex.RexVisitor-java.util.List-org.apache.calcite.rex.RexNode-">apply</a></span>(<a href="../../../../org/apache/calcite/rex/RexVisitor.html" title="org.apache.calcite.rex中的接口">RexVisitor</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="java.lang中的类或接口">Void</a>&gt;&nbsp;visitor,
<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="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;expr)</code>
<div class="block">Applies a visitor to a list of expressions and, if specified, a single
expression.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rex/RexUtil.html#apply-org.apache.calcite.rex.RexVisitor-org.apache.calcite.rex.RexNode:A-org.apache.calcite.rex.RexNode-">apply</a></span>(<a href="../../../../org/apache/calcite/rex/RexVisitor.html" title="org.apache.calcite.rex中的接口">RexVisitor</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="java.lang中的类或接口">Void</a>&gt;&nbsp;visitor,
<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>[]&nbsp;exprs,
<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;expr)</code>
<div class="block">Applies a visitor to an array of expressions and, if specified, a single
expression.</div>
</td>
</tr>
<tr id="i12" 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/RelFieldCollation.html" title="org.apache.calcite.rel中的类">RelFieldCollation</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rex/RexUtil.html#applyFields-org.apache.calcite.util.mapping.Mappings.TargetMapping-java.util.List-">applyFields</a></span>(<a href="../../../../org/apache/calcite/util/mapping/Mappings.TargetMapping.html" title="org.apache.calcite.util.mapping中的接口">Mappings.TargetMapping</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="../../../../org/apache/calcite/rel/RelFieldCollation.html" title="org.apache.calcite.rel中的类">RelFieldCollation</a>&gt;&nbsp;fieldCollations)</code>
<div class="block">Applies a mapping to a list of field collations.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rex/RexUtil.html#canReinterpretOverflow-org.apache.calcite.rex.RexCall-">canReinterpretOverflow</a></span>(<a href="../../../../org/apache/calcite/rex/RexCall.html" title="org.apache.calcite.rex中的类">RexCall</a>&nbsp;call)</code>&nbsp;</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rex/RexUtil.html#compatibleTypes-java.util.List-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.util.Litmus-">compatibleTypes</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;exprs,
<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;type,
<a href="../../../../org/apache/calcite/util/Litmus.html" title="org.apache.calcite.util中的接口">Litmus</a>&nbsp;litmus)</code>
<div class="block">Returns whether the type of an array of expressions is compatible with a
struct type.</div>
</td>
</tr>
<tr id="i15" 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/rex/RexUtil.html#composeConjunction-org.apache.calcite.rex.RexBuilder-java.lang.Iterable-">composeConjunction</a></span>(<a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a>&nbsp;rexBuilder,
<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;nodes)</code>
<div class="block">As <a href="../../../../org/apache/calcite/rex/RexUtil.html#composeConjunction-org.apache.calcite.rex.RexBuilder-java.lang.Iterable-boolean-"><code>composeConjunction(RexBuilder, Iterable, boolean)</code></a> but never
returns null.</div>
</td>
</tr>
<tr id="i16" 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/rex/RexUtil.html#composeConjunction-org.apache.calcite.rex.RexBuilder-java.lang.Iterable-boolean-">composeConjunction</a></span>(<a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a>&nbsp;rexBuilder,
<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;nodes,
boolean&nbsp;nullOnEmpty)</code>
<div class="block">Converts a collection of expressions into an AND.</div>
</td>
</tr>
<tr id="i17" 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/rex/RexUtil.html#composeDisjunction-org.apache.calcite.rex.RexBuilder-java.lang.Iterable-">composeDisjunction</a></span>(<a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a>&nbsp;rexBuilder,
<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;nodes)</code>
<div class="block">Converts a collection of expressions into an OR.</div>
</td>
</tr>
<tr id="i18" 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/rex/RexUtil.html#composeDisjunction-org.apache.calcite.rex.RexBuilder-java.lang.Iterable-boolean-">composeDisjunction</a></span>(<a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a>&nbsp;rexBuilder,
<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;nodes,
boolean&nbsp;nullOnEmpty)</code>
<div class="block">Converts a collection of expressions into an OR,
optionally returning null if the list is empty.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rex/RexUtil.html#containComplexExprs-java.util.List-">containComplexExprs</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;exprs)</code>
<div class="block">Returns whether a list of expressions contains complex expressions, that
is, a call whose arguments are not <a href="../../../../org/apache/calcite/rex/RexVariable.html" title="org.apache.calcite.rex中的类"><code>RexVariable</code></a> (or a subtype such
as <a href="../../../../org/apache/calcite/rex/RexInputRef.html" title="org.apache.calcite.rex中的类"><code>RexInputRef</code></a>) or <a href="../../../../org/apache/calcite/rex/RexLiteral.html" title="org.apache.calcite.rex中的类"><code>RexLiteral</code></a>.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rex/RexUtil.html#containIdentity-java.util.List-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.util.Litmus-">containIdentity</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;exprs,
<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/Litmus.html" title="org.apache.calcite.util中的接口">Litmus</a>&nbsp;litmus)</code>
<div class="block">Returns whether the leading edge of a given array of expressions is
wholly <a href="../../../../org/apache/calcite/rex/RexInputRef.html" title="org.apache.calcite.rex中的类"><code>RexInputRef</code></a> objects with types corresponding to the
underlying datatype.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rex/RexUtil.html#containNoCommonExprs-java.util.List-org.apache.calcite.util.Litmus-">containNoCommonExprs</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;exprs,
<a href="../../../../org/apache/calcite/util/Litmus.html" title="org.apache.calcite.util中的接口">Litmus</a>&nbsp;litmus)</code>
<div class="block">Returns whether an array of expressions has any common sub-expressions.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rex/RexUtil.html#containNoForwardRefs-java.util.List-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.util.Litmus-">containNoForwardRefs</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;exprs,
<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;inputRowType,
<a href="../../../../org/apache/calcite/util/Litmus.html" title="org.apache.calcite.util中的接口">Litmus</a>&nbsp;litmus)</code>
<div class="block">Returns whether an array of expressions contains no forward references.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rex/RexUtil.html#containsCorrelation-org.apache.calcite.rex.RexNode-">containsCorrelation</a></span>(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;condition)</code>
<div class="block">Returns whether an expression contains a <a href="../../../../org/apache/calcite/rex/RexCorrelVariable.html" title="org.apache.calcite.rex中的类"><code>RexCorrelVariable</code></a>.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rex/RexUtil.html#containsFieldAccess-org.apache.calcite.rex.RexNode-">containsFieldAccess</a></span>(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;node)</code>
<div class="block">Returns whether a given tree contains any
<a href="../../../../org/apache/calcite/rex/RexFieldAccess.html" title="org.apache.calcite.rex中的类"><code>RexFieldAccess</code></a> nodes.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rex/RexUtil.html#containsInputRef-org.apache.calcite.rex.RexNode-">containsInputRef</a></span>(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;node)</code>
<div class="block">Returns whether a given tree contains any {link RexInputRef} nodes.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rex/RexUtil.html#containsTableInputRef-java.util.List-">containsTableInputRef</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)</code>
<div class="block">Returns whether any of the given expression trees contains a
{link RexTableInputRef} node.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/calcite/rex/RexTableInputRef.html" title="org.apache.calcite.rex中的类">RexTableInputRef</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rex/RexUtil.html#containsTableInputRef-org.apache.calcite.rex.RexNode-">containsTableInputRef</a></span>(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;node)</code>
<div class="block">Returns whether a given tree contains any {link RexTableInputRef} nodes.</div>
</td>
</tr>
<tr id="i28" 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/rex/RexUtil.html#createStructType-org.apache.calcite.rel.type.RelDataTypeFactory-java.util.List-java.util.List-">createStructType</a></span>(<a href="../../../../org/apache/calcite/rel/type/RelDataTypeFactory.html" title="org.apache.calcite.rel.type中的接口">RelDataTypeFactory</a>&nbsp;typeFactory,
<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;names)</code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</td>
</tr>
<tr id="i29" 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/rex/RexUtil.html#createStructType-org.apache.calcite.rel.type.RelDataTypeFactory-java.util.List-java.util.List-org.apache.calcite.sql.validate.SqlValidatorUtil.Suggester-">createStructType</a></span>(<a href="../../../../org/apache/calcite/rel/type/RelDataTypeFactory.html" title="org.apache.calcite.rel.type中的接口">RelDataTypeFactory</a>&nbsp;typeFactory,
<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;names,
<a href="../../../../org/apache/calcite/sql/validate/SqlValidatorUtil.Suggester.html" title="org.apache.calcite.sql.validate中的接口">SqlValidatorUtil.Suggester</a>&nbsp;suggester)</code>
<div class="block">Creates a record type with specified field names.</div>
</td>
</tr>
<tr id="i30" 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/rex/RexUtil.html#createStructType-org.apache.calcite.rel.type.RelDataTypeFactory-java.util.List-">createStructType</a></span>(<a href="../../../../org/apache/calcite/rel/type/RelDataTypeFactory.html" title="org.apache.calcite.rel.type中的接口">RelDataTypeFactory</a>&nbsp;typeFactory,
<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;exprs)</code>
<div class="block">Creates a record type with anonymous field names.</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rex/RexUtil.html#eq-org.apache.calcite.rex.RexNode-org.apache.calcite.rex.RexNode-">eq</a></span>(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;e1,
<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;e2)</code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>static &lt;E&gt;&nbsp;boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rex/RexUtil.html#exists-java.util.List-org.apache.calcite.linq4j.function.Predicate1-">exists</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 E&gt;&nbsp;list,
<a href="../../../../org/apache/calcite/linq4j/function/Predicate1.html" title="org.apache.calcite.linq4j.function中的接口">Predicate1</a>&lt;E&gt;&nbsp;predicate)</code>
<div class="block">Returns whether there is an element in <code>list</code> for which
<code>predicate</code> is true.</div>
</td>
</tr>
<tr id="i33" 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/RelDataTypeFamily.html" title="org.apache.calcite.rel.type中的接口">RelDataTypeFamily</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rex/RexUtil.html#families-java.util.List-">families</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/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&gt;&nbsp;types)</code>&nbsp;</td>
</tr>
<tr id="i34" 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/rex/RexUtil.html#findOperatorCall-org.apache.calcite.sql.SqlOperator-org.apache.calcite.rex.RexNode-">findOperatorCall</a></span>(<a href="../../../../org/apache/calcite/sql/SqlOperator.html" title="org.apache.calcite.sql中的类">SqlOperator</a>&nbsp;operator,
<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;node)</code>
<div class="block">Returns whether a given node contains a RexCall with a specified operator</div>
</td>
</tr>
<tr id="i35" 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/rex/RexUtil.html#fixUp-org.apache.calcite.rex.RexBuilder-java.util.List-java.util.List-">fixUp</a></span>(<a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a>&nbsp;rexBuilder,
<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="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;fieldTypes)</code>
<div class="block">Fixes up the type of all <a href="../../../../org/apache/calcite/rex/RexInputRef.html" title="org.apache.calcite.rex中的类"><code>RexInputRef</code></a>s in an
expression to match differences in nullability.</div>
</td>
</tr>
<tr id="i36" 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/rex/RexUtil.html#fixUp-org.apache.calcite.rex.RexBuilder-java.util.List-org.apache.calcite.rel.type.RelDataType-">fixUp</a></span>(<a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a>&nbsp;rexBuilder,
<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;rowType)</code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</td>
</tr>
<tr id="i37" 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/rex/RexUtil.html#flatten-java.util.List-org.apache.calcite.sql.SqlOperator-">flatten</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;exprs,
<a href="../../../../org/apache/calcite/sql/SqlOperator.html" title="org.apache.calcite.sql中的类">SqlOperator</a>&nbsp;op)</code>
<div class="block">Converts a list of operands into a list that is flat with respect to
the given operator.</div>
</td>
</tr>
<tr id="i38" 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/rex/RexUtil.html#flatten-org.apache.calcite.rex.RexBuilder-org.apache.calcite.rex.RexNode-">flatten</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;node)</code>
<div class="block">Flattens an expression.</div>
</td>
</tr>
<tr id="i39" class="rowColor">
<td class="colFirst"><code>static com.google.common.collect.ImmutableList&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/rex/RexUtil.html#flattenAnd-java.lang.Iterable-">flattenAnd</a></span>(<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;nodes)</code>
<div class="block">Flattens a list of AND nodes.</div>
</td>
</tr>
<tr id="i40" class="altColor">
<td class="colFirst"><code>static com.google.common.collect.ImmutableList&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/rex/RexUtil.html#flattenOr-java.lang.Iterable-">flattenOr</a></span>(<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;nodes)</code>
<div class="block">Flattens a list of OR nodes.</div>
</td>
</tr>
<tr id="i41" 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="../../../../org/apache/calcite/rex/RexTableInputRef.RelTableRef.html" title="org.apache.calcite.rex中的类">RexTableInputRef.RelTableRef</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rex/RexUtil.html#gatherTableReferences-java.util.List-">gatherTableReferences</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)</code>
<div class="block">Gather all table references in input expressions.</div>
</td>
</tr>
<tr id="i42" 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/rex/RexUtil.html#generateCastExpressions-org.apache.calcite.rex.RexBuilder-org.apache.calcite.rel.type.RelDataType-java.util.List-">generateCastExpressions</a></span>(<a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a>&nbsp;rexBuilder,
<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;lhsRowType,
<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;rhsExps)</code>
<div class="block">Generates a cast for a row type.</div>
</td>
</tr>
<tr id="i43" 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/rex/RexUtil.html#generateCastExpressions-org.apache.calcite.rex.RexBuilder-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.rel.type.RelDataType-">generateCastExpressions</a></span>(<a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a>&nbsp;rexBuilder,
<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;lhsRowType,
<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;rhsRowType)</code>
<div class="block">Generates a cast from one row type to another</div>
</td>
</tr>
<tr id="i44" class="altColor">
<td class="colFirst"><code>static double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rex/RexUtil.html#getSelectivity-org.apache.calcite.rex.RexNode-">getSelectivity</a></span>(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;exp)</code>
<div class="block">Returns a guess for the selectivity of an expression.</div>
</td>
</tr>
<tr id="i45" 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/rex/RexUtil.html#invert-org.apache.calcite.rex.RexBuilder-org.apache.calcite.rex.RexCall-">invert</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/RexCall.html" title="org.apache.calcite.rex中的类">RexCall</a>&nbsp;call)</code>&nbsp;</td>
</tr>
<tr id="i46" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rex/RexUtil.html#isAtomic-org.apache.calcite.rex.RexNode-">isAtomic</a></span>(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;expr)</code>&nbsp;</td>
</tr>
<tr id="i47" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rex/RexUtil.html#isCallTo-org.apache.calcite.rex.RexNode-org.apache.calcite.sql.SqlOperator-">isCallTo</a></span>(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;expr,
<a href="../../../../org/apache/calcite/sql/SqlOperator.html" title="org.apache.calcite.sql中的类">SqlOperator</a>&nbsp;op)</code>
<div class="block">Returns whether a <a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类"><code>node</code></a> is a <a href="../../../../org/apache/calcite/rex/RexCall.html" title="org.apache.calcite.rex中的类"><code>call</code></a> to a
given <a href="../../../../org/apache/calcite/sql/SqlOperator.html" title="org.apache.calcite.sql中的类"><code>operator</code></a>.</div>
</td>
</tr>
<tr id="i48" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rex/RexUtil.html#isCasePredicate-org.apache.calcite.rex.RexCall-int-">isCasePredicate</a></span>(<a href="../../../../org/apache/calcite/rex/RexCall.html" title="org.apache.calcite.rex中的类">RexCall</a>&nbsp;call,
int&nbsp;i)</code>
<div class="block">Returns whether a given operand of a CASE expression is a predicate.</div>
</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/rex/RexUtil.html#isConstant-org.apache.calcite.rex.RexNode-">isConstant</a></span>(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;node)</code>
<div class="block">Returns whether node is made up of constants.</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/rex/RexUtil.html#isDeterministic-org.apache.calcite.rex.RexNode-">isDeterministic</a></span>(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;e)</code>
<div class="block">Returns whether a given expression is deterministic.</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/rex/RexUtil.html#isFlat-org.apache.calcite.rex.RexNode-">isFlat</a></span>(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;expr)</code>
<div class="block">Returns false if the expression can be optimized by flattening
calls to an associative operator such as AND and OR.</div>
</td>
</tr>
<tr id="i52" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rex/RexUtil.html#isIdentity-java.util.List-org.apache.calcite.rel.type.RelDataType-">isIdentity</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;exps,
<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;inputRowType)</code>
<div class="block">Returns whether a list of expressions projects the incoming fields.</div>
</td>
</tr>
<tr id="i53" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rex/RexUtil.html#isLiteral-org.apache.calcite.rex.RexNode-boolean-">isLiteral</a></span>(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;node,
boolean&nbsp;allowCast)</code>
<div class="block">Returns whether a node represents a literal.</div>
</td>
</tr>
<tr id="i54" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rex/RexUtil.html#isLosslessCast-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.rel.type.RelDataType-">isLosslessCast</a></span>(<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;source,
<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;target)</code>
<div class="block">Returns whether the conversion from <code>source</code> to <code>target</code> type
is a 'loss-less' cast, that is, a cast from which
the original value of the field can be certainly recovered.</div>
</td>
</tr>
<tr id="i55" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rex/RexUtil.html#isLosslessCast-org.apache.calcite.rex.RexNode-">isLosslessCast</a></span>(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;node)</code>
<div class="block">Returns whether the input is a 'loss-less' cast, that is, a cast from which
the original value of the field can be certainly recovered.</div>
</td>
</tr>
<tr id="i56" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rex/RexUtil.html#isNull-org.apache.calcite.rex.RexNode-">isNull</a></span>(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;expr)</code>
<div class="block">Returns whether a node represents the NULL value or a series of nested
<code>CAST(NULL AS type)</code> calls.</div>
</td>
</tr>
<tr id="i57" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rex/RexUtil.html#isNullabilityCast-org.apache.calcite.rel.type.RelDataTypeFactory-org.apache.calcite.rex.RexNode-">isNullabilityCast</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/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;node)</code>
<div class="block">Returns whether an expression is a cast just for the purposes of
nullability, not changing any other aspect of the type.</div>
</td>
</tr>
<tr id="i58" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rex/RexUtil.html#isNullLiteral-org.apache.calcite.rex.RexNode-boolean-">isNullLiteral</a></span>(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;node,
boolean&nbsp;allowCast)</code>
<div class="block">Returns whether a node represents the NULL value.</div>
</td>
</tr>
<tr id="i59" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rex/RexUtil.html#isReferenceOrAccess-org.apache.calcite.rex.RexNode-boolean-">isReferenceOrAccess</a></span>(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;node,
boolean&nbsp;allowCast)</code>
<div class="block">Returns whether a node represents an input reference or field access.</div>
</td>
</tr>
<tr id="i60" class="altColor">
<td class="colFirst"><code>static <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;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rex/RexUtil.html#makeKey-org.apache.calcite.rex.RexNode-">makeKey</a></span>(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;expr)</code>
<div class="block">Creates a key for <a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类"><code>RexNode</code></a> which is the same as another key of
another RexNode only if the two have both the same type and textual
representation.</div>
</td>
</tr>
<tr id="i61" 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/rex/RexUtil.html#negate-org.apache.calcite.rex.RexBuilder-org.apache.calcite.rex.RexCall-">negate</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/RexCall.html" title="org.apache.calcite.rex中的类">RexCall</a>&nbsp;call)</code>&nbsp;</td>
</tr>
<tr id="i62" class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rex/RexUtil.html#nodeCount-java.util.List-">nodeCount</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)</code>
<div class="block">Returns the number of nodes (including leaves) in a list of
expressions.</div>
</td>
</tr>
<tr id="i63" 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/rex/RexUtil.html#not-org.apache.calcite.rex.RexNode-">not</a></span>(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;e)</code>
<div class="block">Negates a logical expression by adding or removing a NOT.</div>
</td>
</tr>
<tr id="i64" class="altColor">
<td class="colFirst"><code>static com.google.common.base.Function&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</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/rex/RexUtil.html#notFn-org.apache.calcite.rex.RexBuilder-">notFn</a></span>(<a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a>&nbsp;rexBuilder)</code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;
<div class="block"><span class="deprecationComment">Use <a href="../../../../org/apache/calcite/rex/RexUtil.html#not-org.apache.calcite.rex.RexNode-"><code>not(org.apache.calcite.rex.RexNode)</code></a></span></div>
</div>
</td>
</tr>
<tr id="i65" class="rowColor">
<td class="colFirst"><code>static &lt;C extends <a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;<br>com.google.common.collect.ImmutableMap&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>,C&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rex/RexUtil.html#predicateConstants-java.lang.Class-org.apache.calcite.rex.RexBuilder-java.util.List-">predicateConstants</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="java.lang中的类或接口">Class</a>&lt;C&gt;&nbsp;clazz,
<a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a>&nbsp;rexBuilder,
<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;predicates)</code>
<div class="block">Creates a map containing each (e, constant) pair that occurs within
a predicate list.</div>
</td>
</tr>
<tr id="i66" 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/rex/RexUtil.html#pullFactors-org.apache.calcite.rex.RexBuilder-org.apache.calcite.rex.RexNode-">pullFactors</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;node)</code>
<div class="block">Creates an equivalent version of a node where common factors among ORs
are pulled up.</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/rex/RexUtil.html#removeAll-java.util.List-org.apache.calcite.rex.RexNode-">removeAll</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;targets,
<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;e)</code>
<div class="block">Removes all expressions from a list that are equivalent to a given
expression.</div>
</td>
</tr>
<tr id="i68" 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/rex/RexUtil.html#removeCast-org.apache.calcite.rex.RexNode-">removeCast</a></span>(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;e)</code>
<div class="block">Removes any casts.</div>
</td>
</tr>
<tr id="i69" 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/rex/RexUtil.html#removeNullabilityCast-org.apache.calcite.rel.type.RelDataTypeFactory-org.apache.calcite.rex.RexNode-">removeNullabilityCast</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/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;node)</code>
<div class="block">Removes any casts that change nullability but not type.</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/rex/RexUtil.html#requiresDecimalExpansion-java.util.List-boolean-">requiresDecimalExpansion</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;operands,
boolean&nbsp;recurse)</code>
<div class="block">Determines whether any operand of a set requires decimal expansion</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/rex/RexUtil.html#requiresDecimalExpansion-org.apache.calcite.rex.RexNode-boolean-">requiresDecimalExpansion</a></span>(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;expr,
boolean&nbsp;recurse)</code>
<div class="block">Determines whether a <a href="../../../../org/apache/calcite/rex/RexCall.html" title="org.apache.calcite.rex中的类"><code>RexCall</code></a> requires decimal expansion.</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/rex/RexUtil.html#requiresDecimalExpansion-org.apache.calcite.rex.RexProgram-boolean-">requiresDecimalExpansion</a></span>(<a href="../../../../org/apache/calcite/rex/RexProgram.html" title="org.apache.calcite.rex中的类">RexProgram</a>&nbsp;program,
boolean&nbsp;recurse)</code>
<div class="block">Returns whether a <a href="../../../../org/apache/calcite/rex/RexProgram.html" title="org.apache.calcite.rex中的类"><code>RexProgram</code></a> contains expressions which require
decimal expansion.</div>
</td>
</tr>
<tr id="i73" 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/rex/RexUtil.html#retainDeterministic-java.util.List-">retainDeterministic</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;list)</code>&nbsp;</td>
</tr>
<tr id="i74" class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="java.lang中的类或接口">Iterable</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/rex/RexUtil.html#shift-java.lang.Iterable-int-">shift</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="java.lang中的类或接口">Iterable</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;nodes,
int&nbsp;offset)</code>
<div class="block">Shifts every <a href="../../../../org/apache/calcite/rex/RexInputRef.html" title="org.apache.calcite.rex中的类"><code>RexInputRef</code></a> in an expression by <code>offset</code>.</div>
</td>
</tr>
<tr id="i75" 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/rex/RexUtil.html#shift-org.apache.calcite.rex.RexNode-int-">shift</a></span>(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;node,
int&nbsp;offset)</code>
<div class="block">Shifts every <a href="../../../../org/apache/calcite/rex/RexInputRef.html" title="org.apache.calcite.rex中的类"><code>RexInputRef</code></a> in an expression by <code>offset</code>.</div>
</td>
</tr>
<tr id="i76" 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/rex/RexUtil.html#shift-org.apache.calcite.rex.RexNode-int-int-">shift</a></span>(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;node,
int&nbsp;start,
int&nbsp;offset)</code>
<div class="block">Shifts every <a href="../../../../org/apache/calcite/rex/RexInputRef.html" title="org.apache.calcite.rex中的类"><code>RexInputRef</code></a> in an expression higher than <code>start</code>
by <code>offset</code>.</div>
</td>
</tr>
<tr id="i77" 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/rex/RexUtil.html#simplify-org.apache.calcite.rex.RexBuilder-org.apache.calcite.rex.RexNode-">simplify</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;e)</code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;
<div class="block"><span class="deprecationComment">Create a <a href="../../../../org/apache/calcite/rex/RexSimplify.html" title="org.apache.calcite.rex中的类"><code>RexSimplify</code></a>, then call its
<a href="../../../../org/apache/calcite/rex/RexSimplify.html#simplify-org.apache.calcite.rex.RexNode-org.apache.calcite.rex.RexUnknownAs-"><code>RexSimplify.simplify(RexNode, RexUnknownAs)</code></a> method.</span></div>
</div>
</td>
</tr>
<tr id="i78" 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/rex/RexUtil.html#simplify-org.apache.calcite.rex.RexBuilder-org.apache.calcite.rex.RexNode-boolean-">simplify</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;e,
boolean&nbsp;unknownAsFalse)</code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;
<div class="block"><span class="deprecationComment">Create a <a href="../../../../org/apache/calcite/rex/RexSimplify.html" title="org.apache.calcite.rex中的类"><code>RexSimplify</code></a>, then call its
<a href="../../../../org/apache/calcite/rex/RexSimplify.html#simplify-org.apache.calcite.rex.RexNode-org.apache.calcite.rex.RexUnknownAs-"><code>RexSimplify.simplify(RexNode, RexUnknownAs)</code></a> method.</span></div>
</div>
</td>
</tr>
<tr id="i79" 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/rex/RexUtil.html#simplifyAnd-org.apache.calcite.rex.RexBuilder-org.apache.calcite.rex.RexCall-boolean-">simplifyAnd</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/RexCall.html" title="org.apache.calcite.rex中的类">RexCall</a>&nbsp;e,
boolean&nbsp;unknownAsFalse)</code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</td>
</tr>
<tr id="i80" 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/rex/RexUtil.html#simplifyAnd2-org.apache.calcite.rex.RexBuilder-java.util.List-java.util.List-">simplifyAnd2</a></span>(<a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a>&nbsp;rexBuilder,
<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;terms,
<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;notTerms)</code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</td>
</tr>
<tr id="i81" 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/rex/RexUtil.html#simplifyAnd2ForUnknownAsFalse-org.apache.calcite.rex.RexBuilder-java.util.List-java.util.List-">simplifyAnd2ForUnknownAsFalse</a></span>(<a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a>&nbsp;rexBuilder,
<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;terms,
<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;notTerms)</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/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rex/RexUtil.html#simplifyAnds-org.apache.calcite.rex.RexBuilder-java.lang.Iterable-">simplifyAnds</a></span>(<a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a>&nbsp;rexBuilder,
<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;nodes)</code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;
<div class="block"><span class="deprecationComment">Use
<a href="../../../../org/apache/calcite/rex/RexSimplify.html#simplifyAnds-java.lang.Iterable-org.apache.calcite.rex.RexUnknownAs-"><code>RexSimplify.simplifyAnds(Iterable, RexUnknownAs)</code></a>.</span></div>
</div>
</td>
</tr>
<tr id="i83" 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/rex/RexUtil.html#simplifyAnds-org.apache.calcite.rex.RexBuilder-java.lang.Iterable-boolean-">simplifyAnds</a></span>(<a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a>&nbsp;rexBuilder,
<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;nodes,
boolean&nbsp;unknownAsFalse)</code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</td>
</tr>
<tr id="i84" 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/rex/RexUtil.html#simplifyOr-org.apache.calcite.rex.RexBuilder-org.apache.calcite.rex.RexCall-">simplifyOr</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/RexCall.html" title="org.apache.calcite.rex中的类">RexCall</a>&nbsp;call)</code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</td>
</tr>
<tr id="i85" 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/rex/RexUtil.html#simplifyOrs-org.apache.calcite.rex.RexBuilder-java.util.List-">simplifyOrs</a></span>(<a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a>&nbsp;rexBuilder,
<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;terms)</code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</td>
</tr>
<tr id="i86" 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/rex/RexUtil.html#simplifyPreservingType-org.apache.calcite.rex.RexBuilder-org.apache.calcite.rex.RexNode-">simplifyPreservingType</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;e)</code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;
<div class="block"><span class="deprecationComment">Use <a href="../../../../org/apache/calcite/rex/RexSimplify.html#simplifyPreservingType-org.apache.calcite.rex.RexNode-"><code>RexSimplify.simplifyPreservingType(RexNode)</code></a>,
which allows you to specify an <a href="../../../../org/apache/calcite/rex/RexExecutor.html" title="org.apache.calcite.rex中的接口"><code>RexExecutor</code></a>.</span></div>
</div>
</td>
</tr>
<tr id="i87" 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/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/rex/RexUtil.html#strings-java.util.List-">strings</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;list)</code>
<div class="block">Transforms a list of expressions to the list of digests.</div>
</td>
</tr>
<tr id="i88" 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/rex/RexUtil.html#swapColumnReferences-org.apache.calcite.rex.RexBuilder-org.apache.calcite.rex.RexNode-java.util.Map-">swapColumnReferences</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;node,
<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="../../../../org/apache/calcite/rex/RexTableInputRef.html" title="org.apache.calcite.rex中的类">RexTableInputRef</a>,<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/rex/RexTableInputRef.html" title="org.apache.calcite.rex中的类">RexTableInputRef</a>&gt;&gt;&nbsp;ec)</code>
<div class="block">Given an expression, it will swap its column references <a href="../../../../org/apache/calcite/rex/RexTableInputRef.html" title="org.apache.calcite.rex中的类"><code>RexTableInputRef</code></a>
using the contents in the map (in particular, the first element of the set in the
map value).</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/rex/RexUtil.html#swapColumnTableReferences-org.apache.calcite.rex.RexBuilder-org.apache.calcite.rex.RexNode-java.util.Map-java.util.Map-">swapColumnTableReferences</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;node,
<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="../../../../org/apache/calcite/rex/RexTableInputRef.html" title="org.apache.calcite.rex中的类">RexTableInputRef</a>,<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/rex/RexTableInputRef.html" title="org.apache.calcite.rex中的类">RexTableInputRef</a>&gt;&gt;&nbsp;ec,
<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="../../../../org/apache/calcite/rex/RexTableInputRef.RelTableRef.html" title="org.apache.calcite.rex中的类">RexTableInputRef.RelTableRef</a>,<a href="../../../../org/apache/calcite/rex/RexTableInputRef.RelTableRef.html" title="org.apache.calcite.rex中的类">RexTableInputRef.RelTableRef</a>&gt;&nbsp;tableMapping)</code>
<div class="block">Given an expression, it will swap the column references <a href="../../../../org/apache/calcite/rex/RexTableInputRef.html" title="org.apache.calcite.rex中的类"><code>RexTableInputRef</code></a>
using the contents in the first map (in particular, the first element of the set
in the map value), and then it will swap the table references contained in its
<a href="../../../../org/apache/calcite/rex/RexTableInputRef.html" title="org.apache.calcite.rex中的类"><code>RexTableInputRef</code></a> using the contents in the second map.</div>
</td>
</tr>
<tr id="i90" 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/rex/RexUtil.html#swapTableColumnReferences-org.apache.calcite.rex.RexBuilder-org.apache.calcite.rex.RexNode-java.util.Map-java.util.Map-">swapTableColumnReferences</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;node,
<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="../../../../org/apache/calcite/rex/RexTableInputRef.RelTableRef.html" title="org.apache.calcite.rex中的类">RexTableInputRef.RelTableRef</a>,<a href="../../../../org/apache/calcite/rex/RexTableInputRef.RelTableRef.html" title="org.apache.calcite.rex中的类">RexTableInputRef.RelTableRef</a>&gt;&nbsp;tableMapping,
<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="../../../../org/apache/calcite/rex/RexTableInputRef.html" title="org.apache.calcite.rex中的类">RexTableInputRef</a>,<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/rex/RexTableInputRef.html" title="org.apache.calcite.rex中的类">RexTableInputRef</a>&gt;&gt;&nbsp;ec)</code>
<div class="block">Given an expression, it will swap the table references contained in its
<a href="../../../../org/apache/calcite/rex/RexTableInputRef.html" title="org.apache.calcite.rex中的类"><code>RexTableInputRef</code></a> using the contents in the first map, and then
it will swap the column references <a href="../../../../org/apache/calcite/rex/RexTableInputRef.html" title="org.apache.calcite.rex中的类"><code>RexTableInputRef</code></a> using the contents
in the second map (in particular, the first element of the set in the map value).</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/rex/RexUtil.html#swapTableReferences-org.apache.calcite.rex.RexBuilder-org.apache.calcite.rex.RexNode-java.util.Map-">swapTableReferences</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;node,
<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="../../../../org/apache/calcite/rex/RexTableInputRef.RelTableRef.html" title="org.apache.calcite.rex中的类">RexTableInputRef.RelTableRef</a>,<a href="../../../../org/apache/calcite/rex/RexTableInputRef.RelTableRef.html" title="org.apache.calcite.rex中的类">RexTableInputRef.RelTableRef</a>&gt;&nbsp;tableMapping)</code>
<div class="block">Given an expression, it will swap the table references contained in its
<a href="../../../../org/apache/calcite/rex/RexTableInputRef.html" title="org.apache.calcite.rex中的类"><code>RexTableInputRef</code></a> using the contents in the map.</div>
</td>
</tr>
<tr id="i92" 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/rex/RexUtil.html#toCnf-org.apache.calcite.rex.RexBuilder-int-org.apache.calcite.rex.RexNode-">toCnf</a></span>(<a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a>&nbsp;rexBuilder,
int&nbsp;maxCnfNodeCount,
<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;rex)</code>
<div class="block">Similar to <a href="../../../../org/apache/calcite/rex/RexUtil.html#toCnf-org.apache.calcite.rex.RexBuilder-org.apache.calcite.rex.RexNode-"><code>toCnf(RexBuilder, RexNode)</code></a>; however, it lets you
specify a threshold in the number of nodes that can be created out of
the conversion.</div>
</td>
</tr>
<tr id="i93" 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/rex/RexUtil.html#toCnf-org.apache.calcite.rex.RexBuilder-org.apache.calcite.rex.RexNode-">toCnf</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;rex)</code>
<div class="block">Converts an expression to conjunctive normal form (CNF).</div>
</td>
</tr>
<tr id="i94" 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/rex/RexUtil.html#toDnf-org.apache.calcite.rex.RexBuilder-org.apache.calcite.rex.RexNode-">toDnf</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;rex)</code>
<div class="block">Converts an expression to disjunctive normal form (DNF).</div>
</td>
</tr>
<tr id="i95" 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/rex/RexUtil.html#types-java.util.List-">types</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)</code>
<div class="block">Transforms a list of expressions into a list of their types.</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="EXECUTOR">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>EXECUTOR</h4>
<pre>public static final&nbsp;<a href="../../../../org/apache/calcite/rex/RexExecutor.html" title="org.apache.calcite.rex中的接口">RexExecutor</a> EXECUTOR</pre>
<div class="block">Executor for a bit of constant reduction. The user can pass in another executor.</div>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>方法详细资料</h3>
<a name="getSelectivity-org.apache.calcite.rex.RexNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSelectivity</h4>
<pre>public static&nbsp;double&nbsp;getSelectivity(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;exp)</pre>
<div class="block">Returns a guess for the selectivity of an expression.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>exp</code> - expression of interest, or null for none (implying a
selectivity of 1.0)</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>guessed selectivity</dd>
</dl>
</li>
</ul>
<a name="generateCastExpressions-org.apache.calcite.rex.RexBuilder-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>generateCastExpressions</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;generateCastExpressions(<a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a>&nbsp;rexBuilder,
<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;lhsRowType,
<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;rhsRowType)</pre>
<div class="block">Generates a cast from one row type to another</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rexBuilder</code> - RexBuilder to use for constructing casts</dd>
<dd><code>lhsRowType</code> - target row type</dd>
<dd><code>rhsRowType</code> - source row type; fields must be 1-to-1 with lhsRowType,
in same order</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>cast expressions</dd>
</dl>
</li>
</ul>
<a name="generateCastExpressions-org.apache.calcite.rex.RexBuilder-org.apache.calcite.rel.type.RelDataType-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>generateCastExpressions</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;generateCastExpressions(<a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a>&nbsp;rexBuilder,
<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;lhsRowType,
<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;rhsExps)</pre>
<div class="block">Generates a cast for a row type.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rexBuilder</code> - RexBuilder to use for constructing casts</dd>
<dd><code>lhsRowType</code> - target row type</dd>
<dd><code>rhsExps</code> - expressions to be cast</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>cast expressions</dd>
</dl>
</li>
</ul>
<a name="isNullLiteral-org.apache.calcite.rex.RexNode-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isNullLiteral</h4>
<pre>public static&nbsp;boolean&nbsp;isNullLiteral(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;node,
boolean&nbsp;allowCast)</pre>
<div class="block">Returns whether a node represents the NULL value.
<p>Examples:
<ul>
<li>For <a href="../../../../org/apache/calcite/rex/RexLiteral.html" title="org.apache.calcite.rex中的类"><code>RexLiteral</code></a> Unknown, returns false.
<li>For <code>CAST(NULL AS <i>type</i>)</code>, returns true if <code>
allowCast</code> is true, false otherwise.
<li>For <code>CAST(CAST(NULL AS <i>type</i>) AS <i>type</i>))</code>,
returns false.
</ul></div>
</li>
</ul>
<a name="isNull-org.apache.calcite.rex.RexNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isNull</h4>
<pre>public static&nbsp;boolean&nbsp;isNull(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;expr)</pre>
<div class="block">Returns whether a node represents the NULL value or a series of nested
<code>CAST(NULL AS type)</code> calls. For example:
<code>isNull(CAST(CAST(NULL as INTEGER) AS VARCHAR(1)))</code>
returns <code>true</code>.</div>
</li>
</ul>
<a name="isLiteral-org.apache.calcite.rex.RexNode-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isLiteral</h4>
<pre>public static&nbsp;boolean&nbsp;isLiteral(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;node,
boolean&nbsp;allowCast)</pre>
<div class="block">Returns whether a node represents a literal.
<p>Examples:
<ul>
<li>For <code>CAST(literal AS <i>type</i>)</code>, returns true if <code>
allowCast</code> is true, false otherwise.
<li>For <code>CAST(CAST(literal AS <i>type</i>) AS <i>type</i>))</code>,
returns false.
</ul></div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>node</code> - The node, never null.</dd>
<dd><code>allowCast</code> - whether to regard CAST(literal) as a literal</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>Whether the node is a literal</dd>
</dl>
</li>
</ul>
<a name="allLiterals-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>allLiterals</h4>
<pre>public static&nbsp;boolean&nbsp;allLiterals(<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;expressionOperands)</pre>
<div class="block">Returns whether every expression in a list is a literal.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>expressionOperands</code> - list of expressions to check</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>true if every expression from the specified list is literal.</dd>
</dl>
</li>
</ul>
<a name="isReferenceOrAccess-org.apache.calcite.rex.RexNode-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isReferenceOrAccess</h4>
<pre>public static&nbsp;boolean&nbsp;isReferenceOrAccess(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;node,
boolean&nbsp;allowCast)</pre>
<div class="block">Returns whether a node represents an input reference or field access.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>node</code> - The node, never null.</dd>
<dd><code>allowCast</code> - whether to regard CAST(x) as true</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>Whether the node is a reference or access</dd>
</dl>
</li>
</ul>
<a name="isNullabilityCast-org.apache.calcite.rel.type.RelDataTypeFactory-org.apache.calcite.rex.RexNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isNullabilityCast</h4>
<pre>public static&nbsp;boolean&nbsp;isNullabilityCast(<a href="../../../../org/apache/calcite/rel/type/RelDataTypeFactory.html" title="org.apache.calcite.rel.type中的接口">RelDataTypeFactory</a>&nbsp;typeFactory,
<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;node)</pre>
<div class="block">Returns whether an expression is a cast just for the purposes of
nullability, not changing any other aspect of the type.</div>
</li>
</ul>
<a name="removeNullabilityCast-org.apache.calcite.rel.type.RelDataTypeFactory-org.apache.calcite.rex.RexNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeNullabilityCast</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;removeNullabilityCast(<a href="../../../../org/apache/calcite/rel/type/RelDataTypeFactory.html" title="org.apache.calcite.rel.type中的接口">RelDataTypeFactory</a>&nbsp;typeFactory,
<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;node)</pre>
<div class="block">Removes any casts that change nullability but not type.
<p>For example, <code>CAST(1 = 0 AS BOOLEAN)</code> becomes <code>1 = 0</code>.</div>
</li>
</ul>
<a name="removeCast-org.apache.calcite.rex.RexNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeCast</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;removeCast(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;e)</pre>
<div class="block">Removes any casts.
<p>For example, <code>CAST('1' AS INTEGER)</code> becomes <code>'1'</code>.</div>
</li>
</ul>
<a name="predicateConstants-java.lang.Class-org.apache.calcite.rex.RexBuilder-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>predicateConstants</h4>
<pre>public static&nbsp;&lt;C extends <a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;com.google.common.collect.ImmutableMap&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>,C&gt;&nbsp;predicateConstants(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="java.lang中的类或接口">Class</a>&lt;C&gt;&nbsp;clazz,
<a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a>&nbsp;rexBuilder,
<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;predicates)</pre>
<div class="block">Creates a map containing each (e, constant) pair that occurs within
a predicate list.</div>
<dl>
<dt><span class="paramLabel">类型参数:</span></dt>
<dd><code>C</code> - what to consider a constant: <a href="../../../../org/apache/calcite/rex/RexLiteral.html" title="org.apache.calcite.rex中的类"><code>RexLiteral</code></a> to use a narrow
definition of constant, or <a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类"><code>RexNode</code></a> to use
<a href="../../../../org/apache/calcite/rex/RexUtil.html#isConstant-org.apache.calcite.rex.RexNode-"><code>isConstant(RexNode)</code></a></dd>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>clazz</code> - Class of expression that is considered constant</dd>
<dd><code>rexBuilder</code> - Rex builder</dd>
<dd><code>predicates</code> - Predicate list</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>Map from values to constants</dd>
</dl>
</li>
</ul>
<a name="nodeCount-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nodeCount</h4>
<pre>public static&nbsp;int&nbsp;nodeCount(<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)</pre>
<div class="block">Returns the number of nodes (including leaves) in a list of
expressions.</div>
<dl>
<dt><span class="seeLabel">另请参阅:</span></dt>
<dd><a href="../../../../org/apache/calcite/rex/RexNode.html#nodeCount--"><code>RexNode.nodeCount()</code></a></dd>
</dl>
</li>
</ul>
<a name="isConstant-org.apache.calcite.rex.RexNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isConstant</h4>
<pre>public static&nbsp;boolean&nbsp;isConstant(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;node)</pre>
<div class="block">Returns whether node is made up of constants.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>node</code> - Node to inspect</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>true if node is made up of constants, false otherwise</dd>
</dl>
</li>
</ul>
<a name="isDeterministic-org.apache.calcite.rex.RexNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isDeterministic</h4>
<pre>public static&nbsp;boolean&nbsp;isDeterministic(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;e)</pre>
<div class="block">Returns whether a given expression is deterministic.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>e</code> - Expression</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>true if tree result is deterministic, false otherwise</dd>
</dl>
</li>
</ul>
<a name="retainDeterministic-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>retainDeterministic</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;retainDeterministic(<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;list)</pre>
</li>
</ul>
<a name="findOperatorCall-org.apache.calcite.sql.SqlOperator-org.apache.calcite.rex.RexNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>findOperatorCall</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rex/RexCall.html" title="org.apache.calcite.rex中的类">RexCall</a>&nbsp;findOperatorCall(<a href="../../../../org/apache/calcite/sql/SqlOperator.html" title="org.apache.calcite.sql中的类">SqlOperator</a>&nbsp;operator,
<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;node)</pre>
<div class="block">Returns whether a given node contains a RexCall with a specified operator</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>operator</code> - Operator to look for</dd>
<dd><code>node</code> - a RexNode tree</dd>
</dl>
</li>
</ul>
<a name="containsInputRef-org.apache.calcite.rex.RexNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>containsInputRef</h4>
<pre>public static&nbsp;boolean&nbsp;containsInputRef(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;node)</pre>
<div class="block">Returns whether a given tree contains any {link RexInputRef} nodes.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>node</code> - a RexNode tree</dd>
</dl>
</li>
</ul>
<a name="containsFieldAccess-org.apache.calcite.rex.RexNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>containsFieldAccess</h4>
<pre>public static&nbsp;boolean&nbsp;containsFieldAccess(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;node)</pre>
<div class="block">Returns whether a given tree contains any
<a href="../../../../org/apache/calcite/rex/RexFieldAccess.html" title="org.apache.calcite.rex中的类"><code>RexFieldAccess</code></a> nodes.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>node</code> - a RexNode tree</dd>
</dl>
</li>
</ul>
<a name="requiresDecimalExpansion-org.apache.calcite.rex.RexNode-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>requiresDecimalExpansion</h4>
<pre>public static&nbsp;boolean&nbsp;requiresDecimalExpansion(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;expr,
boolean&nbsp;recurse)</pre>
<div class="block">Determines whether a <a href="../../../../org/apache/calcite/rex/RexCall.html" title="org.apache.calcite.rex中的类"><code>RexCall</code></a> requires decimal expansion. It
usually requires expansion if it has decimal operands.
<p>Exceptions to this rule are:
<ul>
<li>isNull doesn't require expansion
<li>It's okay to cast decimals to and from char types
<li>It's okay to cast nulls as decimals
<li>Casts require expansion if their return type is decimal
<li>Reinterpret casts can handle a decimal operand
</ul></div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>expr</code> - expression possibly in need of expansion</dd>
<dd><code>recurse</code> - whether to check nested calls</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>whether the expression requires expansion</dd>
</dl>
</li>
</ul>
<a name="requiresDecimalExpansion-java.util.List-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>requiresDecimalExpansion</h4>
<pre>public static&nbsp;boolean&nbsp;requiresDecimalExpansion(<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;operands,
boolean&nbsp;recurse)</pre>
<div class="block">Determines whether any operand of a set requires decimal expansion</div>
</li>
</ul>
<a name="requiresDecimalExpansion-org.apache.calcite.rex.RexProgram-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>requiresDecimalExpansion</h4>
<pre>public static&nbsp;boolean&nbsp;requiresDecimalExpansion(<a href="../../../../org/apache/calcite/rex/RexProgram.html" title="org.apache.calcite.rex中的类">RexProgram</a>&nbsp;program,
boolean&nbsp;recurse)</pre>
<div class="block">Returns whether a <a href="../../../../org/apache/calcite/rex/RexProgram.html" title="org.apache.calcite.rex中的类"><code>RexProgram</code></a> contains expressions which require
decimal expansion.</div>
</li>
</ul>
<a name="canReinterpretOverflow-org.apache.calcite.rex.RexCall-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>canReinterpretOverflow</h4>
<pre>public static&nbsp;boolean&nbsp;canReinterpretOverflow(<a href="../../../../org/apache/calcite/rex/RexCall.html" title="org.apache.calcite.rex中的类">RexCall</a>&nbsp;call)</pre>
</li>
</ul>
<a name="containNoCommonExprs-java.util.List-org.apache.calcite.util.Litmus-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>containNoCommonExprs</h4>
<pre>public static&nbsp;boolean&nbsp;containNoCommonExprs(<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;exprs,
<a href="../../../../org/apache/calcite/util/Litmus.html" title="org.apache.calcite.util中的接口">Litmus</a>&nbsp;litmus)</pre>
<div class="block">Returns whether an array of expressions has any common sub-expressions.</div>
</li>
</ul>
<a name="containNoForwardRefs-java.util.List-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.util.Litmus-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>containNoForwardRefs</h4>
<pre>public static&nbsp;boolean&nbsp;containNoForwardRefs(<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;exprs,
<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;inputRowType,
<a href="../../../../org/apache/calcite/util/Litmus.html" title="org.apache.calcite.util中的接口">Litmus</a>&nbsp;litmus)</pre>
<div class="block">Returns whether an array of expressions contains no forward references.
That is, if expression #i contains a <a href="../../../../org/apache/calcite/rex/RexInputRef.html" title="org.apache.calcite.rex中的类"><code>RexInputRef</code></a> referencing
field i or greater.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>exprs</code> - Array of expressions</dd>
<dd><code>inputRowType</code> - Input row type</dd>
<dd><code>litmus</code> - What to do if an error is detected (there is a
forward reference)</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>Whether there is a forward reference</dd>
</dl>
</li>
</ul>
<a name="containComplexExprs-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>containComplexExprs</h4>
<pre>public static&nbsp;boolean&nbsp;containComplexExprs(<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;exprs)</pre>
<div class="block">Returns whether a list of expressions contains complex expressions, that
is, a call whose arguments are not <a href="../../../../org/apache/calcite/rex/RexVariable.html" title="org.apache.calcite.rex中的类"><code>RexVariable</code></a> (or a subtype such
as <a href="../../../../org/apache/calcite/rex/RexInputRef.html" title="org.apache.calcite.rex中的类"><code>RexInputRef</code></a>) or <a href="../../../../org/apache/calcite/rex/RexLiteral.html" title="org.apache.calcite.rex中的类"><code>RexLiteral</code></a>.</div>
</li>
</ul>
<a name="containsTableInputRef-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>containsTableInputRef</h4>
<pre>public static&nbsp;boolean&nbsp;containsTableInputRef(<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)</pre>
<div class="block">Returns whether any of the given expression trees contains a
{link RexTableInputRef} node.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>nodes</code> - a list of RexNode trees</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>true if at least one was found, otherwise false</dd>
</dl>
</li>
</ul>
<a name="containsTableInputRef-org.apache.calcite.rex.RexNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>containsTableInputRef</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rex/RexTableInputRef.html" title="org.apache.calcite.rex中的类">RexTableInputRef</a>&nbsp;containsTableInputRef(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;node)</pre>
<div class="block">Returns whether a given tree contains any {link RexTableInputRef} nodes.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>node</code> - a RexNode tree</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>first such node found or null if it there is no such node</dd>
</dl>
</li>
</ul>
<a name="isAtomic-org.apache.calcite.rex.RexNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isAtomic</h4>
<pre>public static&nbsp;boolean&nbsp;isAtomic(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;expr)</pre>
</li>
</ul>
<a name="isCallTo-org.apache.calcite.rex.RexNode-org.apache.calcite.sql.SqlOperator-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isCallTo</h4>
<pre>public static&nbsp;boolean&nbsp;isCallTo(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;expr,
<a href="../../../../org/apache/calcite/sql/SqlOperator.html" title="org.apache.calcite.sql中的类">SqlOperator</a>&nbsp;op)</pre>
<div class="block">Returns whether a <a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类"><code>node</code></a> is a <a href="../../../../org/apache/calcite/rex/RexCall.html" title="org.apache.calcite.rex中的类"><code>call</code></a> to a
given <a href="../../../../org/apache/calcite/sql/SqlOperator.html" title="org.apache.calcite.sql中的类"><code>operator</code></a>.</div>
</li>
</ul>
<a name="createStructType-org.apache.calcite.rel.type.RelDataTypeFactory-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createStructType</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;createStructType(<a href="../../../../org/apache/calcite/rel/type/RelDataTypeFactory.html" title="org.apache.calcite.rel.type中的接口">RelDataTypeFactory</a>&nbsp;typeFactory,
<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;exprs)</pre>
<div class="block">Creates a record type with anonymous field names.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>typeFactory</code> - Type factory</dd>
<dd><code>exprs</code> - Expressions</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>Record type</dd>
</dl>
</li>
</ul>
<a name="createStructType-org.apache.calcite.rel.type.RelDataTypeFactory-java.util.List-java.util.List-org.apache.calcite.sql.validate.SqlValidatorUtil.Suggester-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createStructType</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;createStructType(<a href="../../../../org/apache/calcite/rel/type/RelDataTypeFactory.html" title="org.apache.calcite.rel.type中的接口">RelDataTypeFactory</a>&nbsp;typeFactory,
<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;names,
<a href="../../../../org/apache/calcite/sql/validate/SqlValidatorUtil.Suggester.html" title="org.apache.calcite.sql.validate中的接口">SqlValidatorUtil.Suggester</a>&nbsp;suggester)</pre>
<div class="block">Creates a record type with specified field names.
<p>The array of field names may be null, or any of the names within it
can be null. We recommend using explicit names where possible, because it
makes it much easier to figure out the intent of fields when looking at
planner output.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>typeFactory</code> - Type factory</dd>
<dd><code>exprs</code> - Expressions</dd>
<dd><code>names</code> - Field names, may be null, or elements may be null</dd>
<dd><code>suggester</code> - Generates alternative names if <code>names</code> is not
null and its elements are not unique</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>Record type</dd>
</dl>
</li>
</ul>
<a name="createStructType-org.apache.calcite.rel.type.RelDataTypeFactory-java.util.List-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createStructType</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/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;createStructType(<a href="../../../../org/apache/calcite/rel/type/RelDataTypeFactory.html" title="org.apache.calcite.rel.type中的接口">RelDataTypeFactory</a>&nbsp;typeFactory,
<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;names)</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</li>
</ul>
<a name="compatibleTypes-java.util.List-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.util.Litmus-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>compatibleTypes</h4>
<pre>public static&nbsp;boolean&nbsp;compatibleTypes(<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;exprs,
<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;type,
<a href="../../../../org/apache/calcite/util/Litmus.html" title="org.apache.calcite.util中的接口">Litmus</a>&nbsp;litmus)</pre>
<div class="block">Returns whether the type of an array of expressions is compatible with a
struct type.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>exprs</code> - Array of expressions</dd>
<dd><code>type</code> - Type</dd>
<dd><code>litmus</code> - What to do if an error is detected (there is a mismatch)</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>Whether every expression has the same type as the corresponding
member of the struct type</dd>
<dt><span class="seeLabel">另请参阅:</span></dt>
<dd><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-"><code>RelOptUtil.eq(String, RelDataType, String, RelDataType, org.apache.calcite.util.Litmus)</code></a></dd>
</dl>
</li>
</ul>
<a name="makeKey-org.apache.calcite.rex.RexNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>makeKey</h4>
<pre>public static&nbsp;<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;&nbsp;makeKey(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;expr)</pre>
<div class="block">Creates a key for <a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类"><code>RexNode</code></a> which is the same as another key of
another RexNode only if the two have both the same type and textual
representation. For example, "10" integer and "10" bigint result in
different keys.</div>
</li>
</ul>
<a name="containIdentity-java.util.List-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.util.Litmus-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>containIdentity</h4>
<pre>public static&nbsp;boolean&nbsp;containIdentity(<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="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;rowType,
<a href="../../../../org/apache/calcite/util/Litmus.html" title="org.apache.calcite.util中的接口">Litmus</a>&nbsp;litmus)</pre>
<div class="block">Returns whether the leading edge of a given array of expressions is
wholly <a href="../../../../org/apache/calcite/rex/RexInputRef.html" title="org.apache.calcite.rex中的类"><code>RexInputRef</code></a> objects with types corresponding to the
underlying datatype.</div>
</li>
</ul>
<a name="isIdentity-java.util.List-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isIdentity</h4>
<pre>public static&nbsp;boolean&nbsp;isIdentity(<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;exps,
<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;inputRowType)</pre>
<div class="block">Returns whether a list of expressions projects the incoming fields.</div>
</li>
</ul>
<a name="composeConjunction-org.apache.calcite.rex.RexBuilder-java.lang.Iterable-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>composeConjunction</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;composeConjunction(<a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a>&nbsp;rexBuilder,
<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;nodes)</pre>
<div class="block">As <a href="../../../../org/apache/calcite/rex/RexUtil.html#composeConjunction-org.apache.calcite.rex.RexBuilder-java.lang.Iterable-boolean-"><code>composeConjunction(RexBuilder, Iterable, boolean)</code></a> but never
returns null.</div>
</li>
</ul>
<a name="composeConjunction-org.apache.calcite.rex.RexBuilder-java.lang.Iterable-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>composeConjunction</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;composeConjunction(<a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a>&nbsp;rexBuilder,
<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;nodes,
boolean&nbsp;nullOnEmpty)</pre>
<div class="block">Converts a collection of expressions into an AND.
If there are zero expressions, returns TRUE.
If there is one expression, returns just that expression.
If any of the expressions are FALSE, returns FALSE.
Removes expressions that always evaluate to TRUE.
Returns null only if <code>nullOnEmpty</code> and expression is TRUE.</div>
</li>
</ul>
<a name="flattenAnd-java.lang.Iterable-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>flattenAnd</h4>
<pre>public static&nbsp;com.google.common.collect.ImmutableList&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;flattenAnd(<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;nodes)</pre>
<div class="block">Flattens a list of AND nodes.
<p>Treats null nodes as literal TRUE (i.e. ignores them).</div>
</li>
</ul>
<a name="composeDisjunction-org.apache.calcite.rex.RexBuilder-java.lang.Iterable-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>composeDisjunction</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;composeDisjunction(<a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a>&nbsp;rexBuilder,
<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;nodes)</pre>
<div class="block">Converts a collection of expressions into an OR.
If there are zero expressions, returns FALSE.
If there is one expression, returns just that expression.
If any of the expressions are TRUE, returns TRUE.
Removes expressions that always evaluate to FALSE.
Flattens expressions that are ORs.</div>
</li>
</ul>
<a name="composeDisjunction-org.apache.calcite.rex.RexBuilder-java.lang.Iterable-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>composeDisjunction</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;composeDisjunction(<a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a>&nbsp;rexBuilder,
<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;nodes,
boolean&nbsp;nullOnEmpty)</pre>
<div class="block">Converts a collection of expressions into an OR,
optionally returning null if the list is empty.</div>
</li>
</ul>
<a name="flattenOr-java.lang.Iterable-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>flattenOr</h4>
<pre>public static&nbsp;com.google.common.collect.ImmutableList&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;flattenOr(<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;nodes)</pre>
<div class="block">Flattens a list of OR nodes.</div>
</li>
</ul>
<a name="apply-org.apache.calcite.util.mapping.Mappings.TargetMapping-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>apply</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/RelCollation.html" title="org.apache.calcite.rel中的接口">RelCollation</a>&gt;&nbsp;apply(<a href="../../../../org/apache/calcite/util/mapping/Mappings.TargetMapping.html" title="org.apache.calcite.util.mapping中的接口">Mappings.TargetMapping</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="../../../../org/apache/calcite/rel/RelCollation.html" title="org.apache.calcite.rel中的接口">RelCollation</a>&gt;&nbsp;collationList)</pre>
<div class="block">Applies a mapping to a collation list.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>mapping</code> - Mapping</dd>
<dd><code>collationList</code> - Collation list</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>collation list with mapping applied to each field</dd>
</dl>
</li>
</ul>
<a name="apply-org.apache.calcite.util.mapping.Mappings.TargetMapping-org.apache.calcite.rel.RelCollation-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>apply</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rel/RelCollation.html" title="org.apache.calcite.rel中的接口">RelCollation</a>&nbsp;apply(<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/RelCollation.html" title="org.apache.calcite.rel中的接口">RelCollation</a>&nbsp;collation)</pre>
<div class="block">Applies a mapping to a collation.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>mapping</code> - Mapping</dd>
<dd><code>collation</code> - Collation</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>collation with mapping applied</dd>
</dl>
</li>
</ul>
<a name="apply-org.apache.calcite.util.mapping.Mappings.TargetMapping-org.apache.calcite.rel.RelFieldCollation-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>apply</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rel/RelFieldCollation.html" title="org.apache.calcite.rel中的类">RelFieldCollation</a>&nbsp;apply(<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/RelFieldCollation.html" title="org.apache.calcite.rel中的类">RelFieldCollation</a>&nbsp;fieldCollation)</pre>
<div class="block">Applies a mapping to a field collation.
<p>If the field is not mapped, returns null.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>mapping</code> - Mapping</dd>
<dd><code>fieldCollation</code> - Field collation</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>collation with mapping applied</dd>
</dl>
</li>
</ul>
<a name="applyFields-org.apache.calcite.util.mapping.Mappings.TargetMapping-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>applyFields</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/RelFieldCollation.html" title="org.apache.calcite.rel中的类">RelFieldCollation</a>&gt;&nbsp;applyFields(<a href="../../../../org/apache/calcite/util/mapping/Mappings.TargetMapping.html" title="org.apache.calcite.util.mapping中的接口">Mappings.TargetMapping</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="../../../../org/apache/calcite/rel/RelFieldCollation.html" title="org.apache.calcite.rel中的类">RelFieldCollation</a>&gt;&nbsp;fieldCollations)</pre>
<div class="block">Applies a mapping to a list of field collations.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>mapping</code> - Mapping</dd>
<dd><code>fieldCollations</code> - Field collations</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>collations with mapping applied</dd>
</dl>
</li>
</ul>
<a name="apply-org.apache.calcite.util.mapping.Mappings.TargetMapping-org.apache.calcite.rex.RexNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>apply</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;apply(<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/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;node)</pre>
<div class="block">Applies a mapping to an expression.</div>
</li>
</ul>
<a name="apply-org.apache.calcite.util.mapping.Mappings.TargetMapping-java.lang.Iterable-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>apply</h4>
<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="java.lang中的类或接口">Iterable</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;apply(<a href="../../../../org/apache/calcite/util/mapping/Mappings.TargetMapping.html" title="org.apache.calcite.util.mapping中的接口">Mappings.TargetMapping</a>&nbsp;mapping,
<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;nodes)</pre>
<div class="block">Applies a mapping to an iterable over expressions.</div>
</li>
</ul>
<a name="apply-org.apache.calcite.rex.RexVisitor-org.apache.calcite.rex.RexNode:A-">
<!-- -->
</a><a name="apply-org.apache.calcite.rex.RexVisitor-T:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>apply</h4>
<pre>public static&nbsp;&lt;T extends <a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;T[]&nbsp;apply(<a href="../../../../org/apache/calcite/rex/RexVisitor.html" title="org.apache.calcite.rex中的接口">RexVisitor</a>&lt;T&gt;&nbsp;shuttle,
T[]&nbsp;exprs)</pre>
<div class="block">Applies a shuttle to an array of expressions. Creates a copy first.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>shuttle</code> - Shuttle</dd>
<dd><code>exprs</code> - Array of expressions</dd>
</dl>
</li>
</ul>
<a name="apply-org.apache.calcite.rex.RexVisitor-org.apache.calcite.rex.RexNode:A-org.apache.calcite.rex.RexNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>apply</h4>
<pre>public static&nbsp;void&nbsp;apply(<a href="../../../../org/apache/calcite/rex/RexVisitor.html" title="org.apache.calcite.rex中的接口">RexVisitor</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="java.lang中的类或接口">Void</a>&gt;&nbsp;visitor,
<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>[]&nbsp;exprs,
<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;expr)</pre>
<div class="block">Applies a visitor to an array of expressions and, if specified, a single
expression.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>visitor</code> - Visitor</dd>
<dd><code>exprs</code> - Array of expressions</dd>
<dd><code>expr</code> - Single expression, may be null</dd>
</dl>
</li>
</ul>
<a name="apply-org.apache.calcite.rex.RexVisitor-java.util.List-org.apache.calcite.rex.RexNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>apply</h4>
<pre>public static&nbsp;void&nbsp;apply(<a href="../../../../org/apache/calcite/rex/RexVisitor.html" title="org.apache.calcite.rex中的接口">RexVisitor</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="java.lang中的类或接口">Void</a>&gt;&nbsp;visitor,
<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="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;expr)</pre>
<div class="block">Applies a visitor to a list of expressions and, if specified, a single
expression.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>visitor</code> - Visitor</dd>
<dd><code>exprs</code> - List of expressions</dd>
<dd><code>expr</code> - Single expression, may be null</dd>
</dl>
</li>
</ul>
<a name="flatten-org.apache.calcite.rex.RexBuilder-org.apache.calcite.rex.RexNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>flatten</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;flatten(<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;node)</pre>
<div class="block">Flattens an expression.
<p>Returns the same expression if it is already flat.</div>
</li>
</ul>
<a name="flatten-java.util.List-org.apache.calcite.sql.SqlOperator-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>flatten</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;flatten(<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="../../../../org/apache/calcite/sql/SqlOperator.html" title="org.apache.calcite.sql中的类">SqlOperator</a>&nbsp;op)</pre>
<div class="block">Converts a list of operands into a list that is flat with respect to
the given operator. The operands are assumed to be flat already.</div>
</li>
</ul>
<a name="isFlat-org.apache.calcite.rex.RexNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isFlat</h4>
<pre>public static&nbsp;boolean&nbsp;isFlat(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;expr)</pre>
<div class="block">Returns false if the expression can be optimized by flattening
calls to an associative operator such as AND and OR.</div>
</li>
</ul>
<a name="isLosslessCast-org.apache.calcite.rex.RexNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isLosslessCast</h4>
<pre>public static&nbsp;boolean&nbsp;isLosslessCast(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;node)</pre>
<div class="block">Returns whether the input is a 'loss-less' cast, that is, a cast from which
the original value of the field can be certainly recovered.
<p>For instance, int &rarr; bigint is loss-less (as you can cast back to
int without loss of information), but bigint &rarr; int is not loss-less.
<p>The implementation of this method does not return false positives.
However, it is not complete.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>node</code> - input node to verify if it represents a loss-less cast</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>true iff the node is a loss-less cast</dd>
</dl>
</li>
</ul>
<a name="isLosslessCast-org.apache.calcite.rel.type.RelDataType-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isLosslessCast</h4>
<pre>@API(since="1.22",
status=EXPERIMENTAL)
public static&nbsp;boolean&nbsp;isLosslessCast(<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;source,
<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;target)</pre>
<div class="block">Returns whether the conversion from <code>source</code> to <code>target</code> type
is a 'loss-less' cast, that is, a cast from which
the original value of the field can be certainly recovered.
<p>For instance, int &rarr; bigint is loss-less (as you can cast back to
int without loss of information), but bigint &rarr; int is not loss-less.
<p>The implementation of this method does not return false positives.
However, it is not complete.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>source</code> - source type</dd>
<dd><code>target</code> - target type</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>true iff the conversion is a loss-less cast</dd>
</dl>
</li>
</ul>
<a name="toCnf-org.apache.calcite.rex.RexBuilder-org.apache.calcite.rex.RexNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toCnf</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;toCnf(<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;rex)</pre>
<div class="block">Converts an expression to conjunctive normal form (CNF).
<p>The following expression is in CNF:
<blockquote>(a OR b) AND (c OR d)</blockquote>
<p>The following expression is not in CNF:
<blockquote>(a AND b) OR c</blockquote>
<p>but can be converted to CNF:
<blockquote>(a OR c) AND (b OR c)</blockquote>
<p>The following expression is not in CNF:
<blockquote>NOT (a OR NOT b)</blockquote>
<p>but can be converted to CNF by applying de Morgan's theorem:
<blockquote>NOT a AND b</blockquote>
<p>Expressions not involving AND, OR or NOT at the top level are in CNF.</div>
</li>
</ul>
<a name="toCnf-org.apache.calcite.rex.RexBuilder-int-org.apache.calcite.rex.RexNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toCnf</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;toCnf(<a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a>&nbsp;rexBuilder,
int&nbsp;maxCnfNodeCount,
<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;rex)</pre>
<div class="block">Similar to <a href="../../../../org/apache/calcite/rex/RexUtil.html#toCnf-org.apache.calcite.rex.RexBuilder-org.apache.calcite.rex.RexNode-"><code>toCnf(RexBuilder, RexNode)</code></a>; however, it lets you
specify a threshold in the number of nodes that can be created out of
the conversion.
<p>If the number of resulting nodes exceeds that threshold,
stops conversion and returns the original expression.
<p>If the threshold is negative it is ignored.
<p>Leaf nodes in the expression do not count towards the threshold.</div>
</li>
</ul>
<a name="toDnf-org.apache.calcite.rex.RexBuilder-org.apache.calcite.rex.RexNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toDnf</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;toDnf(<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;rex)</pre>
<div class="block">Converts an expression to disjunctive normal form (DNF).
<p>DNF: It is a form of logical formula which is disjunction of conjunctive
clauses.
<p>All logical formulas can be converted into DNF.
<p>The following expression is in DNF:
<blockquote>(a AND b) OR (c AND d)</blockquote>
<p>The following expression is not in CNF:
<blockquote>(a OR b) AND c</blockquote>
<p>but can be converted to DNF:
<blockquote>(a AND c) OR (b AND c)</blockquote>
<p>The following expression is not in CNF:
<blockquote>NOT (a OR NOT b)</blockquote>
<p>but can be converted to DNF by applying de Morgan's theorem:
<blockquote>NOT a AND b</blockquote>
<p>Expressions not involving AND, OR or NOT at the top level are in DNF.</div>
</li>
</ul>
<a name="exists-java.util.List-org.apache.calcite.linq4j.function.Predicate1-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>exists</h4>
<pre>public static&nbsp;&lt;E&gt;&nbsp;boolean&nbsp;exists(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;? extends E&gt;&nbsp;list,
<a href="../../../../org/apache/calcite/linq4j/function/Predicate1.html" title="org.apache.calcite.linq4j.function中的接口">Predicate1</a>&lt;E&gt;&nbsp;predicate)</pre>
<div class="block">Returns whether there is an element in <code>list</code> for which
<code>predicate</code> is true.</div>
</li>
</ul>
<a name="all-java.util.List-org.apache.calcite.linq4j.function.Predicate1-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>all</h4>
<pre>public static&nbsp;&lt;E&gt;&nbsp;boolean&nbsp;all(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;? extends E&gt;&nbsp;list,
<a href="../../../../org/apache/calcite/linq4j/function/Predicate1.html" title="org.apache.calcite.linq4j.function中的接口">Predicate1</a>&lt;E&gt;&nbsp;predicate)</pre>
<div class="block">Returns whether <code>predicate</code> is true for all elements of
<code>list</code>.</div>
</li>
</ul>
<a name="shift-org.apache.calcite.rex.RexNode-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>shift</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;shift(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;node,
int&nbsp;offset)</pre>
<div class="block">Shifts every <a href="../../../../org/apache/calcite/rex/RexInputRef.html" title="org.apache.calcite.rex中的类"><code>RexInputRef</code></a> in an expression by <code>offset</code>.</div>
</li>
</ul>
<a name="shift-java.lang.Iterable-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>shift</h4>
<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="java.lang中的类或接口">Iterable</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;shift(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="java.lang中的类或接口">Iterable</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;nodes,
int&nbsp;offset)</pre>
<div class="block">Shifts every <a href="../../../../org/apache/calcite/rex/RexInputRef.html" title="org.apache.calcite.rex中的类"><code>RexInputRef</code></a> in an expression by <code>offset</code>.</div>
</li>
</ul>
<a name="shift-org.apache.calcite.rex.RexNode-int-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>shift</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;shift(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;node,
int&nbsp;start,
int&nbsp;offset)</pre>
<div class="block">Shifts every <a href="../../../../org/apache/calcite/rex/RexInputRef.html" title="org.apache.calcite.rex中的类"><code>RexInputRef</code></a> in an expression higher than <code>start</code>
by <code>offset</code>.</div>
</li>
</ul>
<a name="pullFactors-org.apache.calcite.rex.RexBuilder-org.apache.calcite.rex.RexNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>pullFactors</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;pullFactors(<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;node)</pre>
<div class="block">Creates an equivalent version of a node where common factors among ORs
are pulled up.
<p>For example,
<blockquote>(a AND b) OR (a AND c AND d)</blockquote>
<p>becomes
<blockquote>a AND (b OR (c AND d))</blockquote>
<p>Note that this result is not in CNF
(see <a href="../../../../org/apache/calcite/rex/RexUtil.html#toCnf-org.apache.calcite.rex.RexBuilder-org.apache.calcite.rex.RexNode-"><code>toCnf(RexBuilder, RexNode)</code></a>) because there is an AND inside an
OR.
<p>This form is useful if, say, <code>a</code> contains columns from only the
left-hand side of a join, and can be pushed to the left input.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rexBuilder</code> - Rex builder</dd>
<dd><code>node</code> - Expression to transform</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>Equivalent expression with common factors pulled up</dd>
</dl>
</li>
</ul>
<a name="fixUp-org.apache.calcite.rex.RexBuilder-java.util.List-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>fixUp</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/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;fixUp(<a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a>&nbsp;rexBuilder,
<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;rowType)</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</li>
</ul>
<a name="fixUp-org.apache.calcite.rex.RexBuilder-java.util.List-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>fixUp</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;fixUp(<a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a>&nbsp;rexBuilder,
<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="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;fieldTypes)</pre>
<div class="block">Fixes up the type of all <a href="../../../../org/apache/calcite/rex/RexInputRef.html" title="org.apache.calcite.rex中的类"><code>RexInputRef</code></a>s in an
expression to match differences in nullability.
<p>Such differences in nullability occur when expressions are moved
through outer joins.
<p>Throws if there any greater inconsistencies of type.</div>
</li>
</ul>
<a name="types-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>types</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;types(<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)</pre>
<div class="block">Transforms a list of expressions into a list of their types.</div>
</li>
</ul>
<a name="families-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>families</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/RelDataTypeFamily.html" title="org.apache.calcite.rel.type中的接口">RelDataTypeFamily</a>&gt;&nbsp;families(<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;types)</pre>
</li>
</ul>
<a name="removeAll-java.util.List-org.apache.calcite.rex.RexNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeAll</h4>
<pre>public static&nbsp;boolean&nbsp;removeAll(<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;targets,
<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;e)</pre>
<div class="block">Removes all expressions from a list that are equivalent to a given
expression. Returns whether any were removed.</div>
</li>
</ul>
<a name="eq-org.apache.calcite.rex.RexNode-org.apache.calcite.rex.RexNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>eq</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;eq(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;e1,
<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;e2)</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
<div class="block">Returns whether two <a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类"><code>RexNode</code></a>s are structurally equal.
<p>This method considers structure, not semantics. 'x &lt; y' is not
equivalent to 'y &gt; x'.</div>
</li>
</ul>
<a name="simplifyPreservingType-org.apache.calcite.rex.RexBuilder-org.apache.calcite.rex.RexNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>simplifyPreservingType</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;simplifyPreservingType(<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;e)</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;<span class="deprecationComment">Use <a href="../../../../org/apache/calcite/rex/RexSimplify.html#simplifyPreservingType-org.apache.calcite.rex.RexNode-"><code>RexSimplify.simplifyPreservingType(RexNode)</code></a>,
which allows you to specify an <a href="../../../../org/apache/calcite/rex/RexExecutor.html" title="org.apache.calcite.rex中的接口"><code>RexExecutor</code></a>.</span></div>
<div class="block">Simplifies a boolean expression, always preserving its type and its
nullability.
<p>This is useful if you are simplifying expressions in a
<a href="../../../../org/apache/calcite/rel/core/Project.html" title="org.apache.calcite.rel.core中的类"><code>Project</code></a>.</div>
</li>
</ul>
<a name="simplify-org.apache.calcite.rex.RexBuilder-org.apache.calcite.rex.RexNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>simplify</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;simplify(<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;e)</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;<span class="deprecationComment">Create a <a href="../../../../org/apache/calcite/rex/RexSimplify.html" title="org.apache.calcite.rex中的类"><code>RexSimplify</code></a>, then call its
<a href="../../../../org/apache/calcite/rex/RexSimplify.html#simplify-org.apache.calcite.rex.RexNode-org.apache.calcite.rex.RexUnknownAs-"><code>RexSimplify.simplify(RexNode, RexUnknownAs)</code></a> method.</span></div>
<div class="block">Simplifies a boolean expression, leaving UNKNOWN values as UNKNOWN, and
using the default executor.</div>
</li>
</ul>
<a name="simplify-org.apache.calcite.rex.RexBuilder-org.apache.calcite.rex.RexNode-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>simplify</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;simplify(<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;e,
boolean&nbsp;unknownAsFalse)</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;<span class="deprecationComment">Create a <a href="../../../../org/apache/calcite/rex/RexSimplify.html" title="org.apache.calcite.rex中的类"><code>RexSimplify</code></a>, then call its
<a href="../../../../org/apache/calcite/rex/RexSimplify.html#simplify-org.apache.calcite.rex.RexNode-org.apache.calcite.rex.RexUnknownAs-"><code>RexSimplify.simplify(RexNode, RexUnknownAs)</code></a> method.</span></div>
<div class="block">Simplifies a boolean expression,
using the default executor.
<p>In particular:</p>
<ul>
<li><code>simplify(x = 1 AND y = 2 AND NOT x = 1)</code>
returns <code>y = 2</code></li>
<li><code>simplify(x = 1 AND FALSE)</code>
returns <code>FALSE</code></li>
</ul>
<p>If the expression is a predicate in a WHERE clause, UNKNOWN values have
the same effect as FALSE. In situations like this, specify
<code>unknownAsFalse = true</code>, so and we can switch from 3-valued logic to
simpler 2-valued logic and make more optimizations.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rexBuilder</code> - Rex builder</dd>
<dd><code>e</code> - Expression to simplify</dd>
<dd><code>unknownAsFalse</code> - Whether to convert UNKNOWN values to FALSE</dd>
</dl>
</li>
</ul>
<a name="simplifyAnds-org.apache.calcite.rex.RexBuilder-java.lang.Iterable-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>simplifyAnds</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;simplifyAnds(<a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a>&nbsp;rexBuilder,
<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;nodes)</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;<span class="deprecationComment">Use
<a href="../../../../org/apache/calcite/rex/RexSimplify.html#simplifyAnds-java.lang.Iterable-org.apache.calcite.rex.RexUnknownAs-"><code>RexSimplify.simplifyAnds(Iterable, RexUnknownAs)</code></a>.</span></div>
<div class="block">Simplifies a conjunction of boolean expressions.</div>
</li>
</ul>
<a name="simplifyAnds-org.apache.calcite.rex.RexBuilder-java.lang.Iterable-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>simplifyAnds</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;simplifyAnds(<a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a>&nbsp;rexBuilder,
<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;nodes,
boolean&nbsp;unknownAsFalse)</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</li>
</ul>
<a name="not-org.apache.calcite.rex.RexNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>not</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;not(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;e)</pre>
<div class="block">Negates a logical expression by adding or removing a NOT.</div>
</li>
</ul>
<a name="simplifyAnd-org.apache.calcite.rex.RexBuilder-org.apache.calcite.rex.RexCall-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>simplifyAnd</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;simplifyAnd(<a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a>&nbsp;rexBuilder,
<a href="../../../../org/apache/calcite/rex/RexCall.html" title="org.apache.calcite.rex中的类">RexCall</a>&nbsp;e,
boolean&nbsp;unknownAsFalse)</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</li>
</ul>
<a name="simplifyAnd2-org.apache.calcite.rex.RexBuilder-java.util.List-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>simplifyAnd2</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;simplifyAnd2(<a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a>&nbsp;rexBuilder,
<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;terms,
<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;notTerms)</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</li>
</ul>
<a name="simplifyAnd2ForUnknownAsFalse-org.apache.calcite.rex.RexBuilder-java.util.List-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>simplifyAnd2ForUnknownAsFalse</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;simplifyAnd2ForUnknownAsFalse(<a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a>&nbsp;rexBuilder,
<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;terms,
<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;notTerms)</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</li>
</ul>
<a name="negate-org.apache.calcite.rex.RexBuilder-org.apache.calcite.rex.RexCall-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>negate</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;negate(<a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a>&nbsp;rexBuilder,
<a href="../../../../org/apache/calcite/rex/RexCall.html" title="org.apache.calcite.rex中的类">RexCall</a>&nbsp;call)</pre>
</li>
</ul>
<a name="invert-org.apache.calcite.rex.RexBuilder-org.apache.calcite.rex.RexCall-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>invert</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;invert(<a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a>&nbsp;rexBuilder,
<a href="../../../../org/apache/calcite/rex/RexCall.html" title="org.apache.calcite.rex中的类">RexCall</a>&nbsp;call)</pre>
</li>
</ul>
<a name="simplifyOr-org.apache.calcite.rex.RexBuilder-org.apache.calcite.rex.RexCall-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>simplifyOr</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;simplifyOr(<a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a>&nbsp;rexBuilder,
<a href="../../../../org/apache/calcite/rex/RexCall.html" title="org.apache.calcite.rex中的类">RexCall</a>&nbsp;call)</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</li>
</ul>
<a name="simplifyOrs-org.apache.calcite.rex.RexBuilder-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>simplifyOrs</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;simplifyOrs(<a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a>&nbsp;rexBuilder,
<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;terms)</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</li>
</ul>
<a name="andNot-org.apache.calcite.rex.RexBuilder-org.apache.calcite.rex.RexNode-org.apache.calcite.rex.RexNode...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>andNot</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;andNot(<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;e,
<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>...&nbsp;notTerms)</pre>
<div class="block">Creates the expression <code>e1 AND NOT notTerm1 AND NOT notTerm2 ...</code>.</div>
</li>
</ul>
<a name="andNot-org.apache.calcite.rex.RexBuilder-org.apache.calcite.rex.RexNode-java.lang.Iterable-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>andNot</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;andNot(<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;e,
<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;notTerms)</pre>
<div class="block">Creates the expression <code>e1 AND NOT notTerm1 AND NOT notTerm2 ...</code>.
<p>Examples:
<ul>
<li>andNot(p) returns "p"
<li>andNot(p, n1, n2) returns "p AND NOT n1 AND NOT n2"
<li>andNot(x = 10, x = 20, y = 30, x = 30)
returns "x = 10 AND NOT (y = 30)"
</ul></div>
</li>
</ul>
<a name="isCasePredicate-org.apache.calcite.rex.RexCall-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isCasePredicate</h4>
<pre>public static&nbsp;boolean&nbsp;isCasePredicate(<a href="../../../../org/apache/calcite/rex/RexCall.html" title="org.apache.calcite.rex中的类">RexCall</a>&nbsp;call,
int&nbsp;i)</pre>
<div class="block">Returns whether a given operand of a CASE expression is a predicate.
<p>A switched case (CASE x WHEN x1 THEN v1 ... ELSE e END) has an even
number of arguments and odd-numbered arguments are predicates.
<p>A condition case (CASE WHEN p1 THEN v1 ... ELSE e END) has an odd
number of arguments and even-numbered arguments are predicates, except for
the last argument.</div>
</li>
</ul>
<a name="notFn-org.apache.calcite.rex.RexBuilder-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>notFn</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;com.google.common.base.Function&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>,<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;notFn(<a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a>&nbsp;rexBuilder)</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;<span class="deprecationComment">Use <a href="../../../../org/apache/calcite/rex/RexUtil.html#not-org.apache.calcite.rex.RexNode-"><code>not(org.apache.calcite.rex.RexNode)</code></a></span></div>
<div class="block">Returns a function that applies NOT to its argument.</div>
</li>
</ul>
<a name="containsCorrelation-org.apache.calcite.rex.RexNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>containsCorrelation</h4>
<pre>public static&nbsp;boolean&nbsp;containsCorrelation(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;condition)</pre>
<div class="block">Returns whether an expression contains a <a href="../../../../org/apache/calcite/rex/RexCorrelVariable.html" title="org.apache.calcite.rex中的类"><code>RexCorrelVariable</code></a>.</div>
</li>
</ul>
<a name="swapTableReferences-org.apache.calcite.rex.RexBuilder-org.apache.calcite.rex.RexNode-java.util.Map-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>swapTableReferences</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;swapTableReferences(<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;node,
<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="../../../../org/apache/calcite/rex/RexTableInputRef.RelTableRef.html" title="org.apache.calcite.rex中的类">RexTableInputRef.RelTableRef</a>,<a href="../../../../org/apache/calcite/rex/RexTableInputRef.RelTableRef.html" title="org.apache.calcite.rex中的类">RexTableInputRef.RelTableRef</a>&gt;&nbsp;tableMapping)</pre>
<div class="block">Given an expression, it will swap the table references contained in its
<a href="../../../../org/apache/calcite/rex/RexTableInputRef.html" title="org.apache.calcite.rex中的类"><code>RexTableInputRef</code></a> using the contents in the map.</div>
</li>
</ul>
<a name="swapColumnReferences-org.apache.calcite.rex.RexBuilder-org.apache.calcite.rex.RexNode-java.util.Map-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>swapColumnReferences</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;swapColumnReferences(<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;node,
<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="../../../../org/apache/calcite/rex/RexTableInputRef.html" title="org.apache.calcite.rex中的类">RexTableInputRef</a>,<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/rex/RexTableInputRef.html" title="org.apache.calcite.rex中的类">RexTableInputRef</a>&gt;&gt;&nbsp;ec)</pre>
<div class="block">Given an expression, it will swap its column references <a href="../../../../org/apache/calcite/rex/RexTableInputRef.html" title="org.apache.calcite.rex中的类"><code>RexTableInputRef</code></a>
using the contents in the map (in particular, the first element of the set in the
map value).</div>
</li>
</ul>
<a name="swapTableColumnReferences-org.apache.calcite.rex.RexBuilder-org.apache.calcite.rex.RexNode-java.util.Map-java.util.Map-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>swapTableColumnReferences</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;swapTableColumnReferences(<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;node,
<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="../../../../org/apache/calcite/rex/RexTableInputRef.RelTableRef.html" title="org.apache.calcite.rex中的类">RexTableInputRef.RelTableRef</a>,<a href="../../../../org/apache/calcite/rex/RexTableInputRef.RelTableRef.html" title="org.apache.calcite.rex中的类">RexTableInputRef.RelTableRef</a>&gt;&nbsp;tableMapping,
<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="../../../../org/apache/calcite/rex/RexTableInputRef.html" title="org.apache.calcite.rex中的类">RexTableInputRef</a>,<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/rex/RexTableInputRef.html" title="org.apache.calcite.rex中的类">RexTableInputRef</a>&gt;&gt;&nbsp;ec)</pre>
<div class="block">Given an expression, it will swap the table references contained in its
<a href="../../../../org/apache/calcite/rex/RexTableInputRef.html" title="org.apache.calcite.rex中的类"><code>RexTableInputRef</code></a> using the contents in the first map, and then
it will swap the column references <a href="../../../../org/apache/calcite/rex/RexTableInputRef.html" title="org.apache.calcite.rex中的类"><code>RexTableInputRef</code></a> using the contents
in the second map (in particular, the first element of the set in the map value).</div>
</li>
</ul>
<a name="swapColumnTableReferences-org.apache.calcite.rex.RexBuilder-org.apache.calcite.rex.RexNode-java.util.Map-java.util.Map-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>swapColumnTableReferences</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;swapColumnTableReferences(<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;node,
<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="../../../../org/apache/calcite/rex/RexTableInputRef.html" title="org.apache.calcite.rex中的类">RexTableInputRef</a>,<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/rex/RexTableInputRef.html" title="org.apache.calcite.rex中的类">RexTableInputRef</a>&gt;&gt;&nbsp;ec,
<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="../../../../org/apache/calcite/rex/RexTableInputRef.RelTableRef.html" title="org.apache.calcite.rex中的类">RexTableInputRef.RelTableRef</a>,<a href="../../../../org/apache/calcite/rex/RexTableInputRef.RelTableRef.html" title="org.apache.calcite.rex中的类">RexTableInputRef.RelTableRef</a>&gt;&nbsp;tableMapping)</pre>
<div class="block">Given an expression, it will swap the column references <a href="../../../../org/apache/calcite/rex/RexTableInputRef.html" title="org.apache.calcite.rex中的类"><code>RexTableInputRef</code></a>
using the contents in the first map (in particular, the first element of the set
in the map value), and then it will swap the table references contained in its
<a href="../../../../org/apache/calcite/rex/RexTableInputRef.html" title="org.apache.calcite.rex中的类"><code>RexTableInputRef</code></a> using the contents in the second map.</div>
</li>
</ul>
<a name="gatherTableReferences-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>gatherTableReferences</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/rex/RexTableInputRef.RelTableRef.html" title="org.apache.calcite.rex中的类">RexTableInputRef.RelTableRef</a>&gt;&nbsp;gatherTableReferences(<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)</pre>
<div class="block">Gather all table references in input expressions.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>nodes</code> - expressions</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>set of table references</dd>
</dl>
</li>
</ul>
<a name="strings-java.util.List-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>strings</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;strings(<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;list)</pre>
<div class="block">Transforms a list of expressions to the list of digests.</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/rex/RexUnknownAs.html" title="org.apache.calcite.rex中的枚举"><span class="typeNameLink">上一个类</span></a></li>
<li><a href="../../../../org/apache/calcite/rex/RexUtil.ExprSimplifier.html" title="org.apache.calcite.rex中的类"><span class="typeNameLink">下一个类</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/calcite/rex/RexUtil.html" target="_top">框架</a></li>
<li><a href="RexUtil.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>构造器&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>构造器&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>