blob: e4ac29e9cafa586bcbbc6dcc1181a7862394a86d [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>Uses of Class org.apache.calcite.rel.core.Project (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.rel.core.Project (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="../Project.html" title="class in org.apache.calcite.rel.core">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.rel.core.Project" class="title">Uses of Class<br>org.apache.calcite.rel.core.Project</h2>
</div>
<div class="classUseContainer">
<ul class="blockList">
<li class="blockList">
<table class="useSummary">
<caption><span>Packages that use <a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</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.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="altColor">
<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="rowColor">
<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="altColor">
<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="rowColor">
<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="altColor">
<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="rowColor">
<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="altColor">
<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="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.rel.core">org.apache.calcite.rel.core</a></th>
<td class="colLast">
<div class="block">Defines core relational expressions.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="#org.apache.calcite.rel.logical">org.apache.calcite.rel.logical</a></th>
<td class="colLast">
<div class="block">Defines logical relational expressions.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="#org.apache.calcite.rel.metadata">org.apache.calcite.rel.metadata</a></th>
<td class="colLast">
<div class="block">Defines metadata interfaces and utilities for relational
expressions.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="#org.apache.calcite.rel.rel2sql">org.apache.calcite.rel.rel2sql</a></th>
<td class="colLast">
<div class="block">Translates a relational expression to SQL parse tree.</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.rex">org.apache.calcite.rex</a></th>
<td class="colLast">
<div class="block">Provides a language for representing row-expressions.</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>
</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="../Project.html" title="class in org.apache.calcite.rel.core">Project</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="../Project.html" title="class in org.apache.calcite.rel.core">Project</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>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../adapter/cassandra/CassandraProject.html" title="class in org.apache.calcite.adapter.cassandra">CassandraProject</a></span></code></th>
<td class="colLast">
<div class="block">Implementation of <a href="../Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a>
relational expression in Cassandra.</div>
</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Methods in <a href="../../../adapter/cassandra/package-summary.html">org.apache.calcite.adapter.cassandra</a> that return <a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</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="../Project.html" title="class in org.apache.calcite.rel.core">Project</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">CassandraProject.</span><code><span class="memberNameLink"><a href="../../../adapter/cassandra/CassandraProject.html#copy(org.apache.calcite.plan.RelTraitSet,org.apache.calcite.rel.RelNode,java.util.List,org.apache.calcite.rel.type.RelDataType)">copy</a></span>&#8203;(<a href="../../../plan/RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;traitSet,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;input,
java.util.List&lt;<a href="../../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;projects,
<a href="../../type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;rowType)</code></th>
<td class="colLast">&nbsp;</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="../Project.html" title="class in org.apache.calcite.rel.core">Project</a> in <a href="../../../adapter/druid/package-summary.html">org.apache.calcite.adapter.druid</a></h3>
<table class="useSummary">
<caption><span>Methods in <a href="../../../adapter/druid/package-summary.html">org.apache.calcite.adapter.druid</a> with parameters of type <a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</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>protected static java.util.List&lt;<a href="../../../adapter/druid/DruidQuery.JsonAggregation.html" title="class in org.apache.calcite.adapter.druid">DruidQuery.JsonAggregation</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">DruidQuery.</span><code><span class="memberNameLink"><a href="../../../adapter/druid/DruidQuery.html#computeDruidJsonAgg(java.util.List,java.util.List,org.apache.calcite.rel.core.Project,org.apache.calcite.adapter.druid.DruidQuery)">computeDruidJsonAgg</a></span>&#8203;(java.util.List&lt;<a href="../AggregateCall.html" title="class in org.apache.calcite.rel.core">AggregateCall</a>&gt;&nbsp;aggCalls,
java.util.List&lt;java.lang.String&gt;&nbsp;aggNames,
<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;project,
<a href="../../../adapter/druid/DruidQuery.html" title="class in org.apache.calcite.adapter.druid">DruidQuery</a>&nbsp;druidQuery)</code></th>
<td class="colLast">
<div class="block">Translates aggregate calls to Druid <a href="../../../adapter/druid/DruidQuery.JsonAggregation.html" title="class in org.apache.calcite.adapter.druid"><code>DruidQuery.JsonAggregation</code></a>s when
possible.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected static <a href="../../../util/Pair.html" title="class in org.apache.calcite.util">Pair</a>&lt;java.util.List&lt;java.lang.String&gt;,&#8203;java.util.List&lt;<a href="../../../adapter/druid/VirtualColumn.html" title="class in org.apache.calcite.adapter.druid">VirtualColumn</a>&gt;&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">DruidQuery.</span><code><span class="memberNameLink"><a href="../../../adapter/druid/DruidQuery.html#computeProjectAsScan(org.apache.calcite.rel.core.Project,org.apache.calcite.rel.type.RelDataType,org.apache.calcite.adapter.druid.DruidQuery)">computeProjectAsScan</a></span>&#8203;(<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;projectRel,
<a href="../../type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;inputRowType,
<a href="../../../adapter/druid/DruidQuery.html" title="class in org.apache.calcite.adapter.druid">DruidQuery</a>&nbsp;druidQuery)</code></th>
<td class="colLast">
<div class="block">Translates list of projects to Druid Column names and Virtual Columns if any
We can not use <a href="../../../util/Pair.html#zip(K%5B%5D,V%5B%5D)"><code>Pair.zip(Object[], Object[])</code></a>, since size can be different</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected static <a href="../../../util/Pair.html" title="class in org.apache.calcite.util">Pair</a>&lt;java.util.List&lt;<a href="../../../adapter/druid/DimensionSpec.html" title="interface in org.apache.calcite.adapter.druid">DimensionSpec</a>&gt;,&#8203;java.util.List&lt;<a href="../../../adapter/druid/VirtualColumn.html" title="class in org.apache.calcite.adapter.druid">VirtualColumn</a>&gt;&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">DruidQuery.</span><code><span class="memberNameLink"><a href="../../../adapter/druid/DruidQuery.html#computeProjectGroupSet(org.apache.calcite.rel.core.Project,org.apache.calcite.util.ImmutableBitSet,org.apache.calcite.rel.type.RelDataType,org.apache.calcite.adapter.druid.DruidQuery)">computeProjectGroupSet</a></span>&#8203;(<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;projectNode,
<a href="../../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;groupSet,
<a href="../../type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;inputRowType,
<a href="../../../adapter/druid/DruidQuery.html" title="class in org.apache.calcite.adapter.druid">DruidQuery</a>&nbsp;druidQuery)</code></th>
<td class="colLast">
<div class="block">Computes the project group set.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="../../../adapter/druid/DruidQuery.QuerySpec.html" title="class in org.apache.calcite.adapter.druid">DruidQuery.QuerySpec</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">DruidQuery.</span><code><span class="memberNameLink"><a href="../../../adapter/druid/DruidQuery.html#getQuery(org.apache.calcite.rel.type.RelDataType,org.apache.calcite.rel.core.Filter,org.apache.calcite.rel.core.Project,org.apache.calcite.util.ImmutableBitSet,java.util.List,java.util.List,java.util.List,java.util.List,org.apache.calcite.util.ImmutableBitSet,java.lang.Integer,org.apache.calcite.rel.core.Project,org.apache.calcite.rel.core.Filter)">getQuery</a></span>&#8203;(<a href="../../type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;rowType,
<a href="../Filter.html" title="class in org.apache.calcite.rel.core">Filter</a>&nbsp;filter,
<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;project,
<a href="../../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;groupSet,
java.util.List&lt;<a href="../AggregateCall.html" title="class in org.apache.calcite.rel.core">AggregateCall</a>&gt;&nbsp;aggCalls,
java.util.List&lt;java.lang.String&gt;&nbsp;aggNames,
java.util.List&lt;java.lang.Integer&gt;&nbsp;collationIndexes,
java.util.List&lt;<a href="../../RelFieldCollation.Direction.html" title="enum in org.apache.calcite.rel">RelFieldCollation.Direction</a>&gt;&nbsp;collationDirections,
<a href="../../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;numericCollationIndexes,
java.lang.Integer&nbsp;fetch,
<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;postProject,
<a href="../Filter.html" title="class in org.apache.calcite.rel.core">Filter</a>&nbsp;havingFilter)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="../../../adapter/druid/DruidQuery.html" title="class in org.apache.calcite.adapter.druid">DruidQuery</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">DruidRules.DruidAggregateProjectRule.</span><code><span class="memberNameLink"><a href="../../../adapter/druid/DruidRules.DruidAggregateProjectRule.html#optimizeFilteredAggregations(org.apache.calcite.plan.RelOptRuleCall,org.apache.calcite.adapter.druid.DruidQuery,org.apache.calcite.rel.core.Project,org.apache.calcite.rel.core.Aggregate)">optimizeFilteredAggregations</a></span>&#8203;(<a href="../../../plan/RelOptRuleCall.html" title="class in org.apache.calcite.plan">RelOptRuleCall</a>&nbsp;call,
<a href="../../../adapter/druid/DruidQuery.html" title="class in org.apache.calcite.adapter.druid">DruidQuery</a>&nbsp;query,
<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;project,
<a href="../Aggregate.html" title="class in org.apache.calcite.rel.core">Aggregate</a>&nbsp;aggregate)</code></th>
<td class="colLast">
<div class="block">Attempts to optimize any aggregations with filters in the DruidQuery.</div>
</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="../Project.html" title="class in org.apache.calcite.rel.core">Project</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="../Project.html" title="class in org.apache.calcite.rel.core">Project</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>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../adapter/elasticsearch/ElasticsearchProject.html" title="class in org.apache.calcite.adapter.elasticsearch">ElasticsearchProject</a></span></code></th>
<td class="colLast">
<div class="block">Implementation of <a href="../Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a>
relational expression in Elasticsearch.</div>
</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Methods in <a href="../../../adapter/elasticsearch/package-summary.html">org.apache.calcite.adapter.elasticsearch</a> that return <a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</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="../Project.html" title="class in org.apache.calcite.rel.core">Project</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">ElasticsearchProject.</span><code><span class="memberNameLink"><a href="../../../adapter/elasticsearch/ElasticsearchProject.html#copy(org.apache.calcite.plan.RelTraitSet,org.apache.calcite.rel.RelNode,java.util.List,org.apache.calcite.rel.type.RelDataType)">copy</a></span>&#8203;(<a href="../../../plan/RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;relTraitSet,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;input,
java.util.List&lt;<a href="../../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;projects,
<a href="../../type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;relDataType)</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="../Project.html" title="class in org.apache.calcite.rel.core">Project</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="../Project.html" title="class in org.apache.calcite.rel.core">Project</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>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../adapter/enumerable/EnumerableProject.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableProject</a></span></code></th>
<td class="colLast">
<div class="block">Implementation of <a href="../Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a> in
<a href="../../../adapter/enumerable/EnumerableConvention.html" title="enum in org.apache.calcite.adapter.enumerable"><code>enumerable calling convention</code></a>.</div>
</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="../Project.html" title="class in org.apache.calcite.rel.core">Project</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="../Project.html" title="class in org.apache.calcite.rel.core">Project</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>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../adapter/geode/rel/GeodeProject.html" title="class in org.apache.calcite.adapter.geode.rel">GeodeProject</a></span></code></th>
<td class="colLast">
<div class="block">Implementation of
<a href="../Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a>
relational expression in Geode.</div>
</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Methods in <a href="../../../adapter/geode/rel/package-summary.html">org.apache.calcite.adapter.geode.rel</a> that return <a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</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="../Project.html" title="class in org.apache.calcite.rel.core">Project</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">GeodeProject.</span><code><span class="memberNameLink"><a href="../../../adapter/geode/rel/GeodeProject.html#copy(org.apache.calcite.plan.RelTraitSet,org.apache.calcite.rel.RelNode,java.util.List,org.apache.calcite.rel.type.RelDataType)">copy</a></span>&#8203;(<a href="../../../plan/RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;traitSet,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;input,
java.util.List&lt;<a href="../../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;projects,
<a href="../../type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;rowType)</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="../Project.html" title="class in org.apache.calcite.rel.core">Project</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="../Project.html" title="class in org.apache.calcite.rel.core">Project</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.JdbcProject.html" title="class in org.apache.calcite.adapter.jdbc">JdbcRules.JdbcProject</a></span></code></th>
<td class="colLast">
<div class="block">Implementation of <a href="../Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a> in
<a href="../../../adapter/jdbc/JdbcConvention.html" title="class in org.apache.calcite.adapter.jdbc"><code>jdbc calling convention</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> with parameters of type <a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</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>private static boolean</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">JdbcRules.JdbcProjectRule.</span><code><span class="memberNameLink"><a href="../../../adapter/jdbc/JdbcRules.JdbcProjectRule.html#userDefinedFunctionInProject(org.apache.calcite.rel.core.Project)">userDefinedFunctionInProject</a></span>&#8203;(<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;project)</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="../Project.html" title="class in org.apache.calcite.rel.core">Project</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="../Project.html" title="class in org.apache.calcite.rel.core">Project</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>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../adapter/mongodb/MongoProject.html" title="class in org.apache.calcite.adapter.mongodb">MongoProject</a></span></code></th>
<td class="colLast">
<div class="block">Implementation of <a href="../Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a>
relational expression in MongoDB.</div>
</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Methods in <a href="../../../adapter/mongodb/package-summary.html">org.apache.calcite.adapter.mongodb</a> that return <a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</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="../Project.html" title="class in org.apache.calcite.rel.core">Project</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">MongoProject.</span><code><span class="memberNameLink"><a href="../../../adapter/mongodb/MongoProject.html#copy(org.apache.calcite.plan.RelTraitSet,org.apache.calcite.rel.RelNode,java.util.List,org.apache.calcite.rel.type.RelDataType)">copy</a></span>&#8203;(<a href="../../../plan/RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;traitSet,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;input,
java.util.List&lt;<a href="../../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;projects,
<a href="../../type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;rowType)</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="../Project.html" title="class in org.apache.calcite.rel.core">Project</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="../Project.html" title="class in org.apache.calcite.rel.core">Project</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>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../adapter/pig/PigProject.html" title="class in org.apache.calcite.adapter.pig">PigProject</a></span></code></th>
<td class="colLast">
<div class="block">Implementation of <a href="../Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a> in
<a href="../../../adapter/pig/PigRel.html#CONVENTION"><code>Pig calling convention</code></a>.</div>
</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Methods in <a href="../../../adapter/pig/package-summary.html">org.apache.calcite.adapter.pig</a> that return <a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</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="../Project.html" title="class in org.apache.calcite.rel.core">Project</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">PigProject.</span><code><span class="memberNameLink"><a href="../../../adapter/pig/PigProject.html#copy(org.apache.calcite.plan.RelTraitSet,org.apache.calcite.rel.RelNode,java.util.List,org.apache.calcite.rel.type.RelDataType)">copy</a></span>&#8203;(<a href="../../../plan/RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;traitSet,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;input,
java.util.List&lt;<a href="../../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;projects,
<a href="../../type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;rowType)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
</section>
</li>
<li class="blockList">
<section role="region"><a id="org.apache.calcite.interpreter">
<!-- -->
</a>
<h3>Uses of <a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a> in <a href="../../../interpreter/package-summary.html">org.apache.calcite.interpreter</a></h3>
<table class="useSummary">
<caption><span>Subclasses of <a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</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.BindableProject.html" title="class in org.apache.calcite.interpreter">Bindables.BindableProject</a></span></code></th>
<td class="colLast">
<div class="block">Implementation of <a href="../Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a> in
bindable calling convention.</div>
</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Methods in <a href="../../../interpreter/package-summary.html">org.apache.calcite.interpreter</a> with parameters of type <a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</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">Nodes.CoreCompiler.</span><code><span class="memberNameLink"><a href="../../../interpreter/Nodes.CoreCompiler.html#visit(org.apache.calcite.rel.core.Project)">visit</a></span>&#8203;(<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;project)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Constructors in <a href="../../../interpreter/package-summary.html">org.apache.calcite.interpreter</a> with parameters of type <a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</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="../../../interpreter/ProjectNode.html#%3Cinit%3E(org.apache.calcite.interpreter.Compiler,org.apache.calcite.rel.core.Project)">ProjectNode</a></span>&#8203;(<a href="../../../interpreter/Compiler.html" title="interface in org.apache.calcite.interpreter">Compiler</a>&nbsp;compiler,
<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;rel)</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="../Project.html" title="class in org.apache.calcite.rel.core">Project</a> in <a href="../../../plan/package-summary.html">org.apache.calcite.plan</a></h3>
<table class="useSummary">
<caption><span>Fields in <a href="../../../plan/package-summary.html">org.apache.calcite.plan</a> with type parameters of type <a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</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.base.Predicate&lt;<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelOptUtil.</span><code><span class="memberNameLink"><a href="../../../plan/RelOptUtil.html#PROJECT_PREDICATE">PROJECT_PREDICATE</a></span></code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Methods in <a href="../../../plan/package-summary.html">org.apache.calcite.plan</a> with parameters of type <a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</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 boolean</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelOptUtil.</span><code><span class="memberNameLink"><a href="../../../plan/RelOptUtil.html#checkProjAndChildInputs(org.apache.calcite.rel.core.Project,boolean)">checkProjAndChildInputs</a></span>&#8203;(<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;project,
boolean&nbsp;checkNames)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelOptUtil.</span><code><span class="memberNameLink"><a href="../../../plan/RelOptUtil.html#containsMultisetOrWindowedAgg(org.apache.calcite.rel.core.Project)">containsMultisetOrWindowedAgg</a></span>&#8203;(<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;project)</code></th>
<td class="colLast">
<div class="block">Predicate for whether a <a href="../Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a> contains multisets or windowed
aggregates.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../rules/MultiJoin.html" title="class in org.apache.calcite.rel.rules">MultiJoin</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelOptUtil.</span><code><span class="memberNameLink"><a href="../../../plan/RelOptUtil.html#projectMultiJoin(org.apache.calcite.rel.rules.MultiJoin,org.apache.calcite.rel.core.Project)">projectMultiJoin</a></span>&#8203;(<a href="../../rules/MultiJoin.html" title="class in org.apache.calcite.rel.rules">MultiJoin</a>&nbsp;multiJoin,
<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;project)</code></th>
<td class="colLast">
<div class="block">Creates a new <a href="../../rules/MultiJoin.html" title="class in org.apache.calcite.rel.rules"><code>MultiJoin</code></a> to reflect
projection references from a
<a href="../Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a> that is on top of the
<a href="../../rules/MultiJoin.html" title="class in org.apache.calcite.rel.rules"><code>MultiJoin</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelOptUtil.</span><code><span class="memberNameLink"><a href="../../../plan/RelOptUtil.html#pushFilterPastProject(org.apache.calcite.rex.RexNode,org.apache.calcite.rel.core.Project)">pushFilterPastProject</a></span>&#8203;(<a href="../../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;filter,
<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;projRel)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.util.List&lt;<a href="../../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelOptUtil.</span><code><span class="memberNameLink"><a href="../../../plan/RelOptUtil.html#pushPastProject(java.util.List,org.apache.calcite.rel.core.Project)">pushPastProject</a></span>&#8203;(java.util.List&lt;? extends <a href="../../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;nodes,
<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;project)</code></th>
<td class="colLast">
<div class="block">Converts a list of expressions that are based on the output fields of a
<a href="../Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a> to equivalent expressions on the Project's
input fields.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelOptUtil.</span><code><span class="memberNameLink"><a href="../../../plan/RelOptUtil.html#pushPastProject(org.apache.calcite.rex.RexNode,org.apache.calcite.rel.core.Project)">pushPastProject</a></span>&#8203;(<a href="../../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;node,
<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;project)</code></th>
<td class="colLast">
<div class="block">Converts an expression that is based on the output fields of a
<a href="../Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a> to an equivalent expression on the Project's
input fields.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static <a href="../../../rex/RexShuttle.html" title="class in org.apache.calcite.rex">RexShuttle</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelOptUtil.</span><code><span class="memberNameLink"><a href="../../../plan/RelOptUtil.html#pushShuttle(org.apache.calcite.rel.core.Project)">pushShuttle</a></span>&#8203;(<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;project)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
</section>
</li>
<li class="blockList">
<section role="region"><a id="org.apache.calcite.rel.core">
<!-- -->
</a>
<h3>Uses of <a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a> in <a href="../package-summary.html">org.apache.calcite.rel.core</a></h3>
<table class="useSummary">
<caption><span>Methods in <a href="../package-summary.html">org.apache.calcite.rel.core</a> that return <a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</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>abstract <a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">Project.</span><code><span class="memberNameLink"><a href="../Project.html#copy(org.apache.calcite.plan.RelTraitSet,org.apache.calcite.rel.RelNode,java.util.List,org.apache.calcite.rel.type.RelDataType)">copy</a></span>&#8203;(<a href="../../../plan/RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;traitSet,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;input,
java.util.List&lt;<a href="../../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;projects,
<a href="../../type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;rowType)</code></th>
<td class="colLast">
<div class="block">Copies a project.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">Project.</span><code><span class="memberNameLink"><a href="../Project.html#copy(org.apache.calcite.plan.RelTraitSet,org.apache.calcite.rel.RelNode,java.util.List,org.apache.calcite.rel.type.RelDataType,int)">copy</a></span>&#8203;(<a href="../../../plan/RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;traitSet,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;input,
java.util.List&lt;<a href="../../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;projects,
<a href="../../type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;rowType,
int&nbsp;flags)</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.logical">
<!-- -->
</a>
<h3>Uses of <a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a> in <a href="../../logical/package-summary.html">org.apache.calcite.rel.logical</a></h3>
<table class="useSummary">
<caption><span>Subclasses of <a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a> in <a href="../../logical/package-summary.html">org.apache.calcite.rel.logical</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="../../logical/LogicalProject.html" title="class in org.apache.calcite.rel.logical">LogicalProject</a></span></code></th>
<td class="colLast">
<div class="block">Sub-class of <a href="../Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a> not
targeted at any particular engine or calling convention.</div>
</td>
</tr>
</tbody>
</table>
</section>
</li>
<li class="blockList">
<section role="region"><a id="org.apache.calcite.rel.metadata">
<!-- -->
</a>
<h3>Uses of <a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a> in <a href="../../metadata/package-summary.html">org.apache.calcite.rel.metadata</a></h3>
<table class="useSummary">
<caption><span>Fields in <a href="../../metadata/package-summary.html">org.apache.calcite.rel.metadata</a> declared as <a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</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 <a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelMdUtil.CardOfProjExpr.</span><code><span class="memberNameLink"><a href="../../metadata/RelMdUtil.CardOfProjExpr.html#rel">rel</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Methods in <a href="../../metadata/package-summary.html">org.apache.calcite.rel.metadata</a> with parameters of type <a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</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.lang.Boolean</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelMdColumnUniqueness.</span><code><span class="memberNameLink"><a href="../../metadata/RelMdColumnUniqueness.html#areColumnsUnique(org.apache.calcite.rel.core.Project,org.apache.calcite.rel.metadata.RelMetadataQuery,org.apache.calcite.util.ImmutableBitSet,boolean)">areColumnsUnique</a></span>&#8203;(<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;rel,
<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq,
<a href="../../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;columns,
boolean&nbsp;ignoreNulls)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.util.List&lt;java.lang.Double&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelMdSize.</span><code><span class="memberNameLink"><a href="../../metadata/RelMdSize.html#averageColumnSizes(org.apache.calcite.rel.core.Project,org.apache.calcite.rel.metadata.RelMetadataQuery)">averageColumnSizes</a></span>&#8203;(<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;rel,
<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.Double</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelMdUtil.</span><code><span class="memberNameLink"><a href="../../metadata/RelMdUtil.html#cardOfProjExpr(org.apache.calcite.rel.metadata.RelMetadataQuery,org.apache.calcite.rel.core.Project,org.apache.calcite.rex.RexNode)">cardOfProjExpr</a></span>&#8203;(<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq,
<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;rel,
<a href="../../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;expr)</code></th>
<td class="colLast">
<div class="block">Computes the cardinality of a particular expression from the projection
list.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>com.google.common.collect.ImmutableList&lt;<a href="../../RelCollation.html" title="interface in org.apache.calcite.rel">RelCollation</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelMdCollation.</span><code><span class="memberNameLink"><a href="../../metadata/RelMdCollation.html#collations(org.apache.calcite.rel.core.Project,org.apache.calcite.rel.metadata.RelMetadataQuery)">collations</a></span>&#8203;(<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;project,
<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../RelDistribution.html" title="interface in org.apache.calcite.rel">RelDistribution</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelMdDistribution.</span><code><span class="memberNameLink"><a href="../../metadata/RelMdDistribution.html#distribution(org.apache.calcite.rel.core.Project,org.apache.calcite.rel.metadata.RelMetadataQuery)">distribution</a></span>&#8203;(<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;project,
<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../plan/RelOptPredicateList.html" title="class in org.apache.calcite.plan">RelOptPredicateList</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelMdAllPredicates.</span><code><span class="memberNameLink"><a href="../../metadata/RelMdAllPredicates.html#getAllPredicates(org.apache.calcite.rel.core.Project,org.apache.calcite.rel.metadata.RelMetadataQuery)">getAllPredicates</a></span>&#8203;(<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;project,
<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq)</code></th>
<td class="colLast">
<div class="block">Extract predicates for a project.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.util.Set&lt;<a href="../../metadata/RelColumnOrigin.html" title="class in org.apache.calcite.rel.metadata">RelColumnOrigin</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelMdColumnOrigins.</span><code><span class="memberNameLink"><a href="../../metadata/RelMdColumnOrigins.html#getColumnOrigins(org.apache.calcite.rel.core.Project,org.apache.calcite.rel.metadata.RelMetadataQuery,int)">getColumnOrigins</a></span>&#8203;(<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;rel,
<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq,
int&nbsp;iOutputColumn)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.lang.Double</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelMdDistinctRowCount.</span><code><span class="memberNameLink"><a href="../../metadata/RelMdDistinctRowCount.html#getDistinctRowCount(org.apache.calcite.rel.core.Project,org.apache.calcite.rel.metadata.RelMetadataQuery,org.apache.calcite.util.ImmutableBitSet,org.apache.calcite.rex.RexNode)">getDistinctRowCount</a></span>&#8203;(<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;rel,
<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq,
<a href="../../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;groupKey,
<a href="../../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;predicate)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.util.Set&lt;<a href="../../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelMdExpressionLineage.</span><code><span class="memberNameLink"><a href="../../metadata/RelMdExpressionLineage.html#getExpressionLineage(org.apache.calcite.rel.core.Project,org.apache.calcite.rel.metadata.RelMetadataQuery,org.apache.calcite.rex.RexNode)">getExpressionLineage</a></span>&#8203;(<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;rel,
<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq,
<a href="../../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;outputExpression)</code></th>
<td class="colLast">
<div class="block">Expression lineage from Project.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.lang.Double</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelMdMaxRowCount.</span><code><span class="memberNameLink"><a href="../../metadata/RelMdMaxRowCount.html#getMaxRowCount(org.apache.calcite.rel.core.Project,org.apache.calcite.rel.metadata.RelMetadataQuery)">getMaxRowCount</a></span>&#8203;(<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;rel,
<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.lang.Double</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelMdMinRowCount.</span><code><span class="memberNameLink"><a href="../../metadata/RelMdMinRowCount.html#getMinRowCount(org.apache.calcite.rel.core.Project,org.apache.calcite.rel.metadata.RelMetadataQuery)">getMinRowCount</a></span>&#8203;(<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;rel,
<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>com.google.common.collect.Multimap&lt;java.lang.Class&lt;? extends <a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&gt;,&#8203;<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelMdNodeTypes.</span><code><span class="memberNameLink"><a href="../../metadata/RelMdNodeTypes.html#getNodeTypes(org.apache.calcite.rel.core.Project,org.apache.calcite.rel.metadata.RelMetadataQuery)">getNodeTypes</a></span>&#8203;(<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;rel,
<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.lang.Double</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelMdPopulationSize.</span><code><span class="memberNameLink"><a href="../../metadata/RelMdPopulationSize.html#getPopulationSize(org.apache.calcite.rel.core.Project,org.apache.calcite.rel.metadata.RelMetadataQuery,org.apache.calcite.util.ImmutableBitSet)">getPopulationSize</a></span>&#8203;(<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;rel,
<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq,
<a href="../../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;groupKey)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../plan/RelOptPredicateList.html" title="class in org.apache.calcite.plan">RelOptPredicateList</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelMdPredicates.</span><code><span class="memberNameLink"><a href="../../metadata/RelMdPredicates.html#getPredicates(org.apache.calcite.rel.core.Project,org.apache.calcite.rel.metadata.RelMetadataQuery)">getPredicates</a></span>&#8203;(<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;project,
<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq)</code></th>
<td class="colLast">
<div class="block">Infers predicates for a project.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.lang.Double</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelMdRowCount.</span><code><span class="memberNameLink"><a href="../../metadata/RelMdRowCount.html#getRowCount(org.apache.calcite.rel.core.Project,org.apache.calcite.rel.metadata.RelMetadataQuery)">getRowCount</a></span>&#8203;(<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;rel,
<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.lang.Double</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelMdSelectivity.</span><code><span class="memberNameLink"><a href="../../metadata/RelMdSelectivity.html#getSelectivity(org.apache.calcite.rel.core.Project,org.apache.calcite.rel.metadata.RelMetadataQuery,org.apache.calcite.rex.RexNode)">getSelectivity</a></span>&#8203;(<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;rel,
<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq,
<a href="../../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;predicate)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.util.Set&lt;<a href="../../../rex/RexTableInputRef.RelTableRef.html" title="class in org.apache.calcite.rex">RexTableInputRef.RelTableRef</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelMdTableReferences.</span><code><span class="memberNameLink"><a href="../../metadata/RelMdTableReferences.html#getTableReferences(org.apache.calcite.rel.core.Project,org.apache.calcite.rel.metadata.RelMetadataQuery)">getTableReferences</a></span>&#8203;(<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;rel,
<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq)</code></th>
<td class="colLast">
<div class="block">Table references from Project.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.util.Set&lt;<a href="../../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelMdUniqueKeys.</span><code><span class="memberNameLink"><a href="../../metadata/RelMdUniqueKeys.html#getUniqueKeys(org.apache.calcite.rel.core.Project,org.apache.calcite.rel.metadata.RelMetadataQuery,boolean)">getUniqueKeys</a></span>&#8203;(<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;rel,
<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq,
boolean&nbsp;ignoreNulls)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Constructors in <a href="../../metadata/package-summary.html">org.apache.calcite.rel.metadata</a> with parameters of type <a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</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="../../metadata/RelMdUtil.CardOfProjExpr.html#%3Cinit%3E(org.apache.calcite.rel.metadata.RelMetadataQuery,org.apache.calcite.rel.core.Project)">CardOfProjExpr</a></span>&#8203;(<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq,
<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;rel)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
</section>
</li>
<li class="blockList">
<section role="region"><a id="org.apache.calcite.rel.rel2sql">
<!-- -->
</a>
<h3>Uses of <a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a> in <a href="../../rel2sql/package-summary.html">org.apache.calcite.rel.rel2sql</a></h3>
<table class="useSummary">
<caption><span>Methods in <a href="../../rel2sql/package-summary.html">org.apache.calcite.rel.rel2sql</a> with parameters of type <a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</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="../../rel2sql/SqlImplementor.Result.html" title="class in org.apache.calcite.rel.rel2sql">SqlImplementor.Result</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelToSqlConverter.</span><code><span class="memberNameLink"><a href="../../rel2sql/RelToSqlConverter.html#visit(org.apache.calcite.rel.core.Project)">visit</a></span>&#8203;(<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;e)</code></th>
<td class="colLast">&nbsp;</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="../Project.html" title="class in org.apache.calcite.rel.core">Project</a> in <a href="../../rules/package-summary.html">org.apache.calcite.rel.rules</a></h3>
<table class="useSummary">
<caption><span>Fields in <a href="../../rules/package-summary.html">org.apache.calcite.rel.rules</a> declared as <a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</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 <a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">AbstractMaterializedViewRule.ViewPartialRewriting.</span><code><span class="memberNameLink"><a href="../../rules/AbstractMaterializedViewRule.ViewPartialRewriting.html#newTopViewProject">newTopViewProject</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">PushProjector.</span><code><span class="memberNameLink"><a href="../../rules/PushProjector.html#origProj">origProj</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Methods in <a href="../../rules/package-summary.html">org.apache.calcite.rel.rules</a> that return <a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</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="../Project.html" title="class in org.apache.calcite.rel.core">Project</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">PushProjector.</span><code><span class="memberNameLink"><a href="../../rules/PushProjector.html#createProjectRefsAndExprs(org.apache.calcite.rel.RelNode,boolean,boolean)">createProjectRefsAndExprs</a></span>&#8203;(<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;projChild,
boolean&nbsp;adjust,
boolean&nbsp;rightSide)</code></th>
<td class="colLast">
<div class="block">Creates a projection based on the inputs specified in a bitmap and the
expressions that need to be preserved.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">JoinProjectTransposeRule.</span><code><span class="memberNameLink"><a href="../../rules/JoinProjectTransposeRule.html#getRightChild(org.apache.calcite.plan.RelOptRuleCall)">getRightChild</a></span>&#8203;(<a href="../../../plan/RelOptRuleCall.html" title="class in org.apache.calcite.plan">RelOptRuleCall</a>&nbsp;call)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">MultiJoinProjectTransposeRule.</span><code><span class="memberNameLink"><a href="../../rules/MultiJoinProjectTransposeRule.html#getRightChild(org.apache.calcite.plan.RelOptRuleCall)">getRightChild</a></span>&#8203;(<a href="../../../plan/RelOptRuleCall.html" title="class in org.apache.calcite.plan">RelOptRuleCall</a>&nbsp;call)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Methods in <a href="../../rules/package-summary.html">org.apache.calcite.rel.rules</a> with parameters of type <a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</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="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">AggregateProjectMergeRule.</span><code><span class="memberNameLink"><a href="../../rules/AggregateProjectMergeRule.html#apply(org.apache.calcite.plan.RelOptRuleCall,org.apache.calcite.rel.core.Aggregate,org.apache.calcite.rel.core.Project)">apply</a></span>&#8203;(<a href="../../../plan/RelOptRuleCall.html" title="class in org.apache.calcite.plan">RelOptRuleCall</a>&nbsp;call,
<a href="../Aggregate.html" title="class in org.apache.calcite.rel.core">Aggregate</a>&nbsp;aggregate,
<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;project)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">AggregateStarTableRule.</span><code><span class="memberNameLink"><a href="../../rules/AggregateStarTableRule.html#apply(org.apache.calcite.plan.RelOptRuleCall,org.apache.calcite.rel.core.Project,org.apache.calcite.rel.core.Aggregate,org.apache.calcite.schema.impl.StarTable.StarTableScan)">apply</a></span>&#8203;(<a href="../../../plan/RelOptRuleCall.html" title="class in org.apache.calcite.plan">RelOptRuleCall</a>&nbsp;call,
<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;postProject,
<a href="../Aggregate.html" title="class in org.apache.calcite.rel.core">Aggregate</a>&nbsp;aggregate,
<a href="../../../schema/impl/StarTable.StarTableScan.html" title="class in org.apache.calcite.schema.impl">StarTable.StarTableScan</a>&nbsp;scan)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">ProjectTableScanRule.</span><code><span class="memberNameLink"><a href="../../rules/ProjectTableScanRule.html#apply(org.apache.calcite.plan.RelOptRuleCall,org.apache.calcite.rel.core.Project,org.apache.calcite.rel.core.TableScan)">apply</a></span>&#8203;(<a href="../../../plan/RelOptRuleCall.html" title="class in org.apache.calcite.plan">RelOptRuleCall</a>&nbsp;call,
<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;project,
<a href="../TableScan.html" title="class in org.apache.calcite.rel.core">TableScan</a>&nbsp;scan)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected abstract <a href="../../rules/AbstractMaterializedViewRule.ViewPartialRewriting.html" title="class in org.apache.calcite.rel.rules">AbstractMaterializedViewRule.ViewPartialRewriting</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">AbstractMaterializedViewRule.</span><code><span class="memberNameLink"><a href="../../rules/AbstractMaterializedViewRule.html#compensateViewPartial(org.apache.calcite.tools.RelBuilder,org.apache.calcite.rex.RexBuilder,org.apache.calcite.rel.metadata.RelMetadataQuery,org.apache.calcite.rel.RelNode,org.apache.calcite.rel.core.Project,org.apache.calcite.rel.RelNode,java.util.Set,org.apache.calcite.rel.rules.AbstractMaterializedViewRule.EquivalenceClasses,org.apache.calcite.rel.core.Project,org.apache.calcite.rel.RelNode,java.util.Set)">compensateViewPartial</a></span>&#8203;(<a href="../../../tools/RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;relBuilder,
<a href="../../../rex/RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a>&nbsp;rexBuilder,
<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;input,
<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;topProject,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;node,
java.util.Set&lt;<a href="../../../rex/RexTableInputRef.RelTableRef.html" title="class in org.apache.calcite.rex">RexTableInputRef.RelTableRef</a>&gt;&nbsp;queryTableRefs,
<a href="../../rules/AbstractMaterializedViewRule.EquivalenceClasses.html" title="class in org.apache.calcite.rel.rules">AbstractMaterializedViewRule.EquivalenceClasses</a>&nbsp;queryEC,
<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;topViewProject,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;viewNode,
java.util.Set&lt;<a href="../../../rex/RexTableInputRef.RelTableRef.html" title="class in org.apache.calcite.rex">RexTableInputRef.RelTableRef</a>&gt;&nbsp;viewTableRefs)</code></th>
<td class="colLast">
<div class="block">It checks whether the query can be rewritten using the view even though the
query uses additional tables.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="../../rules/AbstractMaterializedViewRule.ViewPartialRewriting.html" title="class in org.apache.calcite.rel.rules">AbstractMaterializedViewRule.ViewPartialRewriting</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">AbstractMaterializedViewRule.MaterializedViewAggregateRule.</span><code><span class="memberNameLink"><a href="../../rules/AbstractMaterializedViewRule.MaterializedViewAggregateRule.html#compensateViewPartial(org.apache.calcite.tools.RelBuilder,org.apache.calcite.rex.RexBuilder,org.apache.calcite.rel.metadata.RelMetadataQuery,org.apache.calcite.rel.RelNode,org.apache.calcite.rel.core.Project,org.apache.calcite.rel.RelNode,java.util.Set,org.apache.calcite.rel.rules.AbstractMaterializedViewRule.EquivalenceClasses,org.apache.calcite.rel.core.Project,org.apache.calcite.rel.RelNode,java.util.Set)">compensateViewPartial</a></span>&#8203;(<a href="../../../tools/RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;relBuilder,
<a href="../../../rex/RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a>&nbsp;rexBuilder,
<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;input,
<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;topProject,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;node,
java.util.Set&lt;<a href="../../../rex/RexTableInputRef.RelTableRef.html" title="class in org.apache.calcite.rex">RexTableInputRef.RelTableRef</a>&gt;&nbsp;queryTableRefs,
<a href="../../rules/AbstractMaterializedViewRule.EquivalenceClasses.html" title="class in org.apache.calcite.rel.rules">AbstractMaterializedViewRule.EquivalenceClasses</a>&nbsp;queryEC,
<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;topViewProject,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;viewNode,
java.util.Set&lt;<a href="../../../rex/RexTableInputRef.RelTableRef.html" title="class in org.apache.calcite.rex">RexTableInputRef.RelTableRef</a>&gt;&nbsp;viewTableRefs)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="../../rules/AbstractMaterializedViewRule.ViewPartialRewriting.html" title="class in org.apache.calcite.rel.rules">AbstractMaterializedViewRule.ViewPartialRewriting</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">AbstractMaterializedViewRule.MaterializedViewJoinRule.</span><code><span class="memberNameLink"><a href="../../rules/AbstractMaterializedViewRule.MaterializedViewJoinRule.html#compensateViewPartial(org.apache.calcite.tools.RelBuilder,org.apache.calcite.rex.RexBuilder,org.apache.calcite.rel.metadata.RelMetadataQuery,org.apache.calcite.rel.RelNode,org.apache.calcite.rel.core.Project,org.apache.calcite.rel.RelNode,java.util.Set,org.apache.calcite.rel.rules.AbstractMaterializedViewRule.EquivalenceClasses,org.apache.calcite.rel.core.Project,org.apache.calcite.rel.RelNode,java.util.Set)">compensateViewPartial</a></span>&#8203;(<a href="../../../tools/RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;relBuilder,
<a href="../../../rex/RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a>&nbsp;rexBuilder,
<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;input,
<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;topProject,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;node,
java.util.Set&lt;<a href="../../../rex/RexTableInputRef.RelTableRef.html" title="class in org.apache.calcite.rex">RexTableInputRef.RelTableRef</a>&gt;&nbsp;queryTableRefs,
<a href="../../rules/AbstractMaterializedViewRule.EquivalenceClasses.html" title="class in org.apache.calcite.rel.rules">AbstractMaterializedViewRule.EquivalenceClasses</a>&nbsp;queryEC,
<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;topViewProject,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;viewNode,
java.util.Set&lt;<a href="../../../rex/RexTableInputRef.RelTableRef.html" title="class in org.apache.calcite.rex">RexTableInputRef.RelTableRef</a>&gt;&nbsp;viewTableRefs)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">JoinProjectTransposeRule.</span><code><span class="memberNameLink"><a href="../../rules/JoinProjectTransposeRule.html#createProjectExprs(org.apache.calcite.rel.core.Project,org.apache.calcite.rel.RelNode,int,org.apache.calcite.rex.RexBuilder,java.util.List,java.util.List)">createProjectExprs</a></span>&#8203;(<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;projRel,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;joinChild,
int&nbsp;adjustmentAmount,
<a href="../../../rex/RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a>&nbsp;rexBuilder,
java.util.List&lt;<a href="../../type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;joinChildrenFields,
java.util.List&lt;<a href="../../../util/Pair.html" title="class in org.apache.calcite.util">Pair</a>&lt;<a href="../../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>,&#8203;java.lang.String&gt;&gt;&nbsp;projects)</code></th>
<td class="colLast">
<div class="block">Creates projection expressions corresponding to one of the inputs into
the join</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">JoinProjectTransposeRule.</span><code><span class="memberNameLink"><a href="../../rules/JoinProjectTransposeRule.html#getProjectChild(org.apache.calcite.plan.RelOptRuleCall,org.apache.calcite.rel.core.Project,boolean)">getProjectChild</a></span>&#8203;(<a href="../../../plan/RelOptRuleCall.html" title="class in org.apache.calcite.plan">RelOptRuleCall</a>&nbsp;call,
<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;project,
boolean&nbsp;leftChild)</code></th>
<td class="colLast">
<div class="block">Returns the child of the project that will be used as input into the new
LogicalJoin once the projects are pulled above the LogicalJoin.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">MultiJoinProjectTransposeRule.</span><code><span class="memberNameLink"><a href="../../rules/MultiJoinProjectTransposeRule.html#getProjectChild(org.apache.calcite.plan.RelOptRuleCall,org.apache.calcite.rel.core.Project,boolean)">getProjectChild</a></span>&#8203;(<a href="../../../plan/RelOptRuleCall.html" title="class in org.apache.calcite.plan">RelOptRuleCall</a>&nbsp;call,
<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;project,
boolean&nbsp;leftChild)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">ProjectRemoveRule.</span><code><span class="memberNameLink"><a href="../../rules/ProjectRemoveRule.html#isTrivial(org.apache.calcite.rel.core.Project)">isTrivial</a></span>&#8203;(<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;project)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected abstract boolean</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">AbstractMaterializedViewRule.</span><code><span class="memberNameLink"><a href="../../rules/AbstractMaterializedViewRule.html#isValidPlan(org.apache.calcite.rel.core.Project,org.apache.calcite.rel.RelNode,org.apache.calcite.rel.metadata.RelMetadataQuery)">isValidPlan</a></span>&#8203;(<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;topProject,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;node,
<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">AbstractMaterializedViewRule.MaterializedViewAggregateRule.</span><code><span class="memberNameLink"><a href="../../rules/AbstractMaterializedViewRule.MaterializedViewAggregateRule.html#isValidPlan(org.apache.calcite.rel.core.Project,org.apache.calcite.rel.RelNode,org.apache.calcite.rel.metadata.RelMetadataQuery)">isValidPlan</a></span>&#8203;(<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;topProject,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;node,
<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">AbstractMaterializedViewRule.MaterializedViewJoinRule.</span><code><span class="memberNameLink"><a href="../../rules/AbstractMaterializedViewRule.MaterializedViewJoinRule.html#isValidPlan(org.apache.calcite.rel.core.Project,org.apache.calcite.rel.RelNode,org.apache.calcite.rel.metadata.RelMetadataQuery)">isValidPlan</a></span>&#8203;(<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;topProject,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;node,
<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected static <a href="../../rules/AbstractMaterializedViewRule.ViewPartialRewriting.html" title="class in org.apache.calcite.rel.rules">AbstractMaterializedViewRule.ViewPartialRewriting</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">AbstractMaterializedViewRule.ViewPartialRewriting.</span><code><span class="memberNameLink"><a href="../../rules/AbstractMaterializedViewRule.ViewPartialRewriting.html#of(org.apache.calcite.rel.RelNode,org.apache.calcite.rel.core.Project,org.apache.calcite.rel.RelNode)">of</a></span>&#8203;(<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;newView,
<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;newTopViewProject,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;newViewNode)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">AbstractMaterializedViewRule.</span><code><span class="memberNameLink"><a href="../../rules/AbstractMaterializedViewRule.html#perform(org.apache.calcite.plan.RelOptRuleCall,org.apache.calcite.rel.core.Project,org.apache.calcite.rel.RelNode)">perform</a></span>&#8203;(<a href="../../../plan/RelOptRuleCall.html" title="class in org.apache.calcite.plan">RelOptRuleCall</a>&nbsp;call,
<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;topProject,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;node)</code></th>
<td class="colLast">
<div class="block">Rewriting logic is based on "Optimizing Queries Using Materialized Views:
A Practical, Scalable Solution" by Goldstein and Larson.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">SemiJoinRule.</span><code><span class="memberNameLink"><a href="../../rules/SemiJoinRule.html#perform(org.apache.calcite.plan.RelOptRuleCall,org.apache.calcite.rel.core.Project,org.apache.calcite.rel.core.Join,org.apache.calcite.rel.RelNode,org.apache.calcite.rel.core.Aggregate)">perform</a></span>&#8203;(<a href="../../../plan/RelOptRuleCall.html" title="class in org.apache.calcite.plan">RelOptRuleCall</a>&nbsp;call,
<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;project,
<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;join,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;left,
<a href="../Aggregate.html" title="class in org.apache.calcite.rel.core">Aggregate</a>&nbsp;aggregate)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">AbstractMaterializedViewRule.MaterializedViewAggregateRule.</span><code><span class="memberNameLink"><a href="../../rules/AbstractMaterializedViewRule.MaterializedViewAggregateRule.html#rewriteQuery(org.apache.calcite.tools.RelBuilder,org.apache.calcite.rex.RexBuilder,org.apache.calcite.rex.RexSimplify,org.apache.calcite.rel.metadata.RelMetadataQuery,org.apache.calcite.rex.RexNode,org.apache.calcite.rex.RexNode,org.apache.calcite.rel.core.Project,org.apache.calcite.rel.RelNode,com.google.common.collect.BiMap,org.apache.calcite.rel.rules.AbstractMaterializedViewRule.EquivalenceClasses,org.apache.calcite.rel.rules.AbstractMaterializedViewRule.EquivalenceClasses)">rewriteQuery</a></span>&#8203;(<a href="../../../tools/RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;relBuilder,
<a href="../../../rex/RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a>&nbsp;rexBuilder,
<a href="../../../rex/RexSimplify.html" title="class in org.apache.calcite.rex">RexSimplify</a>&nbsp;simplify,
<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq,
<a href="../../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;compensationColumnsEquiPred,
<a href="../../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;otherCompensationPred,
<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;topProject,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;node,
com.google.common.collect.BiMap&lt;<a href="../../../rex/RexTableInputRef.RelTableRef.html" title="class in org.apache.calcite.rex">RexTableInputRef.RelTableRef</a>,&#8203;<a href="../../../rex/RexTableInputRef.RelTableRef.html" title="class in org.apache.calcite.rex">RexTableInputRef.RelTableRef</a>&gt;&nbsp;queryToViewTableMapping,
<a href="../../rules/AbstractMaterializedViewRule.EquivalenceClasses.html" title="class in org.apache.calcite.rel.rules">AbstractMaterializedViewRule.EquivalenceClasses</a>&nbsp;viewEC,
<a href="../../rules/AbstractMaterializedViewRule.EquivalenceClasses.html" title="class in org.apache.calcite.rel.rules">AbstractMaterializedViewRule.EquivalenceClasses</a>&nbsp;queryEC)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">AbstractMaterializedViewRule.MaterializedViewJoinRule.</span><code><span class="memberNameLink"><a href="../../rules/AbstractMaterializedViewRule.MaterializedViewJoinRule.html#rewriteQuery(org.apache.calcite.tools.RelBuilder,org.apache.calcite.rex.RexBuilder,org.apache.calcite.rex.RexSimplify,org.apache.calcite.rel.metadata.RelMetadataQuery,org.apache.calcite.rex.RexNode,org.apache.calcite.rex.RexNode,org.apache.calcite.rel.core.Project,org.apache.calcite.rel.RelNode,com.google.common.collect.BiMap,org.apache.calcite.rel.rules.AbstractMaterializedViewRule.EquivalenceClasses,org.apache.calcite.rel.rules.AbstractMaterializedViewRule.EquivalenceClasses)">rewriteQuery</a></span>&#8203;(<a href="../../../tools/RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;relBuilder,
<a href="../../../rex/RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a>&nbsp;rexBuilder,
<a href="../../../rex/RexSimplify.html" title="class in org.apache.calcite.rex">RexSimplify</a>&nbsp;simplify,
<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq,
<a href="../../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;compensationColumnsEquiPred,
<a href="../../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;otherCompensationPred,
<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;topProject,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;node,
com.google.common.collect.BiMap&lt;<a href="../../../rex/RexTableInputRef.RelTableRef.html" title="class in org.apache.calcite.rex">RexTableInputRef.RelTableRef</a>,&#8203;<a href="../../../rex/RexTableInputRef.RelTableRef.html" title="class in org.apache.calcite.rex">RexTableInputRef.RelTableRef</a>&gt;&nbsp;viewToQueryTableMapping,
<a href="../../rules/AbstractMaterializedViewRule.EquivalenceClasses.html" title="class in org.apache.calcite.rel.rules">AbstractMaterializedViewRule.EquivalenceClasses</a>&nbsp;viewEC,
<a href="../../rules/AbstractMaterializedViewRule.EquivalenceClasses.html" title="class in org.apache.calcite.rel.rules">AbstractMaterializedViewRule.EquivalenceClasses</a>&nbsp;queryEC)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected abstract <a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">AbstractMaterializedViewRule.</span><code><span class="memberNameLink"><a href="../../rules/AbstractMaterializedViewRule.html#rewriteQuery(org.apache.calcite.tools.RelBuilder,org.apache.calcite.rex.RexBuilder,org.apache.calcite.rex.RexSimplify,org.apache.calcite.rel.metadata.RelMetadataQuery,org.apache.calcite.rex.RexNode,org.apache.calcite.rex.RexNode,org.apache.calcite.rel.core.Project,org.apache.calcite.rel.RelNode,com.google.common.collect.BiMap,org.apache.calcite.rel.rules.AbstractMaterializedViewRule.EquivalenceClasses,org.apache.calcite.rel.rules.AbstractMaterializedViewRule.EquivalenceClasses)">rewriteQuery</a></span>&#8203;(<a href="../../../tools/RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;relBuilder,
<a href="../../../rex/RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a>&nbsp;rexBuilder,
<a href="../../../rex/RexSimplify.html" title="class in org.apache.calcite.rex">RexSimplify</a>&nbsp;simplify,
<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq,
<a href="../../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;compensationColumnsEquiPred,
<a href="../../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;otherCompensationPred,
<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;topProject,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;node,
com.google.common.collect.BiMap&lt;<a href="../../../rex/RexTableInputRef.RelTableRef.html" title="class in org.apache.calcite.rex">RexTableInputRef.RelTableRef</a>,&#8203;<a href="../../../rex/RexTableInputRef.RelTableRef.html" title="class in org.apache.calcite.rex">RexTableInputRef.RelTableRef</a>&gt;&nbsp;viewToQueryTableMapping,
<a href="../../rules/AbstractMaterializedViewRule.EquivalenceClasses.html" title="class in org.apache.calcite.rel.rules">AbstractMaterializedViewRule.EquivalenceClasses</a>&nbsp;viewEC,
<a href="../../rules/AbstractMaterializedViewRule.EquivalenceClasses.html" title="class in org.apache.calcite.rel.rules">AbstractMaterializedViewRule.EquivalenceClasses</a>&nbsp;queryEC)</code></th>
<td class="colLast">
<div class="block">If the view will be used in a union rewriting, this method is responsible for
rewriting the query branch of the union using the given compensation predicate.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">AbstractMaterializedViewRule.MaterializedViewAggregateRule.</span><code><span class="memberNameLink"><a href="../../rules/AbstractMaterializedViewRule.MaterializedViewAggregateRule.html#rewriteView(org.apache.calcite.tools.RelBuilder,org.apache.calcite.rex.RexBuilder,org.apache.calcite.rex.RexSimplify,org.apache.calcite.rel.metadata.RelMetadataQuery,org.apache.calcite.rel.rules.AbstractMaterializedViewRule.MatchModality,boolean,org.apache.calcite.rel.RelNode,org.apache.calcite.rel.core.Project,org.apache.calcite.rel.RelNode,org.apache.calcite.rel.core.Project,org.apache.calcite.rel.RelNode,com.google.common.collect.BiMap,org.apache.calcite.rel.rules.AbstractMaterializedViewRule.EquivalenceClasses)">rewriteView</a></span>&#8203;(<a href="../../../tools/RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;relBuilder,
<a href="../../../rex/RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a>&nbsp;rexBuilder,
<a href="../../../rex/RexSimplify.html" title="class in org.apache.calcite.rex">RexSimplify</a>&nbsp;simplify,
<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq,
<a href="../../rules/AbstractMaterializedViewRule.MatchModality.html" title="enum in org.apache.calcite.rel.rules">AbstractMaterializedViewRule.MatchModality</a>&nbsp;matchModality,
boolean&nbsp;unionRewriting,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;input,
<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;topProject,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;node,
<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;topViewProject,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;viewNode,
com.google.common.collect.BiMap&lt;<a href="../../../rex/RexTableInputRef.RelTableRef.html" title="class in org.apache.calcite.rex">RexTableInputRef.RelTableRef</a>,&#8203;<a href="../../../rex/RexTableInputRef.RelTableRef.html" title="class in org.apache.calcite.rex">RexTableInputRef.RelTableRef</a>&gt;&nbsp;queryToViewTableMapping,
<a href="../../rules/AbstractMaterializedViewRule.EquivalenceClasses.html" title="class in org.apache.calcite.rel.rules">AbstractMaterializedViewRule.EquivalenceClasses</a>&nbsp;queryEC)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">AbstractMaterializedViewRule.MaterializedViewJoinRule.</span><code><span class="memberNameLink"><a href="../../rules/AbstractMaterializedViewRule.MaterializedViewJoinRule.html#rewriteView(org.apache.calcite.tools.RelBuilder,org.apache.calcite.rex.RexBuilder,org.apache.calcite.rex.RexSimplify,org.apache.calcite.rel.metadata.RelMetadataQuery,org.apache.calcite.rel.rules.AbstractMaterializedViewRule.MatchModality,boolean,org.apache.calcite.rel.RelNode,org.apache.calcite.rel.core.Project,org.apache.calcite.rel.RelNode,org.apache.calcite.rel.core.Project,org.apache.calcite.rel.RelNode,com.google.common.collect.BiMap,org.apache.calcite.rel.rules.AbstractMaterializedViewRule.EquivalenceClasses)">rewriteView</a></span>&#8203;(<a href="../../../tools/RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;relBuilder,
<a href="../../../rex/RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a>&nbsp;rexBuilder,
<a href="../../../rex/RexSimplify.html" title="class in org.apache.calcite.rex">RexSimplify</a>&nbsp;simplify,
<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq,
<a href="../../rules/AbstractMaterializedViewRule.MatchModality.html" title="enum in org.apache.calcite.rel.rules">AbstractMaterializedViewRule.MatchModality</a>&nbsp;matchModality,
boolean&nbsp;unionRewriting,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;input,
<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;topProject,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;node,
<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;topViewProject,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;viewNode,
com.google.common.collect.BiMap&lt;<a href="../../../rex/RexTableInputRef.RelTableRef.html" title="class in org.apache.calcite.rex">RexTableInputRef.RelTableRef</a>,&#8203;<a href="../../../rex/RexTableInputRef.RelTableRef.html" title="class in org.apache.calcite.rex">RexTableInputRef.RelTableRef</a>&gt;&nbsp;queryToViewTableMapping,
<a href="../../rules/AbstractMaterializedViewRule.EquivalenceClasses.html" title="class in org.apache.calcite.rel.rules">AbstractMaterializedViewRule.EquivalenceClasses</a>&nbsp;queryEC)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected abstract <a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">AbstractMaterializedViewRule.</span><code><span class="memberNameLink"><a href="../../rules/AbstractMaterializedViewRule.html#rewriteView(org.apache.calcite.tools.RelBuilder,org.apache.calcite.rex.RexBuilder,org.apache.calcite.rex.RexSimplify,org.apache.calcite.rel.metadata.RelMetadataQuery,org.apache.calcite.rel.rules.AbstractMaterializedViewRule.MatchModality,boolean,org.apache.calcite.rel.RelNode,org.apache.calcite.rel.core.Project,org.apache.calcite.rel.RelNode,org.apache.calcite.rel.core.Project,org.apache.calcite.rel.RelNode,com.google.common.collect.BiMap,org.apache.calcite.rel.rules.AbstractMaterializedViewRule.EquivalenceClasses)">rewriteView</a></span>&#8203;(<a href="../../../tools/RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;relBuilder,
<a href="../../../rex/RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a>&nbsp;rexBuilder,
<a href="../../../rex/RexSimplify.html" title="class in org.apache.calcite.rex">RexSimplify</a>&nbsp;simplify,
<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq,
<a href="../../rules/AbstractMaterializedViewRule.MatchModality.html" title="enum in org.apache.calcite.rel.rules">AbstractMaterializedViewRule.MatchModality</a>&nbsp;matchModality,
boolean&nbsp;unionRewriting,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;input,
<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;topProject,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;node,
<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;topViewProject,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;viewNode,
com.google.common.collect.BiMap&lt;<a href="../../../rex/RexTableInputRef.RelTableRef.html" title="class in org.apache.calcite.rex">RexTableInputRef.RelTableRef</a>,&#8203;<a href="../../../rex/RexTableInputRef.RelTableRef.html" title="class in org.apache.calcite.rex">RexTableInputRef.RelTableRef</a>&gt;&nbsp;queryToViewTableMapping,
<a href="../../rules/AbstractMaterializedViewRule.EquivalenceClasses.html" title="class in org.apache.calcite.rel.rules">AbstractMaterializedViewRule.EquivalenceClasses</a>&nbsp;queryEC)</code></th>
<td class="colLast">
<div class="block">Rewrites the query using the given view query.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">ProjectRemoveRule.</span><code><span class="memberNameLink"><a href="../../rules/ProjectRemoveRule.html#strip(org.apache.calcite.rel.core.Project)">strip</a></span>&#8203;(<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;project)</code></th>
<td class="colLast">
<div class="block">Returns the child of a project if the project is trivial, otherwise
the project itself.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="../AggregateCall.html" title="class in org.apache.calcite.rel.core">AggregateCall</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">AggregateCaseToFilterRule.</span><code><span class="memberNameLink"><a href="../../rules/AggregateCaseToFilterRule.html#transform(org.apache.calcite.rel.core.AggregateCall,org.apache.calcite.rel.core.Project,java.util.List)">transform</a></span>&#8203;(<a href="../AggregateCall.html" title="class in org.apache.calcite.rel.core">AggregateCall</a>&nbsp;aggregateCall,
<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;project,
java.util.List&lt;<a href="../../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;newProjects)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Constructors in <a href="../../rules/package-summary.html">org.apache.calcite.rel.rules</a> with parameters of type <a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</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="../../rules/PushProjector.html#%3Cinit%3E(org.apache.calcite.rel.core.Project,org.apache.calcite.rex.RexNode,org.apache.calcite.rel.RelNode,org.apache.calcite.rel.rules.PushProjector.ExprCondition,org.apache.calcite.tools.RelBuilder)">PushProjector</a></span>&#8203;(<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;origProj,
<a href="../../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;origFilter,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;childRel,
<a href="../../rules/PushProjector.ExprCondition.html" title="interface in org.apache.calcite.rel.rules">PushProjector.ExprCondition</a>&nbsp;preserveExprCondition,
<a href="../../../tools/RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;relBuilder)</code></th>
<td class="colLast">
<div class="block">Creates a PushProjector object for pushing projects past a RelNode.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rules/AbstractMaterializedViewRule.ViewPartialRewriting.html#%3Cinit%3E(org.apache.calcite.rel.RelNode,org.apache.calcite.rel.core.Project,org.apache.calcite.rel.RelNode)">ViewPartialRewriting</a></span>&#8203;(<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;newView,
<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;newTopViewProject,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;newViewNode)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Constructor parameters in <a href="../../rules/package-summary.html">org.apache.calcite.rel.rules</a> with type arguments of type <a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</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="../../rules/ProjectFilterTransposeRule.html#%3Cinit%3E(java.lang.Class,java.lang.Class,org.apache.calcite.tools.RelBuilderFactory,org.apache.calcite.rel.rules.PushProjector.ExprCondition)">ProjectFilterTransposeRule</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&gt;&nbsp;projectClass,
java.lang.Class&lt;? extends <a href="../Filter.html" title="class in org.apache.calcite.rel.core">Filter</a>&gt;&nbsp;filterClass,
<a href="../../../tools/RelBuilderFactory.html" title="interface in org.apache.calcite.tools">RelBuilderFactory</a>&nbsp;relBuilderFactory,
<a href="../../rules/PushProjector.ExprCondition.html" title="interface in org.apache.calcite.rel.rules">PushProjector.ExprCondition</a>&nbsp;preserveExprCondition)</code></th>
<td class="colLast">
<div class="block">Creates a ProjectFilterTransposeRule.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rules/ProjectJoinJoinRemoveRule.html#%3Cinit%3E(java.lang.Class,java.lang.Class,org.apache.calcite.tools.RelBuilderFactory)">ProjectJoinJoinRemoveRule</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&gt;&nbsp;projectClass,
java.lang.Class&lt;? extends <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&gt;&nbsp;joinClass,
<a href="../../../tools/RelBuilderFactory.html" title="interface in org.apache.calcite.tools">RelBuilderFactory</a>&nbsp;relBuilderFactory)</code></th>
<td class="colLast">
<div class="block">Creates a ProjectJoinJoinRemoveRule.</div>
</td>
</tr>
<tr class="altColor">
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rules/ProjectJoinRemoveRule.html#%3Cinit%3E(java.lang.Class,java.lang.Class,org.apache.calcite.tools.RelBuilderFactory)">ProjectJoinRemoveRule</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&gt;&nbsp;projectClass,
java.lang.Class&lt;? extends <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&gt;&nbsp;joinClass,
<a href="../../../tools/RelBuilderFactory.html" title="interface in org.apache.calcite.tools">RelBuilderFactory</a>&nbsp;relBuilderFactory)</code></th>
<td class="colLast">
<div class="block">Creates a ProjectJoinRemoveRule.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rules/ProjectMultiJoinMergeRule.html#%3Cinit%3E(java.lang.Class,org.apache.calcite.tools.RelBuilderFactory)">ProjectMultiJoinMergeRule</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&gt;&nbsp;projectClass,
<a href="../../../tools/RelBuilderFactory.html" title="interface in org.apache.calcite.tools">RelBuilderFactory</a>&nbsp;relBuilderFactory)</code></th>
<td class="colLast">
<div class="block">Creates a ProjectMultiJoinMergeRule that uses a generic
<a href="../Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a></div>
</td>
</tr>
<tr class="altColor">
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rules/ReduceExpressionsRule.ProjectReduceExpressionsRule.html#%3Cinit%3E(java.lang.Class,boolean,org.apache.calcite.tools.RelBuilderFactory)">ProjectReduceExpressionsRule</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&gt;&nbsp;projectClass,
boolean&nbsp;matchNullability,
<a href="../../../tools/RelBuilderFactory.html" title="interface in org.apache.calcite.tools">RelBuilderFactory</a>&nbsp;relBuilderFactory)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rules/ReduceExpressionsRule.ProjectReduceExpressionsRule.html#%3Cinit%3E(java.lang.Class,org.apache.calcite.tools.RelBuilderFactory)">ProjectReduceExpressionsRule</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&gt;&nbsp;projectClass,
<a href="../../../tools/RelBuilderFactory.html" title="interface in org.apache.calcite.tools">RelBuilderFactory</a>&nbsp;relBuilderFactory)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr class="altColor">
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rules/ProjectSortTransposeRule.html#%3Cinit%3E(java.lang.Class,java.lang.Class,org.apache.calcite.tools.RelBuilderFactory)">ProjectSortTransposeRule</a></span>&#8203;(java.lang.Class&lt;<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&gt;&nbsp;projectClass,
java.lang.Class&lt;<a href="../Sort.html" title="class in org.apache.calcite.rel.core">Sort</a>&gt;&nbsp;sortClass,
<a href="../../../tools/RelBuilderFactory.html" title="interface in org.apache.calcite.tools">RelBuilderFactory</a>&nbsp;relBuilderFactory)</code></th>
<td class="colLast">
<div class="block">Creates a ProjectSortTransposeRule.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rules/SemiJoinRule.ProjectToSemiJoinRule.html#%3Cinit%3E(java.lang.Class,java.lang.Class,java.lang.Class,org.apache.calcite.tools.RelBuilderFactory,java.lang.String)">ProjectToSemiJoinRule</a></span>&#8203;(java.lang.Class&lt;<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&gt;&nbsp;projectClass,
java.lang.Class&lt;<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&gt;&nbsp;joinClass,
java.lang.Class&lt;<a href="../Aggregate.html" title="class in org.apache.calcite.rel.core">Aggregate</a>&gt;&nbsp;aggregateClass,
<a href="../../../tools/RelBuilderFactory.html" title="interface in org.apache.calcite.tools">RelBuilderFactory</a>&nbsp;relBuilderFactory,
java.lang.String&nbsp;description)</code></th>
<td class="colLast">
<div class="block">Creates a ProjectToSemiJoinRule.</div>
</td>
</tr>
<tr class="altColor">
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rules/SemiJoinRule.html#%3Cinit%3E(java.lang.Class,java.lang.Class,java.lang.Class,org.apache.calcite.tools.RelBuilderFactory,java.lang.String)">SemiJoinRule</a></span>&#8203;(java.lang.Class&lt;<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&gt;&nbsp;projectClass,
java.lang.Class&lt;<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&gt;&nbsp;joinClass,
java.lang.Class&lt;<a href="../Aggregate.html" title="class in org.apache.calcite.rel.core">Aggregate</a>&gt;&nbsp;aggregateClass,
<a href="../../../tools/RelBuilderFactory.html" title="interface in org.apache.calcite.tools">RelBuilderFactory</a>&nbsp;relBuilderFactory,
java.lang.String&nbsp;description)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
</section>
</li>
<li class="blockList">
<section role="region"><a id="org.apache.calcite.rex">
<!-- -->
</a>
<h3>Uses of <a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a> in <a href="../../../rex/package-summary.html">org.apache.calcite.rex</a></h3>
<table class="useSummary">
<caption><span>Fields in <a href="../../../rex/package-summary.html">org.apache.calcite.rex</a> with type parameters of type <a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</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.base.Predicate&lt;<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RexUtil.SubQueryFinder.</span><code><span class="memberNameLink"><a href="../../../rex/RexUtil.SubQueryFinder.html#PROJECT_PREDICATE">PROJECT_PREDICATE</a></span></code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Methods in <a href="../../../rex/package-summary.html">org.apache.calcite.rex</a> with parameters of type <a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</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 boolean</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RexUtil.SubQueryFinder.</span><code><span class="memberNameLink"><a href="../../../rex/RexUtil.SubQueryFinder.html#containsSubQuery(org.apache.calcite.rel.core.Project)">containsSubQuery</a></span>&#8203;(<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;project)</code></th>
<td class="colLast">
<div class="block">Returns whether a <a href="../Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a> contains a sub-query.</div>
</td>
</tr>
</tbody>
</table>
</section>
</li>
<li class="blockList">
<section role="region"><a id="org.apache.calcite.sql2rel">
<!-- -->
</a>
<h3>Uses of <a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a> in <a href="../../../sql2rel/package-summary.html">org.apache.calcite.sql2rel</a></h3>
<table class="useSummary">
<caption><span>Methods in <a href="../../../sql2rel/package-summary.html">org.apache.calcite.sql2rel</a> with parameters of type <a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</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>private <a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelDecorrelator.</span><code><span class="memberNameLink"><a href="../../../sql2rel/RelDecorrelator.html#aggregateCorrelatorOutput(org.apache.calcite.rel.core.Correlate,org.apache.calcite.rel.core.Project,java.util.Set)">aggregateCorrelatorOutput</a></span>&#8203;(<a href="../Correlate.html" title="class in org.apache.calcite.rel.core">Correlate</a>&nbsp;correlate,
<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;project,
java.util.Set&lt;java.lang.Integer&gt;&nbsp;isCount)</code></th>
<td class="colLast">
<div class="block">Pulls a <a href="../Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a> above a <a href="../Correlate.html" title="class in org.apache.calcite.rel.core"><code>Correlate</code></a> from its RHS input.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private boolean</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelDecorrelator.</span><code><span class="memberNameLink"><a href="../../../sql2rel/RelDecorrelator.html#checkCorVars(org.apache.calcite.rel.core.Correlate,org.apache.calcite.rel.core.Project,org.apache.calcite.rel.core.Filter,java.util.List)">checkCorVars</a></span>&#8203;(<a href="../Correlate.html" title="class in org.apache.calcite.rel.core">Correlate</a>&nbsp;correlate,
<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;project,
<a href="../Filter.html" title="class in org.apache.calcite.rel.core">Filter</a>&nbsp;filter,
java.util.List&lt;<a href="../../../rex/RexFieldAccess.html" title="class in org.apache.calcite.rex">RexFieldAccess</a>&gt;&nbsp;correlatedJoinKeys)</code></th>
<td class="colLast">
<div class="block">Checks whether the correlations in projRel and filter are related to
the correlated variables provided by corRel.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../sql2rel/RelDecorrelator.Frame.html" title="class in org.apache.calcite.sql2rel">RelDecorrelator.Frame</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelDecorrelator.</span><code><span class="memberNameLink"><a href="../../../sql2rel/RelDecorrelator.html#decorrelateRel(org.apache.calcite.rel.core.Project)">decorrelateRel</a></span>&#8203;(<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;rel)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelDecorrelator.AdjustProjectForCountAggregateRule.</span><code><span class="memberNameLink"><a href="../../../sql2rel/RelDecorrelator.AdjustProjectForCountAggregateRule.html#onMatch2(org.apache.calcite.plan.RelOptRuleCall,org.apache.calcite.rel.core.Correlate,org.apache.calcite.rel.RelNode,org.apache.calcite.rel.core.Project,org.apache.calcite.rel.core.Aggregate)">onMatch2</a></span>&#8203;(<a href="../../../plan/RelOptRuleCall.html" title="class in org.apache.calcite.plan">RelOptRuleCall</a>&nbsp;call,
<a href="../Correlate.html" title="class in org.apache.calcite.rel.core">Correlate</a>&nbsp;correlate,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;leftInput,
<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;aggOutputProject,
<a href="../Aggregate.html" title="class in org.apache.calcite.rel.core">Aggregate</a>&nbsp;aggregate)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelDecorrelator.</span><code><span class="memberNameLink"><a href="../../../sql2rel/RelDecorrelator.html#projectJoinOutputWithNullability(org.apache.calcite.rel.core.Join,org.apache.calcite.rel.core.Project,int)">projectJoinOutputWithNullability</a></span>&#8203;(<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;join,
<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;project,
int&nbsp;nullIndicatorPos)</code></th>
<td class="colLast">
<div class="block">Pulls project above the join from its RHS input.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../sql2rel/RelFieldTrimmer.TrimResult.html" title="class in org.apache.calcite.sql2rel">RelFieldTrimmer.TrimResult</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelFieldTrimmer.</span><code><span class="memberNameLink"><a href="../../../sql2rel/RelFieldTrimmer.html#trimFields(org.apache.calcite.rel.core.Project,org.apache.calcite.util.ImmutableBitSet,java.util.Set)">trimFields</a></span>&#8203;(<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;project,
<a href="../../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;fieldsUsed,
java.util.Set&lt;<a href="../../type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;extraFields)</code></th>
<td class="colLast">
<div class="block">Variant of <a href="../../../sql2rel/RelFieldTrimmer.html#trimFields(org.apache.calcite.rel.RelNode,org.apache.calcite.util.ImmutableBitSet,java.util.Set)"><code>RelFieldTrimmer.trimFields(RelNode, ImmutableBitSet, Set)</code></a> for
<a href="../../logical/LogicalProject.html" title="class in org.apache.calcite.rel.logical"><code>LogicalProject</code></a>.</div>
</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="../Project.html" title="class in org.apache.calcite.rel.core">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>