blob: 668e12fe680d17db2381ffa81ef4246f20549b18 [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>AbstractRelOptPlanner (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="AbstractRelOptPlanner (Apache Calcite calcite API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":9,"i23":9,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10};
var tabs = {65535:["t0","所有方法"],1:["t1","静态方法"],2:["t2","实例方法"],8:["t4","具体方法"]};
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>上一个类</li>
<li><a href="../../../../org/apache/calcite/plan/CommonRelSubExprRule.html" title="org.apache.calcite.plan中的类"><span class="typeNameLink">下一个类</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/calcite/plan/AbstractRelOptPlanner.html" target="_top">框架</a></li>
<li><a href="AbstractRelOptPlanner.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.plan</div>
<h2 title="类 AbstractRelOptPlanner" class="title">类 AbstractRelOptPlanner</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="java.lang中的类或接口">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.apache.calcite.plan.AbstractRelOptPlanner</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>所有已实现的接口:</dt>
<dd><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="org.apache.calcite.plan中的接口">RelOptPlanner</a></dd>
</dl>
<dl>
<dt>直接已知子类:</dt>
<dd><a href="../../../../org/apache/calcite/plan/hep/HepPlanner.html" title="org.apache.calcite.plan.hep中的类">HepPlanner</a>, <a href="../../../../org/apache/calcite/plan/volcano/VolcanoPlanner.html" title="org.apache.calcite.plan.volcano中的类">VolcanoPlanner</a></dd>
</dl>
<hr>
<br>
<pre>public abstract class <span class="typeNameLabel">AbstractRelOptPlanner</span>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="java.lang中的类或接口">Object</a>
implements <a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="org.apache.calcite.plan中的接口">RelOptPlanner</a></pre>
<div class="block">Abstract base for implementations of the <a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="org.apache.calcite.plan中的接口"><code>RelOptPlanner</code></a> interface.</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>
<ul class="blockList">
<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.calcite.plan.RelOptPlanner">
<!-- -->
</a>
<h3>从接口继承的嵌套类/接口&nbsp;org.apache.calcite.plan.<a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="org.apache.calcite.plan中的接口">RelOptPlanner</a></h3>
<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.CannotPlanException.html" title="org.apache.calcite.plan中的类">RelOptPlanner.CannotPlanException</a>, <a href="../../../../org/apache/calcite/plan/RelOptPlanner.Executor.html" title="org.apache.calcite.plan中的接口">RelOptPlanner.Executor</a></code></li>
</ul>
</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>protected <a href="../../../../org/apache/calcite/plan/Context.html" title="org.apache.calcite.plan中的接口">Context</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/AbstractRelOptPlanner.html#context">context</a></span></code>
<div class="block">External context.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="../../../../org/apache/calcite/plan/RelOptCostFactory.html" title="org.apache.calcite.plan中的接口">RelOptCostFactory</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/AbstractRelOptPlanner.html#costFactory">costFactory</a></span></code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.calcite.plan.RelOptPlanner">
<!-- -->
</a>
<h3>从接口继承的字段&nbsp;org.apache.calcite.plan.<a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="org.apache.calcite.plan中的接口">RelOptPlanner</a></h3>
<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#LOGGER">LOGGER</a></code></li>
</ul>
</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="colFirst" scope="col">限定符</th>
<th class="colLast" scope="col">构造器和说明</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/AbstractRelOptPlanner.html#AbstractRelOptPlanner-org.apache.calcite.plan.RelOptCostFactory-org.apache.calcite.plan.Context-">AbstractRelOptPlanner</a></span>(<a href="../../../../org/apache/calcite/plan/RelOptCostFactory.html" title="org.apache.calcite.plan中的接口">RelOptCostFactory</a>&nbsp;costFactory,
<a href="../../../../org/apache/calcite/plan/Context.html" title="org.apache.calcite.plan中的接口">Context</a>&nbsp;context)</code>
<div class="block">Creates an AbstractRelOptPlanner.</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="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></caption>
<tr>
<th class="colFirst" scope="col">限定符和类型</th>
<th class="colLast" scope="col">方法和说明</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/AbstractRelOptPlanner.html#addLattice-org.apache.calcite.plan.RelOptLattice-">addLattice</a></span>(<a href="../../../../org/apache/calcite/plan/RelOptLattice.html" title="org.apache.calcite.plan中的类">RelOptLattice</a>&nbsp;lattice)</code>
<div class="block">Defines a lattice.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/AbstractRelOptPlanner.html#addListener-org.apache.calcite.plan.RelOptListener-">addListener</a></span>(<a href="../../../../org/apache/calcite/plan/RelOptListener.html" title="org.apache.calcite.plan中的接口">RelOptListener</a>&nbsp;newListener)</code>
<div class="block">Adds a listener to this planner.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/AbstractRelOptPlanner.html#addMaterialization-org.apache.calcite.plan.RelOptMaterialization-">addMaterialization</a></span>(<a href="../../../../org/apache/calcite/plan/RelOptMaterialization.html" title="org.apache.calcite.plan中的类">RelOptMaterialization</a>&nbsp;materialization)</code>
<div class="block">Defines a pair of relational expressions that are equivalent.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/AbstractRelOptPlanner.html#addRelTraitDef-org.apache.calcite.plan.RelTraitDef-">addRelTraitDef</a></span>(<a href="../../../../org/apache/calcite/plan/RelTraitDef.html" title="org.apache.calcite.plan中的类">RelTraitDef</a>&nbsp;relTraitDef)</code>
<div class="block">Registers a rel trait definition.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/AbstractRelOptPlanner.html#checkCancel--">checkCancel</a></span>()</code>
<div class="block">Checks to see whether cancellation has been requested, and if so, throws
an exception.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="org.apache.calcite.plan中的接口">RelOptPlanner</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/AbstractRelOptPlanner.html#chooseDelegate--">chooseDelegate</a></span>()</code>
<div class="block">Negotiates an appropriate planner to deal with distributed queries.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/AbstractRelOptPlanner.html#clear--">clear</a></span>()</code>
<div class="block">Removes all internal state, including all registered rules,
materialized views, and lattices.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/AbstractRelOptPlanner.html#clearRelTraitDefs--">clearRelTraitDefs</a></span>()</code>
<div class="block">Clear all the registered RelTraitDef.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/plan/RelTraitSet.html" title="org.apache.calcite.plan中的类">RelTraitSet</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/AbstractRelOptPlanner.html#emptyTraitSet--">emptyTraitSet</a></span>()</code>
<div class="block">Creates an empty trait set.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/AbstractRelOptPlanner.html#fireRule-org.apache.calcite.plan.RelOptRuleCall-">fireRule</a></span>(<a href="../../../../org/apache/calcite/plan/RelOptRuleCall.html" title="org.apache.calcite.plan中的类">RelOptRuleCall</a>&nbsp;ruleCall)</code>
<div class="block">Fires a rule, taking care of tracing and listener notification.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/plan/Context.html" title="org.apache.calcite.plan中的接口">Context</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/AbstractRelOptPlanner.html#getContext--">getContext</a></span>()</code>
<div class="block">Provides the Context created when this planner was constructed.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/plan/RelOptCost.html" title="org.apache.calcite.plan中的接口">RelOptCost</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/AbstractRelOptPlanner.html#getCost-org.apache.calcite.rel.RelNode-">getCost</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</code>&nbsp;</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/plan/RelOptCost.html" title="org.apache.calcite.plan中的接口">RelOptCost</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/AbstractRelOptPlanner.html#getCost-org.apache.calcite.rel.RelNode-org.apache.calcite.rel.metadata.RelMetadataQuery-">getCost</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel,
<a href="../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html" title="org.apache.calcite.rel.metadata中的类">RelMetadataQuery</a>&nbsp;mq)</code>
<div class="block">Computes the cost of a RelNode.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/plan/RelOptCostFactory.html" title="org.apache.calcite.plan中的接口">RelOptCostFactory</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/AbstractRelOptPlanner.html#getCostFactory--">getCostFactory</a></span>()</code>
<div class="block">Returns the factory that creates
<a href="../../../../org/apache/calcite/plan/RelOptCost.html" title="org.apache.calcite.plan中的接口"><code>RelOptCost</code></a>s.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><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/plan/AbstractRelOptPlanner.html#getExecutor--">getExecutor</a></span>()</code>
<div class="block">Returns the executor used to evaluate constant expressions.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/plan/RelOptLattice.html" title="org.apache.calcite.plan中的类">RelOptLattice</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/AbstractRelOptPlanner.html#getLattice-org.apache.calcite.plan.RelOptTable-">getLattice</a></span>(<a href="../../../../org/apache/calcite/plan/RelOptTable.html" title="org.apache.calcite.plan中的接口">RelOptTable</a>&nbsp;table)</code>
<div class="block">Retrieves a lattice, given its star table.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>protected <a href="../../../../org/apache/calcite/plan/MulticastRelOptListener.html" title="org.apache.calcite.plan中的类">MulticastRelOptListener</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/AbstractRelOptPlanner.html#getListener--">getListener</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/plan/RelOptMaterialization.html" title="org.apache.calcite.plan中的类">RelOptMaterialization</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/AbstractRelOptPlanner.html#getMaterializations--">getMaterializations</a></span>()</code>
<div class="block">Returns the materializations that have been registered with the planner.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/AbstractRelOptPlanner.html#getRelMetadataTimestamp-org.apache.calcite.rel.RelNode-">getRelMetadataTimestamp</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</code>
<div class="block">Gets a timestamp for a given rel's metadata.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/plan/RelTraitDef.html" title="org.apache.calcite.plan中的类">RelTraitDef</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/AbstractRelOptPlanner.html#getRelTraitDefs--">getRelTraitDefs</a></span>()</code>
<div class="block">Returns the list of active trait types.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>protected <a href="../../../../org/apache/calcite/plan/RelOptRule.html" title="org.apache.calcite.plan中的类">RelOptRule</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/AbstractRelOptPlanner.html#getRuleByDescription-java.lang.String-">getRuleByDescription</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&nbsp;description)</code>
<div class="block">Returns the rule with a given description</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/AbstractRelOptPlanner.html#isRuleExcluded-org.apache.calcite.plan.RelOptRule-">isRuleExcluded</a></span>(<a href="../../../../org/apache/calcite/plan/RelOptRule.html" title="org.apache.calcite.plan中的类">RelOptRule</a>&nbsp;rule)</code>
<div class="block">Determines whether a given rule is excluded by ruleDescExclusionFilter.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>protected static <a href="../../../../org/apache/calcite/util/Pair.html" title="org.apache.calcite.util中的类">Pair</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>,<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;&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/AbstractRelOptPlanner.html#key-org.apache.calcite.rel.RelNode-">key</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</code>
<div class="block">Computes the key for relational expression digest cache.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>protected static <a href="../../../../org/apache/calcite/util/Pair.html" title="org.apache.calcite.util中的类">Pair</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>,<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;&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/AbstractRelOptPlanner.html#key-java.lang.String-org.apache.calcite.rel.type.RelDataType-">key</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&nbsp;digest,
<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;relType)</code>
<div class="block">Computes the key for relational expression digest cache.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/AbstractRelOptPlanner.html#mapRuleDescription-org.apache.calcite.plan.RelOptRule-">mapRuleDescription</a></span>(<a href="../../../../org/apache/calcite/plan/RelOptRule.html" title="org.apache.calcite.plan中的类">RelOptRule</a>&nbsp;rule)</code>
<div class="block">Registers a rule's description.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/AbstractRelOptPlanner.html#notifyChosen-org.apache.calcite.rel.RelNode-">notifyChosen</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</code>
<div class="block">Takes care of tracing and listener notification when a rel is chosen as
part of the final plan.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/AbstractRelOptPlanner.html#notifyDiscard-org.apache.calcite.rel.RelNode-">notifyDiscard</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</code>
<div class="block">Takes care of tracing and listener notification when a rel is discarded</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/AbstractRelOptPlanner.html#notifyEquivalence-org.apache.calcite.rel.RelNode-java.lang.Object-boolean-">notifyEquivalence</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="java.lang中的类或接口">Object</a>&nbsp;equivalenceClass,
boolean&nbsp;physical)</code>
<div class="block">Takes care of tracing and listener notification when a rel equivalence is
detected.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/AbstractRelOptPlanner.html#notifyTransformation-org.apache.calcite.plan.RelOptRuleCall-org.apache.calcite.rel.RelNode-boolean-">notifyTransformation</a></span>(<a href="../../../../org/apache/calcite/plan/RelOptRuleCall.html" title="org.apache.calcite.plan中的类">RelOptRuleCall</a>&nbsp;ruleCall,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;newRel,
boolean&nbsp;before)</code>
<div class="block">Takes care of tracing and listener notification when a rule's
transformation is applied.</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/AbstractRelOptPlanner.html#onCopy-org.apache.calcite.rel.RelNode-org.apache.calcite.rel.RelNode-">onCopy</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;newRel)</code>
<div class="block">Called when a relational expression is copied to a similar expression.</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/AbstractRelOptPlanner.html#onNewClass-org.apache.calcite.rel.RelNode-">onNewClass</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;node)</code>
<div class="block">Called when a new class of <a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口"><code>RelNode</code></a> is seen.</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/AbstractRelOptPlanner.html#registerClass-org.apache.calcite.rel.RelNode-">registerClass</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;node)</code>
<div class="block">Registers a class of RelNode.</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/AbstractRelOptPlanner.html#registerMetadataProviders-java.util.List-">registerMetadataProviders</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/metadata/RelMetadataProvider.html" title="org.apache.calcite.rel.metadata中的接口">RelMetadataProvider</a>&gt;&nbsp;list)</code>
<div class="block">Gives this planner a chance to register one or more
<a href="../../../../org/apache/calcite/rel/metadata/RelMetadataProvider.html" title="org.apache.calcite.rel.metadata中的接口"><code>RelMetadataProvider</code></a>s in the chain which will be used to answer
metadata queries.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/AbstractRelOptPlanner.html#registerSchema-org.apache.calcite.plan.RelOptSchema-">registerSchema</a></span>(<a href="../../../../org/apache/calcite/plan/RelOptSchema.html" title="org.apache.calcite.plan中的接口">RelOptSchema</a>&nbsp;schema)</code>
<div class="block">Tells this planner that a schema exists.</div>
</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/AbstractRelOptPlanner.html#setCancelFlag-org.apache.calcite.util.CancelFlag-">setCancelFlag</a></span>(<a href="../../../../org/apache/calcite/util/CancelFlag.html" title="org.apache.calcite.util中的类">CancelFlag</a>&nbsp;cancelFlag)</code>
<div class="block">Does nothing.</div>
</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/AbstractRelOptPlanner.html#setExecutor-org.apache.calcite.rex.RexExecutor-">setExecutor</a></span>(<a href="../../../../org/apache/calcite/rex/RexExecutor.html" title="org.apache.calcite.rex中的接口">RexExecutor</a>&nbsp;executor)</code>
<div class="block">Sets the object that can execute scalar expressions.</div>
</td>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/AbstractRelOptPlanner.html#setImportance-org.apache.calcite.rel.RelNode-double-">setImportance</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel,
double&nbsp;importance)</code>
<div class="block">Sets the importance of a relational expression.</div>
</td>
</tr>
<tr id="i37" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/AbstractRelOptPlanner.html#setRuleDescExclusionFilter-java.util.regex.Pattern-">setRuleDescExclusionFilter</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="java.util.regex中的类或接口">Pattern</a>&nbsp;exclusionFilter)</code>
<div class="block">Sets the exclusion filter to use for this planner.</div>
</td>
</tr>
<tr id="i38" class="altColor">
<td class="colFirst"><code><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="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="java.lang中的类或接口">Class</a>&lt;? extends <a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&gt;&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/AbstractRelOptPlanner.html#subClasses-java.lang.Class-">subClasses</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;? extends <a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&gt;&nbsp;clazz)</code>
<div class="block">Returns sub-classes of relational expression.</div>
</td>
</tr>
<tr id="i39" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/AbstractRelOptPlanner.html#unmapRuleDescription-org.apache.calcite.plan.RelOptRule-">unmapRuleDescription</a></span>(<a href="../../../../org/apache/calcite/plan/RelOptRule.html" title="org.apache.calcite.plan中的类">RelOptRule</a>&nbsp;rule)</code>
<div class="block">Removes the mapping between a rule and its description.</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>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.calcite.plan.RelOptPlanner">
<!-- -->
</a>
<h3>从接口继承的方法&nbsp;org.apache.calcite.plan.<a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="org.apache.calcite.plan中的接口">RelOptPlanner</a></h3>
<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#addRule-org.apache.calcite.plan.RelOptRule-">addRule</a>, <a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#changeTraits-org.apache.calcite.rel.RelNode-org.apache.calcite.plan.RelTraitSet-">changeTraits</a>, <a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#ensureRegistered-org.apache.calcite.rel.RelNode-org.apache.calcite.rel.RelNode-">ensureRegistered</a>, <a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#findBestExp--">findBestExp</a>, <a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#getRoot--">getRoot</a>, <a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#getRules--">getRules</a>, <a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#isRegistered-org.apache.calcite.rel.RelNode-">isRegistered</a>, <a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#register-org.apache.calcite.rel.RelNode-org.apache.calcite.rel.RelNode-">register</a>, <a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#removeRule-org.apache.calcite.plan.RelOptRule-">removeRule</a>, <a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#setRoot-org.apache.calcite.rel.RelNode-">setRoot</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="costFactory">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>costFactory</h4>
<pre>protected final&nbsp;<a href="../../../../org/apache/calcite/plan/RelOptCostFactory.html" title="org.apache.calcite.plan中的接口">RelOptCostFactory</a> costFactory</pre>
</li>
</ul>
<a name="context">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>context</h4>
<pre>protected final&nbsp;<a href="../../../../org/apache/calcite/plan/Context.html" title="org.apache.calcite.plan中的接口">Context</a> context</pre>
<div class="block">External context. Never null.</div>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>构造器详细资料</h3>
<a name="AbstractRelOptPlanner-org.apache.calcite.plan.RelOptCostFactory-org.apache.calcite.plan.Context-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>AbstractRelOptPlanner</h4>
<pre>protected&nbsp;AbstractRelOptPlanner(<a href="../../../../org/apache/calcite/plan/RelOptCostFactory.html" title="org.apache.calcite.plan中的接口">RelOptCostFactory</a>&nbsp;costFactory,
<a href="../../../../org/apache/calcite/plan/Context.html" title="org.apache.calcite.plan中的接口">Context</a>&nbsp;context)</pre>
<div class="block">Creates an AbstractRelOptPlanner.</div>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>方法详细资料</h3>
<a name="clear--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clear</h4>
<pre>public&nbsp;void&nbsp;clear()</pre>
<div class="block"><span class="descfrmTypeLabel">从接口复制的说明:&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#clear--">RelOptPlanner</a></code></span></div>
<div class="block">Removes all internal state, including all registered rules,
materialized views, and lattices.</div>
<dl>
<dt><span class="overrideSpecifyLabel">指定者:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#clear--">clear</a></code>&nbsp;在接口中&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="org.apache.calcite.plan中的接口">RelOptPlanner</a></code></dd>
</dl>
</li>
</ul>
<a name="getContext--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getContext</h4>
<pre>public&nbsp;<a href="../../../../org/apache/calcite/plan/Context.html" title="org.apache.calcite.plan中的接口">Context</a>&nbsp;getContext()</pre>
<div class="block"><span class="descfrmTypeLabel">从接口复制的说明:&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#getContext--">RelOptPlanner</a></code></span></div>
<div class="block">Provides the Context created when this planner was constructed.</div>
<dl>
<dt><span class="overrideSpecifyLabel">指定者:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#getContext--">getContext</a></code>&nbsp;在接口中&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="org.apache.calcite.plan中的接口">RelOptPlanner</a></code></dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>Never null; either an externally defined context, or a dummy
context that returns null for each requested interface</dd>
</dl>
</li>
</ul>
<a name="getCostFactory--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCostFactory</h4>
<pre>public&nbsp;<a href="../../../../org/apache/calcite/plan/RelOptCostFactory.html" title="org.apache.calcite.plan中的接口">RelOptCostFactory</a>&nbsp;getCostFactory()</pre>
<div class="block"><span class="descfrmTypeLabel">从接口复制的说明:&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#getCostFactory--">RelOptPlanner</a></code></span></div>
<div class="block">Returns the factory that creates
<a href="../../../../org/apache/calcite/plan/RelOptCost.html" title="org.apache.calcite.plan中的接口"><code>RelOptCost</code></a>s.</div>
<dl>
<dt><span class="overrideSpecifyLabel">指定者:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#getCostFactory--">getCostFactory</a></code>&nbsp;在接口中&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="org.apache.calcite.plan中的接口">RelOptPlanner</a></code></dd>
</dl>
</li>
</ul>
<a name="setCancelFlag-org.apache.calcite.util.CancelFlag-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setCancelFlag</h4>
<pre>public&nbsp;void&nbsp;setCancelFlag(<a href="../../../../org/apache/calcite/util/CancelFlag.html" title="org.apache.calcite.util中的类">CancelFlag</a>&nbsp;cancelFlag)</pre>
<div class="block"><span class="descfrmTypeLabel">从接口复制的说明:&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#setCancelFlag-org.apache.calcite.util.CancelFlag-">RelOptPlanner</a></code></span></div>
<div class="block">Does nothing.</div>
<dl>
<dt><span class="overrideSpecifyLabel">指定者:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#setCancelFlag-org.apache.calcite.util.CancelFlag-">setCancelFlag</a></code>&nbsp;在接口中&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="org.apache.calcite.plan中的接口">RelOptPlanner</a></code></dd>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>cancelFlag</code> - flag which the planner should periodically check</dd>
</dl>
</li>
</ul>
<a name="checkCancel--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkCancel</h4>
<pre>public&nbsp;void&nbsp;checkCancel()</pre>
<div class="block">Checks to see whether cancellation has been requested, and if so, throws
an exception.</div>
</li>
</ul>
<a name="mapRuleDescription-org.apache.calcite.plan.RelOptRule-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>mapRuleDescription</h4>
<pre>protected&nbsp;void&nbsp;mapRuleDescription(<a href="../../../../org/apache/calcite/plan/RelOptRule.html" title="org.apache.calcite.plan中的类">RelOptRule</a>&nbsp;rule)</pre>
<div class="block">Registers a rule's description.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rule</code> - Rule</dd>
</dl>
</li>
</ul>
<a name="unmapRuleDescription-org.apache.calcite.plan.RelOptRule-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unmapRuleDescription</h4>
<pre>protected&nbsp;void&nbsp;unmapRuleDescription(<a href="../../../../org/apache/calcite/plan/RelOptRule.html" title="org.apache.calcite.plan中的类">RelOptRule</a>&nbsp;rule)</pre>
<div class="block">Removes the mapping between a rule and its description.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rule</code> - Rule</dd>
</dl>
</li>
</ul>
<a name="getRuleByDescription-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRuleByDescription</h4>
<pre>protected&nbsp;<a href="../../../../org/apache/calcite/plan/RelOptRule.html" title="org.apache.calcite.plan中的类">RelOptRule</a>&nbsp;getRuleByDescription(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&nbsp;description)</pre>
<div class="block">Returns the rule with a given description</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>description</code> - Description</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>Rule with given description, or null if not found</dd>
</dl>
</li>
</ul>
<a name="setRuleDescExclusionFilter-java.util.regex.Pattern-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setRuleDescExclusionFilter</h4>
<pre>public&nbsp;void&nbsp;setRuleDescExclusionFilter(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="java.util.regex中的类或接口">Pattern</a>&nbsp;exclusionFilter)</pre>
<div class="block"><span class="descfrmTypeLabel">从接口复制的说明:&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#setRuleDescExclusionFilter-java.util.regex.Pattern-">RelOptPlanner</a></code></span></div>
<div class="block">Sets the exclusion filter to use for this planner. Rules which match the
given pattern will not be fired regardless of whether or when they are
added to the planner.</div>
<dl>
<dt><span class="overrideSpecifyLabel">指定者:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#setRuleDescExclusionFilter-java.util.regex.Pattern-">setRuleDescExclusionFilter</a></code>&nbsp;在接口中&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="org.apache.calcite.plan中的接口">RelOptPlanner</a></code></dd>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>exclusionFilter</code> - pattern to match for exclusion; null to disable
filtering</dd>
</dl>
</li>
</ul>
<a name="isRuleExcluded-org.apache.calcite.plan.RelOptRule-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isRuleExcluded</h4>
<pre>public&nbsp;boolean&nbsp;isRuleExcluded(<a href="../../../../org/apache/calcite/plan/RelOptRule.html" title="org.apache.calcite.plan中的类">RelOptRule</a>&nbsp;rule)</pre>
<div class="block">Determines whether a given rule is excluded by ruleDescExclusionFilter.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rule</code> - rule to test</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>true iff rule should be excluded</dd>
</dl>
</li>
</ul>
<a name="chooseDelegate--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>chooseDelegate</h4>
<pre>public&nbsp;<a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="org.apache.calcite.plan中的接口">RelOptPlanner</a>&nbsp;chooseDelegate()</pre>
<div class="block"><span class="descfrmTypeLabel">从接口复制的说明:&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#chooseDelegate--">RelOptPlanner</a></code></span></div>
<div class="block">Negotiates an appropriate planner to deal with distributed queries. The
idea is that the schemas decide among themselves which has the most
knowledge. Right now, the local planner retains control.</div>
<dl>
<dt><span class="overrideSpecifyLabel">指定者:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#chooseDelegate--">chooseDelegate</a></code>&nbsp;在接口中&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="org.apache.calcite.plan中的接口">RelOptPlanner</a></code></dd>
</dl>
</li>
</ul>
<a name="addMaterialization-org.apache.calcite.plan.RelOptMaterialization-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addMaterialization</h4>
<pre>public&nbsp;void&nbsp;addMaterialization(<a href="../../../../org/apache/calcite/plan/RelOptMaterialization.html" title="org.apache.calcite.plan中的类">RelOptMaterialization</a>&nbsp;materialization)</pre>
<div class="block"><span class="descfrmTypeLabel">从接口复制的说明:&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#addMaterialization-org.apache.calcite.plan.RelOptMaterialization-">RelOptPlanner</a></code></span></div>
<div class="block">Defines a pair of relational expressions that are equivalent.
<p>Typically <code>tableRel</code> is a
<a href="../../../../org/apache/calcite/rel/logical/LogicalTableScan.html" title="org.apache.calcite.rel.logical中的类"><code>LogicalTableScan</code></a> representing a
table that is a materialized view and <code>queryRel</code> is the SQL
expression that populates that view. The intention is that
<code>tableRel</code> is cheaper to evaluate and therefore if the query being
optimized uses (or can be rewritten to use) <code>queryRel</code> as a
sub-expression then it can be optimized by using <code>tableRel</code>
instead.</p></div>
<dl>
<dt><span class="overrideSpecifyLabel">指定者:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#addMaterialization-org.apache.calcite.plan.RelOptMaterialization-">addMaterialization</a></code>&nbsp;在接口中&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="org.apache.calcite.plan中的接口">RelOptPlanner</a></code></dd>
</dl>
</li>
</ul>
<a name="getMaterializations--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMaterializations</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/plan/RelOptMaterialization.html" title="org.apache.calcite.plan中的类">RelOptMaterialization</a>&gt;&nbsp;getMaterializations()</pre>
<div class="block"><span class="descfrmTypeLabel">从接口复制的说明:&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#getMaterializations--">RelOptPlanner</a></code></span></div>
<div class="block">Returns the materializations that have been registered with the planner.</div>
<dl>
<dt><span class="overrideSpecifyLabel">指定者:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#getMaterializations--">getMaterializations</a></code>&nbsp;在接口中&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="org.apache.calcite.plan中的接口">RelOptPlanner</a></code></dd>
</dl>
</li>
</ul>
<a name="addLattice-org.apache.calcite.plan.RelOptLattice-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addLattice</h4>
<pre>public&nbsp;void&nbsp;addLattice(<a href="../../../../org/apache/calcite/plan/RelOptLattice.html" title="org.apache.calcite.plan中的类">RelOptLattice</a>&nbsp;lattice)</pre>
<div class="block"><span class="descfrmTypeLabel">从接口复制的说明:&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#addLattice-org.apache.calcite.plan.RelOptLattice-">RelOptPlanner</a></code></span></div>
<div class="block">Defines a lattice.
<p>The lattice may have materializations; it is not necessary to call
<a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#addMaterialization-org.apache.calcite.plan.RelOptMaterialization-"><code>RelOptPlanner.addMaterialization(org.apache.calcite.plan.RelOptMaterialization)</code></a> for these; they are registered implicitly.</div>
<dl>
<dt><span class="overrideSpecifyLabel">指定者:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#addLattice-org.apache.calcite.plan.RelOptLattice-">addLattice</a></code>&nbsp;在接口中&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="org.apache.calcite.plan中的接口">RelOptPlanner</a></code></dd>
</dl>
</li>
</ul>
<a name="getLattice-org.apache.calcite.plan.RelOptTable-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLattice</h4>
<pre>public&nbsp;<a href="../../../../org/apache/calcite/plan/RelOptLattice.html" title="org.apache.calcite.plan中的类">RelOptLattice</a>&nbsp;getLattice(<a href="../../../../org/apache/calcite/plan/RelOptTable.html" title="org.apache.calcite.plan中的接口">RelOptTable</a>&nbsp;table)</pre>
<div class="block"><span class="descfrmTypeLabel">从接口复制的说明:&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#getLattice-org.apache.calcite.plan.RelOptTable-">RelOptPlanner</a></code></span></div>
<div class="block">Retrieves a lattice, given its star table.</div>
<dl>
<dt><span class="overrideSpecifyLabel">指定者:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#getLattice-org.apache.calcite.plan.RelOptTable-">getLattice</a></code>&nbsp;在接口中&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="org.apache.calcite.plan中的接口">RelOptPlanner</a></code></dd>
</dl>
</li>
</ul>
<a name="registerSchema-org.apache.calcite.plan.RelOptSchema-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerSchema</h4>
<pre>public&nbsp;void&nbsp;registerSchema(<a href="../../../../org/apache/calcite/plan/RelOptSchema.html" title="org.apache.calcite.plan中的接口">RelOptSchema</a>&nbsp;schema)</pre>
<div class="block"><span class="descfrmTypeLabel">从接口复制的说明:&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#registerSchema-org.apache.calcite.plan.RelOptSchema-">RelOptPlanner</a></code></span></div>
<div class="block">Tells this planner that a schema exists. This is the schema's chance to
tell the planner about all of the special transformation rules.</div>
<dl>
<dt><span class="overrideSpecifyLabel">指定者:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#registerSchema-org.apache.calcite.plan.RelOptSchema-">registerSchema</a></code>&nbsp;在接口中&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="org.apache.calcite.plan中的接口">RelOptPlanner</a></code></dd>
</dl>
</li>
</ul>
<a name="getRelMetadataTimestamp-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRelMetadataTimestamp</h4>
<pre>public&nbsp;long&nbsp;getRelMetadataTimestamp(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</pre>
<div class="block"><span class="descfrmTypeLabel">从接口复制的说明:&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#getRelMetadataTimestamp-org.apache.calcite.rel.RelNode-">RelOptPlanner</a></code></span></div>
<div class="block">Gets a timestamp for a given rel's metadata. This timestamp is used by
<a href="../../../../org/apache/calcite/rel/metadata/CachingRelMetadataProvider.html" title="org.apache.calcite.rel.metadata中的类"><code>CachingRelMetadataProvider</code></a> to decide whether cached metadata has
gone stale.</div>
<dl>
<dt><span class="overrideSpecifyLabel">指定者:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#getRelMetadataTimestamp-org.apache.calcite.rel.RelNode-">getRelMetadataTimestamp</a></code>&nbsp;在接口中&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="org.apache.calcite.plan中的接口">RelOptPlanner</a></code></dd>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rel</code> - rel of interest</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>timestamp of last change which might affect metadata derivation</dd>
</dl>
</li>
</ul>
<a name="setImportance-org.apache.calcite.rel.RelNode-double-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setImportance</h4>
<pre>public&nbsp;void&nbsp;setImportance(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel,
double&nbsp;importance)</pre>
<div class="block"><span class="descfrmTypeLabel">从接口复制的说明:&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#setImportance-org.apache.calcite.rel.RelNode-double-">RelOptPlanner</a></code></span></div>
<div class="block">Sets the importance of a relational expression.
<p>An important use of this method is when a <a href="../../../../org/apache/calcite/plan/RelOptRule.html" title="org.apache.calcite.plan中的类"><code>RelOptRule</code></a> has
created a relational expression which is indisputably better than the
original relational expression. The rule set the original relational
expression's importance to zero, to reduce the search space. Pending rule
calls are cancelled, and future rules will not fire.</div>
<dl>
<dt><span class="overrideSpecifyLabel">指定者:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#setImportance-org.apache.calcite.rel.RelNode-double-">setImportance</a></code>&nbsp;在接口中&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="org.apache.calcite.plan中的接口">RelOptPlanner</a></code></dd>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rel</code> - Relational expression</dd>
<dd><code>importance</code> - Importance</dd>
</dl>
</li>
</ul>
<a name="registerClass-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerClass</h4>
<pre>public&nbsp;void&nbsp;registerClass(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;node)</pre>
<div class="block"><span class="descfrmTypeLabel">从接口复制的说明:&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#registerClass-org.apache.calcite.rel.RelNode-">RelOptPlanner</a></code></span></div>
<div class="block">Registers a class of RelNode. If this class of RelNode has been seen
before, does nothing.</div>
<dl>
<dt><span class="overrideSpecifyLabel">指定者:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#registerClass-org.apache.calcite.rel.RelNode-">registerClass</a></code>&nbsp;在接口中&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="org.apache.calcite.plan中的接口">RelOptPlanner</a></code></dd>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>node</code> - Relational expression</dd>
</dl>
</li>
</ul>
<a name="onNewClass-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onNewClass</h4>
<pre>protected&nbsp;void&nbsp;onNewClass(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;node)</pre>
<div class="block">Called when a new class of <a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口"><code>RelNode</code></a> is seen.</div>
</li>
</ul>
<a name="emptyTraitSet--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>emptyTraitSet</h4>
<pre>public&nbsp;<a href="../../../../org/apache/calcite/plan/RelTraitSet.html" title="org.apache.calcite.plan中的类">RelTraitSet</a>&nbsp;emptyTraitSet()</pre>
<div class="block"><span class="descfrmTypeLabel">从接口复制的说明:&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#emptyTraitSet--">RelOptPlanner</a></code></span></div>
<div class="block">Creates an empty trait set. It contains all registered traits, and the
default values of any traits that have them.
<p>The empty trait set acts as the prototype (a kind of factory) for all
subsequently created trait sets.</p></div>
<dl>
<dt><span class="overrideSpecifyLabel">指定者:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#emptyTraitSet--">emptyTraitSet</a></code>&nbsp;在接口中&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="org.apache.calcite.plan中的接口">RelOptPlanner</a></code></dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>Empty trait set</dd>
</dl>
</li>
</ul>
<a name="getCost-org.apache.calcite.rel.RelNode-org.apache.calcite.rel.metadata.RelMetadataQuery-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCost</h4>
<pre>public&nbsp;<a href="../../../../org/apache/calcite/plan/RelOptCost.html" title="org.apache.calcite.plan中的接口">RelOptCost</a>&nbsp;getCost(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel,
<a href="../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html" title="org.apache.calcite.rel.metadata中的类">RelMetadataQuery</a>&nbsp;mq)</pre>
<div class="block"><span class="descfrmTypeLabel">从接口复制的说明:&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#getCost-org.apache.calcite.rel.RelNode-org.apache.calcite.rel.metadata.RelMetadataQuery-">RelOptPlanner</a></code></span></div>
<div class="block">Computes the cost of a RelNode. In most cases, this just dispatches to
<a href="../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#getCumulativeCost-org.apache.calcite.rel.RelNode-"><code>RelMetadataQuery.getCumulativeCost(org.apache.calcite.rel.RelNode)</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">指定者:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#getCost-org.apache.calcite.rel.RelNode-org.apache.calcite.rel.metadata.RelMetadataQuery-">getCost</a></code>&nbsp;在接口中&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="org.apache.calcite.plan中的接口">RelOptPlanner</a></code></dd>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rel</code> - Relational expression of interest</dd>
<dd><code>mq</code> - Metadata query</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>estimated cost</dd>
</dl>
</li>
</ul>
<a name="getCost-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCost</h4>
<pre>public&nbsp;<a href="../../../../org/apache/calcite/plan/RelOptCost.html" title="org.apache.calcite.plan中的接口">RelOptCost</a>&nbsp;getCost(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">指定者:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#getCost-org.apache.calcite.rel.RelNode-">getCost</a></code>&nbsp;在接口中&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="org.apache.calcite.plan中的接口">RelOptPlanner</a></code></dd>
</dl>
</li>
</ul>
<a name="addListener-org.apache.calcite.plan.RelOptListener-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addListener</h4>
<pre>public&nbsp;void&nbsp;addListener(<a href="../../../../org/apache/calcite/plan/RelOptListener.html" title="org.apache.calcite.plan中的接口">RelOptListener</a>&nbsp;newListener)</pre>
<div class="block"><span class="descfrmTypeLabel">从接口复制的说明:&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#addListener-org.apache.calcite.plan.RelOptListener-">RelOptPlanner</a></code></span></div>
<div class="block">Adds a listener to this planner.</div>
<dl>
<dt><span class="overrideSpecifyLabel">指定者:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#addListener-org.apache.calcite.plan.RelOptListener-">addListener</a></code>&nbsp;在接口中&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="org.apache.calcite.plan中的接口">RelOptPlanner</a></code></dd>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>newListener</code> - new listener to be notified of events</dd>
</dl>
</li>
</ul>
<a name="registerMetadataProviders-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerMetadataProviders</h4>
<pre>public&nbsp;void&nbsp;registerMetadataProviders(<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/metadata/RelMetadataProvider.html" title="org.apache.calcite.rel.metadata中的接口">RelMetadataProvider</a>&gt;&nbsp;list)</pre>
<div class="block"><span class="descfrmTypeLabel">从接口复制的说明:&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#registerMetadataProviders-java.util.List-">RelOptPlanner</a></code></span></div>
<div class="block">Gives this planner a chance to register one or more
<a href="../../../../org/apache/calcite/rel/metadata/RelMetadataProvider.html" title="org.apache.calcite.rel.metadata中的接口"><code>RelMetadataProvider</code></a>s in the chain which will be used to answer
metadata queries.
<p>Planners which use their own relational expressions internally
to represent concepts such as equivalence classes will generally need to
supply corresponding metadata providers.</p></div>
<dl>
<dt><span class="overrideSpecifyLabel">指定者:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#registerMetadataProviders-java.util.List-">registerMetadataProviders</a></code>&nbsp;在接口中&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="org.apache.calcite.plan中的接口">RelOptPlanner</a></code></dd>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>list</code> - receives planner's custom providers, if any</dd>
</dl>
</li>
</ul>
<a name="addRelTraitDef-org.apache.calcite.plan.RelTraitDef-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addRelTraitDef</h4>
<pre>public&nbsp;boolean&nbsp;addRelTraitDef(<a href="../../../../org/apache/calcite/plan/RelTraitDef.html" title="org.apache.calcite.plan中的类">RelTraitDef</a>&nbsp;relTraitDef)</pre>
<div class="block"><span class="descfrmTypeLabel">从接口复制的说明:&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#addRelTraitDef-org.apache.calcite.plan.RelTraitDef-">RelOptPlanner</a></code></span></div>
<div class="block">Registers a rel trait definition. If the <a href="../../../../org/apache/calcite/plan/RelTraitDef.html" title="org.apache.calcite.plan中的类"><code>RelTraitDef</code></a> has already
been registered, does nothing.</div>
<dl>
<dt><span class="overrideSpecifyLabel">指定者:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#addRelTraitDef-org.apache.calcite.plan.RelTraitDef-">addRelTraitDef</a></code>&nbsp;在接口中&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="org.apache.calcite.plan中的接口">RelOptPlanner</a></code></dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>whether the RelTraitDef was added, as per
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true#add-E-" title="java.util中的类或接口"><code>Collection.add(E)</code></a></dd>
</dl>
</li>
</ul>
<a name="clearRelTraitDefs--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clearRelTraitDefs</h4>
<pre>public&nbsp;void&nbsp;clearRelTraitDefs()</pre>
<div class="block"><span class="descfrmTypeLabel">从接口复制的说明:&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#clearRelTraitDefs--">RelOptPlanner</a></code></span></div>
<div class="block">Clear all the registered RelTraitDef.</div>
<dl>
<dt><span class="overrideSpecifyLabel">指定者:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#clearRelTraitDefs--">clearRelTraitDefs</a></code>&nbsp;在接口中&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="org.apache.calcite.plan中的接口">RelOptPlanner</a></code></dd>
</dl>
</li>
</ul>
<a name="getRelTraitDefs--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRelTraitDefs</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../org/apache/calcite/plan/RelTraitDef.html" title="org.apache.calcite.plan中的类">RelTraitDef</a>&gt;&nbsp;getRelTraitDefs()</pre>
<div class="block"><span class="descfrmTypeLabel">从接口复制的说明:&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#getRelTraitDefs--">RelOptPlanner</a></code></span></div>
<div class="block">Returns the list of active trait types.</div>
<dl>
<dt><span class="overrideSpecifyLabel">指定者:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#getRelTraitDefs--">getRelTraitDefs</a></code>&nbsp;在接口中&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="org.apache.calcite.plan中的接口">RelOptPlanner</a></code></dd>
</dl>
</li>
</ul>
<a name="setExecutor-org.apache.calcite.rex.RexExecutor-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setExecutor</h4>
<pre>public&nbsp;void&nbsp;setExecutor(<a href="../../../../org/apache/calcite/rex/RexExecutor.html" title="org.apache.calcite.rex中的接口">RexExecutor</a>&nbsp;executor)</pre>
<div class="block"><span class="descfrmTypeLabel">从接口复制的说明:&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#setExecutor-org.apache.calcite.rex.RexExecutor-">RelOptPlanner</a></code></span></div>
<div class="block">Sets the object that can execute scalar expressions.</div>
<dl>
<dt><span class="overrideSpecifyLabel">指定者:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#setExecutor-org.apache.calcite.rex.RexExecutor-">setExecutor</a></code>&nbsp;在接口中&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="org.apache.calcite.plan中的接口">RelOptPlanner</a></code></dd>
</dl>
</li>
</ul>
<a name="getExecutor--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getExecutor</h4>
<pre>public&nbsp;<a href="../../../../org/apache/calcite/rex/RexExecutor.html" title="org.apache.calcite.rex中的接口">RexExecutor</a>&nbsp;getExecutor()</pre>
<div class="block"><span class="descfrmTypeLabel">从接口复制的说明:&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#getExecutor--">RelOptPlanner</a></code></span></div>
<div class="block">Returns the executor used to evaluate constant expressions.</div>
<dl>
<dt><span class="overrideSpecifyLabel">指定者:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#getExecutor--">getExecutor</a></code>&nbsp;在接口中&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="org.apache.calcite.plan中的接口">RelOptPlanner</a></code></dd>
</dl>
</li>
</ul>
<a name="onCopy-org.apache.calcite.rel.RelNode-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onCopy</h4>
<pre>public&nbsp;void&nbsp;onCopy(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;newRel)</pre>
<div class="block"><span class="descfrmTypeLabel">从接口复制的说明:&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#onCopy-org.apache.calcite.rel.RelNode-org.apache.calcite.rel.RelNode-">RelOptPlanner</a></code></span></div>
<div class="block">Called when a relational expression is copied to a similar expression.</div>
<dl>
<dt><span class="overrideSpecifyLabel">指定者:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#onCopy-org.apache.calcite.rel.RelNode-org.apache.calcite.rel.RelNode-">onCopy</a></code>&nbsp;在接口中&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="org.apache.calcite.plan中的接口">RelOptPlanner</a></code></dd>
</dl>
</li>
</ul>
<a name="fireRule-org.apache.calcite.plan.RelOptRuleCall-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>fireRule</h4>
<pre>protected&nbsp;void&nbsp;fireRule(<a href="../../../../org/apache/calcite/plan/RelOptRuleCall.html" title="org.apache.calcite.plan中的类">RelOptRuleCall</a>&nbsp;ruleCall)</pre>
<div class="block">Fires a rule, taking care of tracing and listener notification.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>ruleCall</code> - description of rule call</dd>
</dl>
</li>
</ul>
<a name="notifyTransformation-org.apache.calcite.plan.RelOptRuleCall-org.apache.calcite.rel.RelNode-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>notifyTransformation</h4>
<pre>protected&nbsp;void&nbsp;notifyTransformation(<a href="../../../../org/apache/calcite/plan/RelOptRuleCall.html" title="org.apache.calcite.plan中的类">RelOptRuleCall</a>&nbsp;ruleCall,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;newRel,
boolean&nbsp;before)</pre>
<div class="block">Takes care of tracing and listener notification when a rule's
transformation is applied.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>ruleCall</code> - description of rule call</dd>
<dd><code>newRel</code> - result of transformation</dd>
<dd><code>before</code> - true before registration of new rel; false after</dd>
</dl>
</li>
</ul>
<a name="notifyChosen-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>notifyChosen</h4>
<pre>protected&nbsp;void&nbsp;notifyChosen(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</pre>
<div class="block">Takes care of tracing and listener notification when a rel is chosen as
part of the final plan.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rel</code> - chosen rel</dd>
</dl>
</li>
</ul>
<a name="notifyEquivalence-org.apache.calcite.rel.RelNode-java.lang.Object-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>notifyEquivalence</h4>
<pre>protected&nbsp;void&nbsp;notifyEquivalence(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="java.lang中的类或接口">Object</a>&nbsp;equivalenceClass,
boolean&nbsp;physical)</pre>
<div class="block">Takes care of tracing and listener notification when a rel equivalence is
detected.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rel</code> - chosen rel</dd>
</dl>
</li>
</ul>
<a name="notifyDiscard-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>notifyDiscard</h4>
<pre>protected&nbsp;void&nbsp;notifyDiscard(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</pre>
<div class="block">Takes care of tracing and listener notification when a rel is discarded</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rel</code> - discarded rel</dd>
</dl>
</li>
</ul>
<a name="getListener--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getListener</h4>
<pre>protected&nbsp;<a href="../../../../org/apache/calcite/plan/MulticastRelOptListener.html" title="org.apache.calcite.plan中的类">MulticastRelOptListener</a>&nbsp;getListener()</pre>
</li>
</ul>
<a name="subClasses-java.lang.Class-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>subClasses</h4>
<pre>public&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="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="java.lang中的类或接口">Class</a>&lt;? extends <a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&gt;&gt;&nbsp;subClasses(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="java.lang中的类或接口">Class</a>&lt;? extends <a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&gt;&nbsp;clazz)</pre>
<div class="block">Returns sub-classes of relational expression.</div>
</li>
</ul>
<a name="key-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>key</h4>
<pre>protected static&nbsp;<a href="../../../../org/apache/calcite/util/Pair.html" title="org.apache.calcite.util中的类">Pair</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>,<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;&gt;&nbsp;key(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</pre>
<div class="block">Computes the key for relational expression digest cache.</div>
</li>
</ul>
<a name="key-java.lang.String-org.apache.calcite.rel.type.RelDataType-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>key</h4>
<pre>protected static&nbsp;<a href="../../../../org/apache/calcite/util/Pair.html" title="org.apache.calcite.util中的类">Pair</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>,<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;&gt;&nbsp;key(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="java.lang中的类或接口">String</a>&nbsp;digest,
<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="org.apache.calcite.rel.type中的接口">RelDataType</a>&nbsp;relType)</pre>
<div class="block">Computes the key for relational expression digest cache.</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>上一个类</li>
<li><a href="../../../../org/apache/calcite/plan/CommonRelSubExprRule.html" title="org.apache.calcite.plan中的类"><span class="typeNameLink">下一个类</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/calcite/plan/AbstractRelOptPlanner.html" target="_top">框架</a></li>
<li><a href="AbstractRelOptPlanner.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>