blob: d77a55bf57001efea87f6a6a29e7b55b04b4abe5 [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>RelOptListener (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="RelOptListener (Apache Calcite calcite API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6};
var tabs = {65535:["t0","所有方法"],2:["t2","实例方法"],4:["t3","抽象方法"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>您的浏览器已禁用 JavaScript。</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="跳过导航链接">跳过导航链接</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="导航">
<li><a href="../../../../overview-summary.html">概览</a></li>
<li><a href="package-summary.html">程序包</a></li>
<li class="navBarCell1Rev"></li>
<li><a href="package-tree.html"></a></li>
<li><a href="../../../../deprecated-list.html">已过时</a></li>
<li><a href="../../../../index-all.html">索引</a></li>
<li><a href="../../../../help-doc.html">帮助</a></li>
</ul>
<div class="aboutLanguage"><b>Apache Calcite</b></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/calcite/plan/RelOptLattice.html" title="org.apache.calcite.plan中的类"><span class="typeNameLink">上一个类</span></a></li>
<li><a href="../../../../org/apache/calcite/plan/RelOptListener.RelChosenEvent.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/RelOptListener.html" target="_top">框架</a></li>
<li><a href="RelOptListener.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>概要:&nbsp;</li>
<li><a href="#nested.class.summary">嵌套</a>&nbsp;|&nbsp;</li>
<li>字段&nbsp;|&nbsp;</li>
<li>构造器&nbsp;|&nbsp;</li>
<li><a href="#method.summary">方法</a></li>
</ul>
<ul class="subNavList">
<li>详细资料:&nbsp;</li>
<li>字段&nbsp;|&nbsp;</li>
<li>构造器&nbsp;|&nbsp;</li>
<li><a href="#method.detail">方法</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.calcite.plan</div>
<h2 title="接口 RelOptListener" class="title">接口 RelOptListener</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>所有超级接口:</dt>
<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/util/EventListener.html?is-external=true" title="java.util中的类或接口">EventListener</a></dd>
</dl>
<dl>
<dt>所有已知实现类:</dt>
<dd><a href="../../../../org/apache/calcite/plan/MulticastRelOptListener.html" title="org.apache.calcite.plan中的类">MulticastRelOptListener</a></dd>
</dl>
<hr>
<br>
<pre>public interface <span class="typeNameLabel">RelOptListener</span>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/util/EventListener.html?is-external=true" title="java.util中的类或接口">EventListener</a></pre>
<div class="block">RelOptListener defines an interface for listening to events which occur
during the optimization process.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- -->
</a>
<h3>嵌套类概要</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="嵌套类概要表, 列表嵌套类和解释">
<caption><span>嵌套类</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">限定符和类型</th>
<th class="colLast" scope="col">接口和说明</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptListener.RelChosenEvent.html" title="org.apache.calcite.plan中的类">RelOptListener.RelChosenEvent</a></span></code>
<div class="block">Event indicating that a relational expression has been chosen.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptListener.RelDiscardedEvent.html" title="org.apache.calcite.plan中的类">RelOptListener.RelDiscardedEvent</a></span></code>
<div class="block">Event indicating that a relational expression has been discarded.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptListener.RelEquivalenceEvent.html" title="org.apache.calcite.plan中的类">RelOptListener.RelEquivalenceEvent</a></span></code>
<div class="block">Event indicating that a relational expression has been found to
be equivalent to an equivalence class.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptListener.RelEvent.html" title="org.apache.calcite.plan中的类">RelOptListener.RelEvent</a></span></code>
<div class="block">Event class for abstract event dealing with a relational expression.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptListener.RuleAttemptedEvent.html" title="org.apache.calcite.plan中的类">RelOptListener.RuleAttemptedEvent</a></span></code>
<div class="block">Event indicating that a planner rule has been attempted.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptListener.RuleEvent.html" title="org.apache.calcite.plan中的类">RelOptListener.RuleEvent</a></span></code>
<div class="block">Event indicating that a planner rule has fired.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptListener.RuleProductionEvent.html" title="org.apache.calcite.plan中的类">RelOptListener.RuleProductionEvent</a></span></code>
<div class="block">Event indicating that a planner rule has produced a result.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>方法概要</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="方法概要表, 列表方法和解释">
<caption><span id="t0" class="activeTableTab"><span>所有方法</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">实例方法</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">抽象方法</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/RelOptListener.html#relChosen-org.apache.calcite.plan.RelOptListener.RelChosenEvent-">relChosen</a></span>(<a href="../../../../org/apache/calcite/plan/RelOptListener.RelChosenEvent.html" title="org.apache.calcite.plan中的类">RelOptListener.RelChosenEvent</a>&nbsp;event)</code>
<div class="block">Notifies this listener that a relational expression has been chosen as
part of the final implementation of the query plan.</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/RelOptListener.html#relDiscarded-org.apache.calcite.plan.RelOptListener.RelDiscardedEvent-">relDiscarded</a></span>(<a href="../../../../org/apache/calcite/plan/RelOptListener.RelDiscardedEvent.html" title="org.apache.calcite.plan中的类">RelOptListener.RelDiscardedEvent</a>&nbsp;event)</code>
<div class="block">Notifies this listener that a relational expression is no longer of
interest to the 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/RelOptListener.html#relEquivalenceFound-org.apache.calcite.plan.RelOptListener.RelEquivalenceEvent-">relEquivalenceFound</a></span>(<a href="../../../../org/apache/calcite/plan/RelOptListener.RelEquivalenceEvent.html" title="org.apache.calcite.plan中的类">RelOptListener.RelEquivalenceEvent</a>&nbsp;event)</code>
<div class="block">Notifies this listener that a relational expression has been registered
with a particular equivalence class after an equivalence has been either
detected or asserted.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/plan/RelOptListener.html#ruleAttempted-org.apache.calcite.plan.RelOptListener.RuleAttemptedEvent-">ruleAttempted</a></span>(<a href="../../../../org/apache/calcite/plan/RelOptListener.RuleAttemptedEvent.html" title="org.apache.calcite.plan中的类">RelOptListener.RuleAttemptedEvent</a>&nbsp;event)</code>
<div class="block">Notifies this listener that an optimizer rule is being applied to a
particular relational expression.</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/RelOptListener.html#ruleProductionSucceeded-org.apache.calcite.plan.RelOptListener.RuleProductionEvent-">ruleProductionSucceeded</a></span>(<a href="../../../../org/apache/calcite/plan/RelOptListener.RuleProductionEvent.html" title="org.apache.calcite.plan中的类">RelOptListener.RuleProductionEvent</a>&nbsp;event)</code>
<div class="block">Notifies this listener that an optimizer rule has been successfully
applied to a particular relational expression, resulting in a new
equivalent expression (relEquivalenceFound will also be called unless the
new expression is identical to an existing one).</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>方法详细资料</h3>
<a name="relEquivalenceFound-org.apache.calcite.plan.RelOptListener.RelEquivalenceEvent-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>relEquivalenceFound</h4>
<pre>void&nbsp;relEquivalenceFound(<a href="../../../../org/apache/calcite/plan/RelOptListener.RelEquivalenceEvent.html" title="org.apache.calcite.plan中的类">RelOptListener.RelEquivalenceEvent</a>&nbsp;event)</pre>
<div class="block">Notifies this listener that a relational expression has been registered
with a particular equivalence class after an equivalence has been either
detected or asserted. Equivalence classes may be either logical (all
expressions which yield the same result set) or physical (all expressions
which yield the same result set with a particular calling convention).</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>event</code> - details about the event</dd>
</dl>
</li>
</ul>
<a name="ruleAttempted-org.apache.calcite.plan.RelOptListener.RuleAttemptedEvent-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ruleAttempted</h4>
<pre>void&nbsp;ruleAttempted(<a href="../../../../org/apache/calcite/plan/RelOptListener.RuleAttemptedEvent.html" title="org.apache.calcite.plan中的类">RelOptListener.RuleAttemptedEvent</a>&nbsp;event)</pre>
<div class="block">Notifies this listener that an optimizer rule is being applied to a
particular relational expression. This rule is called twice; once before
the rule is invoked, and once after. Note that the rel attribute of the
event is always the old expression.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>event</code> - details about the event</dd>
</dl>
</li>
</ul>
<a name="ruleProductionSucceeded-org.apache.calcite.plan.RelOptListener.RuleProductionEvent-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ruleProductionSucceeded</h4>
<pre>void&nbsp;ruleProductionSucceeded(<a href="../../../../org/apache/calcite/plan/RelOptListener.RuleProductionEvent.html" title="org.apache.calcite.plan中的类">RelOptListener.RuleProductionEvent</a>&nbsp;event)</pre>
<div class="block">Notifies this listener that an optimizer rule has been successfully
applied to a particular relational expression, resulting in a new
equivalent expression (relEquivalenceFound will also be called unless the
new expression is identical to an existing one). This rule is called
twice; once before registration of the new rel, and once after. Note that
the rel attribute of the event is always the new expression; to get the
old expression, use event.getRuleCall().rels[0].</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>event</code> - details about the event</dd>
</dl>
</li>
</ul>
<a name="relDiscarded-org.apache.calcite.plan.RelOptListener.RelDiscardedEvent-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>relDiscarded</h4>
<pre>void&nbsp;relDiscarded(<a href="../../../../org/apache/calcite/plan/RelOptListener.RelDiscardedEvent.html" title="org.apache.calcite.plan中的类">RelOptListener.RelDiscardedEvent</a>&nbsp;event)</pre>
<div class="block">Notifies this listener that a relational expression is no longer of
interest to the planner.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>event</code> - details about the event</dd>
</dl>
</li>
</ul>
<a name="relChosen-org.apache.calcite.plan.RelOptListener.RelChosenEvent-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>relChosen</h4>
<pre>void&nbsp;relChosen(<a href="../../../../org/apache/calcite/plan/RelOptListener.RelChosenEvent.html" title="org.apache.calcite.plan中的类">RelOptListener.RelChosenEvent</a>&nbsp;event)</pre>
<div class="block">Notifies this listener that a relational expression has been chosen as
part of the final implementation of the query plan. After the plan is
complete, this is called one more time with null for the rel.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>event</code> - details about the event</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="跳过导航链接">跳过导航链接</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="导航">
<li><a href="../../../../overview-summary.html">概览</a></li>
<li><a href="package-summary.html">程序包</a></li>
<li class="navBarCell1Rev"></li>
<li><a href="package-tree.html"></a></li>
<li><a href="../../../../deprecated-list.html">已过时</a></li>
<li><a href="../../../../index-all.html">索引</a></li>
<li><a href="../../../../help-doc.html">帮助</a></li>
</ul>
<div class="aboutLanguage"><b>Apache Calcite</b></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/calcite/plan/RelOptLattice.html" title="org.apache.calcite.plan中的类"><span class="typeNameLink">上一个类</span></a></li>
<li><a href="../../../../org/apache/calcite/plan/RelOptListener.RelChosenEvent.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/RelOptListener.html" target="_top">框架</a></li>
<li><a href="RelOptListener.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>概要:&nbsp;</li>
<li><a href="#nested.class.summary">嵌套</a>&nbsp;|&nbsp;</li>
<li>字段&nbsp;|&nbsp;</li>
<li>构造器&nbsp;|&nbsp;</li>
<li><a href="#method.summary">方法</a></li>
</ul>
<ul class="subNavList">
<li>详细资料:&nbsp;</li>
<li>字段&nbsp;|&nbsp;</li>
<li>构造器&nbsp;|&nbsp;</li>
<li><a href="#method.detail">方法</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &copy; 2012-2020 Apache Software Foundation. All Rights Reserved.</small></p>
</body>
</html>