blob: c42d36587c41c2eadf2b95f0e4467b5a3a80831b [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<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","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><b>Apache Calcite</b></div>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../../../org/apache/calcite/plan/CommonRelSubExprRule.html" title="class in org.apache.calcite.plan"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/calcite/plan/AbstractRelOptPlanner.html" target="_top">Frames</a></li>
<li><a href="AbstractRelOptPlanner.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</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>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a 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="Class AbstractRelOptPlanner" class="title">Class 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="class or interface in 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>All Implemented Interfaces:</dt>
<dd><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="interface in org.apache.calcite.plan">RelOptPlanner</a></dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><a href="../../../../org/apache/calcite/plan/hep/HepPlanner.html" title="class in org.apache.calcite.plan.hep">HepPlanner</a>, <a href="../../../../org/apache/calcite/plan/volcano/VolcanoPlanner.html" title="class in 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="class or interface in java.lang">Object</a>
implements <a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="interface in 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="interface in 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>Nested Class Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.calcite.plan.RelOptPlanner">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.calcite.plan.<a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="interface in org.apache.calcite.plan">RelOptPlanner</a></h3>
<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.CannotPlanException.html" title="class in org.apache.calcite.plan">RelOptPlanner.CannotPlanException</a>, <a href="../../../../org/apache/calcite/plan/RelOptPlanner.Executor.html" title="interface in 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>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="../../../../org/apache/calcite/plan/Context.html" title="interface in 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="interface in 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>Fields inherited from interface&nbsp;org.apache.calcite.plan.<a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="interface in 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>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier</th>
<th class="colLast" scope="col">Constructor and Description</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="interface in org.apache.calcite.plan">RelOptCostFactory</a>&nbsp;costFactory,
<a href="../../../../org/apache/calcite/plan/Context.html" title="interface in 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>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</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="class in 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="interface in 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="class in 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="class in 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="interface in 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="class in 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="class in 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="interface in 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="interface in 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="interface in 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="interface in 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="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel,
<a href="../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html" title="class in 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="interface in 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="interface in 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="interface in 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="class in 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="interface in 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="class in 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="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/calcite/plan/RelOptMaterialization.html" title="class in 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="interface in 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="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/calcite/plan/RelTraitDef.html" title="class in 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="class in 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="class or interface in 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="class in 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="class in 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="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in 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="interface in 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="class in 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="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in 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="class or interface in java.lang">String</a>&nbsp;digest,
<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in 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="class in 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="interface in 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="interface in 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="interface in 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="class or interface in 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="class in org.apache.calcite.plan">RelOptRuleCall</a>&nbsp;ruleCall,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in 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="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in 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="interface in 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="interface in 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="interface in 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="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/calcite/rel/metadata/RelMetadataProvider.html" title="interface in 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="interface in 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="interface in 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="class in 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="interface in 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="interface in 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="class or interface in 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="class or interface in java.lang">Iterable</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in 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="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in 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="class in 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>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in 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="class or interface in 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="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in 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="class or interface in 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>Methods inherited from interface&nbsp;org.apache.calcite.plan.<a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="interface in 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>Field Detail</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="interface in 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="interface in 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>Constructor Detail</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="interface in org.apache.calcite.plan">RelOptCostFactory</a>&nbsp;costFactory,
<a href="../../../../org/apache/calcite/plan/Context.html" title="interface in 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>Method Detail</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">Description copied from interface:&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">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#clear--">clear</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="interface in 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="interface in org.apache.calcite.plan">Context</a>&nbsp;getContext()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&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">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#getContext--">getContext</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="interface in org.apache.calcite.plan">RelOptPlanner</a></code></dd>
<dt><span class="returnLabel">Returns:</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="interface in org.apache.calcite.plan">RelOptCostFactory</a>&nbsp;getCostFactory()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&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="interface in org.apache.calcite.plan"><code>RelOptCost</code></a>s.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#getCostFactory--">getCostFactory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="interface in 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="class in org.apache.calcite.util">CancelFlag</a>&nbsp;cancelFlag)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&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">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#setCancelFlag-org.apache.calcite.util.CancelFlag-">setCancelFlag</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="interface in org.apache.calcite.plan">RelOptPlanner</a></code></dd>
<dt><span class="paramLabel">Parameters:</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="class in org.apache.calcite.plan">RelOptRule</a>&nbsp;rule)</pre>
<div class="block">Registers a rule's description.</div>
<dl>
<dt><span class="paramLabel">Parameters:</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="class in 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">Parameters:</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="class in 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="class or interface in java.lang">String</a>&nbsp;description)</pre>
<div class="block">Returns the rule with a given description</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>description</code> - Description</dd>
<dt><span class="returnLabel">Returns:</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="class or interface in java.util.regex">Pattern</a>&nbsp;exclusionFilter)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&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">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#setRuleDescExclusionFilter-java.util.regex.Pattern-">setRuleDescExclusionFilter</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="interface in org.apache.calcite.plan">RelOptPlanner</a></code></dd>
<dt><span class="paramLabel">Parameters:</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="class in 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">Parameters:</span></dt>
<dd><code>rule</code> - rule to test</dd>
<dt><span class="returnLabel">Returns:</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="interface in org.apache.calcite.plan">RelOptPlanner</a>&nbsp;chooseDelegate()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&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">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#chooseDelegate--">chooseDelegate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="interface in 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="class in org.apache.calcite.plan">RelOptMaterialization</a>&nbsp;materialization)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&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="class in 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">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#addMaterialization-org.apache.calcite.plan.RelOptMaterialization-">addMaterialization</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="interface in 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="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/calcite/plan/RelOptMaterialization.html" title="class in org.apache.calcite.plan">RelOptMaterialization</a>&gt;&nbsp;getMaterializations()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&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">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#getMaterializations--">getMaterializations</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="interface in 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="class in org.apache.calcite.plan">RelOptLattice</a>&nbsp;lattice)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&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">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#addLattice-org.apache.calcite.plan.RelOptLattice-">addLattice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="interface in 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="class in org.apache.calcite.plan">RelOptLattice</a>&nbsp;getLattice(<a href="../../../../org/apache/calcite/plan/RelOptTable.html" title="interface in org.apache.calcite.plan">RelOptTable</a>&nbsp;table)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&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">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#getLattice-org.apache.calcite.plan.RelOptTable-">getLattice</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="interface in 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="interface in org.apache.calcite.plan">RelOptSchema</a>&nbsp;schema)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&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">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#registerSchema-org.apache.calcite.plan.RelOptSchema-">registerSchema</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="interface in 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="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&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="class in org.apache.calcite.rel.metadata"><code>CachingRelMetadataProvider</code></a> to decide whether cached metadata has
gone stale.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#getRelMetadataTimestamp-org.apache.calcite.rel.RelNode-">getRelMetadataTimestamp</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="interface in org.apache.calcite.plan">RelOptPlanner</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>rel</code> - rel of interest</dd>
<dt><span class="returnLabel">Returns:</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="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel,
double&nbsp;importance)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&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="class in 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">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#setImportance-org.apache.calcite.rel.RelNode-double-">setImportance</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="interface in org.apache.calcite.plan">RelOptPlanner</a></code></dd>
<dt><span class="paramLabel">Parameters:</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="interface in org.apache.calcite.rel">RelNode</a>&nbsp;node)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&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">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#registerClass-org.apache.calcite.rel.RelNode-">registerClass</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="interface in org.apache.calcite.plan">RelOptPlanner</a></code></dd>
<dt><span class="paramLabel">Parameters:</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="interface in 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="interface in 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="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;emptyTraitSet()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&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">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#emptyTraitSet--">emptyTraitSet</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="interface in org.apache.calcite.plan">RelOptPlanner</a></code></dd>
<dt><span class="returnLabel">Returns:</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="interface in org.apache.calcite.plan">RelOptCost</a>&nbsp;getCost(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel,
<a href="../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&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">Specified by:</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;in interface&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="interface in org.apache.calcite.plan">RelOptPlanner</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>rel</code> - Relational expression of interest</dd>
<dd><code>mq</code> - Metadata query</dd>
<dt><span class="returnLabel">Returns:</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="interface in org.apache.calcite.plan">RelOptCost</a>&nbsp;getCost(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#getCost-org.apache.calcite.rel.RelNode-">getCost</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="interface in 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="interface in org.apache.calcite.plan">RelOptListener</a>&nbsp;newListener)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&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">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#addListener-org.apache.calcite.plan.RelOptListener-">addListener</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="interface in org.apache.calcite.plan">RelOptPlanner</a></code></dd>
<dt><span class="paramLabel">Parameters:</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="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/calcite/rel/metadata/RelMetadataProvider.html" title="interface in org.apache.calcite.rel.metadata">RelMetadataProvider</a>&gt;&nbsp;list)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&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="interface in 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">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#registerMetadataProviders-java.util.List-">registerMetadataProviders</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="interface in org.apache.calcite.plan">RelOptPlanner</a></code></dd>
<dt><span class="paramLabel">Parameters:</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="class in org.apache.calcite.plan">RelTraitDef</a>&nbsp;relTraitDef)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&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="class in org.apache.calcite.plan"><code>RelTraitDef</code></a> has already
been registered, does nothing.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#addRelTraitDef-org.apache.calcite.plan.RelTraitDef-">addRelTraitDef</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="interface in org.apache.calcite.plan">RelOptPlanner</a></code></dd>
<dt><span class="returnLabel">Returns:</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="class or interface in 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">Description copied from interface:&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">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#clearRelTraitDefs--">clearRelTraitDefs</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="interface in 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="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/calcite/plan/RelTraitDef.html" title="class in org.apache.calcite.plan">RelTraitDef</a>&gt;&nbsp;getRelTraitDefs()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&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">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#getRelTraitDefs--">getRelTraitDefs</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="interface in 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="interface in org.apache.calcite.rex">RexExecutor</a>&nbsp;executor)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&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">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#setExecutor-org.apache.calcite.rex.RexExecutor-">setExecutor</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="interface in 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="interface in org.apache.calcite.rex">RexExecutor</a>&nbsp;getExecutor()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&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">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#getExecutor--">getExecutor</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="interface in 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="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;newRel)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&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">Specified by:</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;in interface&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="interface in 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="class in 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">Parameters:</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="class in org.apache.calcite.plan">RelOptRuleCall</a>&nbsp;ruleCall,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in 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">Parameters:</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="interface in 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">Parameters:</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="interface in 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="class or interface in 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">Parameters:</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="interface in 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">Parameters:</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="class in 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="class or interface in java.lang">Iterable</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in 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="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in 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="class in 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="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&gt;&nbsp;key(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in 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="class in 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="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in 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="class or interface in java.lang">String</a>&nbsp;digest,
<a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in 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="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><b>Apache Calcite</b></div>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../../../org/apache/calcite/plan/CommonRelSubExprRule.html" title="class in org.apache.calcite.plan"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/calcite/plan/AbstractRelOptPlanner.html" target="_top">Frames</a></li>
<li><a href="AbstractRelOptPlanner.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</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>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a 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>