blob: 4aab010503462abbf70656b5e84d4e14ea87c284 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>org.apache.calcite.plan (Apache Calcite API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="org.apache.calcite.plan (Apache Calcite API)";
}
}
catch(err) {
}
//-->
var pathtoroot = "../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li class="navBarCell1Rev">Package</li>
<li>Class</li>
<li><a href="package-use.html">Use</a></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>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</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>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<main role="main">
<div class="header">
<h1 title="Package" class="title">Package&nbsp;org.apache.calcite.plan</h1>
</div>
<div class="contentContainer">
<section role="region"><a id="package.description">
<!-- -->
</a>
<div class="block">Defines interfaces for constructing rule-based optimizers of
relational expressions.</div>
</section>
<ul class="blockList">
<li class="blockList">
<table class="typeSummary">
<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Interface</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="Context.html" title="interface in org.apache.calcite.plan">Context</a></th>
<td class="colLast">
<div class="block">Provides library users a way to store data within the planner session and
access it within rules.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="Convention.html" title="interface in org.apache.calcite.plan">Convention</a></th>
<td class="colLast">
<div class="block">Calling convention trait.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RelImplementor.html" title="interface in org.apache.calcite.plan">RelImplementor</a></th>
<td class="colLast">
<div class="block">This is a marker interface for a callback used to convert a tree of
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel"><code>relational expressions</code></a> into a plan.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RelMultipleTrait.html" title="interface in org.apache.calcite.plan">RelMultipleTrait</a></th>
<td class="colLast">
<div class="block">Trait for which a given relational expression can have multiple values.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RelOptConnection.html" title="interface in org.apache.calcite.plan">RelOptConnection</a></th>
<td class="colLast">
<div class="block">The planner's view of a connection to a database.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RelOptCost.html" title="interface in org.apache.calcite.plan">RelOptCost</a></th>
<td class="colLast">
<div class="block">RelOptCost defines an interface for optimizer cost in terms of number of rows
processed, CPU cost, and I/O cost.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RelOptCostFactory.html" title="interface in org.apache.calcite.plan">RelOptCostFactory</a></th>
<td class="colLast">
<div class="block">Cost model for query planning.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RelOptListener.html" title="interface in org.apache.calcite.plan">RelOptListener</a></th>
<td class="colLast">
<div class="block">RelOptListener defines an interface for listening to events which occur
during the optimization process.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RelOptNode.html" title="interface in org.apache.calcite.plan">RelOptNode</a></th>
<td class="colLast">
<div class="block">Node in a planner.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RelOptPlanner.html" title="interface in org.apache.calcite.plan">RelOptPlanner</a></th>
<td class="colLast">
<div class="block">A <code>RelOptPlanner</code> is a query optimizer: it transforms a relational
expression into a semantically equivalent relational expression, according to
a given set of rules and a cost model.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RelOptPlanner.Executor.html" title="interface in org.apache.calcite.plan">RelOptPlanner.Executor</a></th>
<td class="colLast">Deprecated.
<div class="deprecationComment">Use <a href="../rex/RexExecutor.html" title="interface in org.apache.calcite.rex"><code>RexExecutor</code></a></div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RelOptSchema.html" title="interface in org.apache.calcite.plan">RelOptSchema</a></th>
<td class="colLast">
<div class="block">A <code>RelOptSchema</code> is a set of <a href="RelOptTable.html" title="interface in org.apache.calcite.plan"><code>RelOptTable</code></a> objects.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RelOptSchemaWithSampling.html" title="interface in org.apache.calcite.plan">RelOptSchemaWithSampling</a></th>
<td class="colLast">
<div class="block">Extension to <a href="RelOptSchema.html" title="interface in org.apache.calcite.plan"><code>RelOptSchema</code></a> with support for sample data-sets.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RelOptTable.html" title="interface in org.apache.calcite.plan">RelOptTable</a></th>
<td class="colLast">
<div class="block">Represents a relational dataset in a <a href="RelOptSchema.html" title="interface in org.apache.calcite.plan"><code>RelOptSchema</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RelOptTable.ToRelContext.html" title="interface in org.apache.calcite.plan">RelOptTable.ToRelContext</a></th>
<td class="colLast">
<div class="block">Contains the context needed to convert a a table into a relational
expression.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RelOptTable.ViewExpander.html" title="interface in org.apache.calcite.plan">RelOptTable.ViewExpander</a></th>
<td class="colLast">
<div class="block">Can expand a view into relational expressions.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RelTrait.html" title="interface in org.apache.calcite.plan">RelTrait</a></th>
<td class="colLast">
<div class="block">RelTrait represents the manifestation of a relational expression trait within
a trait definition.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList">
<table class="typeSummary">
<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="AbstractRelOptPlanner.html" title="class in org.apache.calcite.plan">AbstractRelOptPlanner</a></th>
<td class="colLast">
<div class="block">Abstract base for implementations of the <a href="RelOptPlanner.html" title="interface in org.apache.calcite.plan"><code>RelOptPlanner</code></a> interface.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="CommonRelSubExprRule.html" title="class in org.apache.calcite.plan">CommonRelSubExprRule</a></th>
<td class="colLast">
<div class="block">A <code>CommonRelSubExprRule</code> is an abstract base class for rules
that are fired only on relational expressions that appear more than once
in a query tree.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="Contexts.html" title="class in org.apache.calcite.plan">Contexts</a></th>
<td class="colLast">
<div class="block">Utilities for <a href="Context.html" title="interface in org.apache.calcite.plan"><code>Context</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="Contexts.ChainContext.html" title="class in org.apache.calcite.plan">Contexts.ChainContext</a></th>
<td class="colLast">
<div class="block">Context that wraps a chain of contexts.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="Contexts.EmptyContext.html" title="class in org.apache.calcite.plan">Contexts.EmptyContext</a></th>
<td class="colLast">
<div class="block">Empty context.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="Contexts.WrapContext.html" title="class in org.apache.calcite.plan">Contexts.WrapContext</a></th>
<td class="colLast">
<div class="block">Context that wraps an object.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="Convention.Impl.html" title="class in org.apache.calcite.plan">Convention.Impl</a></th>
<td class="colLast">
<div class="block">Default implementation.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="ConventionTraitDef.html" title="class in org.apache.calcite.plan">ConventionTraitDef</a></th>
<td class="colLast">
<div class="block">Definition of the the convention trait.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="ConventionTraitDef.ConversionData.html" title="class in org.apache.calcite.plan">ConventionTraitDef.ConversionData</a></th>
<td class="colLast">
<div class="block">Workspace for converting from one convention to another.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="MaterializedViewSubstitutionVisitor.html" title="class in org.apache.calcite.plan">MaterializedViewSubstitutionVisitor</a></th>
<td class="colLast">
<div class="block">Extension to <a href="SubstitutionVisitor.html" title="class in org.apache.calcite.plan"><code>SubstitutionVisitor</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="MaterializedViewSubstitutionVisitor.FilterToFilterUnifyRule1.html" title="class in org.apache.calcite.plan">MaterializedViewSubstitutionVisitor.FilterToFilterUnifyRule1</a></th>
<td class="colLast">
<div class="block">Implementation of <a href="SubstitutionVisitor.UnifyRule.html" title="class in org.apache.calcite.plan"><code>SubstitutionVisitor.UnifyRule</code></a> that matches a
<a href="../rel/mutable/MutableFilter.html" title="class in org.apache.calcite.rel.mutable"><code>MutableFilter</code></a> to a
<a href="../rel/mutable/MutableFilter.html" title="class in org.apache.calcite.rel.mutable"><code>MutableFilter</code></a> where the condition of the target
relation is weaker.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="MaterializedViewSubstitutionVisitor.FilterToProjectUnifyRule1.html" title="class in org.apache.calcite.plan">MaterializedViewSubstitutionVisitor.FilterToProjectUnifyRule1</a></th>
<td class="colLast">
<div class="block">Implementation of <a href="SubstitutionVisitor.UnifyRule.html" title="class in org.apache.calcite.plan"><code>SubstitutionVisitor.UnifyRule</code></a> that matches a
<a href="../rel/mutable/MutableFilter.html" title="class in org.apache.calcite.rel.mutable"><code>MutableFilter</code></a> to a
<a href="../rel/mutable/MutableProject.html" title="class in org.apache.calcite.rel.mutable"><code>MutableProject</code></a> on top of a
<a href="../rel/mutable/MutableFilter.html" title="class in org.apache.calcite.rel.mutable"><code>MutableFilter</code></a> where the condition of the target
relation is weaker.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="MaterializedViewSubstitutionVisitor.ProjectToProjectUnifyRule1.html" title="class in org.apache.calcite.plan">MaterializedViewSubstitutionVisitor.ProjectToProjectUnifyRule1</a></th>
<td class="colLast">
<div class="block">Implementation of <a href="SubstitutionVisitor.UnifyRule.html" title="class in org.apache.calcite.plan"><code>SubstitutionVisitor.UnifyRule</code></a> that matches a
<a href="../rel/mutable/MutableProject.html" title="class in org.apache.calcite.rel.mutable"><code>MutableProject</code></a> to a
<a href="../rel/mutable/MutableProject.html" title="class in org.apache.calcite.rel.mutable"><code>MutableProject</code></a> where the condition of the target
relation is weaker.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="MulticastRelOptListener.html" title="class in org.apache.calcite.plan">MulticastRelOptListener</a></th>
<td class="colLast">
<div class="block">MulticastRelOptListener implements the <a href="RelOptListener.html" title="interface in org.apache.calcite.plan"><code>RelOptListener</code></a> interface by
forwarding events on to a collection of other listeners.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RelCompositeTrait.html" title="class in org.apache.calcite.plan">RelCompositeTrait</a>&lt;T extends <a href="RelMultipleTrait.html" title="interface in org.apache.calcite.plan">RelMultipleTrait</a>&gt;</th>
<td class="colLast">
<div class="block">A trait that consists of a list of traits, all of the same type.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RelOptAbstractTable.html" title="class in org.apache.calcite.plan">RelOptAbstractTable</a></th>
<td class="colLast">
<div class="block">Partial implementation of <a href="RelOptTable.html" title="interface in org.apache.calcite.plan"><code>RelOptTable</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RelOptCluster.html" title="class in org.apache.calcite.plan">RelOptCluster</a></th>
<td class="colLast">
<div class="block">An environment for related relational expressions during the
optimization of a query.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RelOptCostImpl.html" title="class in org.apache.calcite.plan">RelOptCostImpl</a></th>
<td class="colLast">
<div class="block">RelOptCostImpl provides a default implementation for the <a href="RelOptCost.html" title="interface in org.apache.calcite.plan"><code>RelOptCost</code></a>
interface.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RelOptCostImpl.Factory.html" title="class in org.apache.calcite.plan">RelOptCostImpl.Factory</a></th>
<td class="colLast">
<div class="block">Implementation of <a href="RelOptCostFactory.html" title="interface in org.apache.calcite.plan"><code>RelOptCostFactory</code></a> that creates
<a href="RelOptCostImpl.html" title="class in org.apache.calcite.plan"><code>RelOptCostImpl</code></a>s.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RelOptLattice.html" title="class in org.apache.calcite.plan">RelOptLattice</a></th>
<td class="colLast">
<div class="block">Use of a lattice by the query optimizer.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RelOptListener.RelChosenEvent.html" title="class in org.apache.calcite.plan">RelOptListener.RelChosenEvent</a></th>
<td class="colLast">
<div class="block">Event indicating that a relational expression has been chosen.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RelOptListener.RelDiscardedEvent.html" title="class in org.apache.calcite.plan">RelOptListener.RelDiscardedEvent</a></th>
<td class="colLast">
<div class="block">Event indicating that a relational expression has been discarded.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RelOptListener.RelEquivalenceEvent.html" title="class in org.apache.calcite.plan">RelOptListener.RelEquivalenceEvent</a></th>
<td class="colLast">
<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">
<th class="colFirst" scope="row"><a href="RelOptListener.RelEvent.html" title="class in org.apache.calcite.plan">RelOptListener.RelEvent</a></th>
<td class="colLast">
<div class="block">Event class for abstract event dealing with a relational expression.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RelOptListener.RuleAttemptedEvent.html" title="class in org.apache.calcite.plan">RelOptListener.RuleAttemptedEvent</a></th>
<td class="colLast">
<div class="block">Event indicating that a planner rule has been attempted.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RelOptListener.RuleEvent.html" title="class in org.apache.calcite.plan">RelOptListener.RuleEvent</a></th>
<td class="colLast">
<div class="block">Event indicating that a planner rule has fired.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RelOptListener.RuleProductionEvent.html" title="class in org.apache.calcite.plan">RelOptListener.RuleProductionEvent</a></th>
<td class="colLast">
<div class="block">Event indicating that a planner rule has produced a result.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RelOptMaterialization.html" title="class in org.apache.calcite.plan">RelOptMaterialization</a></th>
<td class="colLast">
<div class="block">Records that a particular query is materialized by a particular table.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RelOptMaterialization.ProjectFilterTable.html" title="class in org.apache.calcite.plan">RelOptMaterialization.ProjectFilterTable</a></th>
<td class="colLast">
<div class="block">A table scan and optional project mapping and filter condition.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RelOptMaterializations.html" title="class in org.apache.calcite.plan">RelOptMaterializations</a></th>
<td class="colLast">
<div class="block">Utility methods for using
materialized views and lattices for queries.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RelOptPredicateList.html" title="class in org.apache.calcite.plan">RelOptPredicateList</a></th>
<td class="colLast">
<div class="block">Predicates that are known to hold in the output of a particular relational
expression.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RelOptQuery.html" title="class in org.apache.calcite.plan">RelOptQuery</a></th>
<td class="colLast">
<div class="block">A <code>RelOptQuery</code> represents a set of
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel"><code>relational expressions</code></a> which derive from the same
<code>select</code> statement.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></th>
<td class="colLast">
<div class="block">A <code>RelOptRule</code> transforms an expression into another.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RelOptRule.ConverterRelOptRuleOperand.html" title="class in org.apache.calcite.plan">RelOptRule.ConverterRelOptRuleOperand</a></th>
<td class="colLast">
<div class="block">Operand to an instance of the converter rule.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RelOptRuleCall.html" title="class in org.apache.calcite.plan">RelOptRuleCall</a></th>
<td class="colLast">
<div class="block">A <code>RelOptRuleCall</code> is an invocation of a <a href="RelOptRule.html" title="class in org.apache.calcite.plan"><code>RelOptRule</code></a> with a
set of <a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel"><code>relational expression</code></a>s as arguments.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RelOptRuleOperand.html" title="class in org.apache.calcite.plan">RelOptRuleOperand</a></th>
<td class="colLast">
<div class="block">Operand that determines whether a <a href="RelOptRule.html" title="class in org.apache.calcite.plan"><code>RelOptRule</code></a>
can be applied to a particular expression.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RelOptRuleOperandChildren.html" title="class in org.apache.calcite.plan">RelOptRuleOperandChildren</a></th>
<td class="colLast">
<div class="block">Children of a <a href="RelOptRuleOperand.html" title="class in org.apache.calcite.plan"><code>RelOptRuleOperand</code></a> and the
policy for matching them.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RelOptRules.html" title="class in org.apache.calcite.plan">RelOptRules</a></th>
<td class="colLast">
<div class="block">A utility class for organizing built-in rules and rule related
methods.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RelOptSamplingParameters.html" title="class in org.apache.calcite.plan">RelOptSamplingParameters</a></th>
<td class="colLast">
<div class="block">RelOptSamplingParameters represents the parameters necessary to produce a
sample of a relation.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RelOptUtil.html" title="class in org.apache.calcite.plan">RelOptUtil</a></th>
<td class="colLast">
<div class="block"><code>RelOptUtil</code> defines static utility methods for use in optimizing
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel"><code>RelNode</code></a>s.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RelOptUtil.CorrelationCollector.html" title="class in org.apache.calcite.plan">RelOptUtil.CorrelationCollector</a></th>
<td class="colLast">
<div class="block">Shuttle that finds correlation variables inside a given relational
expression, including those that are inside
<a href="../rex/RexSubQuery.html" title="class in org.apache.calcite.rex"><code>sub-queries</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RelOptUtil.Exists.html" title="class in org.apache.calcite.plan">RelOptUtil.Exists</a></th>
<td class="colLast">
<div class="block">Result of calling
<a href="RelOptUtil.html#createExistsPlan(org.apache.calcite.plan.RelOptCluster,org.apache.calcite.rel.RelNode,java.util.List,org.apache.calcite.rex.RexLiteral,java.lang.String)"><code>RelOptUtil.createExistsPlan(org.apache.calcite.plan.RelOptCluster, org.apache.calcite.rel.RelNode, java.util.List&lt;org.apache.calcite.rex.RexNode&gt;, org.apache.calcite.rex.RexLiteral, java.lang.String)</code></a></div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RelOptUtil.InputFinder.html" title="class in org.apache.calcite.plan">RelOptUtil.InputFinder</a></th>
<td class="colLast">
<div class="block">Visitor which builds a bitmap of the inputs used by an expression.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RelOptUtil.InputReferencedVisitor.html" title="class in org.apache.calcite.plan">RelOptUtil.InputReferencedVisitor</a></th>
<td class="colLast">
<div class="block">Shuttle that finds the set of inputs that are used.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RelOptUtil.RexInputConverter.html" title="class in org.apache.calcite.plan">RelOptUtil.RexInputConverter</a></th>
<td class="colLast">
<div class="block">Walks an expression tree, converting the index of RexInputRefs based on
some adjustment factor.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RelOptUtil.TypeDumper.html" title="class in org.apache.calcite.plan">RelOptUtil.TypeDumper</a></th>
<td class="colLast">
<div class="block">Converts types to descriptive strings.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RelOptUtil.VariableSetVisitor.html" title="class in org.apache.calcite.plan">RelOptUtil.VariableSetVisitor</a></th>
<td class="colLast">
<div class="block">Visitor that finds all variables used but not stopped in an expression.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RelOptUtil.VariableUsedVisitor.html" title="class in org.apache.calcite.plan">RelOptUtil.VariableUsedVisitor</a></th>
<td class="colLast">
<div class="block">Visitor that finds all variables used in an expression.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RelTraitDef.html" title="class in org.apache.calcite.plan">RelTraitDef</a>&lt;T extends <a href="RelTrait.html" title="interface in org.apache.calcite.plan">RelTrait</a>&gt;</th>
<td class="colLast">
<div class="block">RelTraitDef represents a class of <a href="RelTrait.html" title="interface in org.apache.calcite.plan"><code>RelTrait</code></a>s.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RelTraitPropagationVisitor.html" title="class in org.apache.calcite.plan">RelTraitPropagationVisitor</a></th>
<td class="colLast">Deprecated.
<div class="deprecationComment">As of 1.19, if you need to perform certain assertions regarding a RelNode tree and
the contained traits you are encouraged to implement your own RelVisitor or
<a href="../rel/RelShuttle.html" title="interface in org.apache.calcite.rel"><code>RelShuttle</code></a> directly.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a></th>
<td class="colLast">
<div class="block">RelTraitSet represents an ordered set of <a href="RelTrait.html" title="interface in org.apache.calcite.plan"><code>RelTrait</code></a>s.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RelTraitSet.Cache.html" title="class in org.apache.calcite.plan">RelTraitSet.Cache</a></th>
<td class="colLast">
<div class="block">Cache of trait sets.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RexImplicationChecker.html" title="class in org.apache.calcite.plan">RexImplicationChecker</a></th>
<td class="colLast">
<div class="block">Checks whether one condition logically implies another.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RexImplicationChecker.InputRefUsage.html" title="class in org.apache.calcite.plan">RexImplicationChecker.InputRefUsage</a>&lt;T1,&#8203;T2&gt;</th>
<td class="colLast">
<div class="block">Usage of a <a href="../rex/RexInputRef.html" title="class in org.apache.calcite.rex"><code>RexInputRef</code></a> in an expression.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RexImplicationChecker.InputUsageFinder.html" title="class in org.apache.calcite.plan">RexImplicationChecker.InputUsageFinder</a></th>
<td class="colLast">
<div class="block">Visitor that builds a usage map of inputs used by an expression.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="Strong.html" title="class in org.apache.calcite.plan">Strong</a></th>
<td class="colLast">
<div class="block">Utilities for strong predicates.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="SubstitutionVisitor.html" title="class in org.apache.calcite.plan">SubstitutionVisitor</a></th>
<td class="colLast">
<div class="block">Substitutes part of a tree of relational expressions with another tree.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="SubstitutionVisitor.AbstractUnifyRule.html" title="class in org.apache.calcite.plan">SubstitutionVisitor.AbstractUnifyRule</a></th>
<td class="colLast">
<div class="block">Abstract base class for implementing <a href="SubstitutionVisitor.UnifyRule.html" title="class in org.apache.calcite.plan"><code>SubstitutionVisitor.UnifyRule</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="SubstitutionVisitor.AggregateOnProjectToAggregateUnifyRule.html" title="class in org.apache.calcite.plan">SubstitutionVisitor.AggregateOnProjectToAggregateUnifyRule</a></th>
<td class="colLast">
<div class="block">Implementation of <a href="SubstitutionVisitor.UnifyRule.html" title="class in org.apache.calcite.plan"><code>SubstitutionVisitor.UnifyRule</code></a> that matches a
<a href="../rel/mutable/MutableAggregate.html" title="class in org.apache.calcite.rel.mutable"><code>MutableAggregate</code></a> on
a <a href="../rel/mutable/MutableProject.html" title="class in org.apache.calcite.rel.mutable"><code>MutableProject</code></a> query to an <a href="../rel/mutable/MutableAggregate.html" title="class in org.apache.calcite.rel.mutable"><code>MutableAggregate</code></a> target.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="SubstitutionVisitor.AggregateToAggregateUnifyRule.html" title="class in org.apache.calcite.plan">SubstitutionVisitor.AggregateToAggregateUnifyRule</a></th>
<td class="colLast">
<div class="block">Implementation of <a href="SubstitutionVisitor.UnifyRule.html" title="class in org.apache.calcite.plan"><code>SubstitutionVisitor.UnifyRule</code></a> that matches a
<a href="../rel/logical/LogicalAggregate.html" title="class in org.apache.calcite.rel.logical"><code>LogicalAggregate</code></a> to a
<a href="../rel/logical/LogicalAggregate.html" title="class in org.apache.calcite.rel.logical"><code>LogicalAggregate</code></a>, provided
that they have the same child.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="SubstitutionVisitor.AnyOperand.html" title="class in org.apache.calcite.plan">SubstitutionVisitor.AnyOperand</a></th>
<td class="colLast">
<div class="block">Operand to a <a href="SubstitutionVisitor.UnifyRule.html" title="class in org.apache.calcite.plan"><code>SubstitutionVisitor.UnifyRule</code></a> that matches a relational expression of a
given type.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="SubstitutionVisitor.FilterOnProjectRule.html" title="class in org.apache.calcite.plan">SubstitutionVisitor.FilterOnProjectRule</a></th>
<td class="colLast">
<div class="block">Rule that converts a <a href="../rel/logical/LogicalFilter.html" title="class in org.apache.calcite.rel.logical"><code>LogicalFilter</code></a>
on top of a <a href="../rel/logical/LogicalProject.html" title="class in org.apache.calcite.rel.logical"><code>LogicalProject</code></a> into a
trivial filter (on a boolean column).</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="SubstitutionVisitor.FilterToFilterUnifyRule.html" title="class in org.apache.calcite.plan">SubstitutionVisitor.FilterToFilterUnifyRule</a></th>
<td class="colLast">
<div class="block">Implementation of <a href="SubstitutionVisitor.UnifyRule.html" title="class in org.apache.calcite.plan"><code>SubstitutionVisitor.UnifyRule</code></a> that matches a
<a href="../rel/mutable/MutableFilter.html" title="class in org.apache.calcite.rel.mutable"><code>MutableFilter</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="SubstitutionVisitor.FilterToProjectUnifyRule.html" title="class in org.apache.calcite.plan">SubstitutionVisitor.FilterToProjectUnifyRule</a></th>
<td class="colLast">
<div class="block">Implementation of <a href="SubstitutionVisitor.UnifyRule.html" title="class in org.apache.calcite.plan"><code>SubstitutionVisitor.UnifyRule</code></a> that matches a <a href="../rel/mutable/MutableFilter.html" title="class in org.apache.calcite.rel.mutable"><code>MutableFilter</code></a>
to a <a href="../rel/mutable/MutableProject.html" title="class in org.apache.calcite.rel.mutable"><code>MutableProject</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="SubstitutionVisitor.InternalOperand.html" title="class in org.apache.calcite.plan">SubstitutionVisitor.InternalOperand</a></th>
<td class="colLast">
<div class="block">Operand to a <a href="SubstitutionVisitor.UnifyRule.html" title="class in org.apache.calcite.plan"><code>SubstitutionVisitor.UnifyRule</code></a> that matches a relational expression of a
given type.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="SubstitutionVisitor.Operand.html" title="class in org.apache.calcite.plan">SubstitutionVisitor.Operand</a></th>
<td class="colLast">
<div class="block">Operand to a <a href="SubstitutionVisitor.UnifyRule.html" title="class in org.apache.calcite.plan"><code>SubstitutionVisitor.UnifyRule</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="SubstitutionVisitor.ProjectToFilterUnifyRule.html" title="class in org.apache.calcite.plan">SubstitutionVisitor.ProjectToFilterUnifyRule</a></th>
<td class="colLast">
<div class="block">Implementation of <a href="SubstitutionVisitor.UnifyRule.html" title="class in org.apache.calcite.plan"><code>SubstitutionVisitor.UnifyRule</code></a> that matches a <a href="../rel/mutable/MutableProject.html" title="class in org.apache.calcite.rel.mutable"><code>MutableProject</code></a>
to a <a href="../rel/mutable/MutableFilter.html" title="class in org.apache.calcite.rel.mutable"><code>MutableFilter</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="SubstitutionVisitor.ProjectToProjectUnifyRule.html" title="class in org.apache.calcite.plan">SubstitutionVisitor.ProjectToProjectUnifyRule</a></th>
<td class="colLast">
<div class="block">Implementation of <a href="SubstitutionVisitor.UnifyRule.html" title="class in org.apache.calcite.plan"><code>SubstitutionVisitor.UnifyRule</code></a> that matches
<a href="../rel/logical/LogicalProject.html" title="class in org.apache.calcite.rel.logical"><code>LogicalProject</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="SubstitutionVisitor.QueryOperand.html" title="class in org.apache.calcite.plan">SubstitutionVisitor.QueryOperand</a></th>
<td class="colLast">
<div class="block">Operand that assigns a particular relational expression to a variable.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="SubstitutionVisitor.Replacement.html" title="class in org.apache.calcite.plan">SubstitutionVisitor.Replacement</a></th>
<td class="colLast">
<div class="block">Represents a replacement action: before &rarr; after.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="SubstitutionVisitor.ScanToProjectUnifyRule.html" title="class in org.apache.calcite.plan">SubstitutionVisitor.ScanToProjectUnifyRule</a></th>
<td class="colLast">
<div class="block">Implementation of <a href="SubstitutionVisitor.UnifyRule.html" title="class in org.apache.calcite.plan"><code>SubstitutionVisitor.UnifyRule</code></a> that matches
<a href="../rel/logical/LogicalTableScan.html" title="class in org.apache.calcite.rel.logical"><code>LogicalTableScan</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="SubstitutionVisitor.SlotCounter.html" title="class in org.apache.calcite.plan">SubstitutionVisitor.SlotCounter</a></th>
<td class="colLast">
<div class="block">Visitor that counts how many <a href="SubstitutionVisitor.QueryOperand.html" title="class in org.apache.calcite.plan"><code>SubstitutionVisitor.QueryOperand</code></a> and
<a href="SubstitutionVisitor.TargetOperand.html" title="class in org.apache.calcite.plan"><code>SubstitutionVisitor.TargetOperand</code></a> in an operand tree.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="SubstitutionVisitor.TargetOperand.html" title="class in org.apache.calcite.plan">SubstitutionVisitor.TargetOperand</a></th>
<td class="colLast">
<div class="block">Operand that checks that a relational expression matches the corresponding
relational expression that was passed to a <a href="SubstitutionVisitor.QueryOperand.html" title="class in org.apache.calcite.plan"><code>SubstitutionVisitor.QueryOperand</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="SubstitutionVisitor.TrivialRule.html" title="class in org.apache.calcite.plan">SubstitutionVisitor.TrivialRule</a></th>
<td class="colLast">
<div class="block">Implementation of <a href="SubstitutionVisitor.UnifyRule.html" title="class in org.apache.calcite.plan"><code>SubstitutionVisitor.UnifyRule</code></a> that matches if the query is already
equal to the target.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="SubstitutionVisitor.UnifyResult.html" title="class in org.apache.calcite.plan">SubstitutionVisitor.UnifyResult</a></th>
<td class="colLast">
<div class="block">Result of an application of a <a href="SubstitutionVisitor.UnifyRule.html" title="class in org.apache.calcite.plan"><code>SubstitutionVisitor.UnifyRule</code></a> indicating that the
rule successfully matched <code>query</code> against <code>target</code> and
generated a <code>result</code> that is equivalent to <code>query</code> and
contains <code>target</code>.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="SubstitutionVisitor.UnifyRule.html" title="class in org.apache.calcite.plan">SubstitutionVisitor.UnifyRule</a></th>
<td class="colLast">
<div class="block">Rule that attempts to match a query relational expression
against a target relational expression.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="TableAccessMap.html" title="class in org.apache.calcite.plan">TableAccessMap</a></th>
<td class="colLast">
<div class="block"><code>TableAccessMap</code> represents the tables accessed by a query plan,
with READ/WRITE information.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="ViewExpanders.html" title="class in org.apache.calcite.plan">ViewExpanders</a></th>
<td class="colLast">
<div class="block">Utilities for <a href="RelOptTable.ViewExpander.html" title="interface in org.apache.calcite.plan"><code>RelOptTable.ViewExpander</code></a> and
<a href="RelOptTable.ToRelContext.html" title="interface in org.apache.calcite.plan"><code>RelOptTable.ToRelContext</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="VisitorDataContext.html" title="class in org.apache.calcite.plan">VisitorDataContext</a></th>
<td class="colLast">
<div class="block">DataContext for evaluating an RexExpression</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList">
<table class="typeSummary">
<caption><span>Enum Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Enum</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RelOptRuleOperandChildPolicy.html" title="enum in org.apache.calcite.plan">RelOptRuleOperandChildPolicy</a></th>
<td class="colLast">
<div class="block">Policy by which operands will be matched by relational expressions with
any number of children.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RelOptUtil.Logic.html" title="enum in org.apache.calcite.plan">RelOptUtil.Logic</a></th>
<td class="colLast">
<div class="block">Policies for handling two- and three-valued boolean logic.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RelOptUtil.Side.html" title="enum in org.apache.calcite.plan">RelOptUtil.Side</a></th>
<td class="colLast">
<div class="block">Categorizes whether a bit set contains bits left and right of a
line.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RelOptUtil.SubQueryType.html" title="enum in org.apache.calcite.plan">RelOptUtil.SubQueryType</a></th>
<td class="colLast">
<div class="block">What kind of sub-query.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="Strong.Policy.html" title="enum in org.apache.calcite.plan">Strong.Policy</a></th>
<td class="colLast">
<div class="block">How whether an operator's operands are null affects whether a call to
that operator evaluates to null.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="TableAccessMap.Mode.html" title="enum in org.apache.calcite.plan">TableAccessMap.Mode</a></th>
<td class="colLast">
<div class="block">Access mode.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList">
<table class="typeSummary">
<caption><span>Exception Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Exception</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RelOptPlanner.CannotPlanException.html" title="class in org.apache.calcite.plan">RelOptPlanner.CannotPlanException</a></th>
<td class="colLast">
<div class="block">Thrown by <a href="RelOptPlanner.html#findBestExp()"><code>RelOptPlanner.findBestExp()</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="SubstitutionVisitor.MatchFailed.html" title="class in org.apache.calcite.plan">SubstitutionVisitor.MatchFailed</a></th>
<td class="colLast">
<div class="block">Exception thrown to exit a matcher.</div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
</div>
</main>
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li class="navBarCell1Rev">Package</li>
<li>Class</li>
<li><a href="package-use.html">Use</a></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>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses.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>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</body>
</html>