blob: 5f6edce6e1d41f60389fd7f53f9e6ae962fedaf9 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>Uses of Class org.apache.calcite.plan.RelOptRule (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="Uses of Class org.apache.calcite.plan.RelOptRule (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><a href="../package-summary.html">Package</a></li>
<li><a href="../RelOptRule.html" title="class in org.apache.calcite.plan">Class</a></li>
<li class="navBarCell1Rev">Use</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">
<h2 title="Uses of Class org.apache.calcite.plan.RelOptRule" class="title">Uses of Class<br>org.apache.calcite.plan.RelOptRule</h2>
</div>
<div class="classUseContainer">
<ul class="blockList">
<li class="blockList">
<table class="useSummary">
<caption><span>Packages that use <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Package</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="#org.apache.calcite.adapter.cassandra">org.apache.calcite.adapter.cassandra</a></th>
<td class="colLast">
<div class="block">Cassandra query provider.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="#org.apache.calcite.adapter.csv">org.apache.calcite.adapter.csv</a></th>
<td class="colLast">
<div class="block">Calcite query provider that reads from CSV (comma-separated value) files.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="#org.apache.calcite.adapter.druid">org.apache.calcite.adapter.druid</a></th>
<td class="colLast">
<div class="block">Query provider based on a Druid database.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="#org.apache.calcite.adapter.elasticsearch">org.apache.calcite.adapter.elasticsearch</a></th>
<td class="colLast">
<div class="block">Query provider based on an Elasticsearch2 DB.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="#org.apache.calcite.adapter.enumerable">org.apache.calcite.adapter.enumerable</a></th>
<td class="colLast">
<div class="block">Query optimizer rules for Java calling convention.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="#org.apache.calcite.adapter.geode.rel">org.apache.calcite.adapter.geode.rel</a></th>
<td class="colLast">
<div class="block">Query provider based on Apache Geode (Gemfire) In Memory Data Grid</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="#org.apache.calcite.adapter.jdbc">org.apache.calcite.adapter.jdbc</a></th>
<td class="colLast">
<div class="block">Query provider based on a JDBC data source.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="#org.apache.calcite.adapter.mongodb">org.apache.calcite.adapter.mongodb</a></th>
<td class="colLast">
<div class="block">Query provider based on a MongoDB database.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="#org.apache.calcite.adapter.pig">org.apache.calcite.adapter.pig</a></th>
<td class="colLast">
<div class="block">Pig query provider.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="#org.apache.calcite.adapter.spark">org.apache.calcite.adapter.spark</a></th>
<td class="colLast">
<div class="block">Adapter based on the Apache Spark data management system.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="#org.apache.calcite.adapter.splunk">org.apache.calcite.adapter.splunk</a></th>
<td class="colLast">
<div class="block">Splunk query provider.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="#org.apache.calcite.interpreter">org.apache.calcite.interpreter</a></th>
<td class="colLast">
<div class="block">Provides an implementation of relational expressions using an interpreter.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="#org.apache.calcite.jdbc">org.apache.calcite.jdbc</a></th>
<td class="colLast">
<div class="block">JDBC driver for Calcite.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="#org.apache.calcite.plan">org.apache.calcite.plan</a></th>
<td class="colLast">
<div class="block">Defines interfaces for constructing rule-based optimizers of
relational expressions.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="#org.apache.calcite.plan.hep">org.apache.calcite.plan.hep</a></th>
<td class="colLast">
<div class="block">Provides a heuristic planner implementation for the interfaces in
<a href="../package-summary.html"><code>org.apache.calcite.plan</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="#org.apache.calcite.plan.volcano">org.apache.calcite.plan.volcano</a></th>
<td class="colLast">
<div class="block">Optimizes relational expressions.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="#org.apache.calcite.prepare">org.apache.calcite.prepare</a></th>
<td class="colLast">
<div class="block">Preparation of queries (parsing, planning and implementation).</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="#org.apache.calcite.rel.convert">org.apache.calcite.rel.convert</a></th>
<td class="colLast">
<div class="block">Defines relational expressions and rules for converting between calling
conventions.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="#org.apache.calcite.rel.rules">org.apache.calcite.rel.rules</a></th>
<td class="colLast">
<div class="block">Provides a core set of planner rules.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="#org.apache.calcite.rel.stream">org.apache.calcite.rel.stream</a></th>
<td class="colLast">
<div class="block">Defines relational expressions for streaming.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="#org.apache.calcite.sql2rel">org.apache.calcite.sql2rel</a></th>
<td class="colLast">
<div class="block">Translates a SQL parse tree to relational expression.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="#org.apache.calcite.tools">org.apache.calcite.tools</a></th>
<td class="colLast">
<div class="block">Provides utility classes.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList">
<ul class="blockList">
<li class="blockList">
<section role="region"><a id="org.apache.calcite.adapter.cassandra">
<!-- -->
</a>
<h3>Uses of <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a> in <a href="../../adapter/cassandra/package-summary.html">org.apache.calcite.adapter.cassandra</a></h3>
<table class="useSummary">
<caption><span>Subclasses of <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a> in <a href="../../adapter/cassandra/package-summary.html">org.apache.calcite.adapter.cassandra</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>(package private) static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/cassandra/CassandraRules.CassandraConverterRule.html" title="class in org.apache.calcite.adapter.cassandra">CassandraRules.CassandraConverterRule</a></span></code></th>
<td class="colLast">
<div class="block">Base class for planner rules that convert a relational expression to
Cassandra calling convention.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/cassandra/CassandraRules.CassandraFilterRule.html" title="class in org.apache.calcite.adapter.cassandra">CassandraRules.CassandraFilterRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert a <a href="../../rel/logical/LogicalFilter.html" title="class in org.apache.calcite.rel.logical"><code>LogicalFilter</code></a> to a
<a href="../../adapter/cassandra/CassandraFilter.html" title="class in org.apache.calcite.adapter.cassandra"><code>CassandraFilter</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/cassandra/CassandraRules.CassandraLimitRule.html" title="class in org.apache.calcite.adapter.cassandra">CassandraRules.CassandraLimitRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert a <a href="../../adapter/enumerable/EnumerableLimit.html" title="class in org.apache.calcite.adapter.enumerable"><code>EnumerableLimit</code></a> to a
<a href="../../adapter/cassandra/CassandraLimit.html" title="class in org.apache.calcite.adapter.cassandra"><code>CassandraLimit</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/cassandra/CassandraRules.CassandraProjectRule.html" title="class in org.apache.calcite.adapter.cassandra">CassandraRules.CassandraProjectRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert a <a href="../../rel/logical/LogicalProject.html" title="class in org.apache.calcite.rel.logical"><code>LogicalProject</code></a>
to a <a href="../../adapter/cassandra/CassandraProject.html" title="class in org.apache.calcite.adapter.cassandra"><code>CassandraProject</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/cassandra/CassandraRules.CassandraSortRule.html" title="class in org.apache.calcite.adapter.cassandra">CassandraRules.CassandraSortRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert a <a href="../../rel/core/Sort.html" title="class in org.apache.calcite.rel.core"><code>Sort</code></a> to a
<a href="../../adapter/cassandra/CassandraSort.html" title="class in org.apache.calcite.adapter.cassandra"><code>CassandraSort</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/cassandra/CassandraToEnumerableConverterRule.html" title="class in org.apache.calcite.adapter.cassandra">CassandraToEnumerableConverterRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert a relational expression from
<a href="../../adapter/cassandra/CassandraRel.html#CONVENTION"><code>CassandraRel.CONVENTION</code></a> to <a href="../../adapter/enumerable/EnumerableConvention.html" title="enum in org.apache.calcite.adapter.enumerable"><code>EnumerableConvention</code></a>.</div>
</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Fields in <a href="../../adapter/cassandra/package-summary.html">org.apache.calcite.adapter.cassandra</a> declared as <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>[]</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">CassandraRules.</span><code><span class="memberNameLink"><a href="../../adapter/cassandra/CassandraRules.html#RULES">RULES</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
</section>
</li>
<li class="blockList">
<section role="region"><a id="org.apache.calcite.adapter.csv">
<!-- -->
</a>
<h3>Uses of <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a> in <a href="../../adapter/csv/package-summary.html">org.apache.calcite.adapter.csv</a></h3>
<table class="useSummary">
<caption><span>Subclasses of <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a> in <a href="../../adapter/csv/package-summary.html">org.apache.calcite.adapter.csv</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/csv/CsvProjectTableScanRule.html" title="class in org.apache.calcite.adapter.csv">CsvProjectTableScanRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that projects from a <a href="../../adapter/csv/CsvTableScan.html" title="class in org.apache.calcite.adapter.csv"><code>CsvTableScan</code></a> scan just the columns
needed to satisfy a projection.</div>
</td>
</tr>
</tbody>
</table>
</section>
</li>
<li class="blockList">
<section role="region"><a id="org.apache.calcite.adapter.druid">
<!-- -->
</a>
<h3>Uses of <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a> in <a href="../../adapter/druid/package-summary.html">org.apache.calcite.adapter.druid</a></h3>
<table class="useSummary">
<caption><span>Subclasses of <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a> in <a href="../../adapter/druid/package-summary.html">org.apache.calcite.adapter.druid</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/druid/DruidRules.DruidAggregateExtractProjectRule.html" title="class in org.apache.calcite.adapter.druid">DruidRules.DruidAggregateExtractProjectRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to extract a <a href="../../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a> from
<a href="../../rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a> on top of
<a href="../../adapter/druid/DruidQuery.html" title="class in org.apache.calcite.adapter.druid"><code>DruidQuery</code></a> based on the fields
used in the aggregate.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/druid/DruidRules.DruidAggregateFilterTransposeRule.html" title="class in org.apache.calcite.adapter.druid">DruidRules.DruidAggregateFilterTransposeRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to push an <a href="../../rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a>
past a <a href="../../rel/core/Filter.html" title="class in org.apache.calcite.rel.core"><code>Filter</code></a>
when <code>Filter</code> is on top of a <a href="../../adapter/druid/DruidQuery.html" title="class in org.apache.calcite.adapter.druid"><code>DruidQuery</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/druid/DruidRules.DruidAggregateProjectRule.html" title="class in org.apache.calcite.adapter.druid">DruidRules.DruidAggregateProjectRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to push an <a href="../../rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a> and
<a href="../../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a> into a <a href="../../adapter/druid/DruidQuery.html" title="class in org.apache.calcite.adapter.druid"><code>DruidQuery</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/druid/DruidRules.DruidAggregateRule.html" title="class in org.apache.calcite.adapter.druid">DruidRules.DruidAggregateRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to push an <a href="../../rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a> into a <a href="../../adapter/druid/DruidQuery.html" title="class in org.apache.calcite.adapter.druid"><code>DruidQuery</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/druid/DruidRules.DruidFilterAggregateTransposeRule.html" title="class in org.apache.calcite.adapter.druid">DruidRules.DruidFilterAggregateTransposeRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to push an <a href="../../rel/core/Filter.html" title="class in org.apache.calcite.rel.core"><code>Filter</code></a>
past an <a href="../../rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a>
when <code>Aggregate</code> is on top of a <a href="../../adapter/druid/DruidQuery.html" title="class in org.apache.calcite.adapter.druid"><code>DruidQuery</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/druid/DruidRules.DruidFilterProjectTransposeRule.html" title="class in org.apache.calcite.adapter.druid">DruidRules.DruidFilterProjectTransposeRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to push a <a href="../../rel/core/Filter.html" title="class in org.apache.calcite.rel.core"><code>Filter</code></a>
past a <a href="../../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a>
when <code>Project</code> is on top of a <a href="../../adapter/druid/DruidQuery.html" title="class in org.apache.calcite.adapter.druid"><code>DruidQuery</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/druid/DruidRules.DruidFilterRule.html" title="class in org.apache.calcite.adapter.druid">DruidRules.DruidFilterRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to push a <a href="../../rel/core/Filter.html" title="class in org.apache.calcite.rel.core"><code>Filter</code></a> into a <a href="../../adapter/druid/DruidQuery.html" title="class in org.apache.calcite.adapter.druid"><code>DruidQuery</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/druid/DruidRules.DruidHavingFilterRule.html" title="class in org.apache.calcite.adapter.druid">DruidRules.DruidHavingFilterRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to Push a Having <a href="../../rel/core/Filter.html" title="class in org.apache.calcite.rel.core"><code>Filter</code></a> into a <a href="../../adapter/druid/DruidQuery.html" title="class in org.apache.calcite.adapter.druid"><code>DruidQuery</code></a></div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/druid/DruidRules.DruidPostAggregationProjectRule.html" title="class in org.apache.calcite.adapter.druid">DruidRules.DruidPostAggregationProjectRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to push a <a href="../../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a> into a <a href="../../adapter/druid/DruidQuery.html" title="class in org.apache.calcite.adapter.druid"><code>DruidQuery</code></a> as a
Post aggregator.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/druid/DruidRules.DruidProjectFilterTransposeRule.html" title="class in org.apache.calcite.adapter.druid">DruidRules.DruidProjectFilterTransposeRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to push a <a href="../../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a>
past a <a href="../../rel/core/Filter.html" title="class in org.apache.calcite.rel.core"><code>Filter</code></a>
when <code>Filter</code> is on top of a <a href="../../adapter/druid/DruidQuery.html" title="class in org.apache.calcite.adapter.druid"><code>DruidQuery</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/druid/DruidRules.DruidProjectRule.html" title="class in org.apache.calcite.adapter.druid">DruidRules.DruidProjectRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to push a <a href="../../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a> into a <a href="../../adapter/druid/DruidQuery.html" title="class in org.apache.calcite.adapter.druid"><code>DruidQuery</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/druid/DruidRules.DruidProjectSortTransposeRule.html" title="class in org.apache.calcite.adapter.druid">DruidRules.DruidProjectSortTransposeRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to push back <a href="../../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a> through a
<a href="../../rel/core/Sort.html" title="class in org.apache.calcite.rel.core"><code>Sort</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/druid/DruidRules.DruidSortProjectTransposeRule.html" title="class in org.apache.calcite.adapter.druid">DruidRules.DruidSortProjectTransposeRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to push an <a href="../../rel/core/Sort.html" title="class in org.apache.calcite.rel.core"><code>Sort</code></a> through a
<a href="../../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/druid/DruidRules.DruidSortRule.html" title="class in org.apache.calcite.adapter.druid">DruidRules.DruidSortRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to push a <a href="../../rel/core/Sort.html" title="class in org.apache.calcite.rel.core"><code>Sort</code></a>
into a <a href="../../adapter/druid/DruidQuery.html" title="class in org.apache.calcite.adapter.druid"><code>DruidQuery</code></a>.</div>
</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Fields in <a href="../../adapter/druid/package-summary.html">org.apache.calcite.adapter.druid</a> with type parameters of type <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>static java.util.List&lt;<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">DruidRules.</span><code><span class="memberNameLink"><a href="../../adapter/druid/DruidRules.html#RULES">RULES</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
</section>
</li>
<li class="blockList">
<section role="region"><a id="org.apache.calcite.adapter.elasticsearch">
<!-- -->
</a>
<h3>Uses of <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a> in <a href="../../adapter/elasticsearch/package-summary.html">org.apache.calcite.adapter.elasticsearch</a></h3>
<table class="useSummary">
<caption><span>Subclasses of <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a> in <a href="../../adapter/elasticsearch/package-summary.html">org.apache.calcite.adapter.elasticsearch</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/elasticsearch/ElasticsearchRules.ElasticsearchAggregateRule.html" title="class in org.apache.calcite.adapter.elasticsearch">ElasticsearchRules.ElasticsearchAggregateRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert an <a href="../../rel/logical/LogicalAggregate.html" title="class in org.apache.calcite.rel.logical"><code>LogicalAggregate</code></a>
to an <a href="../../adapter/elasticsearch/ElasticsearchAggregate.html" title="class in org.apache.calcite.adapter.elasticsearch"><code>ElasticsearchAggregate</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>(package private) static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/elasticsearch/ElasticsearchRules.ElasticsearchConverterRule.html" title="class in org.apache.calcite.adapter.elasticsearch">ElasticsearchRules.ElasticsearchConverterRule</a></span></code></th>
<td class="colLast">
<div class="block">Base class for planner rules that convert a relational expression to
Elasticsearch calling convention.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/elasticsearch/ElasticsearchRules.ElasticsearchFilterRule.html" title="class in org.apache.calcite.adapter.elasticsearch">ElasticsearchRules.ElasticsearchFilterRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert a <a href="../../rel/logical/LogicalFilter.html" title="class in org.apache.calcite.rel.logical"><code>LogicalFilter</code></a> to an
<a href="../../adapter/elasticsearch/ElasticsearchFilter.html" title="class in org.apache.calcite.adapter.elasticsearch"><code>ElasticsearchFilter</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/elasticsearch/ElasticsearchRules.ElasticsearchProjectRule.html" title="class in org.apache.calcite.adapter.elasticsearch">ElasticsearchRules.ElasticsearchProjectRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert a <a href="../../rel/logical/LogicalProject.html" title="class in org.apache.calcite.rel.logical"><code>LogicalProject</code></a>
to an <a href="../../adapter/elasticsearch/ElasticsearchProject.html" title="class in org.apache.calcite.adapter.elasticsearch"><code>ElasticsearchProject</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/elasticsearch/ElasticsearchRules.ElasticsearchSortRule.html" title="class in org.apache.calcite.adapter.elasticsearch">ElasticsearchRules.ElasticsearchSortRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert a <a href="../../rel/core/Sort.html" title="class in org.apache.calcite.rel.core"><code>Sort</code></a> to an
<a href="../../adapter/elasticsearch/ElasticsearchSort.html" title="class in org.apache.calcite.adapter.elasticsearch"><code>ElasticsearchSort</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/elasticsearch/ElasticsearchToEnumerableConverterRule.html" title="class in org.apache.calcite.adapter.elasticsearch">ElasticsearchToEnumerableConverterRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert a relational expression from
<a href="../../adapter/elasticsearch/ElasticsearchRel.html#CONVENTION"><code>ElasticsearchRel.CONVENTION</code></a> to <a href="../../adapter/enumerable/EnumerableConvention.html" title="enum in org.apache.calcite.adapter.enumerable"><code>EnumerableConvention</code></a>.</div>
</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Fields in <a href="../../adapter/elasticsearch/package-summary.html">org.apache.calcite.adapter.elasticsearch</a> declared as <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>(package private) static <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">ElasticsearchRules.ElasticsearchAggregateRule.</span><code><span class="memberNameLink"><a href="../../adapter/elasticsearch/ElasticsearchRules.ElasticsearchAggregateRule.html#INSTANCE">INSTANCE</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>(package private) static <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>[]</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">ElasticsearchRules.</span><code><span class="memberNameLink"><a href="../../adapter/elasticsearch/ElasticsearchRules.html#RULES">RULES</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
</section>
</li>
<li class="blockList">
<section role="region"><a id="org.apache.calcite.adapter.enumerable">
<!-- -->
</a>
<h3>Uses of <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a> in <a href="../../adapter/enumerable/package-summary.html">org.apache.calcite.adapter.enumerable</a></h3>
<table class="useSummary">
<caption><span>Subclasses of <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a> in <a href="../../adapter/enumerable/package-summary.html">org.apache.calcite.adapter.enumerable</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>(package private) class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/enumerable/EnumerableAggregateRule.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableAggregateRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert a <a href="../../rel/logical/LogicalAggregate.html" title="class in org.apache.calcite.rel.logical"><code>LogicalAggregate</code></a>
to an <a href="../../adapter/enumerable/EnumerableAggregate.html" title="class in org.apache.calcite.adapter.enumerable"><code>EnumerableAggregate</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/enumerable/EnumerableBindable.EnumerableToBindableConverterRule.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableBindable.EnumerableToBindableConverterRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule that converts any enumerable relational expression to bindable.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>(package private) class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/enumerable/EnumerableCalcRule.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableCalcRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert a <a href="../../rel/logical/LogicalCalc.html" title="class in org.apache.calcite.rel.logical"><code>LogicalCalc</code></a> to an
<a href="../../adapter/enumerable/EnumerableCalc.html" title="class in org.apache.calcite.adapter.enumerable"><code>EnumerableCalc</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>(package private) class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/enumerable/EnumerableCollectRule.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableCollectRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert an <a href="../../rel/core/Collect.html" title="class in org.apache.calcite.rel.core"><code>Collect</code></a> to an
<a href="../../adapter/enumerable/EnumerableCollect.html" title="class in org.apache.calcite.adapter.enumerable"><code>EnumerableCollect</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/enumerable/EnumerableCorrelateRule.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableCorrelateRule</a></span></code></th>
<td class="colLast">
<div class="block">Implementation of nested loops over enumerable inputs.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>(package private) class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/enumerable/EnumerableFilterRule.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableFilterRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert a <a href="../../rel/logical/LogicalFilter.html" title="class in org.apache.calcite.rel.logical"><code>LogicalFilter</code></a> to an
<a href="../../adapter/enumerable/EnumerableFilter.html" title="class in org.apache.calcite.adapter.enumerable"><code>EnumerableFilter</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/enumerable/EnumerableFilterToCalcRule.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableFilterToCalcRule</a></span></code></th>
<td class="colLast">
<div class="block">Variant of <a href="../../rel/rules/FilterToCalcRule.html" title="class in org.apache.calcite.rel.rules"><code>FilterToCalcRule</code></a> for
<a href="../../adapter/enumerable/EnumerableConvention.html" title="enum in org.apache.calcite.adapter.enumerable"><code>enumerable calling convention</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/enumerable/EnumerableInterpreterRule.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableInterpreterRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that converts <a href="../../interpreter/BindableRel.html" title="interface in org.apache.calcite.interpreter"><code>BindableRel</code></a>
to <a href="../../adapter/enumerable/EnumerableRel.html" title="interface in org.apache.calcite.adapter.enumerable"><code>EnumerableRel</code></a> by creating
an <a href="../../adapter/enumerable/EnumerableInterpreter.html" title="class in org.apache.calcite.adapter.enumerable"><code>EnumerableInterpreter</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>(package private) class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/enumerable/EnumerableIntersectRule.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableIntersectRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert a
<a href="../../rel/logical/LogicalIntersect.html" title="class in org.apache.calcite.rel.logical"><code>LogicalIntersect</code></a> to an
<a href="../../adapter/enumerable/EnumerableIntersect.html" title="class in org.apache.calcite.adapter.enumerable"><code>EnumerableIntersect</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>(package private) class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/enumerable/EnumerableJoinRule.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableJoinRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that converts a
<a href="../../rel/logical/LogicalJoin.html" title="class in org.apache.calcite.rel.logical"><code>LogicalJoin</code></a> relational expression
<a href="../../adapter/enumerable/EnumerableConvention.html" title="enum in org.apache.calcite.adapter.enumerable"><code>enumerable calling convention</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>(package private) class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/enumerable/EnumerableLimitRule.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableLimitRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert an <a href="../../rel/core/Sort.html" title="class in org.apache.calcite.rel.core"><code>Sort</code></a> that has
<code>offset</code> or <code>fetch</code> set to an
<a href="../../adapter/enumerable/EnumerableLimit.html" title="class in org.apache.calcite.adapter.enumerable"><code>EnumerableLimit</code></a>
on top of a "pure" <code>Sort</code> that has no offset or fetch.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>(package private) class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/enumerable/EnumerableMergeJoinRule.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableMergeJoinRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that converts a
<a href="../../rel/logical/LogicalJoin.html" title="class in org.apache.calcite.rel.logical"><code>LogicalJoin</code></a> relational expression
<a href="../../adapter/enumerable/EnumerableConvention.html" title="enum in org.apache.calcite.adapter.enumerable"><code>enumerable calling convention</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>(package private) class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/enumerable/EnumerableMinusRule.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableMinusRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert an <a href="../../rel/logical/LogicalMinus.html" title="class in org.apache.calcite.rel.logical"><code>LogicalMinus</code></a> to an
<a href="../../adapter/enumerable/EnumerableMinus.html" title="class in org.apache.calcite.adapter.enumerable"><code>EnumerableMinus</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>(package private) class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/enumerable/EnumerableProjectRule.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableProjectRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert a <a href="../../rel/logical/LogicalProject.html" title="class in org.apache.calcite.rel.logical"><code>LogicalProject</code></a> to an
<a href="../../adapter/enumerable/EnumerableProject.html" title="class in org.apache.calcite.adapter.enumerable"><code>EnumerableProject</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/enumerable/EnumerableProjectToCalcRule.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableProjectToCalcRule</a></span></code></th>
<td class="colLast">
<div class="block">Variant of <a href="../../rel/rules/ProjectToCalcRule.html" title="class in org.apache.calcite.rel.rules"><code>ProjectToCalcRule</code></a> for
<a href="../../adapter/enumerable/EnumerableConvention.html" title="enum in org.apache.calcite.adapter.enumerable"><code>enumerable calling convention</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/enumerable/EnumerableRepeatUnionRule.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableRepeatUnionRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert a <a href="../../rel/logical/LogicalRepeatUnion.html" title="class in org.apache.calcite.rel.logical"><code>LogicalRepeatUnion</code></a> into an <a href="../../adapter/enumerable/EnumerableRepeatUnion.html" title="class in org.apache.calcite.adapter.enumerable"><code>EnumerableRepeatUnion</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>(package private) class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/enumerable/EnumerableSemiJoinRule.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableSemiJoinRule</a></span></code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="../../adapter/enumerable/EnumerableJoinRule.html" title="class in org.apache.calcite.adapter.enumerable"><code>EnumerableJoinRule</code></a> instead.</div>
</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>(package private) class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/enumerable/EnumerableSortRule.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableSortRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert an <a href="../../rel/core/Sort.html" title="class in org.apache.calcite.rel.core"><code>Sort</code></a> to an
<a href="../../adapter/enumerable/EnumerableSort.html" title="class in org.apache.calcite.adapter.enumerable"><code>EnumerableSort</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/enumerable/EnumerableTableFunctionScanRule.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableTableFunctionScanRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that converts a
<a href="../../rel/logical/LogicalTableFunctionScan.html" title="class in org.apache.calcite.rel.logical"><code>LogicalTableFunctionScan</code></a>
relational expression
<a href="../../adapter/enumerable/EnumerableConvention.html" title="enum in org.apache.calcite.adapter.enumerable"><code>enumerable calling convention</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/enumerable/EnumerableTableModifyRule.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableTableModifyRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that converts a
<a href="../../rel/logical/LogicalTableModify.html" title="class in org.apache.calcite.rel.logical"><code>LogicalTableModify</code></a>
relational expression
<a href="../../adapter/enumerable/EnumerableConvention.html" title="enum in org.apache.calcite.adapter.enumerable"><code>enumerable calling convention</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/enumerable/EnumerableTableScanRule.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableTableScanRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that converts a
<a href="../../rel/logical/LogicalTableFunctionScan.html" title="class in org.apache.calcite.rel.logical"><code>LogicalTableFunctionScan</code></a>
relational expression
<a href="../../adapter/enumerable/EnumerableConvention.html" title="enum in org.apache.calcite.adapter.enumerable"><code>enumerable calling convention</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/enumerable/EnumerableTableSpoolRule.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableTableSpoolRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert a <a href="../../rel/logical/LogicalTableSpool.html" title="class in org.apache.calcite.rel.logical"><code>LogicalTableSpool</code></a> into an
<a href="../../adapter/enumerable/EnumerableTableSpool.html" title="class in org.apache.calcite.adapter.enumerable"><code>EnumerableTableSpool</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>(package private) class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/enumerable/EnumerableUncollectRule.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableUncollectRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert an <a href="../../rel/core/Uncollect.html" title="class in org.apache.calcite.rel.core"><code>Uncollect</code></a> to an
<a href="../../adapter/enumerable/EnumerableUncollect.html" title="class in org.apache.calcite.adapter.enumerable"><code>EnumerableUncollect</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>(package private) class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/enumerable/EnumerableUnionRule.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableUnionRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert an <a href="../../rel/logical/LogicalUnion.html" title="class in org.apache.calcite.rel.logical"><code>LogicalUnion</code></a> to an
<a href="../../adapter/enumerable/EnumerableUnion.html" title="class in org.apache.calcite.adapter.enumerable"><code>EnumerableUnion</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/enumerable/EnumerableValuesRule.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableValuesRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that converts a
<a href="../../rel/logical/LogicalValues.html" title="class in org.apache.calcite.rel.logical"><code>LogicalValues</code></a>
relational expression
<a href="../../adapter/enumerable/EnumerableConvention.html" title="enum in org.apache.calcite.adapter.enumerable"><code>enumerable calling convention</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>(package private) class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/enumerable/EnumerableWindowRule.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableWindowRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert a <a href="../../rel/logical/LogicalWindow.html" title="class in org.apache.calcite.rel.logical"><code>LogicalWindow</code></a> to
an <a href="../../adapter/enumerable/EnumerableWindow.html" title="class in org.apache.calcite.adapter.enumerable"><code>EnumerableWindow</code></a>.</div>
</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Fields in <a href="../../adapter/enumerable/package-summary.html">org.apache.calcite.adapter.enumerable</a> declared as <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">EnumerableRules.</span><code><span class="memberNameLink"><a href="../../adapter/enumerable/EnumerableRules.html#ENUMERABLE_CORRELATE_RULE">ENUMERABLE_CORRELATE_RULE</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">EnumerableRules.</span><code><span class="memberNameLink"><a href="../../adapter/enumerable/EnumerableRules.html#ENUMERABLE_JOIN_RULE">ENUMERABLE_JOIN_RULE</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">EnumerableRules.</span><code><span class="memberNameLink"><a href="../../adapter/enumerable/EnumerableRules.html#ENUMERABLE_MERGE_JOIN_RULE">ENUMERABLE_MERGE_JOIN_RULE</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">EnumerableRules.</span><code><span class="memberNameLink"><a href="../../adapter/enumerable/EnumerableRules.html#ENUMERABLE_SEMI_JOIN_RULE">ENUMERABLE_SEMI_JOIN_RULE</a></span></code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">To be removed along with
<a href="../../rel/core/SemiJoin.html" title="class in org.apache.calcite.rel.core"><code>SemiJoin</code></a>;
use <a href="../../adapter/enumerable/EnumerableRules.html#ENUMERABLE_JOIN_RULE"><code>EnumerableRules.ENUMERABLE_JOIN_RULE</code></a> instead.</div>
</div>
</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Fields in <a href="../../adapter/enumerable/package-summary.html">org.apache.calcite.adapter.enumerable</a> with type parameters of type <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>static java.util.List&lt;<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">EnumerableRules.</span><code><span class="memberNameLink"><a href="../../adapter/enumerable/EnumerableRules.html#ENUMERABLE_RULES">ENUMERABLE_RULES</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Methods in <a href="../../adapter/enumerable/package-summary.html">org.apache.calcite.adapter.enumerable</a> that return types with arguments of type <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>static java.util.List&lt;<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">EnumerableRules.</span><code><span class="memberNameLink"><a href="../../adapter/enumerable/EnumerableRules.html#rules()">rules</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
</section>
</li>
<li class="blockList">
<section role="region"><a id="org.apache.calcite.adapter.geode.rel">
<!-- -->
</a>
<h3>Uses of <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a> in <a href="../../adapter/geode/rel/package-summary.html">org.apache.calcite.adapter.geode.rel</a></h3>
<table class="useSummary">
<caption><span>Subclasses of <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a> in <a href="../../adapter/geode/rel/package-summary.html">org.apache.calcite.adapter.geode.rel</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/geode/rel/GeodeRules.GeodeAggregateRule.html" title="class in org.apache.calcite.adapter.geode.rel">GeodeRules.GeodeAggregateRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert <a href="../../rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a> to a
<a href="../../adapter/geode/rel/GeodeAggregate.html" title="class in org.apache.calcite.adapter.geode.rel"><code>GeodeAggregate</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>(package private) static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/geode/rel/GeodeRules.GeodeConverterRule.html" title="class in org.apache.calcite.adapter.geode.rel">GeodeRules.GeodeConverterRule</a></span></code></th>
<td class="colLast">
<div class="block">Base class for planner rules that convert a relational
expression to Geode calling convention.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/geode/rel/GeodeRules.GeodeFilterRule.html" title="class in org.apache.calcite.adapter.geode.rel">GeodeRules.GeodeFilterRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert a <a href="../../rel/logical/LogicalFilter.html" title="class in org.apache.calcite.rel.logical"><code>LogicalFilter</code></a> to a
<a href="../../adapter/geode/rel/GeodeFilter.html" title="class in org.apache.calcite.adapter.geode.rel"><code>GeodeFilter</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/geode/rel/GeodeRules.GeodeProjectRule.html" title="class in org.apache.calcite.adapter.geode.rel">GeodeRules.GeodeProjectRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert a <a href="../../rel/logical/LogicalProject.html" title="class in org.apache.calcite.rel.logical"><code>LogicalProject</code></a> to a <a href="../../adapter/geode/rel/GeodeProject.html" title="class in org.apache.calcite.adapter.geode.rel"><code>GeodeProject</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/geode/rel/GeodeRules.GeodeSortLimitRule.html" title="class in org.apache.calcite.adapter.geode.rel">GeodeRules.GeodeSortLimitRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert the Limit in <a href="../../rel/core/Sort.html" title="class in org.apache.calcite.rel.core"><code>Sort</code></a> to a
<a href="../../adapter/geode/rel/GeodeSort.html" title="class in org.apache.calcite.adapter.geode.rel"><code>GeodeSort</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/geode/rel/GeodeToEnumerableConverterRule.html" title="class in org.apache.calcite.adapter.geode.rel">GeodeToEnumerableConverterRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert a relational expression from
<a href="../../adapter/geode/rel/GeodeRel.html#CONVENTION"><code>GeodeRel.CONVENTION</code></a> to <a href="../../adapter/enumerable/EnumerableConvention.html" title="enum in org.apache.calcite.adapter.enumerable"><code>EnumerableConvention</code></a>.</div>
</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Fields in <a href="../../adapter/geode/rel/package-summary.html">org.apache.calcite.adapter.geode.rel</a> declared as <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>(package private) static <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>[]</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">GeodeRules.</span><code><span class="memberNameLink"><a href="../../adapter/geode/rel/GeodeRules.html#RULES">RULES</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
</section>
</li>
<li class="blockList">
<section role="region"><a id="org.apache.calcite.adapter.jdbc">
<!-- -->
</a>
<h3>Uses of <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a> in <a href="../../adapter/jdbc/package-summary.html">org.apache.calcite.adapter.jdbc</a></h3>
<table class="useSummary">
<caption><span>Subclasses of <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a> in <a href="../../adapter/jdbc/package-summary.html">org.apache.calcite.adapter.jdbc</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/jdbc/JdbcRules.JdbcAggregateRule.html" title="class in org.apache.calcite.adapter.jdbc">JdbcRules.JdbcAggregateRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert a <a href="../../rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a>
to a <a href="../../adapter/jdbc/JdbcRules.JdbcAggregate.html" title="class in org.apache.calcite.adapter.jdbc"><code>JdbcRules.JdbcAggregate</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/jdbc/JdbcRules.JdbcCalcRule.html" title="class in org.apache.calcite.adapter.jdbc">JdbcRules.JdbcCalcRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert a <a href="../../rel/core/Calc.html" title="class in org.apache.calcite.rel.core"><code>Calc</code></a> to an
<a href="../../adapter/jdbc/JdbcRules.JdbcCalc.html" title="class in org.apache.calcite.adapter.jdbc"><code>JdbcRules.JdbcCalc</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>(package private) static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/jdbc/JdbcRules.JdbcConverterRule.html" title="class in org.apache.calcite.adapter.jdbc">JdbcRules.JdbcConverterRule</a></span></code></th>
<td class="colLast">
<div class="block">Abstract base class for rule that converts to JDBC.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/jdbc/JdbcRules.JdbcFilterRule.html" title="class in org.apache.calcite.adapter.jdbc">JdbcRules.JdbcFilterRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert a <a href="../../rel/core/Filter.html" title="class in org.apache.calcite.rel.core"><code>Filter</code></a> to
an <a href="../../adapter/jdbc/JdbcRules.JdbcFilter.html" title="class in org.apache.calcite.adapter.jdbc"><code>JdbcRules.JdbcFilter</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/jdbc/JdbcRules.JdbcIntersectRule.html" title="class in org.apache.calcite.adapter.jdbc">JdbcRules.JdbcIntersectRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert a <a href="../../rel/core/Intersect.html" title="class in org.apache.calcite.rel.core"><code>Intersect</code></a>
to a <a href="../../adapter/jdbc/JdbcRules.JdbcIntersect.html" title="class in org.apache.calcite.adapter.jdbc"><code>JdbcRules.JdbcIntersect</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/jdbc/JdbcRules.JdbcJoinRule.html" title="class in org.apache.calcite.adapter.jdbc">JdbcRules.JdbcJoinRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule that converts a join to JDBC.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/jdbc/JdbcRules.JdbcMinusRule.html" title="class in org.apache.calcite.adapter.jdbc">JdbcRules.JdbcMinusRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert a <a href="../../rel/core/Minus.html" title="class in org.apache.calcite.rel.core"><code>Minus</code></a> to a
<a href="../../adapter/jdbc/JdbcRules.JdbcMinus.html" title="class in org.apache.calcite.adapter.jdbc"><code>JdbcRules.JdbcMinus</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/jdbc/JdbcRules.JdbcProjectRule.html" title="class in org.apache.calcite.adapter.jdbc">JdbcRules.JdbcProjectRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert a <a href="../../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a> to
an <a href="../../adapter/jdbc/JdbcRules.JdbcProject.html" title="class in org.apache.calcite.adapter.jdbc"><code>JdbcRules.JdbcProject</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/jdbc/JdbcRules.JdbcSortRule.html" title="class in org.apache.calcite.adapter.jdbc">JdbcRules.JdbcSortRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert a <a href="../../rel/core/Sort.html" title="class in org.apache.calcite.rel.core"><code>Sort</code></a> to an
<a href="../../adapter/jdbc/JdbcRules.JdbcSort.html" title="class in org.apache.calcite.adapter.jdbc"><code>JdbcRules.JdbcSort</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/jdbc/JdbcRules.JdbcTableModificationRule.html" title="class in org.apache.calcite.adapter.jdbc">JdbcRules.JdbcTableModificationRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule that converts a table-modification to JDBC.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/jdbc/JdbcRules.JdbcUnionRule.html" title="class in org.apache.calcite.adapter.jdbc">JdbcRules.JdbcUnionRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert an <a href="../../rel/core/Union.html" title="class in org.apache.calcite.rel.core"><code>Union</code></a> to a
<a href="../../adapter/jdbc/JdbcRules.JdbcUnion.html" title="class in org.apache.calcite.adapter.jdbc"><code>JdbcRules.JdbcUnion</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/jdbc/JdbcRules.JdbcValuesRule.html" title="class in org.apache.calcite.adapter.jdbc">JdbcRules.JdbcValuesRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule that converts a values operator to JDBC.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/jdbc/JdbcToEnumerableConverterRule.html" title="class in org.apache.calcite.adapter.jdbc">JdbcToEnumerableConverterRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert a relational expression from
<a href="../../adapter/jdbc/JdbcConvention.html" title="class in org.apache.calcite.adapter.jdbc"><code>JdbcConvention</code></a> to
<a href="../../adapter/enumerable/EnumerableConvention.html" title="enum in org.apache.calcite.adapter.enumerable"><code>EnumerableConvention</code></a>.</div>
</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Methods in <a href="../../adapter/jdbc/package-summary.html">org.apache.calcite.adapter.jdbc</a> that return types with arguments of type <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>static java.util.List&lt;<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">JdbcRules.</span><code><span class="memberNameLink"><a href="../../adapter/jdbc/JdbcRules.html#rules(org.apache.calcite.adapter.jdbc.JdbcConvention)">rules</a></span>&#8203;(<a href="../../adapter/jdbc/JdbcConvention.html" title="class in org.apache.calcite.adapter.jdbc">JdbcConvention</a>&nbsp;out)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.util.List&lt;<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">JdbcRules.</span><code><span class="memberNameLink"><a href="../../adapter/jdbc/JdbcRules.html#rules(org.apache.calcite.adapter.jdbc.JdbcConvention,org.apache.calcite.tools.RelBuilderFactory)">rules</a></span>&#8203;(<a href="../../adapter/jdbc/JdbcConvention.html" title="class in org.apache.calcite.adapter.jdbc">JdbcConvention</a>&nbsp;out,
<a href="../../tools/RelBuilderFactory.html" title="interface in org.apache.calcite.tools">RelBuilderFactory</a>&nbsp;relBuilderFactory)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
</section>
</li>
<li class="blockList">
<section role="region"><a id="org.apache.calcite.adapter.mongodb">
<!-- -->
</a>
<h3>Uses of <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a> in <a href="../../adapter/mongodb/package-summary.html">org.apache.calcite.adapter.mongodb</a></h3>
<table class="useSummary">
<caption><span>Subclasses of <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a> in <a href="../../adapter/mongodb/package-summary.html">org.apache.calcite.adapter.mongodb</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/mongodb/MongoRules.MongoAggregateRule.html" title="class in org.apache.calcite.adapter.mongodb">MongoRules.MongoAggregateRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert an <a href="../../rel/logical/LogicalAggregate.html" title="class in org.apache.calcite.rel.logical"><code>LogicalAggregate</code></a>
to an <a href="../../adapter/mongodb/MongoAggregate.html" title="class in org.apache.calcite.adapter.mongodb"><code>MongoAggregate</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>(package private) static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/mongodb/MongoRules.MongoConverterRule.html" title="class in org.apache.calcite.adapter.mongodb">MongoRules.MongoConverterRule</a></span></code></th>
<td class="colLast">
<div class="block">Base class for planner rules that convert a relational expression to
MongoDB calling convention.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/mongodb/MongoRules.MongoFilterRule.html" title="class in org.apache.calcite.adapter.mongodb">MongoRules.MongoFilterRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert a <a href="../../rel/logical/LogicalFilter.html" title="class in org.apache.calcite.rel.logical"><code>LogicalFilter</code></a> to a
<a href="../../adapter/mongodb/MongoFilter.html" title="class in org.apache.calcite.adapter.mongodb"><code>MongoFilter</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/mongodb/MongoRules.MongoProjectRule.html" title="class in org.apache.calcite.adapter.mongodb">MongoRules.MongoProjectRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert a <a href="../../rel/logical/LogicalProject.html" title="class in org.apache.calcite.rel.logical"><code>LogicalProject</code></a>
to a <a href="../../adapter/mongodb/MongoProject.html" title="class in org.apache.calcite.adapter.mongodb"><code>MongoProject</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/mongodb/MongoRules.MongoSortRule.html" title="class in org.apache.calcite.adapter.mongodb">MongoRules.MongoSortRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert a <a href="../../rel/core/Sort.html" title="class in org.apache.calcite.rel.core"><code>Sort</code></a> to a
<a href="../../adapter/mongodb/MongoSort.html" title="class in org.apache.calcite.adapter.mongodb"><code>MongoSort</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/mongodb/MongoToEnumerableConverterRule.html" title="class in org.apache.calcite.adapter.mongodb">MongoToEnumerableConverterRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert a relational expression from
<a href="../../adapter/mongodb/MongoRel.html#CONVENTION"><code>MongoRel.CONVENTION</code></a> to <a href="../../adapter/enumerable/EnumerableConvention.html" title="enum in org.apache.calcite.adapter.enumerable"><code>EnumerableConvention</code></a>.</div>
</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Fields in <a href="../../adapter/mongodb/package-summary.html">org.apache.calcite.adapter.mongodb</a> declared as <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">MongoRules.MongoAggregateRule.</span><code><span class="memberNameLink"><a href="../../adapter/mongodb/MongoRules.MongoAggregateRule.html#INSTANCE">INSTANCE</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>[]</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">MongoRules.</span><code><span class="memberNameLink"><a href="../../adapter/mongodb/MongoRules.html#RULES">RULES</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
</section>
</li>
<li class="blockList">
<section role="region"><a id="org.apache.calcite.adapter.pig">
<!-- -->
</a>
<h3>Uses of <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a> in <a href="../../adapter/pig/package-summary.html">org.apache.calcite.adapter.pig</a></h3>
<table class="useSummary">
<caption><span>Subclasses of <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a> in <a href="../../adapter/pig/package-summary.html">org.apache.calcite.adapter.pig</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/pig/PigRules.PigAggregateRule.html" title="class in org.apache.calcite.adapter.pig">PigRules.PigAggregateRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert a <a href="../../rel/logical/LogicalAggregate.html" title="class in org.apache.calcite.rel.logical"><code>LogicalAggregate</code></a> to a
<a href="../../adapter/pig/PigAggregate.html" title="class in org.apache.calcite.adapter.pig"><code>PigAggregate</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/pig/PigRules.PigFilterRule.html" title="class in org.apache.calcite.adapter.pig">PigRules.PigFilterRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert a <a href="../../rel/logical/LogicalFilter.html" title="class in org.apache.calcite.rel.logical"><code>LogicalFilter</code></a> to a
<a href="../../adapter/pig/PigFilter.html" title="class in org.apache.calcite.adapter.pig"><code>PigFilter</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/pig/PigRules.PigJoinRule.html" title="class in org.apache.calcite.adapter.pig">PigRules.PigJoinRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert a <a href="../../rel/logical/LogicalJoin.html" title="class in org.apache.calcite.rel.logical"><code>LogicalJoin</code></a> to
a <a href="../../adapter/pig/PigJoin.html" title="class in org.apache.calcite.adapter.pig"><code>PigJoin</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/pig/PigRules.PigProjectRule.html" title="class in org.apache.calcite.adapter.pig">PigRules.PigProjectRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert a <a href="../../rel/logical/LogicalProject.html" title="class in org.apache.calcite.rel.logical"><code>LogicalProject</code></a> to
a <a href="../../adapter/pig/PigProject.html" title="class in org.apache.calcite.adapter.pig"><code>PigProject</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/pig/PigRules.PigTableScanRule.html" title="class in org.apache.calcite.adapter.pig">PigRules.PigTableScanRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert a <a href="../../rel/logical/LogicalTableScan.html" title="class in org.apache.calcite.rel.logical"><code>LogicalTableScan</code></a>
to a <a href="../../adapter/pig/PigTableScan.html" title="class in org.apache.calcite.adapter.pig"><code>PigTableScan</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/pig/PigToEnumerableConverterRule.html" title="class in org.apache.calcite.adapter.pig">PigToEnumerableConverterRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert a relational expression from
<a href="../../adapter/pig/PigRel.html#CONVENTION"><code>PigRel.CONVENTION</code></a> to <a href="../../adapter/enumerable/EnumerableConvention.html" title="enum in org.apache.calcite.adapter.enumerable"><code>EnumerableConvention</code></a>.</div>
</td>
</tr>
</tbody>
</table>
</section>
</li>
<li class="blockList">
<section role="region"><a id="org.apache.calcite.adapter.spark">
<!-- -->
</a>
<h3>Uses of <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a> in <a href="../../adapter/spark/package-summary.html">org.apache.calcite.adapter.spark</a></h3>
<table class="useSummary">
<caption><span>Subclasses of <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a> in <a href="../../adapter/spark/package-summary.html">org.apache.calcite.adapter.spark</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/spark/EnumerableToSparkConverterRule.html" title="class in org.apache.calcite.adapter.spark">EnumerableToSparkConverterRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert a relational expression from
<a href="../../adapter/jdbc/JdbcConvention.html" title="class in org.apache.calcite.adapter.jdbc"><code>JdbcConvention</code></a> to
<a href="../../adapter/spark/SparkRel.html#CONVENTION"><code>Spark convention</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/spark/JdbcToSparkConverterRule.html" title="class in org.apache.calcite.adapter.spark">JdbcToSparkConverterRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert a relational expression from
<a href="../../adapter/jdbc/JdbcConvention.html" title="class in org.apache.calcite.adapter.jdbc"><code>JdbcConvention</code></a> to
<a href="../../adapter/spark/SparkRel.html#CONVENTION"><code>Spark convention</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>(package private) static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/spark/SparkRules.EnumerableToSparkConverterRule.html" title="class in org.apache.calcite.adapter.spark">SparkRules.EnumerableToSparkConverterRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that converts from enumerable to Spark convention.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/spark/SparkRules.SparkCalcRule.html" title="class in org.apache.calcite.adapter.spark">SparkRules.SparkCalcRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert a <a href="../../rel/logical/LogicalCalc.html" title="class in org.apache.calcite.rel.logical"><code>LogicalCalc</code></a> to an
<a href="../../adapter/spark/SparkRules.SparkCalc.html" title="class in org.apache.calcite.adapter.spark"><code>SparkRules.SparkCalc</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>(package private) static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/spark/SparkRules.SparkToEnumerableConverterRule.html" title="class in org.apache.calcite.adapter.spark">SparkRules.SparkToEnumerableConverterRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that converts from Spark to enumerable convention.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/spark/SparkRules.SparkValuesRule.html" title="class in org.apache.calcite.adapter.spark">SparkRules.SparkValuesRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that implements VALUES operator in Spark convention.</div>
</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Methods in <a href="../../adapter/spark/package-summary.html">org.apache.calcite.adapter.spark</a> that return types with arguments of type <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>static java.util.List&lt;<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">SparkRules.</span><code><span class="memberNameLink"><a href="../../adapter/spark/SparkRules.html#rules()">rules</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
</section>
</li>
<li class="blockList">
<section role="region"><a id="org.apache.calcite.adapter.splunk">
<!-- -->
</a>
<h3>Uses of <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a> in <a href="../../adapter/splunk/package-summary.html">org.apache.calcite.adapter.splunk</a></h3>
<table class="useSummary">
<caption><span>Subclasses of <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a> in <a href="../../adapter/splunk/package-summary.html">org.apache.calcite.adapter.splunk</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../adapter/splunk/SplunkPushDownRule.html" title="class in org.apache.calcite.adapter.splunk">SplunkPushDownRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule to push filters and projections to Splunk.</div>
</td>
</tr>
</tbody>
</table>
</section>
</li>
<li class="blockList">
<section role="region"><a id="org.apache.calcite.interpreter">
<!-- -->
</a>
<h3>Uses of <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a> in <a href="../../interpreter/package-summary.html">org.apache.calcite.interpreter</a></h3>
<table class="useSummary">
<caption><span>Subclasses of <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a> in <a href="../../interpreter/package-summary.html">org.apache.calcite.interpreter</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../interpreter/Bindables.BindableAggregateRule.html" title="class in org.apache.calcite.interpreter">Bindables.BindableAggregateRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule that converts an <a href="../../rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a> to bindable convention.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../interpreter/Bindables.BindableFilterRule.html" title="class in org.apache.calcite.interpreter">Bindables.BindableFilterRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule that converts a <a href="../../rel/core/Filter.html" title="class in org.apache.calcite.rel.core"><code>Filter</code></a> to bindable convention.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../interpreter/Bindables.BindableJoinRule.html" title="class in org.apache.calcite.interpreter">Bindables.BindableJoinRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert a <a href="../../rel/logical/LogicalJoin.html" title="class in org.apache.calcite.rel.logical"><code>LogicalJoin</code></a>
to a <a href="../../interpreter/Bindables.BindableJoin.html" title="class in org.apache.calcite.interpreter"><code>Bindables.BindableJoin</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../interpreter/Bindables.BindableProjectRule.html" title="class in org.apache.calcite.interpreter">Bindables.BindableProjectRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert a <a href="../../rel/logical/LogicalProject.html" title="class in org.apache.calcite.rel.logical"><code>LogicalProject</code></a>
to a <a href="../../interpreter/Bindables.BindableProject.html" title="class in org.apache.calcite.interpreter"><code>Bindables.BindableProject</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../interpreter/Bindables.BindableSortRule.html" title="class in org.apache.calcite.interpreter">Bindables.BindableSortRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert an <a href="../../rel/core/Sort.html" title="class in org.apache.calcite.rel.core"><code>Sort</code></a> to a
<a href="../../interpreter/Bindables.BindableSort.html" title="class in org.apache.calcite.interpreter"><code>Bindables.BindableSort</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../interpreter/Bindables.BindableTableScanRule.html" title="class in org.apache.calcite.interpreter">Bindables.BindableTableScanRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule that converts a <a href="../../rel/core/TableScan.html" title="class in org.apache.calcite.rel.core"><code>TableScan</code></a>
to bindable convention.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../interpreter/Bindables.BindableUnionRule.html" title="class in org.apache.calcite.interpreter">Bindables.BindableUnionRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert an <a href="../../rel/logical/LogicalUnion.html" title="class in org.apache.calcite.rel.logical"><code>LogicalUnion</code></a>
to a <a href="../../interpreter/Bindables.BindableUnion.html" title="class in org.apache.calcite.interpreter"><code>Bindables.BindableUnion</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../interpreter/Bindables.BindableValuesRule.html" title="class in org.apache.calcite.interpreter">Bindables.BindableValuesRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule that converts a <a href="../../rel/core/Values.html" title="class in org.apache.calcite.rel.core"><code>Values</code></a> to bindable convention.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../interpreter/Bindables.BindableWindowRule.html" title="class in org.apache.calcite.interpreter">Bindables.BindableWindowRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert a <a href="../../rel/logical/LogicalWindow.html" title="class in org.apache.calcite.rel.logical"><code>LogicalWindow</code></a>
to a <a href="../../interpreter/Bindables.BindableWindow.html" title="class in org.apache.calcite.interpreter"><code>Bindables.BindableWindow</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../interpreter/NoneToBindableConverterRule.html" title="class in org.apache.calcite.interpreter">NoneToBindableConverterRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert a relational expression from
<a href="../Convention.html#NONE"><code>Convention.NONE</code></a>
to <a href="../../interpreter/BindableConvention.html" title="enum in org.apache.calcite.interpreter"><code>BindableConvention</code></a>.</div>
</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Fields in <a href="../../interpreter/package-summary.html">org.apache.calcite.interpreter</a> declared as <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">Bindables.</span><code><span class="memberNameLink"><a href="../../interpreter/Bindables.html#BINDABLE_AGGREGATE_RULE">BINDABLE_AGGREGATE_RULE</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">Bindables.</span><code><span class="memberNameLink"><a href="../../interpreter/Bindables.html#BINDABLE_FILTER_RULE">BINDABLE_FILTER_RULE</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">Bindables.</span><code><span class="memberNameLink"><a href="../../interpreter/Bindables.html#BINDABLE_JOIN_RULE">BINDABLE_JOIN_RULE</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">Bindables.</span><code><span class="memberNameLink"><a href="../../interpreter/Bindables.html#BINDABLE_PROJECT_RULE">BINDABLE_PROJECT_RULE</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">Bindables.</span><code><span class="memberNameLink"><a href="../../interpreter/Bindables.html#BINDABLE_SORT_RULE">BINDABLE_SORT_RULE</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">Bindables.</span><code><span class="memberNameLink"><a href="../../interpreter/Bindables.html#BINDABLE_TABLE_SCAN_RULE">BINDABLE_TABLE_SCAN_RULE</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">Bindables.</span><code><span class="memberNameLink"><a href="../../interpreter/Bindables.html#BINDABLE_UNION_RULE">BINDABLE_UNION_RULE</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">Bindables.</span><code><span class="memberNameLink"><a href="../../interpreter/Bindables.html#BINDABLE_VALUES_RULE">BINDABLE_VALUES_RULE</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">Bindables.</span><code><span class="memberNameLink"><a href="../../interpreter/Bindables.html#BINDABLE_WINDOW_RULE">BINDABLE_WINDOW_RULE</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Fields in <a href="../../interpreter/package-summary.html">org.apache.calcite.interpreter</a> with type parameters of type <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>static com.google.common.collect.ImmutableList&lt;<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">Bindables.</span><code><span class="memberNameLink"><a href="../../interpreter/Bindables.html#RULES">RULES</a></span></code></th>
<td class="colLast">
<div class="block">All rules that convert logical relational expression to bindable.</div>
</td>
</tr>
</tbody>
</table>
</section>
</li>
<li class="blockList">
<section role="region"><a id="org.apache.calcite.jdbc">
<!-- -->
</a>
<h3>Uses of <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a> in <a href="../../jdbc/package-summary.html">org.apache.calcite.jdbc</a></h3>
<table class="useSummary">
<caption><span>Methods in <a href="../../jdbc/package-summary.html">org.apache.calcite.jdbc</a> with parameters of type <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">CalcitePrepare.SparkHandler.RuleSetBuilder.</span><code><span class="memberNameLink"><a href="../../jdbc/CalcitePrepare.SparkHandler.RuleSetBuilder.html#addRule(org.apache.calcite.plan.RelOptRule)">addRule</a></span>&#8203;(<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&nbsp;rule)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">CalcitePrepare.SparkHandler.RuleSetBuilder.</span><code><span class="memberNameLink"><a href="../../jdbc/CalcitePrepare.SparkHandler.RuleSetBuilder.html#removeRule(org.apache.calcite.plan.RelOptRule)">removeRule</a></span>&#8203;(<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&nbsp;rule)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
</section>
</li>
<li class="blockList">
<section role="region"><a id="org.apache.calcite.plan">
<!-- -->
</a>
<h3>Uses of <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a> in <a href="../package-summary.html">org.apache.calcite.plan</a></h3>
<table class="useSummary">
<caption><span>Subclasses of <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a> in <a href="../package-summary.html">org.apache.calcite.plan</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../CommonRelSubExprRule.html" title="class in org.apache.calcite.plan">CommonRelSubExprRule</a></span></code></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="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../SubstitutionVisitor.FilterOnProjectRule.html" title="class in org.apache.calcite.plan">SubstitutionVisitor.FilterOnProjectRule</a></span></code></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>
</tbody>
</table>
<table class="useSummary">
<caption><span>Fields in <a href="../package-summary.html">org.apache.calcite.plan</a> declared as <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code><a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelOptRuleCall.</span><code><span class="memberNameLink"><a href="../RelOptRuleCall.html#rule">rule</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelOptRuleOperand.</span><code><span class="memberNameLink"><a href="../RelOptRuleOperand.html#rule">rule</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Fields in <a href="../package-summary.html">org.apache.calcite.plan</a> with type parameters of type <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>(package private) static java.util.List&lt;<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelOptRules.</span><code><span class="memberNameLink"><a href="../RelOptRules.html#ABSTRACT_RELATIONAL_RULES">ABSTRACT_RELATIONAL_RULES</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>(package private) static java.util.List&lt;<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelOptRules.</span><code><span class="memberNameLink"><a href="../RelOptRules.html#ABSTRACT_RULES">ABSTRACT_RULES</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>(package private) static java.util.List&lt;<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelOptRules.</span><code><span class="memberNameLink"><a href="../RelOptRules.html#BASE_RULES">BASE_RULES</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static com.google.common.collect.ImmutableList&lt;<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelOptRules.</span><code><span class="memberNameLink"><a href="../RelOptRules.html#CALC_RULES">CALC_RULES</a></span></code></th>
<td class="colLast">
<div class="block">The calc rule set is public for use from <a href="../../tools/Programs.html" title="class in org.apache.calcite.tools"><code>Programs</code></a></div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>(package private) static java.util.List&lt;<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelOptRules.</span><code><span class="memberNameLink"><a href="../RelOptRules.html#CONSTANT_REDUCTION_RULES">CONSTANT_REDUCTION_RULES</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private java.util.Map&lt;java.lang.String,&#8203;<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">AbstractRelOptPlanner.</span><code><span class="memberNameLink"><a href="../AbstractRelOptPlanner.html#mapDescToRule">mapDescToRule</a></span></code></th>
<td class="colLast">
<div class="block">Maps rule description to rule, just to ensure that rules' descriptions
are unique.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>(package private) static java.util.List&lt;<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelOptRules.</span><code><span class="memberNameLink"><a href="../RelOptRules.html#MATERIALIZATION_RULES">MATERIALIZATION_RULES</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Methods in <a href="../package-summary.html">org.apache.calcite.plan</a> that return <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code><a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelOptRuleCall.</span><code><span class="memberNameLink"><a href="../RelOptRuleCall.html#getRule()">getRule</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the invoked planner rule.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelOptRuleOperand.</span><code><span class="memberNameLink"><a href="../RelOptRuleOperand.html#getRule()">getRule</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the rule this operand belongs to.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">AbstractRelOptPlanner.</span><code><span class="memberNameLink"><a href="../AbstractRelOptPlanner.html#getRuleByDescription(java.lang.String)">getRuleByDescription</a></span>&#8203;(java.lang.String&nbsp;description)</code></th>
<td class="colLast">
<div class="block">Returns the rule with a given description</div>
</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Methods in <a href="../package-summary.html">org.apache.calcite.plan</a> that return types with arguments of type <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>java.util.List&lt;<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelOptPlanner.</span><code><span class="memberNameLink"><a href="../RelOptPlanner.html#getRules()">getRules</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the list of all registered rules.</div>
</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Methods in <a href="../package-summary.html">org.apache.calcite.plan</a> with parameters of type <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelOptPlanner.</span><code><span class="memberNameLink"><a href="../RelOptPlanner.html#addRule(org.apache.calcite.plan.RelOptRule)">addRule</a></span>&#8203;(<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&nbsp;rule)</code></th>
<td class="colLast">
<div class="block">Registers a rule.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelOptRule.</span><code><span class="memberNameLink"><a href="../RelOptRule.html#equals(org.apache.calcite.plan.RelOptRule)">equals</a></span>&#8203;(<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&nbsp;that)</code></th>
<td class="colLast">
<div class="block">Returns whether this rule is equal to another rule.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">AbstractRelOptPlanner.</span><code><span class="memberNameLink"><a href="../AbstractRelOptPlanner.html#isRuleExcluded(org.apache.calcite.plan.RelOptRule)">isRuleExcluded</a></span>&#8203;(<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&nbsp;rule)</code></th>
<td class="colLast">
<div class="block">Determines whether a given rule is excluded by ruleDescExclusionFilter.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">AbstractRelOptPlanner.</span><code><span class="memberNameLink"><a href="../AbstractRelOptPlanner.html#mapRuleDescription(org.apache.calcite.plan.RelOptRule)">mapRuleDescription</a></span>&#8203;(<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&nbsp;rule)</code></th>
<td class="colLast">
<div class="block">Registers a rule's description.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelOptPlanner.</span><code><span class="memberNameLink"><a href="../RelOptPlanner.html#removeRule(org.apache.calcite.plan.RelOptRule)">removeRule</a></span>&#8203;(<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&nbsp;rule)</code></th>
<td class="colLast">
<div class="block">Removes a rule.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelOptRuleOperand.</span><code><span class="memberNameLink"><a href="../RelOptRuleOperand.html#setRule(org.apache.calcite.plan.RelOptRule)">setRule</a></span>&#8203;(<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&nbsp;rule)</code></th>
<td class="colLast">
<div class="block">Sets the rule this operand belongs to</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">AbstractRelOptPlanner.</span><code><span class="memberNameLink"><a href="../AbstractRelOptPlanner.html#unmapRuleDescription(org.apache.calcite.plan.RelOptRule)">unmapRuleDescription</a></span>&#8203;(<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&nbsp;rule)</code></th>
<td class="colLast">
<div class="block">Removes the mapping between a rule and its description.</div>
</td>
</tr>
</tbody>
</table>
</section>
</li>
<li class="blockList">
<section role="region"><a id="org.apache.calcite.plan.hep">
<!-- -->
</a>
<h3>Uses of <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a> in <a href="../hep/package-summary.html">org.apache.calcite.plan.hep</a></h3>
<table class="useSummary">
<caption><span>Classes in <a href="../hep/package-summary.html">org.apache.calcite.plan.hep</a> with type parameters of type <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>(package private) static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../hep/HepInstruction.RuleClass.html" title="class in org.apache.calcite.plan.hep">HepInstruction.RuleClass</a>&lt;R extends <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&gt;</span></code></th>
<td class="colLast">
<div class="block">Instruction that executes all rules of a given class.</div>
</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Fields in <a href="../hep/package-summary.html">org.apache.calcite.plan.hep</a> declared as <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>(package private) <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">HepInstruction.RuleInstance.</span><code><span class="memberNameLink"><a href="../hep/HepInstruction.RuleInstance.html#rule">rule</a></span></code></th>
<td class="colLast">
<div class="block">Explicitly specified rule, or rule looked up by planner from
description.</div>
</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Fields in <a href="../hep/package-summary.html">org.apache.calcite.plan.hep</a> with type parameters of type <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>private java.util.Set&lt;<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">HepPlanner.</span><code><span class="memberNameLink"><a href="../hep/HepPlanner.html#allRules">allRules</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>(package private) java.util.Collection&lt;<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">HepInstruction.RuleCollection.</span><code><span class="memberNameLink"><a href="../hep/HepInstruction.RuleCollection.html#rules">rules</a></span></code></th>
<td class="colLast">
<div class="block">Collection of rules to apply.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>(package private) java.util.Set&lt;<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">HepInstruction.CommonRelSubExprRules.</span><code><span class="memberNameLink"><a href="../hep/HepInstruction.CommonRelSubExprRules.html#ruleSet">ruleSet</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>(package private) java.util.Set&lt;<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">HepInstruction.ConverterRules.</span><code><span class="memberNameLink"><a href="../hep/HepInstruction.ConverterRules.html#ruleSet">ruleSet</a></span></code></th>
<td class="colLast">
<div class="block">Actual rule set instantiated during planning by filtering all of the
planner's rules, looking for the desired converters.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>(package private) java.util.Set&lt;<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">HepInstruction.EndGroup.</span><code><span class="memberNameLink"><a href="../hep/HepInstruction.EndGroup.html#ruleSet">ruleSet</a></span></code></th>
<td class="colLast">
<div class="block">Actual rule set instantiated during planning by collecting grouped
rules.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>(package private) java.util.Set&lt;<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">HepInstruction.RuleClass.</span><code><span class="memberNameLink"><a href="../hep/HepInstruction.RuleClass.html#ruleSet">ruleSet</a></span></code></th>
<td class="colLast">
<div class="block">Actual rule set instantiated during planning by filtering all of the
planner's rules through ruleClass.</div>
</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Methods in <a href="../hep/package-summary.html">org.apache.calcite.plan.hep</a> with type parameters of type <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>&lt;R extends <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&gt;<br><a href="../hep/HepProgramBuilder.html" title="class in org.apache.calcite.plan.hep">HepProgramBuilder</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">HepProgramBuilder.</span><code><span class="memberNameLink"><a href="../hep/HepProgramBuilder.html#addRuleClass(java.lang.Class)">addRuleClass</a></span>&#8203;(java.lang.Class&lt;R&gt;&nbsp;ruleClass)</code></th>
<td class="colLast">
<div class="block">Adds an instruction to attempt to match any rules of a given class.</div>
</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Methods in <a href="../hep/package-summary.html">org.apache.calcite.plan.hep</a> that return types with arguments of type <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>java.util.List&lt;<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">HepPlanner.</span><code><span class="memberNameLink"><a href="../hep/HepPlanner.html#getRules()">getRules</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Methods in <a href="../hep/package-summary.html">org.apache.calcite.plan.hep</a> with parameters of type <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">HepPlanner.</span><code><span class="memberNameLink"><a href="../hep/HepPlanner.html#addRule(org.apache.calcite.plan.RelOptRule)">addRule</a></span>&#8203;(<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&nbsp;rule)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../hep/HepProgramBuilder.html" title="class in org.apache.calcite.plan.hep">HepProgramBuilder</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">HepProgramBuilder.</span><code><span class="memberNameLink"><a href="../hep/HepProgramBuilder.html#addRuleInstance(org.apache.calcite.plan.RelOptRule)">addRuleInstance</a></span>&#8203;(<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&nbsp;rule)</code></th>
<td class="colLast">
<div class="block">Adds an instruction to attempt to match a specific rule object.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="../hep/HepRelVertex.html" title="class in org.apache.calcite.plan.hep">HepRelVertex</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">HepPlanner.</span><code><span class="memberNameLink"><a href="../hep/HepPlanner.html#applyRule(org.apache.calcite.plan.RelOptRule,org.apache.calcite.plan.hep.HepRelVertex,boolean)">applyRule</a></span>&#8203;(<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&nbsp;rule,
<a href="../hep/HepRelVertex.html" title="class in org.apache.calcite.plan.hep">HepRelVertex</a>&nbsp;vertex,
boolean&nbsp;forceConversions)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">HepPlanner.</span><code><span class="memberNameLink"><a href="../hep/HepPlanner.html#removeRule(org.apache.calcite.plan.RelOptRule)">removeRule</a></span>&#8203;(<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&nbsp;rule)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Method parameters in <a href="../hep/package-summary.html">org.apache.calcite.plan.hep</a> with type arguments of type <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code><a href="../hep/HepProgramBuilder.html" title="class in org.apache.calcite.plan.hep">HepProgramBuilder</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">HepProgramBuilder.</span><code><span class="memberNameLink"><a href="../hep/HepProgramBuilder.html#addRuleCollection(java.util.Collection)">addRuleCollection</a></span>&#8203;(java.util.Collection&lt;<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&gt;&nbsp;rules)</code></th>
<td class="colLast">
<div class="block">Adds an instruction to attempt to match any rules in a given collection.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">HepPlanner.</span><code><span class="memberNameLink"><a href="../hep/HepPlanner.html#applyRules(java.util.Collection,boolean)">applyRules</a></span>&#8203;(java.util.Collection&lt;<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&gt;&nbsp;rules,
boolean&nbsp;forceConversions)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private int</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">HepPlanner.</span><code><span class="memberNameLink"><a href="../hep/HepPlanner.html#depthFirstApply(java.util.Iterator,java.util.Collection,boolean,int)">depthFirstApply</a></span>&#8203;(java.util.Iterator&lt;<a href="../hep/HepRelVertex.html" title="class in org.apache.calcite.plan.hep">HepRelVertex</a>&gt;&nbsp;iter,
java.util.Collection&lt;<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&gt;&nbsp;rules,
boolean&nbsp;forceConversions,
int&nbsp;nMatches)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
</section>
</li>
<li class="blockList">
<section role="region"><a id="org.apache.calcite.plan.volcano">
<!-- -->
</a>
<h3>Uses of <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a> in <a href="../volcano/package-summary.html">org.apache.calcite.plan.volcano</a></h3>
<table class="useSummary">
<caption><span>Subclasses of <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a> in <a href="../volcano/package-summary.html">org.apache.calcite.plan.volcano</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../volcano/AbstractConverter.ExpandConversionRule.html" title="class in org.apache.calcite.plan.volcano">AbstractConverter.ExpandConversionRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule which converts an <a href="../volcano/AbstractConverter.html" title="class in org.apache.calcite.plan.volcano"><code>AbstractConverter</code></a> into a chain of
converters from the source relation to the target traits.</div>
</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Fields in <a href="../volcano/package-summary.html">org.apache.calcite.plan.volcano</a> declared as <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>(package private) <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">VolcanoPlanner.RuleProvenance.</span><code><span class="memberNameLink"><a href="../volcano/VolcanoPlanner.RuleProvenance.html#rule">rule</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Fields in <a href="../volcano/package-summary.html">org.apache.calcite.plan.volcano</a> with type parameters of type <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>protected java.util.Set&lt;<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">VolcanoPlanner.</span><code><span class="memberNameLink"><a href="../volcano/VolcanoPlanner.html#ruleSet">ruleSet</a></span></code></th>
<td class="colLast">
<div class="block">Set of all registered rules.</div>
</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Methods in <a href="../volcano/package-summary.html">org.apache.calcite.plan.volcano</a> that return types with arguments of type <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>java.util.List&lt;<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">VolcanoPlanner.</span><code><span class="memberNameLink"><a href="../volcano/VolcanoPlanner.html#getRules()">getRules</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Methods in <a href="../volcano/package-summary.html">org.apache.calcite.plan.volcano</a> with parameters of type <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">VolcanoPlanner.</span><code><span class="memberNameLink"><a href="../volcano/VolcanoPlanner.html#addRule(org.apache.calcite.plan.RelOptRule)">addRule</a></span>&#8203;(<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&nbsp;rule)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">VolcanoPlanner.</span><code><span class="memberNameLink"><a href="../volcano/VolcanoPlanner.html#removeRule(org.apache.calcite.plan.RelOptRule)">removeRule</a></span>&#8203;(<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&nbsp;rule)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Constructors in <a href="../volcano/package-summary.html">org.apache.calcite.plan.volcano</a> with parameters of type <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../volcano/VolcanoPlanner.RuleProvenance.html#%3Cinit%3E(org.apache.calcite.plan.RelOptRule,com.google.common.collect.ImmutableList,int)">RuleProvenance</a></span>&#8203;(<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&nbsp;rule,
com.google.common.collect.ImmutableList&lt;<a href="../../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&gt;&nbsp;rels,
int&nbsp;callId)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
</section>
</li>
<li class="blockList">
<section role="region"><a id="org.apache.calcite.prepare">
<!-- -->
</a>
<h3>Uses of <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a> in <a href="../../prepare/package-summary.html">org.apache.calcite.prepare</a></h3>
<table class="useSummary">
<caption><span>Fields in <a href="../../prepare/package-summary.html">org.apache.calcite.prepare</a> with type parameters of type <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>static java.util.List&lt;<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">CalcitePrepareImpl.</span><code><span class="memberNameLink"><a href="../../prepare/CalcitePrepareImpl.html#ENUMERABLE_RULES">ENUMERABLE_RULES</a></span></code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
</tbody>
</table>
</section>
</li>
<li class="blockList">
<section role="region"><a id="org.apache.calcite.rel.convert">
<!-- -->
</a>
<h3>Uses of <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a> in <a href="../../rel/convert/package-summary.html">org.apache.calcite.rel.convert</a></h3>
<table class="useSummary">
<caption><span>Subclasses of <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a> in <a href="../../rel/convert/package-summary.html">org.apache.calcite.rel.convert</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/convert/ConverterRule.html" title="class in org.apache.calcite.rel.convert">ConverterRule</a></span></code></th>
<td class="colLast">
<div class="block">Abstract base class for a rule which converts from one calling convention to
another without changing semantics.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/convert/TraitMatchingRule.html" title="class in org.apache.calcite.rel.convert">TraitMatchingRule</a></span></code></th>
<td class="colLast">
<div class="block">TraitMatchingRule adapts a converter rule, restricting it to fire only when
its input already matches the expected output trait.</div>
</td>
</tr>
</tbody>
</table>
</section>
</li>
<li class="blockList">
<section role="region"><a id="org.apache.calcite.rel.rules">
<!-- -->
</a>
<h3>Uses of <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a> in <a href="../../rel/rules/package-summary.html">org.apache.calcite.rel.rules</a></h3>
<table class="useSummary">
<caption><span>Subclasses of <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a> in <a href="../../rel/rules/package-summary.html">org.apache.calcite.rel.rules</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/AbstractJoinExtractFilterRule.html" title="class in org.apache.calcite.rel.rules">AbstractJoinExtractFilterRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert an
<a href="../../rel/core/Join.html" title="class in org.apache.calcite.rel.core"><code>inner join</code></a> to a
<a href="../../rel/core/Filter.html" title="class in org.apache.calcite.rel.core"><code>filter</code></a> on top of a
<a href="../../rel/core/Join.html" title="class in org.apache.calcite.rel.core"><code>cartesian inner join</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/AbstractMaterializedViewRule.html" title="class in org.apache.calcite.rel.rules">AbstractMaterializedViewRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that converts a <a href="../../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a>
followed by <a href="../../rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a> or an
<a href="../../rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a> to a scan (and possibly
other operations) over a materialized view.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/AbstractMaterializedViewRule.MaterializedViewAggregateRule.html" title="class in org.apache.calcite.rel.rules">AbstractMaterializedViewRule.MaterializedViewAggregateRule</a></span></code></th>
<td class="colLast">
<div class="block">Materialized view rewriting for aggregate</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/AbstractMaterializedViewRule.MaterializedViewJoinRule.html" title="class in org.apache.calcite.rel.rules">AbstractMaterializedViewRule.MaterializedViewJoinRule</a></span></code></th>
<td class="colLast">
<div class="block">Materialized view rewriting for join</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/AbstractMaterializedViewRule.MaterializedViewOnlyAggregateRule.html" title="class in org.apache.calcite.rel.rules">AbstractMaterializedViewRule.MaterializedViewOnlyAggregateRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule that matches Aggregate.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/AbstractMaterializedViewRule.MaterializedViewOnlyFilterRule.html" title="class in org.apache.calcite.rel.rules">AbstractMaterializedViewRule.MaterializedViewOnlyFilterRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule that matches Filter.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/AbstractMaterializedViewRule.MaterializedViewOnlyJoinRule.html" title="class in org.apache.calcite.rel.rules">AbstractMaterializedViewRule.MaterializedViewOnlyJoinRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule that matches Join.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/AbstractMaterializedViewRule.MaterializedViewProjectAggregateRule.html" title="class in org.apache.calcite.rel.rules">AbstractMaterializedViewRule.MaterializedViewProjectAggregateRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule that matches Project on Aggregate.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/AbstractMaterializedViewRule.MaterializedViewProjectFilterRule.html" title="class in org.apache.calcite.rel.rules">AbstractMaterializedViewRule.MaterializedViewProjectFilterRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule that matches Project on Filter.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/AbstractMaterializedViewRule.MaterializedViewProjectJoinRule.html" title="class in org.apache.calcite.rel.rules">AbstractMaterializedViewRule.MaterializedViewProjectJoinRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule that matches Project on Join.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/AggregateExpandDistinctAggregatesRule.html" title="class in org.apache.calcite.rel.rules">AggregateExpandDistinctAggregatesRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that expands distinct aggregates
(such as <code>COUNT(DISTINCT x)</code>) from a
<a href="../../rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/AggregateExtractProjectRule.html" title="class in org.apache.calcite.rel.rules">AggregateExtractProjectRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to extract a <a href="../../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a>
from an <a href="../../rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a>
and push it down towards the input.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/AggregateFilterTransposeRule.html" title="class in org.apache.calcite.rel.rules">AggregateFilterTransposeRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that matches an <a href="../../rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a>
on a <a href="../../rel/core/Filter.html" title="class in org.apache.calcite.rel.core"><code>Filter</code></a> and transposes them,
pushing the aggregate below the filter.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/AggregateJoinJoinRemoveRule.html" title="class in org.apache.calcite.rel.rules">AggregateJoinJoinRemoveRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that matches an <a href="../../rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a>
on a <a href="../../rel/core/Join.html" title="class in org.apache.calcite.rel.core"><code>Join</code></a> and removes the left input
of the join provided that the left input is also a left join if possible.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/AggregateJoinRemoveRule.html" title="class in org.apache.calcite.rel.rules">AggregateJoinRemoveRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that matches an <a href="../../rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a>
on a <a href="../../rel/core/Join.html" title="class in org.apache.calcite.rel.core"><code>Join</code></a> and removes the join
provided that the join is a left join or right join and it computes no
aggregate functions or all the aggregate calls have distinct.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/AggregateJoinTransposeRule.html" title="class in org.apache.calcite.rel.rules">AggregateJoinTransposeRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that pushes an
<a href="../../rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a>
past a <a href="../../rel/core/Join.html" title="class in org.apache.calcite.rel.core"><code>Join</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/AggregateMergeRule.html" title="class in org.apache.calcite.rel.rules">AggregateMergeRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that matches an <a href="../../rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a> on a <a href="../../rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a>
and the top aggregate's group key is a subset of the lower aggregate's
group key, and the aggregates are expansions of rollups, then it would
convert into a single aggregate.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/AggregateProjectMergeRule.html" title="class in org.apache.calcite.rel.rules">AggregateProjectMergeRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that recognizes a <a href="../../rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a>
on top of a <a href="../../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a> and if possible
aggregate through the project or removes the project.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/AggregateProjectPullUpConstantsRule.html" title="class in org.apache.calcite.rel.rules">AggregateProjectPullUpConstantsRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that removes constant keys from an
<a href="../../rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/AggregateReduceFunctionsRule.html" title="class in org.apache.calcite.rel.rules">AggregateReduceFunctionsRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that reduces aggregate functions in
<a href="../../rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a>s to simpler forms.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/AggregateRemoveRule.html" title="class in org.apache.calcite.rel.rules">AggregateRemoveRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that removes
a <a href="../../rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a>
if it computes no aggregate functions
(that is, it is implementing <code>SELECT DISTINCT</code>),
or all the aggregate functions are splittable,
and the underlying relational expression is already distinct.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/AggregateStarTableRule.html" title="class in org.apache.calcite.rel.rules">AggregateStarTableRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that matches an <a href="../../rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a> on
top of a <a href="../../schema/impl/StarTable.StarTableScan.html" title="class in org.apache.calcite.schema.impl"><code>StarTable.StarTableScan</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/AggregateUnionAggregateRule.html" title="class in org.apache.calcite.rel.rules">AggregateUnionAggregateRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that matches
<a href="../../rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a>s beneath a
<a href="../../rel/core/Union.html" title="class in org.apache.calcite.rel.core"><code>Union</code></a> and pulls them up, so
that a single
<a href="../../rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a> removes duplicates.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/AggregateUnionTransposeRule.html" title="class in org.apache.calcite.rel.rules">AggregateUnionTransposeRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that pushes an
<a href="../../rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a>
past a non-distinct <a href="../../rel/core/Union.html" title="class in org.apache.calcite.rel.core"><code>Union</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/AggregateValuesRule.html" title="class in org.apache.calcite.rel.rules">AggregateValuesRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule that applies <a href="../../rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a> to a <a href="../../rel/core/Values.html" title="class in org.apache.calcite.rel.core"><code>Values</code></a> (currently just an
empty <code>Value</code>s).</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/CalcMergeRule.html" title="class in org.apache.calcite.rel.rules">CalcMergeRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that merges a
<a href="../../rel/logical/LogicalCalc.html" title="class in org.apache.calcite.rel.logical"><code>LogicalCalc</code></a> onto a
<a href="../../rel/logical/LogicalCalc.html" title="class in org.apache.calcite.rel.logical"><code>LogicalCalc</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/CalcRemoveRule.html" title="class in org.apache.calcite.rel.rules">CalcRemoveRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that removes a trivial
<a href="../../rel/logical/LogicalCalc.html" title="class in org.apache.calcite.rel.logical"><code>LogicalCalc</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/CalcSplitRule.html" title="class in org.apache.calcite.rel.rules">CalcSplitRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that converts a <a href="../../rel/core/Calc.html" title="class in org.apache.calcite.rel.core"><code>Calc</code></a>
to a <a href="../../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a>
and <a href="../../rel/core/Filter.html" title="class in org.apache.calcite.rel.core"><code>Filter</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/CoerceInputsRule.html" title="class in org.apache.calcite.rel.rules">CoerceInputsRule</a></span></code></th>
<td class="colLast">
<div class="block">CoerceInputsRule pre-casts inputs to a particular type.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/DateRangeRules.FilterDateRangeRule.html" title="class in org.apache.calcite.rel.rules">DateRangeRules.FilterDateRangeRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule that converts EXTRACT, FLOOR and CEIL in a <a href="../../rel/core/Filter.html" title="class in org.apache.calcite.rel.core"><code>Filter</code></a> into a date
range.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/ExchangeRemoveConstantKeysRule.html" title="class in org.apache.calcite.rel.rules">ExchangeRemoveConstantKeysRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that removes keys from
a <a href="../../rel/core/Exchange.html" title="class in org.apache.calcite.rel.core"><code>Exchange</code></a> if those keys are known to be constant.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/ExchangeRemoveConstantKeysRule.SortExchangeRemoveConstantKeysRule.html" title="class in org.apache.calcite.rel.rules">ExchangeRemoveConstantKeysRule.SortExchangeRemoveConstantKeysRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule that reduces constants inside a <a href="../../rel/core/SortExchange.html" title="class in org.apache.calcite.rel.core"><code>SortExchange</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/FilterAggregateTransposeRule.html" title="class in org.apache.calcite.rel.rules">FilterAggregateTransposeRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that pushes a <a href="../../rel/core/Filter.html" title="class in org.apache.calcite.rel.core"><code>Filter</code></a>
past a <a href="../../rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/FilterCalcMergeRule.html" title="class in org.apache.calcite.rel.rules">FilterCalcMergeRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that merges a
<a href="../../rel/logical/LogicalFilter.html" title="class in org.apache.calcite.rel.logical"><code>LogicalFilter</code></a> and a
<a href="../../rel/logical/LogicalCalc.html" title="class in org.apache.calcite.rel.logical"><code>LogicalCalc</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/FilterCorrelateRule.html" title="class in org.apache.calcite.rel.rules">FilterCorrelateRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that pushes a <a href="../../rel/core/Filter.html" title="class in org.apache.calcite.rel.core"><code>Filter</code></a> above a <a href="../../rel/core/Correlate.html" title="class in org.apache.calcite.rel.core"><code>Correlate</code></a> into the
inputs of the Correlate.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/FilterJoinRule.html" title="class in org.apache.calcite.rel.rules">FilterJoinRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that pushes filters above and
within a join node into the join node and/or its children nodes.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/FilterJoinRule.FilterIntoJoinRule.html" title="class in org.apache.calcite.rel.rules">FilterJoinRule.FilterIntoJoinRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule that tries to push filter expressions into a join
condition and into the inputs of the join.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/FilterJoinRule.JoinConditionPushRule.html" title="class in org.apache.calcite.rel.rules">FilterJoinRule.JoinConditionPushRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule that pushes parts of the join condition to its inputs.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/FilterMergeRule.html" title="class in org.apache.calcite.rel.rules">FilterMergeRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that combines two
<a href="../../rel/logical/LogicalFilter.html" title="class in org.apache.calcite.rel.logical"><code>LogicalFilter</code></a>s.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/FilterMultiJoinMergeRule.html" title="class in org.apache.calcite.rel.rules">FilterMultiJoinMergeRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that merges a
<a href="../../rel/core/Filter.html" title="class in org.apache.calcite.rel.core"><code>Filter</code></a> into a <a href="../../rel/rules/MultiJoin.html" title="class in org.apache.calcite.rel.rules"><code>MultiJoin</code></a>,
creating a richer <code>MultiJoin</code>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/FilterProjectTransposeRule.html" title="class in org.apache.calcite.rel.rules">FilterProjectTransposeRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that pushes
a <a href="../../rel/core/Filter.html" title="class in org.apache.calcite.rel.core"><code>Filter</code></a>
past a <a href="../../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/FilterRemoveIsNotDistinctFromRule.html" title="class in org.apache.calcite.rel.rules">FilterRemoveIsNotDistinctFromRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that replaces <code>IS NOT DISTINCT FROM</code>
in a <a href="../../rel/core/Filter.html" title="class in org.apache.calcite.rel.core"><code>Filter</code></a> with logically equivalent operations.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/FilterSetOpTransposeRule.html" title="class in org.apache.calcite.rel.rules">FilterSetOpTransposeRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that pushes a <a href="../../rel/core/Filter.html" title="class in org.apache.calcite.rel.core"><code>Filter</code></a>
past a <a href="../../rel/core/SetOp.html" title="class in org.apache.calcite.rel.core"><code>SetOp</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/FilterTableFunctionTransposeRule.html" title="class in org.apache.calcite.rel.rules">FilterTableFunctionTransposeRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that pushes
a <a href="../../rel/logical/LogicalFilter.html" title="class in org.apache.calcite.rel.logical"><code>LogicalFilter</code></a>
past a <a href="../../rel/logical/LogicalTableFunctionScan.html" title="class in org.apache.calcite.rel.logical"><code>LogicalTableFunctionScan</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/FilterTableScanRule.html" title="class in org.apache.calcite.rel.rules">FilterTableScanRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that converts
a <a href="../../rel/core/Filter.html" title="class in org.apache.calcite.rel.core"><code>Filter</code></a>
on a <a href="../../rel/core/TableScan.html" title="class in org.apache.calcite.rel.core"><code>TableScan</code></a>
of a <a href="../../schema/FilterableTable.html" title="interface in org.apache.calcite.schema"><code>FilterableTable</code></a>
or a <a href="../../schema/ProjectableFilterableTable.html" title="interface in org.apache.calcite.schema"><code>ProjectableFilterableTable</code></a>
to a <a href="../../interpreter/Bindables.BindableTableScan.html" title="class in org.apache.calcite.interpreter"><code>Bindables.BindableTableScan</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/FilterToCalcRule.html" title="class in org.apache.calcite.rel.rules">FilterToCalcRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that converts a
<a href="../../rel/logical/LogicalFilter.html" title="class in org.apache.calcite.rel.logical"><code>LogicalFilter</code></a> to a
<a href="../../rel/logical/LogicalCalc.html" title="class in org.apache.calcite.rel.logical"><code>LogicalCalc</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/IntersectToDistinctRule.html" title="class in org.apache.calcite.rel.rules">IntersectToDistinctRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that translates a distinct
<a href="../../rel/core/Intersect.html" title="class in org.apache.calcite.rel.core"><code>Intersect</code></a>
(<code>all</code> = <code>false</code>)
into a group of operators composed of
<a href="../../rel/core/Union.html" title="class in org.apache.calcite.rel.core"><code>Union</code></a>,
<a href="../../rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a>, etc.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/JoinAddRedundantSemiJoinRule.html" title="class in org.apache.calcite.rel.rules">JoinAddRedundantSemiJoinRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to add a semi-join into a join.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/JoinAssociateRule.html" title="class in org.apache.calcite.rel.rules">JoinAssociateRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that changes a join based on the associativity rule.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/JoinCommuteRule.html" title="class in org.apache.calcite.rel.rules">JoinCommuteRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that permutes the inputs to a
<a href="../../rel/core/Join.html" title="class in org.apache.calcite.rel.core"><code>Join</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/JoinExtractFilterRule.html" title="class in org.apache.calcite.rel.rules">JoinExtractFilterRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert an
<a href="../../rel/logical/LogicalJoin.html" title="class in org.apache.calcite.rel.logical"><code>inner join</code></a> to a
<a href="../../rel/logical/LogicalFilter.html" title="class in org.apache.calcite.rel.logical"><code>filter</code></a> on top of a
<a href="../../rel/logical/LogicalJoin.html" title="class in org.apache.calcite.rel.logical"><code>cartesian inner join</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/JoinProjectTransposeRule.html" title="class in org.apache.calcite.rel.rules">JoinProjectTransposeRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that matches a
<a href="../../rel/core/Join.html" title="class in org.apache.calcite.rel.core"><code>Join</code></a> one of whose inputs is a
<a href="../../rel/logical/LogicalProject.html" title="class in org.apache.calcite.rel.logical"><code>LogicalProject</code></a>, and
pulls the project up.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/JoinPushExpressionsRule.html" title="class in org.apache.calcite.rel.rules">JoinPushExpressionsRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that pushes down expressions in "equal" join condition.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/JoinPushThroughJoinRule.html" title="class in org.apache.calcite.rel.rules">JoinPushThroughJoinRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule that pushes the right input of a join into through the left input of
the join, provided that the left input is also a join.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/JoinPushTransitivePredicatesRule.html" title="class in org.apache.calcite.rel.rules">JoinPushTransitivePredicatesRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that infers predicates from on a
<a href="../../rel/core/Join.html" title="class in org.apache.calcite.rel.core"><code>Join</code></a> and creates
<a href="../../rel/core/Filter.html" title="class in org.apache.calcite.rel.core"><code>Filter</code></a>s if those predicates can be pushed
to its inputs.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/JoinToCorrelateRule.html" title="class in org.apache.calcite.rel.rules">JoinToCorrelateRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule that converts a <a href="../../rel/core/Join.html" title="class in org.apache.calcite.rel.core"><code>Join</code></a>
into a <a href="../../rel/logical/LogicalCorrelate.html" title="class in org.apache.calcite.rel.logical"><code>LogicalCorrelate</code></a>, which can
then be implemented using nested loops.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/JoinToMultiJoinRule.html" title="class in org.apache.calcite.rel.rules">JoinToMultiJoinRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule to flatten a tree of
<a href="../../rel/logical/LogicalJoin.html" title="class in org.apache.calcite.rel.logical"><code>LogicalJoin</code></a>s
into a single <a href="../../rel/rules/MultiJoin.html" title="class in org.apache.calcite.rel.rules"><code>MultiJoin</code></a> with N inputs.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/JoinUnionTransposeRule.html" title="class in org.apache.calcite.rel.rules">JoinUnionTransposeRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that pushes a
<a href="../../rel/core/Join.html" title="class in org.apache.calcite.rel.core"><code>Join</code></a>
past a non-distinct <a href="../../rel/core/Union.html" title="class in org.apache.calcite.rel.core"><code>Union</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/LoptOptimizeJoinRule.html" title="class in org.apache.calcite.rel.rules">LoptOptimizeJoinRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that implements the heuristic planner for determining optimal
join orderings.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/MaterializedViewFilterScanRule.html" title="class in org.apache.calcite.rel.rules">MaterializedViewFilterScanRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that converts
a <a href="../../rel/core/Filter.html" title="class in org.apache.calcite.rel.core"><code>Filter</code></a>
on a <a href="../../rel/core/TableScan.html" title="class in org.apache.calcite.rel.core"><code>TableScan</code></a>
to a <a href="../../rel/core/Filter.html" title="class in org.apache.calcite.rel.core"><code>Filter</code></a> on Materialized View</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/MultiJoinOptimizeBushyRule.html" title="class in org.apache.calcite.rel.rules">MultiJoinOptimizeBushyRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that finds an approximately optimal ordering for join operators
using a heuristic algorithm.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/MultiJoinProjectTransposeRule.html" title="class in org.apache.calcite.rel.rules">MultiJoinProjectTransposeRule</a></span></code></th>
<td class="colLast">
<div class="block">MultiJoinProjectTransposeRule implements the rule for pulling
<a href="../../rel/logical/LogicalProject.html" title="class in org.apache.calcite.rel.logical"><code>LogicalProject</code></a>s that are on top of a
<a href="../../rel/rules/MultiJoin.html" title="class in org.apache.calcite.rel.rules"><code>MultiJoin</code></a> and beneath a
<a href="../../rel/logical/LogicalJoin.html" title="class in org.apache.calcite.rel.logical"><code>LogicalJoin</code></a> so the
<a href="../../rel/logical/LogicalProject.html" title="class in org.apache.calcite.rel.logical"><code>LogicalProject</code></a> appears above the
<a href="../../rel/logical/LogicalJoin.html" title="class in org.apache.calcite.rel.logical"><code>LogicalJoin</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/ProjectCalcMergeRule.html" title="class in org.apache.calcite.rel.rules">ProjectCalcMergeRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule which merges a
<a href="../../rel/logical/LogicalProject.html" title="class in org.apache.calcite.rel.logical"><code>LogicalProject</code></a> and a
<a href="../../rel/logical/LogicalCalc.html" title="class in org.apache.calcite.rel.logical"><code>LogicalCalc</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/ProjectCorrelateTransposeRule.html" title="class in org.apache.calcite.rel.rules">ProjectCorrelateTransposeRule</a></span></code></th>
<td class="colLast">
<div class="block">Push Project under Correlate to apply on Correlate's left and right child</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/ProjectFilterTransposeRule.html" title="class in org.apache.calcite.rel.rules">ProjectFilterTransposeRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that pushes a <a href="../../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a>
past a <a href="../../rel/core/Filter.html" title="class in org.apache.calcite.rel.core"><code>Filter</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/ProjectJoinJoinRemoveRule.html" title="class in org.apache.calcite.rel.rules">ProjectJoinJoinRemoveRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that matches an <a href="../../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a>
on a <a href="../../rel/core/Join.html" title="class in org.apache.calcite.rel.core"><code>Join</code></a> and removes the left input
of the join provided that the left input is also a left join if possible.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/ProjectJoinRemoveRule.html" title="class in org.apache.calcite.rel.rules">ProjectJoinRemoveRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that matches an <a href="../../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a>
on a <a href="../../rel/core/Join.html" title="class in org.apache.calcite.rel.core"><code>Join</code></a> and removes the join provided that the join is a left join
or right join and the join keys are unique.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/ProjectJoinTransposeRule.html" title="class in org.apache.calcite.rel.rules">ProjectJoinTransposeRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that pushes a <a href="../../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a>
past a <a href="../../rel/core/Join.html" title="class in org.apache.calcite.rel.core"><code>Join</code></a>
by splitting the projection into a projection on top of each child of
the join.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/ProjectMergeRule.html" title="class in org.apache.calcite.rel.rules">ProjectMergeRule</a></span></code></th>
<td class="colLast">
<div class="block">ProjectMergeRule merges a <a href="../../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a> into
another <a href="../../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a>,
provided the projects aren't projecting identical sets of input references.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/ProjectMultiJoinMergeRule.html" title="class in org.apache.calcite.rel.rules">ProjectMultiJoinMergeRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that pushes
<a href="../../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a>
into a <a href="../../rel/rules/MultiJoin.html" title="class in org.apache.calcite.rel.rules"><code>MultiJoin</code></a>,
creating a richer <code>MultiJoin</code>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/ProjectRemoveRule.html" title="class in org.apache.calcite.rel.rules">ProjectRemoveRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that,
given a <a href="../../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a> node that
merely returns its input, converts the node into its child.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/ProjectSetOpTransposeRule.html" title="class in org.apache.calcite.rel.rules">ProjectSetOpTransposeRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that pushes
a <a href="../../rel/logical/LogicalProject.html" title="class in org.apache.calcite.rel.logical"><code>LogicalProject</code></a>
past a <a href="../../rel/core/SetOp.html" title="class in org.apache.calcite.rel.core"><code>SetOp</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/ProjectSortTransposeRule.html" title="class in org.apache.calcite.rel.rules">ProjectSortTransposeRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that pushes
a <a href="../../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a>
past a <a href="../../rel/core/Sort.html" title="class in org.apache.calcite.rel.core"><code>Sort</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/ProjectTableScanRule.html" title="class in org.apache.calcite.rel.rules">ProjectTableScanRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that converts a <a href="../../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a>
on a <a href="../../rel/core/TableScan.html" title="class in org.apache.calcite.rel.core"><code>TableScan</code></a>
of a <a href="../../schema/ProjectableFilterableTable.html" title="interface in org.apache.calcite.schema"><code>ProjectableFilterableTable</code></a>
to a <a href="../../interpreter/Bindables.BindableTableScan.html" title="class in org.apache.calcite.interpreter"><code>Bindables.BindableTableScan</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/ProjectToCalcRule.html" title="class in org.apache.calcite.rel.rules">ProjectToCalcRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to convert a
<a href="../../rel/logical/LogicalProject.html" title="class in org.apache.calcite.rel.logical"><code>LogicalProject</code></a> to a
<a href="../../rel/logical/LogicalCalc.html" title="class in org.apache.calcite.rel.logical"><code>LogicalCalc</code></a></div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/ProjectToWindowRule.html" title="class in org.apache.calcite.rel.rules">ProjectToWindowRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that slices a
<a href="../../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a>
into sections which contain windowed
aggregate functions and sections which do not.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/ProjectToWindowRule.CalcToWindowRule.html" title="class in org.apache.calcite.rel.rules">ProjectToWindowRule.CalcToWindowRule</a></span></code></th>
<td class="colLast">
<div class="block">Instance of the rule that applies to a
<a href="../../rel/core/Calc.html" title="class in org.apache.calcite.rel.core"><code>Calc</code></a> that contains
windowed aggregates and converts it into a mixture of
<a href="../../rel/logical/LogicalWindow.html" title="class in org.apache.calcite.rel.logical"><code>LogicalWindow</code></a> and <code>Calc</code>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/ProjectToWindowRule.ProjectToLogicalProjectAndWindowRule.html" title="class in org.apache.calcite.rel.rules">ProjectToWindowRule.ProjectToLogicalProjectAndWindowRule</a></span></code></th>
<td class="colLast">
<div class="block">Instance of the rule that can be applied to a
<a href="../../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a> and that produces, in turn,
a mixture of <code>LogicalProject</code>
and <a href="../../rel/logical/LogicalWindow.html" title="class in org.apache.calcite.rel.logical"><code>LogicalWindow</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/ProjectWindowTransposeRule.html" title="class in org.apache.calcite.rel.rules">ProjectWindowTransposeRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that pushes
a <a href="../../rel/logical/LogicalProject.html" title="class in org.apache.calcite.rel.logical"><code>LogicalProject</code></a>
past a <a href="../../rel/logical/LogicalWindow.html" title="class in org.apache.calcite.rel.logical"><code>LogicalWindow</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/PruneEmptyRules.RemoveEmptySingleRule.html" title="class in org.apache.calcite.rel.rules">PruneEmptyRules.RemoveEmptySingleRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that converts a single-rel (e.g.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/ReduceDecimalsRule.html" title="class in org.apache.calcite.rel.rules">ReduceDecimalsRule</a></span></code></th>
<td class="colLast">
<div class="block">ReduceDecimalsRule is a rule which reduces decimal operations (such as casts
or arithmetic) into operations involving more primitive types (such as longs
and doubles).</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/ReduceExpressionsRule.html" title="class in org.apache.calcite.rel.rules">ReduceExpressionsRule</a></span></code></th>
<td class="colLast">
<div class="block">Collection of planner rules that apply various simplifying transformations on
RexNode trees.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/ReduceExpressionsRule.CalcReduceExpressionsRule.html" title="class in org.apache.calcite.rel.rules">ReduceExpressionsRule.CalcReduceExpressionsRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule that reduces constants inside a <a href="../../rel/core/Calc.html" title="class in org.apache.calcite.rel.core"><code>Calc</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/ReduceExpressionsRule.FilterReduceExpressionsRule.html" title="class in org.apache.calcite.rel.rules">ReduceExpressionsRule.FilterReduceExpressionsRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule that reduces constants inside a <a href="../../rel/core/Filter.html" title="class in org.apache.calcite.rel.core"><code>Filter</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/ReduceExpressionsRule.JoinReduceExpressionsRule.html" title="class in org.apache.calcite.rel.rules">ReduceExpressionsRule.JoinReduceExpressionsRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule that reduces constants inside a <a href="../../rel/core/Join.html" title="class in org.apache.calcite.rel.core"><code>Join</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/ReduceExpressionsRule.ProjectReduceExpressionsRule.html" title="class in org.apache.calcite.rel.rules">ReduceExpressionsRule.ProjectReduceExpressionsRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule that reduces constants inside a <a href="../../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/ReduceExpressionsRule.WindowReduceExpressionsRule.html" title="class in org.apache.calcite.rel.rules">ReduceExpressionsRule.WindowReduceExpressionsRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule that reduces constants inside a <a href="../../rel/core/Window.html" title="class in org.apache.calcite.rel.core"><code>Window</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/SemiJoinFilterTransposeRule.html" title="class in org.apache.calcite.rel.rules">SemiJoinFilterTransposeRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that pushes <code>SemiJoin</code>s down in a tree past
a <a href="../../rel/core/Filter.html" title="class in org.apache.calcite.rel.core"><code>Filter</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/SemiJoinJoinTransposeRule.html" title="class in org.apache.calcite.rel.rules">SemiJoinJoinTransposeRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that pushes a <code>SemiJoin</code>
down in a tree past a <a href="../../rel/core/Join.html" title="class in org.apache.calcite.rel.core"><code>Join</code></a>
in order to trigger other rules that will convert <code>SemiJoin</code>s.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/SemiJoinProjectTransposeRule.html" title="class in org.apache.calcite.rel.rules">SemiJoinProjectTransposeRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that pushes
a <code>SemiJoin</code> down in a tree past
a <a href="../../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/SemiJoinRemoveRule.html" title="class in org.apache.calcite.rel.rules">SemiJoinRemoveRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that removes a <code>SemiJoin</code>s from a join tree.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/SemiJoinRule.html" title="class in org.apache.calcite.rel.rules">SemiJoinRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that creates a <code>SemiJoin</code> from a
<a href="../../rel/core/Join.html" title="class in org.apache.calcite.rel.core"><code>Join</code></a> on top of a
<a href="../../rel/logical/LogicalAggregate.html" title="class in org.apache.calcite.rel.logical"><code>LogicalAggregate</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/SemiJoinRule.JoinToSemiJoinRule.html" title="class in org.apache.calcite.rel.rules">SemiJoinRule.JoinToSemiJoinRule</a></span></code></th>
<td class="colLast">
<div class="block">SemiJoinRule that matches a Join with an empty Aggregate as its right
child.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/SemiJoinRule.ProjectToSemiJoinRule.html" title="class in org.apache.calcite.rel.rules">SemiJoinRule.ProjectToSemiJoinRule</a></span></code></th>
<td class="colLast">
<div class="block">SemiJoinRule that matches a Project on top of a Join with an Aggregate
as its right child.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/SortJoinTransposeRule.html" title="class in org.apache.calcite.rel.rules">SortJoinTransposeRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that pushes a <a href="../../rel/core/Sort.html" title="class in org.apache.calcite.rel.core"><code>Sort</code></a> past a
<a href="../../rel/core/Join.html" title="class in org.apache.calcite.rel.core"><code>Join</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/SortProjectTransposeRule.html" title="class in org.apache.calcite.rel.rules">SortProjectTransposeRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that pushes
a <a href="../../rel/core/Sort.html" title="class in org.apache.calcite.rel.core"><code>Sort</code></a>
past a <a href="../../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/SortRemoveConstantKeysRule.html" title="class in org.apache.calcite.rel.rules">SortRemoveConstantKeysRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that removes keys from a
a <a href="../../rel/core/Sort.html" title="class in org.apache.calcite.rel.core"><code>Sort</code></a> if those keys are known to be
constant, or removes the entire Sort if all keys are constant.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/SortRemoveRule.html" title="class in org.apache.calcite.rel.rules">SortRemoveRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that removes
a <a href="../../rel/core/Sort.html" title="class in org.apache.calcite.rel.core"><code>Sort</code></a> if its input is already sorted.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/SortUnionTransposeRule.html" title="class in org.apache.calcite.rel.rules">SortUnionTransposeRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that pushes a <a href="../../rel/core/Sort.html" title="class in org.apache.calcite.rel.core"><code>Sort</code></a> past a
<a href="../../rel/core/Union.html" title="class in org.apache.calcite.rel.core"><code>Union</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/SubQueryRemoveRule.html" title="class in org.apache.calcite.rel.rules">SubQueryRemoveRule</a></span></code></th>
<td class="colLast">
<div class="block">Transform that converts IN, EXISTS and scalar sub-queries into joins.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/SubQueryRemoveRule.SubQueryFilterRemoveRule.html" title="class in org.apache.calcite.rel.rules">SubQueryRemoveRule.SubQueryFilterRemoveRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule that converts a sub-queries from filter expressions into
<a href="../../rel/core/Correlate.html" title="class in org.apache.calcite.rel.core"><code>Correlate</code></a> instances.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/SubQueryRemoveRule.SubQueryJoinRemoveRule.html" title="class in org.apache.calcite.rel.rules">SubQueryRemoveRule.SubQueryJoinRemoveRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule that converts sub-queries from join expressions into
<a href="../../rel/core/Correlate.html" title="class in org.apache.calcite.rel.core"><code>Correlate</code></a> instances.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/SubQueryRemoveRule.SubQueryProjectRemoveRule.html" title="class in org.apache.calcite.rel.rules">SubQueryRemoveRule.SubQueryProjectRemoveRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule that converts sub-queries from project expressions into
<a href="../../rel/core/Correlate.html" title="class in org.apache.calcite.rel.core"><code>Correlate</code></a> instances.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/TableScanRule.html" title="class in org.apache.calcite.rel.rules">TableScanRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that converts a
<a href="../../rel/logical/LogicalTableScan.html" title="class in org.apache.calcite.rel.logical"><code>LogicalTableScan</code></a> to the result
of calling <a href="../RelOptTable.html#toRel(org.apache.calcite.plan.RelOptTable.ToRelContext)"><code>RelOptTable.toRel(org.apache.calcite.plan.RelOptTable.ToRelContext)</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/UnionEliminatorRule.html" title="class in org.apache.calcite.rel.rules">UnionEliminatorRule</a></span></code></th>
<td class="colLast">
<div class="block"><code>UnionEliminatorRule</code> checks to see if its possible to optimize a
Union call by eliminating the Union operator altogether in the case the call
consists of only one input.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/UnionMergeRule.html" title="class in org.apache.calcite.rel.rules">UnionMergeRule</a></span></code></th>
<td class="colLast">
<div class="block">UnionMergeRule implements the rule for combining two
non-distinct <a href="../../rel/core/SetOp.html" title="class in org.apache.calcite.rel.core"><code>SetOp</code></a>s
into a single <a href="../../rel/core/SetOp.html" title="class in org.apache.calcite.rel.core"><code>SetOp</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/UnionPullUpConstantsRule.html" title="class in org.apache.calcite.rel.rules">UnionPullUpConstantsRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that pulls up constants through a Union operator.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/UnionToDistinctRule.html" title="class in org.apache.calcite.rel.rules">UnionToDistinctRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that translates a distinct
<a href="../../rel/core/Union.html" title="class in org.apache.calcite.rel.core"><code>Union</code></a>
(<code>all</code> = <code>false</code>)
into an <a href="../../rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a>
on top of a non-distinct <a href="../../rel/core/Union.html" title="class in org.apache.calcite.rel.core"><code>Union</code></a>
(<code>all</code> = <code>true</code>).</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/rules/ValuesReduceRule.html" title="class in org.apache.calcite.rel.rules">ValuesReduceRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that folds projections and filters into an underlying
<a href="../../rel/logical/LogicalValues.html" title="class in org.apache.calcite.rel.logical"><code>LogicalValues</code></a>.</div>
</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Fields in <a href="../../rel/rules/package-summary.html">org.apache.calcite.rel.rules</a> declared as <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">PruneEmptyRules.</span><code><span class="memberNameLink"><a href="../../rel/rules/PruneEmptyRules.html#AGGREGATE_INSTANCE">AGGREGATE_INSTANCE</a></span></code></th>
<td class="colLast">
<div class="block">Rule that converts an <a href="../../rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a>
to empty if its child is empty.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">AbstractMaterializedViewRule.MaterializedViewAggregateRule.</span><code><span class="memberNameLink"><a href="../../rel/rules/AbstractMaterializedViewRule.MaterializedViewAggregateRule.html#aggregateProjectPullUpConstantsRule">aggregateProjectPullUpConstantsRule</a></span></code></th>
<td class="colLast">
<div class="block">Instance of rule to pull up constants into aggregate.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">DateRangeRules.</span><code><span class="memberNameLink"><a href="../../rel/rules/DateRangeRules.html#FILTER_INSTANCE">FILTER_INSTANCE</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">PruneEmptyRules.</span><code><span class="memberNameLink"><a href="../../rel/rules/PruneEmptyRules.html#FILTER_INSTANCE">FILTER_INSTANCE</a></span></code></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>
to empty if its child is empty.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">AbstractMaterializedViewRule.MaterializedViewAggregateRule.</span><code><span class="memberNameLink"><a href="../../rel/rules/AbstractMaterializedViewRule.MaterializedViewAggregateRule.html#filterAggregateTransposeRule">filterAggregateTransposeRule</a></span></code></th>
<td class="colLast">
<div class="block">Instance of rule to push filter through aggregate.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">AbstractMaterializedViewRule.MaterializedViewAggregateRule.</span><code><span class="memberNameLink"><a href="../../rel/rules/AbstractMaterializedViewRule.MaterializedViewAggregateRule.html#filterProjectTransposeRule">filterProjectTransposeRule</a></span></code></th>
<td class="colLast">
<div class="block">Instance of rule to push filter through project.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">PruneEmptyRules.</span><code><span class="memberNameLink"><a href="../../rel/rules/PruneEmptyRules.html#INTERSECT_INSTANCE">INTERSECT_INSTANCE</a></span></code></th>
<td class="colLast">
<div class="block">Rule that converts a
<a href="../../rel/logical/LogicalIntersect.html" title="class in org.apache.calcite.rel.logical"><code>LogicalIntersect</code></a> to
empty if any of its children are empty.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">PruneEmptyRules.</span><code><span class="memberNameLink"><a href="../../rel/rules/PruneEmptyRules.html#JOIN_LEFT_INSTANCE">JOIN_LEFT_INSTANCE</a></span></code></th>
<td class="colLast">
<div class="block">Rule that converts a <a href="../../rel/core/Join.html" title="class in org.apache.calcite.rel.core"><code>Join</code></a>
to empty if its left child is empty.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">PruneEmptyRules.</span><code><span class="memberNameLink"><a href="../../rel/rules/PruneEmptyRules.html#JOIN_RIGHT_INSTANCE">JOIN_RIGHT_INSTANCE</a></span></code></th>
<td class="colLast">
<div class="block">Rule that converts a <a href="../../rel/core/Join.html" title="class in org.apache.calcite.rel.core"><code>Join</code></a>
to empty if its right child is empty.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">JoinPushThroughJoinRule.</span><code><span class="memberNameLink"><a href="../../rel/rules/JoinPushThroughJoinRule.html#LEFT">LEFT</a></span></code></th>
<td class="colLast">
<div class="block">Instance of the rule that works on logical joins only, and pushes to the
left.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">PruneEmptyRules.</span><code><span class="memberNameLink"><a href="../../rel/rules/PruneEmptyRules.html#MINUS_INSTANCE">MINUS_INSTANCE</a></span></code></th>
<td class="colLast">
<div class="block">Rule that removes empty children of a
<a href="../../rel/logical/LogicalMinus.html" title="class in org.apache.calcite.rel.logical"><code>LogicalMinus</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">PruneEmptyRules.</span><code><span class="memberNameLink"><a href="../../rel/rules/PruneEmptyRules.html#PROJECT_INSTANCE">PROJECT_INSTANCE</a></span></code></th>
<td class="colLast">
<div class="block">Rule that converts a <a href="../../rel/logical/LogicalProject.html" title="class in org.apache.calcite.rel.logical"><code>LogicalProject</code></a>
to empty if its child is empty.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">AbstractMaterializedViewRule.MaterializedViewAggregateRule.</span><code><span class="memberNameLink"><a href="../../rel/rules/AbstractMaterializedViewRule.MaterializedViewAggregateRule.html#projectMergeRule">projectMergeRule</a></span></code></th>
<td class="colLast">
<div class="block">Instance of rule to merge project operators.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">JoinPushThroughJoinRule.</span><code><span class="memberNameLink"><a href="../../rel/rules/JoinPushThroughJoinRule.html#RIGHT">RIGHT</a></span></code></th>
<td class="colLast">
<div class="block">Instance of the rule that works on logical joins only, and pushes to the
right.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">PruneEmptyRules.</span><code><span class="memberNameLink"><a href="../../rel/rules/PruneEmptyRules.html#SORT_FETCH_ZERO_INSTANCE">SORT_FETCH_ZERO_INSTANCE</a></span></code></th>
<td class="colLast">
<div class="block">Rule that converts a <a href="../../rel/core/Sort.html" title="class in org.apache.calcite.rel.core"><code>Sort</code></a>
to empty if it has <code>LIMIT 0</code>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">PruneEmptyRules.</span><code><span class="memberNameLink"><a href="../../rel/rules/PruneEmptyRules.html#SORT_INSTANCE">SORT_INSTANCE</a></span></code></th>
<td class="colLast">
<div class="block">Rule that converts a <a href="../../rel/core/Sort.html" title="class in org.apache.calcite.rel.core"><code>Sort</code></a>
to empty if its child is empty.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">PruneEmptyRules.</span><code><span class="memberNameLink"><a href="../../rel/rules/PruneEmptyRules.html#UNION_INSTANCE">UNION_INSTANCE</a></span></code></th>
<td class="colLast">
<div class="block">Rule that removes empty children of a
<a href="../../rel/logical/LogicalUnion.html" title="class in org.apache.calcite.rel.logical"><code>LogicalUnion</code></a>.</div>
</td>
</tr>
</tbody>
</table>
</section>
</li>
<li class="blockList">
<section role="region"><a id="org.apache.calcite.rel.stream">
<!-- -->
</a>
<h3>Uses of <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a> in <a href="../../rel/stream/package-summary.html">org.apache.calcite.rel.stream</a></h3>
<table class="useSummary">
<caption><span>Subclasses of <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a> in <a href="../../rel/stream/package-summary.html">org.apache.calcite.rel.stream</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/stream/StreamRules.DeltaAggregateTransposeRule.html" title="class in org.apache.calcite.rel.stream">StreamRules.DeltaAggregateTransposeRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that pushes a <a href="../../rel/stream/Delta.html" title="class in org.apache.calcite.rel.stream"><code>Delta</code></a> through an <a href="../../rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/stream/StreamRules.DeltaFilterTransposeRule.html" title="class in org.apache.calcite.rel.stream">StreamRules.DeltaFilterTransposeRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that pushes a <a href="../../rel/stream/Delta.html" title="class in org.apache.calcite.rel.stream"><code>Delta</code></a> through a <a href="../../rel/core/Filter.html" title="class in org.apache.calcite.rel.core"><code>Filter</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/stream/StreamRules.DeltaJoinTransposeRule.html" title="class in org.apache.calcite.rel.stream">StreamRules.DeltaJoinTransposeRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that pushes a <a href="../../rel/stream/Delta.html" title="class in org.apache.calcite.rel.stream"><code>Delta</code></a> through a <a href="../../rel/core/Join.html" title="class in org.apache.calcite.rel.core"><code>Join</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/stream/StreamRules.DeltaProjectTransposeRule.html" title="class in org.apache.calcite.rel.stream">StreamRules.DeltaProjectTransposeRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that pushes a <a href="../../rel/stream/Delta.html" title="class in org.apache.calcite.rel.stream"><code>Delta</code></a> through a <a href="../../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/stream/StreamRules.DeltaSortTransposeRule.html" title="class in org.apache.calcite.rel.stream">StreamRules.DeltaSortTransposeRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that pushes a <a href="../../rel/stream/Delta.html" title="class in org.apache.calcite.rel.stream"><code>Delta</code></a> through an <a href="../../rel/core/Sort.html" title="class in org.apache.calcite.rel.core"><code>Sort</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/stream/StreamRules.DeltaTableScanRule.html" title="class in org.apache.calcite.rel.stream">StreamRules.DeltaTableScanRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that pushes a <a href="../../rel/stream/Delta.html" title="class in org.apache.calcite.rel.stream"><code>Delta</code></a> into a <a href="../../rel/core/TableScan.html" title="class in org.apache.calcite.rel.core"><code>TableScan</code></a> of a
<a href="../../schema/StreamableTable.html" title="interface in org.apache.calcite.schema"><code>StreamableTable</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/stream/StreamRules.DeltaTableScanToEmptyRule.html" title="class in org.apache.calcite.rel.stream">StreamRules.DeltaTableScanToEmptyRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that converts <a href="../../rel/stream/Delta.html" title="class in org.apache.calcite.rel.stream"><code>Delta</code></a> over a <a href="../../rel/core/TableScan.html" title="class in org.apache.calcite.rel.core"><code>TableScan</code></a> of
a table other than <a href="../../schema/StreamableTable.html" title="interface in org.apache.calcite.schema"><code>StreamableTable</code></a> to
an empty <a href="../../rel/core/Values.html" title="class in org.apache.calcite.rel.core"><code>Values</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rel/stream/StreamRules.DeltaUnionTransposeRule.html" title="class in org.apache.calcite.rel.stream">StreamRules.DeltaUnionTransposeRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that pushes a <a href="../../rel/stream/Delta.html" title="class in org.apache.calcite.rel.stream"><code>Delta</code></a> through an <a href="../../rel/core/Union.html" title="class in org.apache.calcite.rel.core"><code>Union</code></a>.</div>
</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Fields in <a href="../../rel/stream/package-summary.html">org.apache.calcite.rel.stream</a> with type parameters of type <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>static com.google.common.collect.ImmutableList&lt;<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">StreamRules.</span><code><span class="memberNameLink"><a href="../../rel/stream/StreamRules.html#RULES">RULES</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
</section>
</li>
<li class="blockList">
<section role="region"><a id="org.apache.calcite.sql2rel">
<!-- -->
</a>
<h3>Uses of <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a> in <a href="../../sql2rel/package-summary.html">org.apache.calcite.sql2rel</a></h3>
<table class="useSummary">
<caption><span>Subclasses of <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a> in <a href="../../sql2rel/package-summary.html">org.apache.calcite.sql2rel</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>private class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../sql2rel/RelDecorrelator.AdjustProjectForCountAggregateRule.html" title="class in org.apache.calcite.sql2rel">RelDecorrelator.AdjustProjectForCountAggregateRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that adjusts projects when counts are added.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../sql2rel/RelDecorrelator.RemoveCorrelationForScalarAggregateRule.html" title="class in org.apache.calcite.sql2rel">RelDecorrelator.RemoveCorrelationForScalarAggregateRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that removes correlations for scalar aggregates.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../sql2rel/RelDecorrelator.RemoveCorrelationForScalarProjectRule.html" title="class in org.apache.calcite.sql2rel">RelDecorrelator.RemoveCorrelationForScalarProjectRule</a></span></code></th>
<td class="colLast">
<div class="block">Planner rule that removes correlations for scalar projects.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../sql2rel/RelDecorrelator.RemoveSingleAggregateRule.html" title="class in org.apache.calcite.sql2rel">RelDecorrelator.RemoveSingleAggregateRule</a></span></code></th>
<td class="colLast">
<div class="block">Rule to remove single_value rel.</div>
</td>
</tr>
</tbody>
</table>
</section>
</li>
<li class="blockList">
<section role="region"><a id="org.apache.calcite.tools">
<!-- -->
</a>
<h3>Uses of <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a> in <a href="../../tools/package-summary.html">org.apache.calcite.tools</a></h3>
<table class="useSummary">
<caption><span>Fields in <a href="../../tools/package-summary.html">org.apache.calcite.tools</a> with type parameters of type <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>static com.google.common.collect.ImmutableList&lt;<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">Programs.</span><code><span class="memberNameLink"><a href="../../tools/Programs.html#CALC_RULES">CALC_RULES</a></span></code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static com.google.common.collect.ImmutableSet&lt;<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">Programs.</span><code><span class="memberNameLink"><a href="../../tools/Programs.html#RULE_SET">RULE_SET</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private com.google.common.collect.ImmutableList&lt;<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RuleSets.ListRuleSet.</span><code><span class="memberNameLink"><a href="../../tools/RuleSets.ListRuleSet.html#rules">rules</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Methods in <a href="../../tools/package-summary.html">org.apache.calcite.tools</a> that return types with arguments of type <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>java.util.Iterator&lt;<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RuleSets.ListRuleSet.</span><code><span class="memberNameLink"><a href="../../tools/RuleSets.ListRuleSet.html#iterator()">iterator</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Methods in <a href="../../tools/package-summary.html">org.apache.calcite.tools</a> with parameters of type <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../tools/RuleSet.html" title="interface in org.apache.calcite.tools">RuleSet</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RuleSets.</span><code><span class="memberNameLink"><a href="../../tools/RuleSets.html#ofList(org.apache.calcite.plan.RelOptRule...)">ofList</a></span>&#8203;(<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>...&nbsp;rules)</code></th>
<td class="colLast">
<div class="block">Creates a rule set with a given array of rules.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../tools/Program.html" title="interface in org.apache.calcite.tools">Program</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">Programs.</span><code><span class="memberNameLink"><a href="../../tools/Programs.html#ofRules(org.apache.calcite.plan.RelOptRule...)">ofRules</a></span>&#8203;(<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>...&nbsp;rules)</code></th>
<td class="colLast">
<div class="block">Creates a program from a list of rules.</div>
</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Method parameters in <a href="../../tools/package-summary.html">org.apache.calcite.tools</a> with type arguments of type <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../tools/Program.html" title="interface in org.apache.calcite.tools">Program</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">Programs.</span><code><span class="memberNameLink"><a href="../../tools/Programs.html#hep(java.lang.Iterable,boolean,org.apache.calcite.rel.metadata.RelMetadataProvider)">hep</a></span>&#8203;(java.lang.Iterable&lt;? extends <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&gt;&nbsp;rules,
boolean&nbsp;noDag,
<a href="../../rel/metadata/RelMetadataProvider.html" title="interface in org.apache.calcite.rel.metadata">RelMetadataProvider</a>&nbsp;metadataProvider)</code></th>
<td class="colLast">
<div class="block">Creates a program that executes a list of rules in a HEP planner.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../tools/Program.html" title="interface in org.apache.calcite.tools">Program</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">Programs.</span><code><span class="memberNameLink"><a href="../../tools/Programs.html#heuristicJoinOrder(java.lang.Iterable,boolean,int)">heuristicJoinOrder</a></span>&#8203;(java.lang.Iterable&lt;? extends <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&gt;&nbsp;rules,
boolean&nbsp;bushy,
int&nbsp;minJoinCount)</code></th>
<td class="colLast">
<div class="block">Creates a program that invokes heuristic join-order optimization
(via <a href="../../rel/rules/JoinToMultiJoinRule.html" title="class in org.apache.calcite.rel.rules"><code>JoinToMultiJoinRule</code></a>,
<a href="../../rel/rules/MultiJoin.html" title="class in org.apache.calcite.rel.rules"><code>MultiJoin</code></a> and
<a href="../../rel/rules/LoptOptimizeJoinRule.html" title="class in org.apache.calcite.rel.rules"><code>LoptOptimizeJoinRule</code></a>)
if there are 6 or more joins (7 or more relations).</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../tools/RuleSet.html" title="interface in org.apache.calcite.tools">RuleSet</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RuleSets.</span><code><span class="memberNameLink"><a href="../../tools/RuleSets.html#ofList(java.lang.Iterable)">ofList</a></span>&#8203;(java.lang.Iterable&lt;? extends <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&gt;&nbsp;rules)</code></th>
<td class="colLast">
<div class="block">Creates a rule set with a given collection of rules.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../tools/Program.html" title="interface in org.apache.calcite.tools">Program</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">Programs.</span><code><span class="memberNameLink"><a href="../../tools/Programs.html#ofRules(java.lang.Iterable)">ofRules</a></span>&#8203;(java.lang.Iterable&lt;? extends <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&gt;&nbsp;rules)</code></th>
<td class="colLast">
<div class="block">Creates a program from a list of rules.</div>
</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Constructor parameters in <a href="../../tools/package-summary.html">org.apache.calcite.tools</a> with type arguments of type <a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../tools/RuleSets.ListRuleSet.html#%3Cinit%3E(com.google.common.collect.ImmutableList)">ListRuleSet</a></span>&#8203;(com.google.common.collect.ImmutableList&lt;<a href="../RelOptRule.html" title="class in org.apache.calcite.plan">RelOptRule</a>&gt;&nbsp;rules)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
</section>
</li>
</ul>
</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><a href="../package-summary.html">Package</a></li>
<li><a href="../RelOptRule.html" title="class in org.apache.calcite.plan">Class</a></li>
<li class="navBarCell1Rev">Use</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>