blob: 2abdd6d3852f0e39e1c97e0c4f3b92c002e1eeaf [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>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","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract 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><a href="../../../../org/apache/calcite/plan/RelOptLattice.html" title="class in org.apache.calcite.plan"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/calcite/plan/RelOptListener.RelChosenEvent.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/RelOptListener.html" target="_top">Frames</a></li>
<li><a href="RelOptListener.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><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&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="Interface RelOptListener" class="title">Interface RelOptListener</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/util/EventListener.html?is-external=true" title="class or interface in java.util">EventListener</a></dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../../../../org/apache/calcite/plan/MulticastRelOptListener.html" title="class in 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="class or interface in 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>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Interface and Description</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="class in 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="class in 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="class in 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="class in 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="class in 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="class in 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="class in 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>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="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract 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/RelOptListener.html#relChosen-org.apache.calcite.plan.RelOptListener.RelChosenEvent-">relChosen</a></span>(<a href="../../../../org/apache/calcite/plan/RelOptListener.RelChosenEvent.html" title="class in 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="class in 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="class in 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="class in 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="class in 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>Method Detail</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="class in 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">Parameters:</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="class in 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">Parameters:</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="class in 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">Parameters:</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="class in 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">Parameters:</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="class in 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">Parameters:</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="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><a href="../../../../org/apache/calcite/plan/RelOptLattice.html" title="class in org.apache.calcite.plan"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/calcite/plan/RelOptListener.RelChosenEvent.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/RelOptListener.html" target="_top">Frames</a></li>
<li><a href="RelOptListener.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><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&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>