blob: f0ad9fae05816dcf3971785e5510e430ac5cd43d [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>RelFieldTrimmer (Apache Calcite calcite API)</title>
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="RelFieldTrimmer (Apache Calcite calcite API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><b>Apache Calcite</b></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/calcite/sql2rel/RelDecorrelator.CorelMapBuilder.html" title="class in org.apache.calcite.sql2rel"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.TrimResult.html" title="class in org.apache.calcite.sql2rel"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/calcite/sql2rel/RelFieldTrimmer.html" target="_top">Frames</a></li>
<li><a href="RelFieldTrimmer.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.calcite.sql2rel</div>
<h2 title="Class RelFieldTrimmer" class="title">Class RelFieldTrimmer</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.apache.calcite.sql2rel.RelFieldTrimmer</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../org/apache/calcite/util/ReflectiveVisitor.html" title="interface in org.apache.calcite.util">ReflectiveVisitor</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">RelFieldTrimmer</span>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
implements <a href="../../../../org/apache/calcite/util/ReflectiveVisitor.html" title="interface in org.apache.calcite.util">ReflectiveVisitor</a></pre>
<div class="block">Transformer that walks over a tree of relational expressions, replacing each
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in org.apache.calcite.rel"><code>RelNode</code></a> with a 'slimmed down' relational expression that projects
only the columns required by its consumer.
<p>Uses multi-methods to fire the right rule for each type of relational
expression. This allows the transformer to be extended without having to
add a new method to RelNode, and without requiring a collection of rule
classes scattered to the four winds.
<p>REVIEW: jhyde, 2009/7/28: Is sql2rel the correct package for this class?
Trimming fields is not an essential part of SQL-to-Rel translation, and
arguably belongs in the optimization phase. But this transformer does not
obey the usual pattern for planner rules; it is difficult to do so, because
each <a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in org.apache.calcite.rel"><code>RelNode</code></a> needs to return a different set of fields after
trimming.
<p>TODO: Change 2nd arg of the <a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.html#trimFields-org.apache.calcite.rel.RelNode-org.apache.calcite.util.ImmutableBitSet-java.util.Set-"><code>trimFields(org.apache.calcite.rel.RelNode, org.apache.calcite.util.ImmutableBitSet, java.util.Set&lt;org.apache.calcite.rel.type.RelDataTypeField&gt;)</code></a> method from BitSet to
Mapping. Sometimes it helps the consumer if you return the columns in a
particular order. For instance, it may avoid a project at the top of the
tree just for reordering. Could ease the transition by writing methods that
convert BitSet to Mapping and vice versa.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.TrimResult.html" title="class in org.apache.calcite.sql2rel">RelFieldTrimmer.TrimResult</a></span></code>
<div class="block">Result of an attempt to trim columns from a relational expression.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.html#RelFieldTrimmer-org.apache.calcite.sql.validate.SqlValidator-org.apache.calcite.tools.RelBuilder-">RelFieldTrimmer</a></span>(<a href="../../../../org/apache/calcite/sql/validate/SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a>&nbsp;validator,
<a href="../../../../org/apache/calcite/tools/RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;relBuilder)</code>
<div class="block">Creates a RelFieldTrimmer.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.html#RelFieldTrimmer-org.apache.calcite.sql.validate.SqlValidator-org.apache.calcite.plan.RelOptCluster-org.apache.calcite.rel.core.RelFactories.ProjectFactory-org.apache.calcite.rel.core.RelFactories.FilterFactory-org.apache.calcite.rel.core.RelFactories.JoinFactory-org.apache.calcite.rel.core.RelFactories.SortFactory-org.apache.calcite.rel.core.RelFactories.AggregateFactory-org.apache.calcite.rel.core.RelFactories.SetOpFactory-">RelFieldTrimmer</a></span>(<a href="../../../../org/apache/calcite/sql/validate/SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a>&nbsp;validator,
<a href="../../../../org/apache/calcite/plan/RelOptCluster.html" title="class in org.apache.calcite.plan">RelOptCluster</a>&nbsp;cluster,
<a href="../../../../org/apache/calcite/rel/core/RelFactories.ProjectFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.ProjectFactory</a>&nbsp;projectFactory,
<a href="../../../../org/apache/calcite/rel/core/RelFactories.FilterFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.FilterFactory</a>&nbsp;filterFactory,
<a href="../../../../org/apache/calcite/rel/core/RelFactories.JoinFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.JoinFactory</a>&nbsp;joinFactory,
<a href="../../../../org/apache/calcite/rel/core/RelFactories.SortFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.SortFactory</a>&nbsp;sortFactory,
<a href="../../../../org/apache/calcite/rel/core/RelFactories.AggregateFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.AggregateFactory</a>&nbsp;aggregateFactory,
<a href="../../../../org/apache/calcite/rel/core/RelFactories.SetOpFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.SetOpFactory</a>&nbsp;setOpFactory)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>protected <a href="../../../../org/apache/calcite/util/mapping/Mapping.html" title="interface in org.apache.calcite.util.mapping">Mapping</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.html#createMapping-org.apache.calcite.util.ImmutableBitSet-int-">createMapping</a></span>(<a href="../../../../org/apache/calcite/util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;fieldsUsed,
int&nbsp;fieldCount)</code>&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>protected <a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.TrimResult.html" title="class in org.apache.calcite.sql2rel">RelFieldTrimmer.TrimResult</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.html#dispatchTrimFields-org.apache.calcite.rel.RelNode-org.apache.calcite.util.ImmutableBitSet-java.util.Set-">dispatchTrimFields</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel,
<a href="../../../../org/apache/calcite/util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;fieldsUsed,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;extraFields)</code>
<div class="block">Invokes <a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.html#trimFields-org.apache.calcite.rel.RelNode-org.apache.calcite.util.ImmutableBitSet-java.util.Set-"><code>trimFields(org.apache.calcite.rel.RelNode, org.apache.calcite.util.ImmutableBitSet, java.util.Set&lt;org.apache.calcite.rel.type.RelDataTypeField&gt;)</code></a>, or the appropriate method for the type
of the rel parameter, using multi-method dispatch.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>protected <a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.TrimResult.html" title="class in org.apache.calcite.sql2rel">RelFieldTrimmer.TrimResult</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.html#dummyProject-int-org.apache.calcite.rel.RelNode-">dummyProject</a></span>(int&nbsp;fieldCount,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;input)</code>
<div class="block">Creates a project with a dummy column, to protect the parts of the system
that cannot handle a relational expression with no columns.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>protected <a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.TrimResult.html" title="class in org.apache.calcite.sql2rel">RelFieldTrimmer.TrimResult</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.html#dummyProject-int-org.apache.calcite.rel.RelNode-org.apache.calcite.rel.RelNode-">dummyProject</a></span>(int&nbsp;fieldCount,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;input,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;originalRelNode)</code>
<div class="block">Creates a project with a dummy column, to protect the parts of the system
that cannot handle a relational expression with no columns.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>protected <a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.TrimResult.html" title="class in org.apache.calcite.sql2rel">RelFieldTrimmer.TrimResult</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.html#result-org.apache.calcite.rel.RelNode-org.apache.calcite.util.mapping.Mapping-">result</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;r,
<a href="../../../../org/apache/calcite/util/mapping/Mapping.html" title="interface in org.apache.calcite.util.mapping">Mapping</a>&nbsp;mapping)</code>&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.html#trim-org.apache.calcite.rel.RelNode-">trim</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;root)</code>
<div class="block">Trims unused fields from a relational expression.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>protected <a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.TrimResult.html" title="class in org.apache.calcite.sql2rel">RelFieldTrimmer.TrimResult</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.html#trimChild-org.apache.calcite.rel.RelNode-org.apache.calcite.rel.RelNode-org.apache.calcite.util.ImmutableBitSet-java.util.Set-">trimChild</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;input,
<a href="../../../../org/apache/calcite/util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;fieldsUsed,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;extraFields)</code>
<div class="block">Trims the fields of an input relational expression.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>protected <a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.TrimResult.html" title="class in org.apache.calcite.sql2rel">RelFieldTrimmer.TrimResult</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.html#trimChildRestore-org.apache.calcite.rel.RelNode-org.apache.calcite.rel.RelNode-org.apache.calcite.util.ImmutableBitSet-java.util.Set-">trimChildRestore</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;input,
<a href="../../../../org/apache/calcite/util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;fieldsUsed,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;extraFields)</code>
<div class="block">Trims a child relational expression, then adds back a dummy project to
restore the fields that were removed.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.TrimResult.html" title="class in org.apache.calcite.sql2rel">RelFieldTrimmer.TrimResult</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.html#trimFields-org.apache.calcite.rel.core.Aggregate-org.apache.calcite.util.ImmutableBitSet-java.util.Set-">trimFields</a></span>(<a href="../../../../org/apache/calcite/rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core">Aggregate</a>&nbsp;aggregate,
<a href="../../../../org/apache/calcite/util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;fieldsUsed,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;extraFields)</code>
<div class="block">Variant of <a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.html#trimFields-org.apache.calcite.rel.RelNode-org.apache.calcite.util.ImmutableBitSet-java.util.Set-"><code>trimFields(RelNode, ImmutableBitSet, Set)</code></a> for
<a href="../../../../org/apache/calcite/rel/logical/LogicalAggregate.html" title="class in org.apache.calcite.rel.logical"><code>LogicalAggregate</code></a>.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.TrimResult.html" title="class in org.apache.calcite.sql2rel">RelFieldTrimmer.TrimResult</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.html#trimFields-org.apache.calcite.rel.core.Calc-org.apache.calcite.util.ImmutableBitSet-java.util.Set-">trimFields</a></span>(<a href="../../../../org/apache/calcite/rel/core/Calc.html" title="class in org.apache.calcite.rel.core">Calc</a>&nbsp;calc,
<a href="../../../../org/apache/calcite/util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;fieldsUsed,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;extraFields)</code>
<div class="block">Variant of <a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.html#trimFields-org.apache.calcite.rel.RelNode-org.apache.calcite.util.ImmutableBitSet-java.util.Set-"><code>trimFields(RelNode, ImmutableBitSet, Set)</code></a> for
<a href="../../../../org/apache/calcite/rel/logical/LogicalCalc.html" title="class in org.apache.calcite.rel.logical"><code>LogicalCalc</code></a>.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.TrimResult.html" title="class in org.apache.calcite.sql2rel">RelFieldTrimmer.TrimResult</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.html#trimFields-org.apache.calcite.rel.core.Exchange-org.apache.calcite.util.ImmutableBitSet-java.util.Set-">trimFields</a></span>(<a href="../../../../org/apache/calcite/rel/core/Exchange.html" title="class in org.apache.calcite.rel.core">Exchange</a>&nbsp;exchange,
<a href="../../../../org/apache/calcite/util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;fieldsUsed,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;extraFields)</code>&nbsp;</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.TrimResult.html" title="class in org.apache.calcite.sql2rel">RelFieldTrimmer.TrimResult</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.html#trimFields-org.apache.calcite.rel.core.Filter-org.apache.calcite.util.ImmutableBitSet-java.util.Set-">trimFields</a></span>(<a href="../../../../org/apache/calcite/rel/core/Filter.html" title="class in org.apache.calcite.rel.core">Filter</a>&nbsp;filter,
<a href="../../../../org/apache/calcite/util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;fieldsUsed,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;extraFields)</code>
<div class="block">Variant of <a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.html#trimFields-org.apache.calcite.rel.RelNode-org.apache.calcite.util.ImmutableBitSet-java.util.Set-"><code>trimFields(RelNode, ImmutableBitSet, Set)</code></a> for
<a href="../../../../org/apache/calcite/rel/logical/LogicalFilter.html" title="class in org.apache.calcite.rel.logical"><code>LogicalFilter</code></a>.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.TrimResult.html" title="class in org.apache.calcite.sql2rel">RelFieldTrimmer.TrimResult</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.html#trimFields-org.apache.calcite.rel.core.Join-org.apache.calcite.util.ImmutableBitSet-java.util.Set-">trimFields</a></span>(<a href="../../../../org/apache/calcite/rel/core/Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;join,
<a href="../../../../org/apache/calcite/util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;fieldsUsed,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;extraFields)</code>
<div class="block">Variant of <a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.html#trimFields-org.apache.calcite.rel.RelNode-org.apache.calcite.util.ImmutableBitSet-java.util.Set-"><code>trimFields(RelNode, ImmutableBitSet, Set)</code></a> for
<a href="../../../../org/apache/calcite/rel/logical/LogicalJoin.html" title="class in org.apache.calcite.rel.logical"><code>LogicalJoin</code></a>.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.TrimResult.html" title="class in org.apache.calcite.sql2rel">RelFieldTrimmer.TrimResult</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.html#trimFields-org.apache.calcite.rel.logical.LogicalTableFunctionScan-org.apache.calcite.util.ImmutableBitSet-java.util.Set-">trimFields</a></span>(<a href="../../../../org/apache/calcite/rel/logical/LogicalTableFunctionScan.html" title="class in org.apache.calcite.rel.logical">LogicalTableFunctionScan</a>&nbsp;tabFun,
<a href="../../../../org/apache/calcite/util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;fieldsUsed,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;extraFields)</code>
<div class="block">Variant of <a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.html#trimFields-org.apache.calcite.rel.RelNode-org.apache.calcite.util.ImmutableBitSet-java.util.Set-"><code>trimFields(RelNode, ImmutableBitSet, Set)</code></a> for
<a href="../../../../org/apache/calcite/rel/logical/LogicalTableFunctionScan.html" title="class in org.apache.calcite.rel.logical"><code>LogicalTableFunctionScan</code></a>.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.TrimResult.html" title="class in org.apache.calcite.sql2rel">RelFieldTrimmer.TrimResult</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.html#trimFields-org.apache.calcite.rel.logical.LogicalTableModify-org.apache.calcite.util.ImmutableBitSet-java.util.Set-">trimFields</a></span>(<a href="../../../../org/apache/calcite/rel/logical/LogicalTableModify.html" title="class in org.apache.calcite.rel.logical">LogicalTableModify</a>&nbsp;modifier,
<a href="../../../../org/apache/calcite/util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;fieldsUsed,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;extraFields)</code>
<div class="block">Variant of <a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.html#trimFields-org.apache.calcite.rel.RelNode-org.apache.calcite.util.ImmutableBitSet-java.util.Set-"><code>trimFields(RelNode, ImmutableBitSet, Set)</code></a> for
<a href="../../../../org/apache/calcite/rel/logical/LogicalTableModify.html" title="class in org.apache.calcite.rel.logical"><code>LogicalTableModify</code></a>.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.TrimResult.html" title="class in org.apache.calcite.sql2rel">RelFieldTrimmer.TrimResult</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.html#trimFields-org.apache.calcite.rel.logical.LogicalValues-org.apache.calcite.util.ImmutableBitSet-java.util.Set-">trimFields</a></span>(<a href="../../../../org/apache/calcite/rel/logical/LogicalValues.html" title="class in org.apache.calcite.rel.logical">LogicalValues</a>&nbsp;values,
<a href="../../../../org/apache/calcite/util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;fieldsUsed,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;extraFields)</code>
<div class="block">Variant of <a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.html#trimFields-org.apache.calcite.rel.RelNode-org.apache.calcite.util.ImmutableBitSet-java.util.Set-"><code>trimFields(RelNode, ImmutableBitSet, Set)</code></a> for
<a href="../../../../org/apache/calcite/rel/logical/LogicalValues.html" title="class in org.apache.calcite.rel.logical"><code>LogicalValues</code></a>.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.TrimResult.html" title="class in org.apache.calcite.sql2rel">RelFieldTrimmer.TrimResult</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.html#trimFields-org.apache.calcite.rel.core.Project-org.apache.calcite.util.ImmutableBitSet-java.util.Set-">trimFields</a></span>(<a href="../../../../org/apache/calcite/rel/core/Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;project,
<a href="../../../../org/apache/calcite/util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;fieldsUsed,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;extraFields)</code>
<div class="block">Variant of <a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.html#trimFields-org.apache.calcite.rel.RelNode-org.apache.calcite.util.ImmutableBitSet-java.util.Set-"><code>trimFields(RelNode, ImmutableBitSet, Set)</code></a> for
<a href="../../../../org/apache/calcite/rel/logical/LogicalProject.html" title="class in org.apache.calcite.rel.logical"><code>LogicalProject</code></a>.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.TrimResult.html" title="class in org.apache.calcite.sql2rel">RelFieldTrimmer.TrimResult</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.html#trimFields-org.apache.calcite.rel.RelNode-org.apache.calcite.util.ImmutableBitSet-java.util.Set-">trimFields</a></span>(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel,
<a href="../../../../org/apache/calcite/util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;fieldsUsed,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;extraFields)</code>
<div class="block">Visit method, per <a href="../../../../org/apache/calcite/util/ReflectiveVisitor.html" title="interface in org.apache.calcite.util"><code>ReflectiveVisitor</code></a>.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.TrimResult.html" title="class in org.apache.calcite.sql2rel">RelFieldTrimmer.TrimResult</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.html#trimFields-org.apache.calcite.rel.core.SetOp-org.apache.calcite.util.ImmutableBitSet-java.util.Set-">trimFields</a></span>(<a href="../../../../org/apache/calcite/rel/core/SetOp.html" title="class in org.apache.calcite.rel.core">SetOp</a>&nbsp;setOp,
<a href="../../../../org/apache/calcite/util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;fieldsUsed,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;extraFields)</code>
<div class="block">Variant of <a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.html#trimFields-org.apache.calcite.rel.RelNode-org.apache.calcite.util.ImmutableBitSet-java.util.Set-"><code>trimFields(RelNode, ImmutableBitSet, Set)</code></a> for
<a href="../../../../org/apache/calcite/rel/core/SetOp.html" title="class in org.apache.calcite.rel.core"><code>SetOp</code></a> (including UNION and UNION ALL).</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.TrimResult.html" title="class in org.apache.calcite.sql2rel">RelFieldTrimmer.TrimResult</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.html#trimFields-org.apache.calcite.rel.core.SortExchange-org.apache.calcite.util.ImmutableBitSet-java.util.Set-">trimFields</a></span>(<a href="../../../../org/apache/calcite/rel/core/SortExchange.html" title="class in org.apache.calcite.rel.core">SortExchange</a>&nbsp;sortExchange,
<a href="../../../../org/apache/calcite/util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;fieldsUsed,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;extraFields)</code>&nbsp;</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.TrimResult.html" title="class in org.apache.calcite.sql2rel">RelFieldTrimmer.TrimResult</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.html#trimFields-org.apache.calcite.rel.core.Sort-org.apache.calcite.util.ImmutableBitSet-java.util.Set-">trimFields</a></span>(<a href="../../../../org/apache/calcite/rel/core/Sort.html" title="class in org.apache.calcite.rel.core">Sort</a>&nbsp;sort,
<a href="../../../../org/apache/calcite/util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;fieldsUsed,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;extraFields)</code>
<div class="block">Variant of <a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.html#trimFields-org.apache.calcite.rel.RelNode-org.apache.calcite.util.ImmutableBitSet-java.util.Set-"><code>trimFields(RelNode, ImmutableBitSet, Set)</code></a> for
<a href="../../../../org/apache/calcite/rel/core/Sort.html" title="class in org.apache.calcite.rel.core"><code>Sort</code></a>.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.TrimResult.html" title="class in org.apache.calcite.sql2rel">RelFieldTrimmer.TrimResult</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.html#trimFields-org.apache.calcite.rel.core.TableScan-org.apache.calcite.util.ImmutableBitSet-java.util.Set-">trimFields</a></span>(<a href="../../../../org/apache/calcite/rel/core/TableScan.html" title="class in org.apache.calcite.rel.core">TableScan</a>&nbsp;tableAccessRel,
<a href="../../../../org/apache/calcite/util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;fieldsUsed,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;extraFields)</code>
<div class="block">Variant of <a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.html#trimFields-org.apache.calcite.rel.RelNode-org.apache.calcite.util.ImmutableBitSet-java.util.Set-"><code>trimFields(RelNode, ImmutableBitSet, Set)</code></a> for
<a href="../../../../org/apache/calcite/rel/logical/LogicalTableScan.html" title="class in org.apache.calcite.rel.logical"><code>LogicalTableScan</code></a>.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="RelFieldTrimmer-org.apache.calcite.sql.validate.SqlValidator-org.apache.calcite.tools.RelBuilder-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>RelFieldTrimmer</h4>
<pre>public&nbsp;RelFieldTrimmer(<a href="../../../../org/apache/calcite/sql/validate/SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a>&nbsp;validator,
<a href="../../../../org/apache/calcite/tools/RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;relBuilder)</pre>
<div class="block">Creates a RelFieldTrimmer.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>validator</code> - Validator</dd>
</dl>
</li>
</ul>
<a name="RelFieldTrimmer-org.apache.calcite.sql.validate.SqlValidator-org.apache.calcite.plan.RelOptCluster-org.apache.calcite.rel.core.RelFactories.ProjectFactory-org.apache.calcite.rel.core.RelFactories.FilterFactory-org.apache.calcite.rel.core.RelFactories.JoinFactory-org.apache.calcite.rel.core.RelFactories.SortFactory-org.apache.calcite.rel.core.RelFactories.AggregateFactory-org.apache.calcite.rel.core.RelFactories.SetOpFactory-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>RelFieldTrimmer</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
public&nbsp;RelFieldTrimmer(<a href="../../../../org/apache/calcite/sql/validate/SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a>&nbsp;validator,
<a href="../../../../org/apache/calcite/plan/RelOptCluster.html" title="class in org.apache.calcite.plan">RelOptCluster</a>&nbsp;cluster,
<a href="../../../../org/apache/calcite/rel/core/RelFactories.ProjectFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.ProjectFactory</a>&nbsp;projectFactory,
<a href="../../../../org/apache/calcite/rel/core/RelFactories.FilterFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.FilterFactory</a>&nbsp;filterFactory,
<a href="../../../../org/apache/calcite/rel/core/RelFactories.JoinFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.JoinFactory</a>&nbsp;joinFactory,
<a href="../../../../org/apache/calcite/rel/core/RelFactories.SortFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.SortFactory</a>&nbsp;sortFactory,
<a href="../../../../org/apache/calcite/rel/core/RelFactories.AggregateFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.AggregateFactory</a>&nbsp;aggregateFactory,
<a href="../../../../org/apache/calcite/rel/core/RelFactories.SetOpFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.SetOpFactory</a>&nbsp;setOpFactory)</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="trim-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>trim</h4>
<pre>public&nbsp;<a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;trim(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;root)</pre>
<div class="block">Trims unused fields from a relational expression.
<p>We presume that all fields of the relational expression are wanted by
its consumer, so only trim fields that are not used within the tree.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>root</code> - Root node of relational expression</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Trimmed relational expression</dd>
</dl>
</li>
</ul>
<a name="trimChild-org.apache.calcite.rel.RelNode-org.apache.calcite.rel.RelNode-org.apache.calcite.util.ImmutableBitSet-java.util.Set-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>trimChild</h4>
<pre>protected&nbsp;<a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.TrimResult.html" title="class in org.apache.calcite.sql2rel">RelFieldTrimmer.TrimResult</a>&nbsp;trimChild(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;input,
<a href="../../../../org/apache/calcite/util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;fieldsUsed,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;extraFields)</pre>
<div class="block">Trims the fields of an input relational expression.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>rel</code> - Relational expression</dd>
<dd><code>input</code> - Input relational expression, whose fields to trim</dd>
<dd><code>fieldsUsed</code> - Bitmap of fields needed by the consumer</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>New relational expression and its field mapping</dd>
</dl>
</li>
</ul>
<a name="trimChildRestore-org.apache.calcite.rel.RelNode-org.apache.calcite.rel.RelNode-org.apache.calcite.util.ImmutableBitSet-java.util.Set-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>trimChildRestore</h4>
<pre>protected&nbsp;<a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.TrimResult.html" title="class in org.apache.calcite.sql2rel">RelFieldTrimmer.TrimResult</a>&nbsp;trimChildRestore(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;input,
<a href="../../../../org/apache/calcite/util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;fieldsUsed,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;extraFields)</pre>
<div class="block">Trims a child relational expression, then adds back a dummy project to
restore the fields that were removed.
<p>Sounds pointless? It causes unused fields to be removed
further down the tree (towards the leaves), but it ensure that the
consuming relational expression continues to see the same fields.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>rel</code> - Relational expression</dd>
<dd><code>input</code> - Input relational expression, whose fields to trim</dd>
<dd><code>fieldsUsed</code> - Bitmap of fields needed by the consumer</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>New relational expression and its field mapping</dd>
</dl>
</li>
</ul>
<a name="dispatchTrimFields-org.apache.calcite.rel.RelNode-org.apache.calcite.util.ImmutableBitSet-java.util.Set-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>dispatchTrimFields</h4>
<pre>protected final&nbsp;<a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.TrimResult.html" title="class in org.apache.calcite.sql2rel">RelFieldTrimmer.TrimResult</a>&nbsp;dispatchTrimFields(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel,
<a href="../../../../org/apache/calcite/util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;fieldsUsed,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;extraFields)</pre>
<div class="block">Invokes <a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.html#trimFields-org.apache.calcite.rel.RelNode-org.apache.calcite.util.ImmutableBitSet-java.util.Set-"><code>trimFields(org.apache.calcite.rel.RelNode, org.apache.calcite.util.ImmutableBitSet, java.util.Set&lt;org.apache.calcite.rel.type.RelDataTypeField&gt;)</code></a>, or the appropriate method for the type
of the rel parameter, using multi-method dispatch.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>rel</code> - Relational expression</dd>
<dd><code>fieldsUsed</code> - Bitmap of fields needed by the consumer</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>New relational expression and its field mapping</dd>
</dl>
</li>
</ul>
<a name="result-org.apache.calcite.rel.RelNode-org.apache.calcite.util.mapping.Mapping-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>result</h4>
<pre>protected&nbsp;<a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.TrimResult.html" title="class in org.apache.calcite.sql2rel">RelFieldTrimmer.TrimResult</a>&nbsp;result(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;r,
<a href="../../../../org/apache/calcite/util/mapping/Mapping.html" title="interface in org.apache.calcite.util.mapping">Mapping</a>&nbsp;mapping)</pre>
</li>
</ul>
<a name="trimFields-org.apache.calcite.rel.RelNode-org.apache.calcite.util.ImmutableBitSet-java.util.Set-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>trimFields</h4>
<pre>public&nbsp;<a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.TrimResult.html" title="class in org.apache.calcite.sql2rel">RelFieldTrimmer.TrimResult</a>&nbsp;trimFields(<a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel,
<a href="../../../../org/apache/calcite/util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;fieldsUsed,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;extraFields)</pre>
<div class="block">Visit method, per <a href="../../../../org/apache/calcite/util/ReflectiveVisitor.html" title="interface in org.apache.calcite.util"><code>ReflectiveVisitor</code></a>.
<p>This method is invoked reflectively, so there may not be any apparent
calls to it. The class (or derived classes) may contain overloads of
this method with more specific types for the <code>rel</code> parameter.
<p>Returns a pair: the relational expression created, and the mapping
between the original fields and the fields of the newly created
relational expression.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>rel</code> - Relational expression</dd>
<dd><code>fieldsUsed</code> - Fields needed by the consumer</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>relational expression and mapping</dd>
</dl>
</li>
</ul>
<a name="trimFields-org.apache.calcite.rel.core.Calc-org.apache.calcite.util.ImmutableBitSet-java.util.Set-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>trimFields</h4>
<pre>public&nbsp;<a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.TrimResult.html" title="class in org.apache.calcite.sql2rel">RelFieldTrimmer.TrimResult</a>&nbsp;trimFields(<a href="../../../../org/apache/calcite/rel/core/Calc.html" title="class in org.apache.calcite.rel.core">Calc</a>&nbsp;calc,
<a href="../../../../org/apache/calcite/util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;fieldsUsed,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;extraFields)</pre>
<div class="block">Variant of <a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.html#trimFields-org.apache.calcite.rel.RelNode-org.apache.calcite.util.ImmutableBitSet-java.util.Set-"><code>trimFields(RelNode, ImmutableBitSet, Set)</code></a> for
<a href="../../../../org/apache/calcite/rel/logical/LogicalCalc.html" title="class in org.apache.calcite.rel.logical"><code>LogicalCalc</code></a>.</div>
</li>
</ul>
<a name="trimFields-org.apache.calcite.rel.core.Project-org.apache.calcite.util.ImmutableBitSet-java.util.Set-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>trimFields</h4>
<pre>public&nbsp;<a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.TrimResult.html" title="class in org.apache.calcite.sql2rel">RelFieldTrimmer.TrimResult</a>&nbsp;trimFields(<a href="../../../../org/apache/calcite/rel/core/Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;project,
<a href="../../../../org/apache/calcite/util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;fieldsUsed,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;extraFields)</pre>
<div class="block">Variant of <a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.html#trimFields-org.apache.calcite.rel.RelNode-org.apache.calcite.util.ImmutableBitSet-java.util.Set-"><code>trimFields(RelNode, ImmutableBitSet, Set)</code></a> for
<a href="../../../../org/apache/calcite/rel/logical/LogicalProject.html" title="class in org.apache.calcite.rel.logical"><code>LogicalProject</code></a>.</div>
</li>
</ul>
<a name="dummyProject-int-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>dummyProject</h4>
<pre>protected&nbsp;<a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.TrimResult.html" title="class in org.apache.calcite.sql2rel">RelFieldTrimmer.TrimResult</a>&nbsp;dummyProject(int&nbsp;fieldCount,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;input)</pre>
<div class="block">Creates a project with a dummy column, to protect the parts of the system
that cannot handle a relational expression with no columns.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>fieldCount</code> - Number of fields in the original relational expression</dd>
<dd><code>input</code> - Trimmed input</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Dummy project</dd>
</dl>
</li>
</ul>
<a name="dummyProject-int-org.apache.calcite.rel.RelNode-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>dummyProject</h4>
<pre>protected&nbsp;<a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.TrimResult.html" title="class in org.apache.calcite.sql2rel">RelFieldTrimmer.TrimResult</a>&nbsp;dummyProject(int&nbsp;fieldCount,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;input,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;originalRelNode)</pre>
<div class="block">Creates a project with a dummy column, to protect the parts of the system
that cannot handle a relational expression with no columns.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>fieldCount</code> - Number of fields in the original relational expression</dd>
<dd><code>input</code> - Trimmed input</dd>
<dd><code>originalRelNode</code> - Source RelNode for hint propagation (or null if no propagation needed)</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Dummy project</dd>
</dl>
</li>
</ul>
<a name="trimFields-org.apache.calcite.rel.core.Filter-org.apache.calcite.util.ImmutableBitSet-java.util.Set-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>trimFields</h4>
<pre>public&nbsp;<a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.TrimResult.html" title="class in org.apache.calcite.sql2rel">RelFieldTrimmer.TrimResult</a>&nbsp;trimFields(<a href="../../../../org/apache/calcite/rel/core/Filter.html" title="class in org.apache.calcite.rel.core">Filter</a>&nbsp;filter,
<a href="../../../../org/apache/calcite/util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;fieldsUsed,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;extraFields)</pre>
<div class="block">Variant of <a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.html#trimFields-org.apache.calcite.rel.RelNode-org.apache.calcite.util.ImmutableBitSet-java.util.Set-"><code>trimFields(RelNode, ImmutableBitSet, Set)</code></a> for
<a href="../../../../org/apache/calcite/rel/logical/LogicalFilter.html" title="class in org.apache.calcite.rel.logical"><code>LogicalFilter</code></a>.</div>
</li>
</ul>
<a name="trimFields-org.apache.calcite.rel.core.Sort-org.apache.calcite.util.ImmutableBitSet-java.util.Set-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>trimFields</h4>
<pre>public&nbsp;<a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.TrimResult.html" title="class in org.apache.calcite.sql2rel">RelFieldTrimmer.TrimResult</a>&nbsp;trimFields(<a href="../../../../org/apache/calcite/rel/core/Sort.html" title="class in org.apache.calcite.rel.core">Sort</a>&nbsp;sort,
<a href="../../../../org/apache/calcite/util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;fieldsUsed,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;extraFields)</pre>
<div class="block">Variant of <a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.html#trimFields-org.apache.calcite.rel.RelNode-org.apache.calcite.util.ImmutableBitSet-java.util.Set-"><code>trimFields(RelNode, ImmutableBitSet, Set)</code></a> for
<a href="../../../../org/apache/calcite/rel/core/Sort.html" title="class in org.apache.calcite.rel.core"><code>Sort</code></a>.</div>
</li>
</ul>
<a name="trimFields-org.apache.calcite.rel.core.Exchange-org.apache.calcite.util.ImmutableBitSet-java.util.Set-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>trimFields</h4>
<pre>public&nbsp;<a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.TrimResult.html" title="class in org.apache.calcite.sql2rel">RelFieldTrimmer.TrimResult</a>&nbsp;trimFields(<a href="../../../../org/apache/calcite/rel/core/Exchange.html" title="class in org.apache.calcite.rel.core">Exchange</a>&nbsp;exchange,
<a href="../../../../org/apache/calcite/util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;fieldsUsed,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;extraFields)</pre>
</li>
</ul>
<a name="trimFields-org.apache.calcite.rel.core.SortExchange-org.apache.calcite.util.ImmutableBitSet-java.util.Set-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>trimFields</h4>
<pre>public&nbsp;<a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.TrimResult.html" title="class in org.apache.calcite.sql2rel">RelFieldTrimmer.TrimResult</a>&nbsp;trimFields(<a href="../../../../org/apache/calcite/rel/core/SortExchange.html" title="class in org.apache.calcite.rel.core">SortExchange</a>&nbsp;sortExchange,
<a href="../../../../org/apache/calcite/util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;fieldsUsed,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;extraFields)</pre>
</li>
</ul>
<a name="trimFields-org.apache.calcite.rel.core.Join-org.apache.calcite.util.ImmutableBitSet-java.util.Set-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>trimFields</h4>
<pre>public&nbsp;<a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.TrimResult.html" title="class in org.apache.calcite.sql2rel">RelFieldTrimmer.TrimResult</a>&nbsp;trimFields(<a href="../../../../org/apache/calcite/rel/core/Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;join,
<a href="../../../../org/apache/calcite/util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;fieldsUsed,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;extraFields)</pre>
<div class="block">Variant of <a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.html#trimFields-org.apache.calcite.rel.RelNode-org.apache.calcite.util.ImmutableBitSet-java.util.Set-"><code>trimFields(RelNode, ImmutableBitSet, Set)</code></a> for
<a href="../../../../org/apache/calcite/rel/logical/LogicalJoin.html" title="class in org.apache.calcite.rel.logical"><code>LogicalJoin</code></a>.</div>
</li>
</ul>
<a name="trimFields-org.apache.calcite.rel.core.SetOp-org.apache.calcite.util.ImmutableBitSet-java.util.Set-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>trimFields</h4>
<pre>public&nbsp;<a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.TrimResult.html" title="class in org.apache.calcite.sql2rel">RelFieldTrimmer.TrimResult</a>&nbsp;trimFields(<a href="../../../../org/apache/calcite/rel/core/SetOp.html" title="class in org.apache.calcite.rel.core">SetOp</a>&nbsp;setOp,
<a href="../../../../org/apache/calcite/util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;fieldsUsed,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;extraFields)</pre>
<div class="block">Variant of <a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.html#trimFields-org.apache.calcite.rel.RelNode-org.apache.calcite.util.ImmutableBitSet-java.util.Set-"><code>trimFields(RelNode, ImmutableBitSet, Set)</code></a> for
<a href="../../../../org/apache/calcite/rel/core/SetOp.html" title="class in org.apache.calcite.rel.core"><code>SetOp</code></a> (including UNION and UNION ALL).</div>
</li>
</ul>
<a name="trimFields-org.apache.calcite.rel.core.Aggregate-org.apache.calcite.util.ImmutableBitSet-java.util.Set-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>trimFields</h4>
<pre>public&nbsp;<a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.TrimResult.html" title="class in org.apache.calcite.sql2rel">RelFieldTrimmer.TrimResult</a>&nbsp;trimFields(<a href="../../../../org/apache/calcite/rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core">Aggregate</a>&nbsp;aggregate,
<a href="../../../../org/apache/calcite/util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;fieldsUsed,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;extraFields)</pre>
<div class="block">Variant of <a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.html#trimFields-org.apache.calcite.rel.RelNode-org.apache.calcite.util.ImmutableBitSet-java.util.Set-"><code>trimFields(RelNode, ImmutableBitSet, Set)</code></a> for
<a href="../../../../org/apache/calcite/rel/logical/LogicalAggregate.html" title="class in org.apache.calcite.rel.logical"><code>LogicalAggregate</code></a>.</div>
</li>
</ul>
<a name="trimFields-org.apache.calcite.rel.logical.LogicalTableModify-org.apache.calcite.util.ImmutableBitSet-java.util.Set-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>trimFields</h4>
<pre>public&nbsp;<a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.TrimResult.html" title="class in org.apache.calcite.sql2rel">RelFieldTrimmer.TrimResult</a>&nbsp;trimFields(<a href="../../../../org/apache/calcite/rel/logical/LogicalTableModify.html" title="class in org.apache.calcite.rel.logical">LogicalTableModify</a>&nbsp;modifier,
<a href="../../../../org/apache/calcite/util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;fieldsUsed,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;extraFields)</pre>
<div class="block">Variant of <a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.html#trimFields-org.apache.calcite.rel.RelNode-org.apache.calcite.util.ImmutableBitSet-java.util.Set-"><code>trimFields(RelNode, ImmutableBitSet, Set)</code></a> for
<a href="../../../../org/apache/calcite/rel/logical/LogicalTableModify.html" title="class in org.apache.calcite.rel.logical"><code>LogicalTableModify</code></a>.</div>
</li>
</ul>
<a name="trimFields-org.apache.calcite.rel.logical.LogicalTableFunctionScan-org.apache.calcite.util.ImmutableBitSet-java.util.Set-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>trimFields</h4>
<pre>public&nbsp;<a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.TrimResult.html" title="class in org.apache.calcite.sql2rel">RelFieldTrimmer.TrimResult</a>&nbsp;trimFields(<a href="../../../../org/apache/calcite/rel/logical/LogicalTableFunctionScan.html" title="class in org.apache.calcite.rel.logical">LogicalTableFunctionScan</a>&nbsp;tabFun,
<a href="../../../../org/apache/calcite/util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;fieldsUsed,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;extraFields)</pre>
<div class="block">Variant of <a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.html#trimFields-org.apache.calcite.rel.RelNode-org.apache.calcite.util.ImmutableBitSet-java.util.Set-"><code>trimFields(RelNode, ImmutableBitSet, Set)</code></a> for
<a href="../../../../org/apache/calcite/rel/logical/LogicalTableFunctionScan.html" title="class in org.apache.calcite.rel.logical"><code>LogicalTableFunctionScan</code></a>.</div>
</li>
</ul>
<a name="trimFields-org.apache.calcite.rel.logical.LogicalValues-org.apache.calcite.util.ImmutableBitSet-java.util.Set-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>trimFields</h4>
<pre>public&nbsp;<a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.TrimResult.html" title="class in org.apache.calcite.sql2rel">RelFieldTrimmer.TrimResult</a>&nbsp;trimFields(<a href="../../../../org/apache/calcite/rel/logical/LogicalValues.html" title="class in org.apache.calcite.rel.logical">LogicalValues</a>&nbsp;values,
<a href="../../../../org/apache/calcite/util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;fieldsUsed,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;extraFields)</pre>
<div class="block">Variant of <a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.html#trimFields-org.apache.calcite.rel.RelNode-org.apache.calcite.util.ImmutableBitSet-java.util.Set-"><code>trimFields(RelNode, ImmutableBitSet, Set)</code></a> for
<a href="../../../../org/apache/calcite/rel/logical/LogicalValues.html" title="class in org.apache.calcite.rel.logical"><code>LogicalValues</code></a>.</div>
</li>
</ul>
<a name="createMapping-org.apache.calcite.util.ImmutableBitSet-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createMapping</h4>
<pre>protected&nbsp;<a href="../../../../org/apache/calcite/util/mapping/Mapping.html" title="interface in org.apache.calcite.util.mapping">Mapping</a>&nbsp;createMapping(<a href="../../../../org/apache/calcite/util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;fieldsUsed,
int&nbsp;fieldCount)</pre>
</li>
</ul>
<a name="trimFields-org.apache.calcite.rel.core.TableScan-org.apache.calcite.util.ImmutableBitSet-java.util.Set-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>trimFields</h4>
<pre>public&nbsp;<a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.TrimResult.html" title="class in org.apache.calcite.sql2rel">RelFieldTrimmer.TrimResult</a>&nbsp;trimFields(<a href="../../../../org/apache/calcite/rel/core/TableScan.html" title="class in org.apache.calcite.rel.core">TableScan</a>&nbsp;tableAccessRel,
<a href="../../../../org/apache/calcite/util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;fieldsUsed,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../org/apache/calcite/rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;extraFields)</pre>
<div class="block">Variant of <a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.html#trimFields-org.apache.calcite.rel.RelNode-org.apache.calcite.util.ImmutableBitSet-java.util.Set-"><code>trimFields(RelNode, ImmutableBitSet, Set)</code></a> for
<a href="../../../../org/apache/calcite/rel/logical/LogicalTableScan.html" title="class in org.apache.calcite.rel.logical"><code>LogicalTableScan</code></a>.</div>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><b>Apache Calcite</b></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/calcite/sql2rel/RelDecorrelator.CorelMapBuilder.html" title="class in org.apache.calcite.sql2rel"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/calcite/sql2rel/RelFieldTrimmer.TrimResult.html" title="class in org.apache.calcite.sql2rel"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/calcite/sql2rel/RelFieldTrimmer.html" target="_top">Frames</a></li>
<li><a href="RelFieldTrimmer.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &copy; 2012-2020 Apache Software Foundation. All Rights Reserved.</small></p>
</body>
</html>