blob: ccb2e1cecad8261c93c798f1b2b8c67367af818e [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>Aggregate (Apache Calcite 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="Aggregate (Apache Calcite calcite API)";
}
}
catch(err) {
}
//-->
var data = {"i0":9,"i1":10,"i2":10,"i3":10,"i4":42,"i5":6,"i6":10,"i7":9,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":42,"i17":10,"i18":9,"i19":9,"i20":10,"i21":41};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
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 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" 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>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&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><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</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>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.calcite.rel.core</a></div>
<h2 title="Class Aggregate" class="title">Class Aggregate</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li><a href="../AbstractRelNode.html" title="class in org.apache.calcite.rel">org.apache.calcite.rel.AbstractRelNode</a></li>
<li>
<ul class="inheritance">
<li><a href="../SingleRel.html" title="class in org.apache.calcite.rel">org.apache.calcite.rel.SingleRel</a></li>
<li>
<ul class="inheritance">
<li>org.apache.calcite.rel.core.Aggregate</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Cloneable</a></code>, <code><a href="../../plan/RelOptNode.html" title="interface in org.apache.calcite.plan">RelOptNode</a></code>, <code><a href="../hint/Hintable.html" title="interface in org.apache.calcite.rel.hint">Hintable</a></code>, <code><a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><code><a href="../../interpreter/Bindables.BindableAggregate.html" title="class in org.apache.calcite.interpreter">Bindables.BindableAggregate</a></code>, <code><a href="../../adapter/elasticsearch/ElasticsearchAggregate.html" title="class in org.apache.calcite.adapter.elasticsearch">ElasticsearchAggregate</a></code>, <code><a href="../../adapter/enumerable/EnumerableAggregateBase.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableAggregateBase</a></code>, <code><a href="../../adapter/geode/rel/GeodeAggregate.html" title="class in org.apache.calcite.adapter.geode.rel">GeodeAggregate</a></code>, <code><a href="../../adapter/jdbc/JdbcRules.JdbcAggregate.html" title="class in org.apache.calcite.adapter.jdbc">JdbcRules.JdbcAggregate</a></code>, <code><a href="../logical/LogicalAggregate.html" title="class in org.apache.calcite.rel.logical">LogicalAggregate</a></code>, <code><a href="../../adapter/mongodb/MongoAggregate.html" title="class in org.apache.calcite.adapter.mongodb">MongoAggregate</a></code>, <code><a href="../../adapter/pig/PigAggregate.html" title="class in org.apache.calcite.adapter.pig">PigAggregate</a></code></dd>
</dl>
<hr>
<pre>public abstract class <span class="typeNameLabel">Aggregate</span>
extends <a href="../SingleRel.html" title="class in org.apache.calcite.rel">SingleRel</a>
implements <a href="../hint/Hintable.html" title="interface in org.apache.calcite.rel.hint">Hintable</a></pre>
<div class="block">Relational operator that eliminates
duplicates and computes totals.
<p>It corresponds to the <code>GROUP BY</code> operator in a SQL query
statement, together with the aggregate functions in the <code>SELECT</code>
clause.
<p>Rules:
<ul>
<li><a href="../rules/AggregateProjectPullUpConstantsRule.html" title="class in org.apache.calcite.rel.rules"><code>AggregateProjectPullUpConstantsRule</code></a>
<li><a href="../rules/AggregateExpandDistinctAggregatesRule.html" title="class in org.apache.calcite.rel.rules"><code>AggregateExpandDistinctAggregatesRule</code></a>
<li><a href="../rules/AggregateReduceFunctionsRule.html" title="class in org.apache.calcite.rel.rules"><code>AggregateReduceFunctionsRule</code></a>.
</ul></div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary">
<caption><span>Nested Classes</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>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Aggregate.AggCallBinding.html" title="class in org.apache.calcite.rel.core">Aggregate.AggCallBinding</a></span></code></th>
<td class="colLast">
<div class="block">Implementation of the <a href="../../sql/SqlOperatorBinding.html" title="class in org.apache.calcite.sql"><code>SqlOperatorBinding</code></a> interface for an
<a href="AggregateCall.html" title="class in org.apache.calcite.rel.core"><code>aggregate call</code></a> applied to a set of operands in the
context of a <a href="../logical/LogicalAggregate.html" title="class in org.apache.calcite.rel.logical"><code>LogicalAggregate</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Aggregate.Group.html" title="enum in org.apache.calcite.rel.core">Aggregate.Group</a></span></code></th>
<td class="colLast">
<div class="block">Describes the kind of roll-up.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="nested.classes.inherited.from.class.org.apache.calcite.rel.RelNode">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.calcite.rel.<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></h3>
<code><a href="../RelNode.Context.html" title="interface in org.apache.calcite.rel">RelNode.Context</a></code></li>
</ul>
</li>
</ul>
</section>
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary">
<caption><span>Fields</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>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AggregateCall.html" title="class in org.apache.calcite.rel.core">AggregateCall</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#aggCalls">aggCalls</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#groupSet">groupSet</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>com.google.common.collect.ImmutableList&lt;<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#groupSets">groupSets</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected com.google.common.collect.ImmutableList&lt;<a href="../hint/RelHint.html" title="class in org.apache.calcite.rel.hint">RelHint</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hints">hints</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#indicator">indicator</a></span></code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static com.google.common.base.Predicate&lt;<a href="Aggregate.html" title="class in org.apache.calcite.rel.core">Aggregate</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#IS_NOT_GRAND_TOTAL">IS_NOT_GRAND_TOTAL</a></span></code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static com.google.common.base.Predicate&lt;<a href="Aggregate.html" title="class in org.apache.calcite.rel.core">Aggregate</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#IS_SIMPLE">IS_SIMPLE</a></span></code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static com.google.common.base.Predicate&lt;<a href="Aggregate.html" title="class in org.apache.calcite.rel.core">Aggregate</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#NO_INDICATOR">NO_INDICATOR</a></span></code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.org.apache.calcite.rel.SingleRel">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.calcite.rel.<a href="../SingleRel.html" title="class in org.apache.calcite.rel">SingleRel</a></h3>
<code><a href="../SingleRel.html#input">input</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.org.apache.calcite.rel.AbstractRelNode">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.calcite.rel.<a href="../AbstractRelNode.html" title="class in org.apache.calcite.rel">AbstractRelNode</a></h3>
<code><a href="../AbstractRelNode.html#digest">digest</a>, <a href="../AbstractRelNode.html#id">id</a>, <a href="../AbstractRelNode.html#rowType">rowType</a>, <a href="../AbstractRelNode.html#traitSet">traitSet</a></code></li>
</ul>
</li>
</ul>
</section>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier</th>
<th class="colSecond" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected </code></td>
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.apache.calcite.plan.RelOptCluster,org.apache.calcite.plan.RelTraitSet,java.util.List,org.apache.calcite.rel.RelNode,org.apache.calcite.util.ImmutableBitSet,java.util.List,java.util.List)">Aggregate</a></span>&#8203;(<a href="../../plan/RelOptCluster.html" title="class in org.apache.calcite.plan">RelOptCluster</a>&nbsp;cluster,
<a href="../../plan/RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;traitSet,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../hint/RelHint.html" title="class in org.apache.calcite.rel.hint">RelHint</a>&gt;&nbsp;hints,
<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;input,
<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;groupSet,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&nbsp;groupSets,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AggregateCall.html" title="class in org.apache.calcite.rel.core">AggregateCall</a>&gt;&nbsp;aggCalls)</code></th>
<td class="colLast">
<div class="block">Creates an Aggregate.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected </code></td>
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.apache.calcite.plan.RelOptCluster,org.apache.calcite.plan.RelTraitSet,org.apache.calcite.rel.RelNode,boolean,org.apache.calcite.util.ImmutableBitSet,java.util.List,java.util.List)">Aggregate</a></span>&#8203;(<a href="../../plan/RelOptCluster.html" title="class in org.apache.calcite.plan">RelOptCluster</a>&nbsp;cluster,
<a href="../../plan/RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;traits,
<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;child,
boolean&nbsp;indicator,
<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;groupSet,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&nbsp;groupSets,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AggregateCall.html" title="class in org.apache.calcite.rel.core">AggregateCall</a>&gt;&nbsp;aggCalls)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected </code></td>
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.apache.calcite.plan.RelOptCluster,org.apache.calcite.plan.RelTraitSet,org.apache.calcite.rel.RelNode,org.apache.calcite.util.ImmutableBitSet,java.util.List,java.util.List)">Aggregate</a></span>&#8203;(<a href="../../plan/RelOptCluster.html" title="class in org.apache.calcite.plan">RelOptCluster</a>&nbsp;cluster,
<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,
<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;groupSet,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&nbsp;groupSets,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AggregateCall.html" title="class in org.apache.calcite.rel.core">AggregateCall</a>&gt;&nbsp;aggCalls)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected </code></td>
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.apache.calcite.rel.RelInput)">Aggregate</a></span>&#8203;(<a href="../RelInput.html" title="interface in org.apache.calcite.rel">RelInput</a>&nbsp;input)</code></th>
<td class="colLast">
<div class="block">Creates an Aggregate by parsing serialized output.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></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>
<tr id="i0" class="altColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkIndicator(boolean)">checkIndicator</a></span>&#8203;(boolean&nbsp;indicator)</code></th>
<td class="colLast">
<div class="block">Used internally; will removed when <a href="#indicator"><code>indicator</code></a> is removed,
before 2.0.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="../../plan/RelOptCost.html" title="interface in org.apache.calcite.plan">RelOptCost</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#computeSelfCost(org.apache.calcite.plan.RelOptPlanner,org.apache.calcite.rel.metadata.RelMetadataQuery)">computeSelfCost</a></span>&#8203;(<a href="../../plan/RelOptPlanner.html" title="interface in org.apache.calcite.plan">RelOptPlanner</a>&nbsp;planner,
<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">Returns the cost of this plan (not including children).</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#containsDistinctCall()">containsDistinctCall</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns whether any of the aggregates are DISTINCT.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#copy(org.apache.calcite.plan.RelTraitSet,java.util.List)">copy</a></span>&#8203;(<a href="../../plan/RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;traitSet,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&gt;&nbsp;inputs)</code></th>
<td class="colLast">
<div class="block">Creates a copy of this relational expression, perhaps changing traits and
inputs.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="Aggregate.html" title="class in org.apache.calcite.rel.core">Aggregate</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#copy(org.apache.calcite.plan.RelTraitSet,org.apache.calcite.rel.RelNode,boolean,org.apache.calcite.util.ImmutableBitSet,java.util.List,java.util.List)">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,
boolean&nbsp;indicator,
<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;groupSet,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&nbsp;groupSets,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AggregateCall.html" title="class in org.apache.calcite.rel.core">AggregateCall</a>&gt;&nbsp;aggCalls)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>abstract <a href="Aggregate.html" title="class in org.apache.calcite.rel.core">Aggregate</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#copy(org.apache.calcite.plan.RelTraitSet,org.apache.calcite.rel.RelNode,org.apache.calcite.util.ImmutableBitSet,java.util.List,java.util.List)">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,
<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;groupSet,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&nbsp;groupSets,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AggregateCall.html" title="class in org.apache.calcite.rel.core">AggregateCall</a>&gt;&nbsp;aggCalls)</code></th>
<td class="colLast">
<div class="block">Creates a copy of this aggregate.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>protected <a href="../type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#deriveRowType()">deriveRowType</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>static <a href="../type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#deriveRowType(org.apache.calcite.rel.type.RelDataTypeFactory,org.apache.calcite.rel.type.RelDataType,boolean,org.apache.calcite.util.ImmutableBitSet,java.util.List,java.util.List)">deriveRowType</a></span>&#8203;(<a href="../type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;typeFactory,
<a href="../type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;inputRowType,
boolean&nbsp;indicator,
<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;groupSet,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&nbsp;groupSets,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AggregateCall.html" title="class in org.apache.calcite.rel.core">AggregateCall</a>&gt;&nbsp;aggCalls)</code></th>
<td class="colLast">
<div class="block">Computes the row type of an <code>Aggregate</code> before it exists.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#estimateRowCount(org.apache.calcite.rel.metadata.RelMetadataQuery)">estimateRowCount</a></span>&#8203;(<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">Returns an estimate of the number of rows this relational expression will
return.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="../RelWriter.html" title="interface in org.apache.calcite.rel">RelWriter</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#explainTerms(org.apache.calcite.rel.RelWriter)">explainTerms</a></span>&#8203;(<a href="../RelWriter.html" title="interface in org.apache.calcite.rel">RelWriter</a>&nbsp;pw)</code></th>
<td class="colLast">
<div class="block">Describes the inputs and attributes of this relational expression.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AggregateCall.html" title="class in org.apache.calcite.rel.core">AggregateCall</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAggCallList()">getAggCallList</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a list of calls to aggregate functions.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getGroupCount()">getGroupCount</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the number of grouping fields.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code><a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getGroupSet()">getGroupSet</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a bit set of the grouping fields.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>com.google.common.collect.ImmutableList&lt;<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getGroupSets()">getGroupSets</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the list of grouping sets computed by this Aggregate.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="Aggregate.Group.html" title="enum in org.apache.calcite.rel.core">Aggregate.Group</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getGroupType()">getGroupType</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the type of roll-up.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>com.google.common.collect.ImmutableList&lt;<a href="../hint/RelHint.html" title="class in org.apache.calcite.rel.hint">RelHint</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getHints()">getHints</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the hints of this relational expressions as an immutable list.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getIndicatorCount()">getIndicatorCount</a></span>()</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../../util/Pair.html" title="class in org.apache.calcite.util">Pair</a>&lt;<a href="AggregateCall.html" title="class in org.apache.calcite.rel.core">AggregateCall</a>,&#8203;<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNamedAggCalls()">getNamedAggCalls</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a list of calls to aggregate functions together with their output
field names.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isNotGrandTotal(org.apache.calcite.rel.core.Aggregate)">isNotGrandTotal</a></span>&#8203;(<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 id="i19" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isSimple(org.apache.calcite.rel.core.Aggregate)">isSimple</a></span>&#8203;(<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 id="i20" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isValid(org.apache.calcite.util.Litmus,org.apache.calcite.rel.RelNode.Context)">isValid</a></span>&#8203;(<a href="../../util/Litmus.html" title="interface in org.apache.calcite.util">Litmus</a>&nbsp;litmus,
<a href="../RelNode.Context.html" title="interface in org.apache.calcite.rel">RelNode.Context</a>&nbsp;context)</code></th>
<td class="colLast">
<div class="block">Returns whether this relational expression is valid.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#noIndicator(org.apache.calcite.rel.core.Aggregate)">noIndicator</a></span>&#8203;(<a href="Aggregate.html" title="class in org.apache.calcite.rel.core">Aggregate</a>&nbsp;aggregate)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.apache.calcite.rel.SingleRel">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.calcite.rel.<a href="../SingleRel.html" title="class in org.apache.calcite.rel">SingleRel</a></h3>
<code><a href="../SingleRel.html#childrenAccept(org.apache.calcite.rel.RelVisitor)">childrenAccept</a>, <a href="../SingleRel.html#getInput()">getInput</a>, <a href="../SingleRel.html#getInputs()">getInputs</a>, <a href="../SingleRel.html#replaceInput(int,org.apache.calcite.rel.RelNode)">replaceInput</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.apache.calcite.rel.AbstractRelNode">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.calcite.rel.<a href="../AbstractRelNode.html" title="class in org.apache.calcite.rel">AbstractRelNode</a></h3>
<code><a href="../AbstractRelNode.html#accept(org.apache.calcite.rel.RelShuttle)">accept</a>, <a href="../AbstractRelNode.html#accept(org.apache.calcite.rex.RexShuttle)">accept</a>, <a href="../AbstractRelNode.html#collectVariablesSet(java.util.Set)">collectVariablesSet</a>, <a href="../AbstractRelNode.html#collectVariablesUsed(java.util.Set)">collectVariablesUsed</a>, <a href="../AbstractRelNode.html#deepEquals(java.lang.Object)">deepEquals</a>, <a href="../AbstractRelNode.html#deepHashCode()">deepHashCode</a>, <a href="../AbstractRelNode.html#equals(java.lang.Object)">equals</a>, <a href="../AbstractRelNode.html#explain(org.apache.calcite.rel.RelWriter)">explain</a>, <a href="../AbstractRelNode.html#getCluster()">getCluster</a>, <a href="../AbstractRelNode.html#getConvention()">getConvention</a>, <a href="../AbstractRelNode.html#getCorrelVariable()">getCorrelVariable</a>, <a href="../AbstractRelNode.html#getDescription()">getDescription</a>, <a href="../AbstractRelNode.html#getDigest()">getDigest</a>, <a href="../AbstractRelNode.html#getExpectedInputRowType(int)">getExpectedInputRowType</a>, <a href="../AbstractRelNode.html#getId()">getId</a>, <a href="../AbstractRelNode.html#getInput(int)">getInput</a>, <a href="../AbstractRelNode.html#getRelDigest()">getRelDigest</a>, <a href="../AbstractRelNode.html#getRelTypeName()">getRelTypeName</a>, <a href="../AbstractRelNode.html#getRowType()">getRowType</a>, <a href="../AbstractRelNode.html#getTable()">getTable</a>, <a href="../AbstractRelNode.html#getTraitSet()">getTraitSet</a>, <a href="../AbstractRelNode.html#getVariablesSet()">getVariablesSet</a>, <a href="../AbstractRelNode.html#hashCode()">hashCode</a>, <a href="../AbstractRelNode.html#isEnforcer()">isEnforcer</a>, <a href="../AbstractRelNode.html#metadata(java.lang.Class,org.apache.calcite.rel.metadata.RelMetadataQuery)">metadata</a>, <a href="../AbstractRelNode.html#onRegister(org.apache.calcite.plan.RelOptPlanner)">onRegister</a>, <a href="../AbstractRelNode.html#recomputeDigest()">recomputeDigest</a>, <a href="../AbstractRelNode.html#register(org.apache.calcite.plan.RelOptPlanner)">register</a>, <a href="../AbstractRelNode.html#sole(java.util.List)">sole</a>, <a href="../AbstractRelNode.html#toString()">toString</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.apache.calcite.rel.hint.Hintable">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.calcite.rel.hint.<a href="../hint/Hintable.html" title="interface in org.apache.calcite.rel.hint">Hintable</a></h3>
<code><a href="../hint/Hintable.html#attachHints(java.util.List)">attachHints</a>, <a href="../hint/Hintable.html#withHints(java.util.List)">withHints</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a id="hints">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hints</h4>
<pre>protected final&nbsp;com.google.common.collect.ImmutableList&lt;<a href="../hint/RelHint.html" title="class in org.apache.calcite.rel.hint">RelHint</a>&gt; hints</pre>
</li>
</ul>
<a id="IS_SIMPLE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>IS_SIMPLE</h4>
<pre><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
public static final&nbsp;com.google.common.base.Predicate&lt;<a href="Aggregate.html" title="class in org.apache.calcite.rel.core">Aggregate</a>&gt; IS_SIMPLE</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
</li>
</ul>
<a id="NO_INDICATOR">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>NO_INDICATOR</h4>
<pre><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
public static final&nbsp;com.google.common.base.Predicate&lt;<a href="Aggregate.html" title="class in org.apache.calcite.rel.core">Aggregate</a>&gt; NO_INDICATOR</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
</li>
</ul>
<a id="IS_NOT_GRAND_TOTAL">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>IS_NOT_GRAND_TOTAL</h4>
<pre><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
public static final&nbsp;com.google.common.base.Predicate&lt;<a href="Aggregate.html" title="class in org.apache.calcite.rel.core">Aggregate</a>&gt; IS_NOT_GRAND_TOTAL</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
</li>
</ul>
<a id="indicator">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>indicator</h4>
<pre><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
public final&nbsp;boolean indicator</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#org.apache.calcite.rel.core.Aggregate.indicator">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="aggCalls">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>aggCalls</h4>
<pre>protected final&nbsp;<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AggregateCall.html" title="class in org.apache.calcite.rel.core">AggregateCall</a>&gt; aggCalls</pre>
</li>
</ul>
<a id="groupSet">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>groupSet</h4>
<pre>protected final&nbsp;<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a> groupSet</pre>
</li>
</ul>
<a id="groupSets">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>groupSets</h4>
<pre>public final&nbsp;com.google.common.collect.ImmutableList&lt;<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt; groupSets</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;(org.apache.calcite.plan.RelOptCluster,org.apache.calcite.plan.RelTraitSet,java.util.List,org.apache.calcite.rel.RelNode,org.apache.calcite.util.ImmutableBitSet,java.util.List,java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>Aggregate</h4>
<pre>protected&nbsp;Aggregate&#8203;(<a href="../../plan/RelOptCluster.html" title="class in org.apache.calcite.plan">RelOptCluster</a>&nbsp;cluster,
<a href="../../plan/RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;traitSet,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../hint/RelHint.html" title="class in org.apache.calcite.rel.hint">RelHint</a>&gt;&nbsp;hints,
<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;input,
<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;groupSet,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&nbsp;groupSets,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AggregateCall.html" title="class in org.apache.calcite.rel.core">AggregateCall</a>&gt;&nbsp;aggCalls)</pre>
<div class="block">Creates an Aggregate.
<p>All members of <code>groupSets</code> must be sub-sets of <code>groupSet</code>.
For a simple <code>GROUP BY</code>, <code>groupSets</code> is a singleton list
containing <code>groupSet</code>.
<p>If <code>GROUP BY</code> is not specified,
or equivalently if <code>GROUP BY ()</code> is specified,
<code>groupSet</code> will be the empty set,
and <code>groupSets</code> will have one element, that empty set.
<p>If <code>CUBE</code>, <code>ROLLUP</code> or <code>GROUPING SETS</code> are
specified, <code>groupSets</code> will have additional elements,
but they must each be a subset of <code>groupSet</code>,
and they must be sorted by inclusion:
<code>(0, 1, 2), (1), (0, 2), (0), ()</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>cluster</code> - Cluster</dd>
<dd><code>traitSet</code> - Trait set</dd>
<dd><code>hints</code> - Hints of this relational expression</dd>
<dd><code>input</code> - Input relational expression</dd>
<dd><code>groupSet</code> - Bit set of grouping fields</dd>
<dd><code>groupSets</code> - List of all grouping sets; null for just <code>groupSet</code></dd>
<dd><code>aggCalls</code> - Collection of calls to aggregate functions</dd>
</dl>
</li>
</ul>
<a id="&lt;init&gt;(org.apache.calcite.plan.RelOptCluster,org.apache.calcite.plan.RelTraitSet,org.apache.calcite.rel.RelNode,org.apache.calcite.util.ImmutableBitSet,java.util.List,java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>Aggregate</h4>
<pre><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
protected&nbsp;Aggregate&#8203;(<a href="../../plan/RelOptCluster.html" title="class in org.apache.calcite.plan">RelOptCluster</a>&nbsp;cluster,
<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,
<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;groupSet,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&nbsp;groupSets,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AggregateCall.html" title="class in org.apache.calcite.rel.core">AggregateCall</a>&gt;&nbsp;aggCalls)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
</li>
</ul>
<a id="&lt;init&gt;(org.apache.calcite.plan.RelOptCluster,org.apache.calcite.plan.RelTraitSet,org.apache.calcite.rel.RelNode,boolean,org.apache.calcite.util.ImmutableBitSet,java.util.List,java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>Aggregate</h4>
<pre><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
protected&nbsp;Aggregate&#8203;(<a href="../../plan/RelOptCluster.html" title="class in org.apache.calcite.plan">RelOptCluster</a>&nbsp;cluster,
<a href="../../plan/RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;traits,
<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;child,
boolean&nbsp;indicator,
<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;groupSet,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&nbsp;groupSets,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AggregateCall.html" title="class in org.apache.calcite.rel.core">AggregateCall</a>&gt;&nbsp;aggCalls)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
</li>
</ul>
<a id="&lt;init&gt;(org.apache.calcite.rel.RelInput)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>Aggregate</h4>
<pre>protected&nbsp;Aggregate&#8203;(<a href="../RelInput.html" title="interface in org.apache.calcite.rel">RelInput</a>&nbsp;input)</pre>
<div class="block">Creates an Aggregate by parsing serialized output.</div>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="isSimple(org.apache.calcite.rel.core.Aggregate)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isSimple</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;isSimple&#8203;(<a href="Aggregate.html" title="class in org.apache.calcite.rel.core">Aggregate</a>&nbsp;aggregate)</pre>
</li>
</ul>
<a id="checkIndicator(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkIndicator</h4>
<pre class="methodSignature">public static&nbsp;void&nbsp;checkIndicator&#8203;(boolean&nbsp;indicator)</pre>
<div class="block">Used internally; will removed when <a href="#indicator"><code>indicator</code></a> is removed,
before 2.0.</div>
</li>
</ul>
<a id="isNotGrandTotal(org.apache.calcite.rel.core.Aggregate)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isNotGrandTotal</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;isNotGrandTotal&#8203;(<a href="Aggregate.html" title="class in org.apache.calcite.rel.core">Aggregate</a>&nbsp;aggregate)</pre>
</li>
</ul>
<a id="noIndicator(org.apache.calcite.rel.core.Aggregate)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>noIndicator</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
public static&nbsp;boolean&nbsp;noIndicator&#8203;(<a href="Aggregate.html" title="class in org.apache.calcite.rel.core">Aggregate</a>&nbsp;aggregate)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
</li>
</ul>
<a id="copy(org.apache.calcite.plan.RelTraitSet,java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>copy</h4>
<pre class="methodSignature">public final&nbsp;<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;copy&#8203;(<a href="../../plan/RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;traitSet,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&gt;&nbsp;inputs)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../RelNode.html#copy(org.apache.calcite.plan.RelTraitSet,java.util.List)">RelNode</a></code></span></div>
<div class="block">Creates a copy of this relational expression, perhaps changing traits and
inputs.
<p>Sub-classes with other important attributes are encouraged to create
variants of this method with more parameters.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RelNode.html#copy(org.apache.calcite.plan.RelTraitSet,java.util.List)">copy</a></code>&nbsp;in interface&nbsp;<code><a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../AbstractRelNode.html#copy(org.apache.calcite.plan.RelTraitSet,java.util.List)">copy</a></code>&nbsp;in class&nbsp;<code><a href="../AbstractRelNode.html" title="class in org.apache.calcite.rel">AbstractRelNode</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>traitSet</code> - Trait set</dd>
<dd><code>inputs</code> - Inputs</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Copy of this relational expression, substituting traits and
inputs</dd>
</dl>
</li>
</ul>
<a id="copy(org.apache.calcite.plan.RelTraitSet,org.apache.calcite.rel.RelNode,org.apache.calcite.util.ImmutableBitSet,java.util.List,java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>copy</h4>
<pre class="methodSignature">public abstract&nbsp;<a href="Aggregate.html" title="class in org.apache.calcite.rel.core">Aggregate</a>&nbsp;copy&#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,
<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;groupSet,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&nbsp;groupSets,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AggregateCall.html" title="class in org.apache.calcite.rel.core">AggregateCall</a>&gt;&nbsp;aggCalls)</pre>
<div class="block">Creates a copy of this aggregate.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>traitSet</code> - Traits</dd>
<dd><code>input</code> - Input</dd>
<dd><code>groupSet</code> - Bit set of grouping fields</dd>
<dd><code>groupSets</code> - List of all grouping sets; null for just <code>groupSet</code></dd>
<dd><code>aggCalls</code> - Collection of calls to aggregate functions</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>New <code>Aggregate</code> if any parameter differs from the value of
this <code>Aggregate</code>, or just <code>this</code> if all the parameters are
the same</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#copy(org.apache.calcite.plan.RelTraitSet,java.util.List)"><code>copy(org.apache.calcite.plan.RelTraitSet, java.util.List)</code></a></dd>
</dl>
</li>
</ul>
<a id="copy(org.apache.calcite.plan.RelTraitSet,org.apache.calcite.rel.RelNode,boolean,org.apache.calcite.util.ImmutableBitSet,java.util.List,java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>copy</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
public&nbsp;<a href="Aggregate.html" title="class in org.apache.calcite.rel.core">Aggregate</a>&nbsp;copy&#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,
boolean&nbsp;indicator,
<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;groupSet,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&nbsp;groupSets,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AggregateCall.html" title="class in org.apache.calcite.rel.core">AggregateCall</a>&gt;&nbsp;aggCalls)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
</li>
</ul>
<a id="getAggCallList()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAggCallList</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AggregateCall.html" title="class in org.apache.calcite.rel.core">AggregateCall</a>&gt;&nbsp;getAggCallList()</pre>
<div class="block">Returns a list of calls to aggregate functions.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>list of calls to aggregate functions</dd>
</dl>
</li>
</ul>
<a id="getNamedAggCalls()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNamedAggCalls</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../../util/Pair.html" title="class in org.apache.calcite.util">Pair</a>&lt;<a href="AggregateCall.html" title="class in org.apache.calcite.rel.core">AggregateCall</a>,&#8203;<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&gt;&nbsp;getNamedAggCalls()</pre>
<div class="block">Returns a list of calls to aggregate functions together with their output
field names.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>list of calls to aggregate functions and their output field names</dd>
</dl>
</li>
</ul>
<a id="getGroupCount()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getGroupCount</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;getGroupCount()</pre>
<div class="block">Returns the number of grouping fields.
These grouping fields are the leading fields in both the input and output
records.
<p>NOTE: The <a href="#getGroupSet()"><code>getGroupSet()</code></a> data structure allows for the
grouping fields to not be on the leading edge. New code should, if
possible, assume that grouping fields are in arbitrary positions in the
input relational expression.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>number of grouping fields</dd>
</dl>
</li>
</ul>
<a id="getIndicatorCount()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getIndicatorCount</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
public&nbsp;int&nbsp;getIndicatorCount()</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block">Returns the number of indicator fields.
<p>Always zero.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>number of indicator fields, always zero</dd>
</dl>
</li>
</ul>
<a id="getGroupSet()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getGroupSet</h4>
<pre class="methodSignature">public&nbsp;<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;getGroupSet()</pre>
<div class="block">Returns a bit set of the grouping fields.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>bit set of ordinals of grouping fields</dd>
</dl>
</li>
</ul>
<a id="getGroupSets()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getGroupSets</h4>
<pre class="methodSignature">public&nbsp;com.google.common.collect.ImmutableList&lt;<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&nbsp;getGroupSets()</pre>
<div class="block">Returns the list of grouping sets computed by this Aggregate.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>List of all grouping sets; null for just <code>groupSet</code></dd>
</dl>
</li>
</ul>
<a id="explainTerms(org.apache.calcite.rel.RelWriter)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>explainTerms</h4>
<pre class="methodSignature">public&nbsp;<a href="../RelWriter.html" title="interface in org.apache.calcite.rel">RelWriter</a>&nbsp;explainTerms&#8203;(<a href="../RelWriter.html" title="interface in org.apache.calcite.rel">RelWriter</a>&nbsp;pw)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../AbstractRelNode.html#explainTerms(org.apache.calcite.rel.RelWriter)">AbstractRelNode</a></code></span></div>
<div class="block">Describes the inputs and attributes of this relational expression.
Each node should call <code>super.explainTerms</code>, then call the
<a href="../RelWriter.html#input(java.lang.String,org.apache.calcite.rel.RelNode)"><code>RelWriter.input(String, RelNode)</code></a>
and
<a href="../externalize/RelWriterImpl.html#item(java.lang.String,java.lang.Object)"><code>RelWriterImpl.item(String, Object)</code></a>
methods for each input and attribute.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../SingleRel.html#explainTerms(org.apache.calcite.rel.RelWriter)">explainTerms</a></code>&nbsp;in class&nbsp;<code><a href="../SingleRel.html" title="class in org.apache.calcite.rel">SingleRel</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>pw</code> - Plan writer</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Plan writer for fluent-explain pattern</dd>
</dl>
</li>
</ul>
<a id="estimateRowCount(org.apache.calcite.rel.metadata.RelMetadataQuery)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>estimateRowCount</h4>
<pre class="methodSignature">public&nbsp;double&nbsp;estimateRowCount&#8203;(<a href="../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../RelNode.html#estimateRowCount(org.apache.calcite.rel.metadata.RelMetadataQuery)">RelNode</a></code></span></div>
<div class="block">Returns an estimate of the number of rows this relational expression will
return.
<p>NOTE jvs 29-Mar-2006: Don't call this method directly. Instead, use
<a href="../metadata/RelMetadataQuery.html#getRowCount(org.apache.calcite.rel.RelNode)"><code>RelMetadataQuery.getRowCount(org.apache.calcite.rel.RelNode)</code></a>, which gives plugins a chance to
override the rel's default ideas about row count.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RelNode.html#estimateRowCount(org.apache.calcite.rel.metadata.RelMetadataQuery)">estimateRowCount</a></code>&nbsp;in interface&nbsp;<code><a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../SingleRel.html#estimateRowCount(org.apache.calcite.rel.metadata.RelMetadataQuery)">estimateRowCount</a></code>&nbsp;in class&nbsp;<code><a href="../SingleRel.html" title="class in org.apache.calcite.rel">SingleRel</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mq</code> - Metadata query</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Estimate of the number of rows this relational expression will
return</dd>
</dl>
</li>
</ul>
<a id="computeSelfCost(org.apache.calcite.plan.RelOptPlanner,org.apache.calcite.rel.metadata.RelMetadataQuery)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>computeSelfCost</h4>
<pre class="methodSignature">public&nbsp;<a href="../../plan/RelOptCost.html" title="interface in org.apache.calcite.plan">RelOptCost</a>&nbsp;computeSelfCost&#8203;(<a href="../../plan/RelOptPlanner.html" title="interface in org.apache.calcite.plan">RelOptPlanner</a>&nbsp;planner,
<a href="../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../RelNode.html#computeSelfCost(org.apache.calcite.plan.RelOptPlanner,org.apache.calcite.rel.metadata.RelMetadataQuery)">RelNode</a></code></span></div>
<div class="block">Returns the cost of this plan (not including children). The base
implementation throws an error; derived classes should override.
<p>NOTE jvs 29-Mar-2006: Don't call this method directly. Instead, use
<a href="../metadata/RelMetadataQuery.html#getNonCumulativeCost(org.apache.calcite.rel.RelNode)"><code>RelMetadataQuery.getNonCumulativeCost(org.apache.calcite.rel.RelNode)</code></a>, which gives plugins a
chance to override the rel's default ideas about cost.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RelNode.html#computeSelfCost(org.apache.calcite.plan.RelOptPlanner,org.apache.calcite.rel.metadata.RelMetadataQuery)">computeSelfCost</a></code>&nbsp;in interface&nbsp;<code><a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../AbstractRelNode.html#computeSelfCost(org.apache.calcite.plan.RelOptPlanner,org.apache.calcite.rel.metadata.RelMetadataQuery)">computeSelfCost</a></code>&nbsp;in class&nbsp;<code><a href="../AbstractRelNode.html" title="class in org.apache.calcite.rel">AbstractRelNode</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>planner</code> - Planner for cost calculation</dd>
<dd><code>mq</code> - Metadata query</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Cost of this plan (not including children)</dd>
</dl>
</li>
</ul>
<a id="deriveRowType()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>deriveRowType</h4>
<pre class="methodSignature">protected&nbsp;<a href="../type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;deriveRowType()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../SingleRel.html#deriveRowType()">deriveRowType</a></code>&nbsp;in class&nbsp;<code><a href="../SingleRel.html" title="class in org.apache.calcite.rel">SingleRel</a></code></dd>
</dl>
</li>
</ul>
<a id="deriveRowType(org.apache.calcite.rel.type.RelDataTypeFactory,org.apache.calcite.rel.type.RelDataType,boolean,org.apache.calcite.util.ImmutableBitSet,java.util.List,java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>deriveRowType</h4>
<pre class="methodSignature">public static&nbsp;<a href="../type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;deriveRowType&#8203;(<a href="../type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;typeFactory,
<a href="../type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;inputRowType,
boolean&nbsp;indicator,
<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;groupSet,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&nbsp;groupSets,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AggregateCall.html" title="class in org.apache.calcite.rel.core">AggregateCall</a>&gt;&nbsp;aggCalls)</pre>
<div class="block">Computes the row type of an <code>Aggregate</code> before it exists.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>typeFactory</code> - Type factory</dd>
<dd><code>inputRowType</code> - Input row type</dd>
<dd><code>indicator</code> - Deprecated, always false</dd>
<dd><code>groupSet</code> - Bit set of grouping fields</dd>
<dd><code>groupSets</code> - List of all grouping sets; null for just <code>groupSet</code></dd>
<dd><code>aggCalls</code> - Collection of calls to aggregate functions</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Row type of the aggregate</dd>
</dl>
</li>
</ul>
<a id="isValid(org.apache.calcite.util.Litmus,org.apache.calcite.rel.RelNode.Context)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isValid</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isValid&#8203;(<a href="../../util/Litmus.html" title="interface in org.apache.calcite.util">Litmus</a>&nbsp;litmus,
<a href="../RelNode.Context.html" title="interface in org.apache.calcite.rel">RelNode.Context</a>&nbsp;context)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../RelNode.html#isValid(org.apache.calcite.util.Litmus,org.apache.calcite.rel.RelNode.Context)">RelNode</a></code></span></div>
<div class="block">Returns whether this relational expression is valid.
<p>If assertions are enabled, this method is typically called with <code>
litmus</code> = <code>THROW</code>, as follows:
<blockquote>
<pre>assert rel.isValid(Litmus.THROW)</pre>
</blockquote>
<p>This signals that the method can throw an <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/AssertionError.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>AssertionError</code></a> if it
is not valid.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RelNode.html#isValid(org.apache.calcite.util.Litmus,org.apache.calcite.rel.RelNode.Context)">isValid</a></code>&nbsp;in interface&nbsp;<code><a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../AbstractRelNode.html#isValid(org.apache.calcite.util.Litmus,org.apache.calcite.rel.RelNode.Context)">isValid</a></code>&nbsp;in class&nbsp;<code><a href="../AbstractRelNode.html" title="class in org.apache.calcite.rel">AbstractRelNode</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>litmus</code> - What to do if invalid</dd>
<dd><code>context</code> - Context for validity checking</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Whether relational expression is valid</dd>
</dl>
</li>
</ul>
<a id="containsDistinctCall()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>containsDistinctCall</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;containsDistinctCall()</pre>
<div class="block">Returns whether any of the aggregates are DISTINCT.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Whether any of the aggregates are DISTINCT</dd>
</dl>
</li>
</ul>
<a id="getHints()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getHints</h4>
<pre class="methodSignature">public&nbsp;com.google.common.collect.ImmutableList&lt;<a href="../hint/RelHint.html" title="class in org.apache.calcite.rel.hint">RelHint</a>&gt;&nbsp;getHints()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../hint/Hintable.html#getHints()">Hintable</a></code></span></div>
<div class="block">Returns the hints of this relational expressions as an immutable list.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../hint/Hintable.html#getHints()">getHints</a></code>&nbsp;in interface&nbsp;<code><a href="../hint/Hintable.html" title="interface in org.apache.calcite.rel.hint">Hintable</a></code></dd>
</dl>
</li>
</ul>
<a id="getGroupType()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getGroupType</h4>
<pre class="methodSignature">public&nbsp;<a href="Aggregate.Group.html" title="enum in org.apache.calcite.rel.core">Aggregate.Group</a>&nbsp;getGroupType()</pre>
<div class="block">Returns the type of roll-up.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Type of roll-up</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<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 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" 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>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&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><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &copy; 2012-2020 Apache Software Foundation. All Rights Reserved.</small></p>
</footer>
</body>
</html>