blob: a99c5f0324bb305acfa70a92ba3e11c572323cf1 [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>RexSimplify (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="RexSimplify (Apache Calcite calcite API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":42,"i3":42,"i4":10,"i5":42,"i6":42,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":42};
var tabs = {65535:["t0","所有方法"],2:["t2","实例方法"],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/RexShuttle.html" title="org.apache.calcite.rex中的类"><span class="typeNameLink">上一个类</span></a></li>
<li><a href="../../../../org/apache/calcite/rex/RexSlot.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/RexSimplify.html" target="_top">框架</a></li>
<li><a href="RexSimplify.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>嵌套&nbsp;|&nbsp;</li>
<li><a href="#field.summary">字段</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">构造器</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">方法</a></li>
</ul>
<ul class="subNavList">
<li>详细资料:&nbsp;</li>
<li><a href="#field.detail">字段</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">构造器</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">方法</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.calcite.rex</div>
<h2 title="类 RexSimplify" class="title">类 RexSimplify</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.RexSimplify</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="typeNameLabel">RexSimplify</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">Context required to simplify a row-expression.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== 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><a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rex/RexSimplify.html#rexBuilder">rexBuilder</a></span></code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>构造器概要</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="构造器概要表, 列表构造器和解释">
<caption><span>构造器</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">构造器和说明</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rex/RexSimplify.html#RexSimplify-org.apache.calcite.rex.RexBuilder-boolean-org.apache.calcite.rex.RexExecutor-">RexSimplify</a></span>(<a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a>&nbsp;rexBuilder,
boolean&nbsp;unknownAsFalse,
<a href="../../../../org/apache/calcite/rex/RexExecutor.html" title="org.apache.calcite.rex中的接口">RexExecutor</a>&nbsp;executor)</code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rex/RexSimplify.html#RexSimplify-org.apache.calcite.rex.RexBuilder-org.apache.calcite.plan.RelOptPredicateList-boolean-org.apache.calcite.rex.RexExecutor-">RexSimplify</a></span>(<a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a>&nbsp;rexBuilder,
<a href="../../../../org/apache/calcite/plan/RelOptPredicateList.html" title="org.apache.calcite.plan中的类">RelOptPredicateList</a>&nbsp;predicates,
boolean&nbsp;unknownAsFalse,
<a href="../../../../org/apache/calcite/rex/RexExecutor.html" title="org.apache.calcite.rex中的接口">RexExecutor</a>&nbsp;executor)</code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rex/RexSimplify.html#RexSimplify-org.apache.calcite.rex.RexBuilder-org.apache.calcite.plan.RelOptPredicateList-org.apache.calcite.rex.RexExecutor-">RexSimplify</a></span>(<a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a>&nbsp;rexBuilder,
<a href="../../../../org/apache/calcite/plan/RelOptPredicateList.html" title="org.apache.calcite.plan中的类">RelOptPredicateList</a>&nbsp;predicates,
<a href="../../../../org/apache/calcite/rex/RexExecutor.html" title="org.apache.calcite.rex中的接口">RexExecutor</a>&nbsp;executor)</code>
<div class="block">Creates a RexSimplify.</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="t2" class="tableTab"><span><a href="javascript:show(2);">实例方法</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><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/RexSimplify.html#removeNullabilityCast-org.apache.calcite.rex.RexNode-">removeNullabilityCast</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 that change nullability but not type.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><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/RexSimplify.html#simplify-org.apache.calcite.rex.RexNode-">simplify</a></span>(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;e)</code>
<div class="block">Simplifies a boolean expression.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><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/RexSimplify.html#simplifyAnd-org.apache.calcite.rex.RexCall-">simplifyAnd</a></span>(<a href="../../../../org/apache/calcite/rex/RexCall.html" title="org.apache.calcite.rex中的类">RexCall</a>&nbsp;e)</code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><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/RexSimplify.html#simplifyAnds-java.lang.Iterable-">simplifyAnds</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"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><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/RexSimplify.html#simplifyFilterPredicates-java.lang.Iterable-">simplifyFilterPredicates</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;predicates)</code>
<div class="block">Combines predicates AND, optimizes, and returns null if the result is
always false.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><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/RexSimplify.html#simplifyOr-org.apache.calcite.rex.RexCall-">simplifyOr</a></span>(<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="i6" class="altColor">
<td class="colFirst"><code><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/RexSimplify.html#simplifyOrs-java.util.List-">simplifyOrs</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;terms)</code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><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/RexSimplify.html#simplifyPreservingType-org.apache.calcite.rex.RexNode-">simplifyPreservingType</a></span>(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;e)</code>
<div class="block">Simplifies a boolean expression, always preserving its type and its
nullability.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><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/RexSimplify.html#simplifyPreservingType-org.apache.calcite.rex.RexNode-org.apache.calcite.rex.RexUnknownAs-boolean-">simplifyPreservingType</a></span>(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;e,
<a href="../../../../org/apache/calcite/rex/RexUnknownAs.html" title="org.apache.calcite.rex中的枚举">RexUnknownAs</a>&nbsp;unknownAs,
boolean&nbsp;matchNullability)</code>&nbsp;</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><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/RexSimplify.html#simplifyUnknownAs-org.apache.calcite.rex.RexNode-org.apache.calcite.rex.RexUnknownAs-">simplifyUnknownAs</a></span>(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;e,
<a href="../../../../org/apache/calcite/rex/RexUnknownAs.html" title="org.apache.calcite.rex中的枚举">RexUnknownAs</a>&nbsp;unknownAs)</code>
<div class="block">As <a href="../../../../org/apache/calcite/rex/RexSimplify.html#simplify-org.apache.calcite.rex.RexNode-"><code>simplify(RexNode)</code></a>, but specifying how UNKNOWN values are to be
treated.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><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/RexSimplify.html#simplifyUnknownAsFalse-org.apache.calcite.rex.RexNode-">simplifyUnknownAsFalse</a></span>(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;e)</code>
<div class="block">As <a href="../../../../org/apache/calcite/rex/RexSimplify.html#simplify-org.apache.calcite.rex.RexNode-"><code>simplify(RexNode)</code></a>, but for a boolean expression
for which a result of UNKNOWN will be treated as FALSE.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/rex/RexSimplify.html" title="org.apache.calcite.rex中的类">RexSimplify</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rex/RexSimplify.html#withParanoid-boolean-">withParanoid</a></span>(boolean&nbsp;paranoid)</code>
<div class="block">Returns a RexSimplify the same as this but which verifies that
the expression before and after simplification are equivalent.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/rex/RexSimplify.html" title="org.apache.calcite.rex中的类">RexSimplify</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rex/RexSimplify.html#withPredicates-org.apache.calcite.plan.RelOptPredicateList-">withPredicates</a></span>(<a href="../../../../org/apache/calcite/plan/RelOptPredicateList.html" title="org.apache.calcite.plan中的类">RelOptPredicateList</a>&nbsp;predicates)</code>
<div class="block">Returns a RexSimplify the same as this but with a specified
<a href="../../../../org/apache/calcite/rex/RexSimplify.html#predicates"><code>predicates</code></a> value.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/rex/RexSimplify.html" title="org.apache.calcite.rex中的类">RexSimplify</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rex/RexSimplify.html#withUnknownAsFalse-boolean-">withUnknownAsFalse</a></span>(boolean&nbsp;unknownAsFalse)</code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;
<div class="block"><span class="deprecationComment">Use methods with a <a href="../../../../org/apache/calcite/rex/RexUnknownAs.html" title="org.apache.calcite.rex中的枚举"><code>RexUnknownAs</code></a> argument, such as
<a href="../../../../org/apache/calcite/rex/RexSimplify.html#simplify-org.apache.calcite.rex.RexNode-org.apache.calcite.rex.RexUnknownAs-"><code>simplify(RexNode, RexUnknownAs)</code></a>.</span></div>
</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="rexBuilder">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>rexBuilder</h4>
<pre>public final&nbsp;<a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a> rexBuilder</pre>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>构造器详细资料</h3>
<a name="RexSimplify-org.apache.calcite.rex.RexBuilder-org.apache.calcite.plan.RelOptPredicateList-org.apache.calcite.rex.RexExecutor-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>RexSimplify</h4>
<pre>public&nbsp;RexSimplify(<a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a>&nbsp;rexBuilder,
<a href="../../../../org/apache/calcite/plan/RelOptPredicateList.html" title="org.apache.calcite.plan中的类">RelOptPredicateList</a>&nbsp;predicates,
<a href="../../../../org/apache/calcite/rex/RexExecutor.html" title="org.apache.calcite.rex中的接口">RexExecutor</a>&nbsp;executor)</pre>
<div class="block">Creates a RexSimplify.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rexBuilder</code> - Rex builder</dd>
<dd><code>predicates</code> - Predicates known to hold on input fields</dd>
<dd><code>executor</code> - Executor for constant reduction, not null</dd>
</dl>
</li>
</ul>
<a name="RexSimplify-org.apache.calcite.rex.RexBuilder-boolean-org.apache.calcite.rex.RexExecutor-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>RexSimplify</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&nbsp;RexSimplify(<a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a>&nbsp;rexBuilder,
boolean&nbsp;unknownAsFalse,
<a href="../../../../org/apache/calcite/rex/RexExecutor.html" title="org.apache.calcite.rex中的接口">RexExecutor</a>&nbsp;executor)</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</li>
</ul>
<a name="RexSimplify-org.apache.calcite.rex.RexBuilder-org.apache.calcite.plan.RelOptPredicateList-boolean-org.apache.calcite.rex.RexExecutor-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>RexSimplify</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&nbsp;RexSimplify(<a href="../../../../org/apache/calcite/rex/RexBuilder.html" title="org.apache.calcite.rex中的类">RexBuilder</a>&nbsp;rexBuilder,
<a href="../../../../org/apache/calcite/plan/RelOptPredicateList.html" title="org.apache.calcite.plan中的类">RelOptPredicateList</a>&nbsp;predicates,
boolean&nbsp;unknownAsFalse,
<a href="../../../../org/apache/calcite/rex/RexExecutor.html" title="org.apache.calcite.rex中的接口">RexExecutor</a>&nbsp;executor)</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>方法详细资料</h3>
<a name="withUnknownAsFalse-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>withUnknownAsFalse</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&nbsp;<a href="../../../../org/apache/calcite/rex/RexSimplify.html" title="org.apache.calcite.rex中的类">RexSimplify</a>&nbsp;withUnknownAsFalse(boolean&nbsp;unknownAsFalse)</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;<span class="deprecationComment">Use methods with a <a href="../../../../org/apache/calcite/rex/RexUnknownAs.html" title="org.apache.calcite.rex中的枚举"><code>RexUnknownAs</code></a> argument, such as
<a href="../../../../org/apache/calcite/rex/RexSimplify.html#simplify-org.apache.calcite.rex.RexNode-org.apache.calcite.rex.RexUnknownAs-"><code>simplify(RexNode, RexUnknownAs)</code></a>.</span></div>
<div class="block">Returns a RexSimplify the same as this but with a specified
<a href="../../../../org/apache/calcite/rex/RexSimplify.html#defaultUnknownAs"><code>defaultUnknownAs</code></a> value.</div>
</li>
</ul>
<a name="withPredicates-org.apache.calcite.plan.RelOptPredicateList-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>withPredicates</h4>
<pre>public&nbsp;<a href="../../../../org/apache/calcite/rex/RexSimplify.html" title="org.apache.calcite.rex中的类">RexSimplify</a>&nbsp;withPredicates(<a href="../../../../org/apache/calcite/plan/RelOptPredicateList.html" title="org.apache.calcite.plan中的类">RelOptPredicateList</a>&nbsp;predicates)</pre>
<div class="block">Returns a RexSimplify the same as this but with a specified
<a href="../../../../org/apache/calcite/rex/RexSimplify.html#predicates"><code>predicates</code></a> value.</div>
</li>
</ul>
<a name="withParanoid-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>withParanoid</h4>
<pre>public&nbsp;<a href="../../../../org/apache/calcite/rex/RexSimplify.html" title="org.apache.calcite.rex中的类">RexSimplify</a>&nbsp;withParanoid(boolean&nbsp;paranoid)</pre>
<div class="block">Returns a RexSimplify the same as this but which verifies that
the expression before and after simplification are equivalent.</div>
<dl>
<dt><span class="seeLabel">另请参阅:</span></dt>
<dd><a href="../../../../org/apache/calcite/rex/RexSimplify.html#verify-org.apache.calcite.rex.RexNode-org.apache.calcite.rex.RexNode-org.apache.calcite.rex.RexUnknownAs-"><code>verify(org.apache.calcite.rex.RexNode, org.apache.calcite.rex.RexNode, org.apache.calcite.rex.RexUnknownAs)</code></a></dd>
</dl>
</li>
</ul>
<a name="simplifyPreservingType-org.apache.calcite.rex.RexNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>simplifyPreservingType</h4>
<pre>public&nbsp;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;simplifyPreservingType(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;e)</pre>
<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="simplifyPreservingType-org.apache.calcite.rex.RexNode-org.apache.calcite.rex.RexUnknownAs-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>simplifyPreservingType</h4>
<pre>public&nbsp;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;simplifyPreservingType(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;e,
<a href="../../../../org/apache/calcite/rex/RexUnknownAs.html" title="org.apache.calcite.rex中的枚举">RexUnknownAs</a>&nbsp;unknownAs,
boolean&nbsp;matchNullability)</pre>
</li>
</ul>
<a name="simplify-org.apache.calcite.rex.RexNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>simplify</h4>
<pre>public&nbsp;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;simplify(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;e)</pre>
<div class="block">Simplifies a boolean expression.
<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>Handles UNKNOWN values using the policy specified when you created this
<code>RexSimplify</code>. Unless you used a deprecated constructor, that policy
is <a href="../../../../org/apache/calcite/rex/RexUnknownAs.html#UNKNOWN"><code>RexUnknownAs.UNKNOWN</code></a>.
<p>If the expression is a predicate in a WHERE clause, consider instead
using <a href="../../../../org/apache/calcite/rex/RexSimplify.html#simplifyUnknownAsFalse-org.apache.calcite.rex.RexNode-"><code>simplifyUnknownAsFalse(RexNode)</code></a>.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>e</code> - Expression to simplify</dd>
</dl>
</li>
</ul>
<a name="simplifyUnknownAsFalse-org.apache.calcite.rex.RexNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>simplifyUnknownAsFalse</h4>
<pre>public final&nbsp;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;simplifyUnknownAsFalse(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;e)</pre>
<div class="block">As <a href="../../../../org/apache/calcite/rex/RexSimplify.html#simplify-org.apache.calcite.rex.RexNode-"><code>simplify(RexNode)</code></a>, but for a boolean expression
for which a result of UNKNOWN will be treated as FALSE.
<p>Use this form for expressions on a WHERE, ON, HAVING or FILTER(WHERE)
clause.
<p>This may allow certain additional simplifications. A result of UNKNOWN
may yield FALSE, however it may still yield UNKNOWN. (If the simplified
expression has type BOOLEAN NOT NULL, then of course it can only return
FALSE.)</div>
</li>
</ul>
<a name="simplifyUnknownAs-org.apache.calcite.rex.RexNode-org.apache.calcite.rex.RexUnknownAs-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>simplifyUnknownAs</h4>
<pre>public&nbsp;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;simplifyUnknownAs(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;e,
<a href="../../../../org/apache/calcite/rex/RexUnknownAs.html" title="org.apache.calcite.rex中的枚举">RexUnknownAs</a>&nbsp;unknownAs)</pre>
<div class="block">As <a href="../../../../org/apache/calcite/rex/RexSimplify.html#simplify-org.apache.calcite.rex.RexNode-"><code>simplify(RexNode)</code></a>, but specifying how UNKNOWN values are to be
treated.
<p>If UNKNOWN is treated as FALSE, this may allow certain additional
simplifications. A result of UNKNOWN may yield FALSE, however it may still
yield UNKNOWN. (If the simplified expression has type BOOLEAN NOT NULL,
then of course it can only return FALSE.)</div>
</li>
</ul>
<a name="simplifyAnds-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&nbsp;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;simplifyAnds(<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;</div>
<div class="block">Simplifies a conjunction of boolean expressions.</div>
</li>
</ul>
<a name="simplifyAnd-org.apache.calcite.rex.RexCall-">
<!-- -->
</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&nbsp;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;simplifyAnd(<a href="../../../../org/apache/calcite/rex/RexCall.html" title="org.apache.calcite.rex中的类">RexCall</a>&nbsp;e)</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</li>
</ul>
<a name="simplifyOr-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&nbsp;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;simplifyOr(<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>
<div class="block">Simplifies OR(x, x) into x, and similar.
The simplified expression returns UNKNOWN values as is (not as FALSE).</div>
</li>
</ul>
<a name="simplifyOrs-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&nbsp;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;simplifyOrs(<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>
<div class="block">Simplifies a list of terms and combines them into an OR.
Modifies the list in place.
The simplified expression returns UNKNOWN values as is (not as FALSE).</div>
</li>
</ul>
<a name="removeNullabilityCast-org.apache.calcite.rex.RexNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeNullabilityCast</h4>
<pre>public&nbsp;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;removeNullabilityCast(<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;e)</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="simplifyFilterPredicates-java.lang.Iterable-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>simplifyFilterPredicates</h4>
<pre>public&nbsp;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;simplifyFilterPredicates(<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;predicates)</pre>
<div class="block">Combines predicates AND, optimizes, and returns null if the result is
always false.
<p>The expression is simplified on the assumption that an UNKNOWN value
is always treated as FALSE. Therefore the simplified expression may
sometimes evaluate to FALSE where the original expression would evaluate to
UNKNOWN.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>predicates</code> - Filter condition predicates</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>simplified conjunction of predicates for the filter, null if always false</dd>
</dl>
</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/RexShuttle.html" title="org.apache.calcite.rex中的类"><span class="typeNameLink">上一个类</span></a></li>
<li><a href="../../../../org/apache/calcite/rex/RexSlot.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/RexSimplify.html" target="_top">框架</a></li>
<li><a href="RexSimplify.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>嵌套&nbsp;|&nbsp;</li>
<li><a href="#field.summary">字段</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">构造器</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">方法</a></li>
</ul>
<ul class="subNavList">
<li>详细资料:&nbsp;</li>
<li><a href="#field.detail">字段</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">构造器</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">方法</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &copy; 2012-2020 Apache Software Foundation. All Rights Reserved.</small></p>
</body>
</html>