blob: 3f8c360eadf805b0b99fe75b132b07f382cfd5b9 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>Aggregate (Apache Calcite API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Aggregate (Apache Calcite API)";
}
}
catch(err) {
}
//-->
var data = {"i0":9,"i1":9,"i2":10,"i3":10,"i4":10,"i5":42,"i6":6,"i7":10,"i8":9,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":42,"i17":10,"i18":9,"i19":10,"i20":9,"i21":10,"i22":41,"i23":10};
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="class-use/Aggregate.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<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>java.lang.Object</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>java.lang.Cloneable</code>, <code><a href="../../plan/RelOptNode.html" title="interface in org.apache.calcite.plan">RelOptNode</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/EnumerableAggregate.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableAggregate</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></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">What kind of roll-up is it?</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 java.util.List&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>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="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_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="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_SIMPLE">IS_SIMPLE</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="#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,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,
java.util.List&lt;<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&nbsp;groupSets,
java.util.List&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.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,
java.util.List&lt;<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&nbsp;groupSets,
java.util.List&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="altColor">
<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>private static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#allContain(java.util.List,int)">allContain</a></span>&#8203;(java.util.List&lt;<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&nbsp;groupSets,
int&nbsp;groupKey)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<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="i2" class="altColor">
<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="i3" class="rowColor">
<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="i4" class="altColor">
<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,
java.util.List&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="i5" class="rowColor">
<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,
java.util.List&lt;<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&nbsp;groupSets,
java.util.List&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="i6" class="altColor">
<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,
java.util.List&lt;<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&nbsp;groupSets,
java.util.List&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="i7" class="rowColor">
<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="i8" class="altColor">
<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,
java.util.List&lt;<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&nbsp;groupSets,
java.util.List&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="i9" class="rowColor">
<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="i10" class="altColor">
<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="i11" class="rowColor">
<td class="colFirst"><code>java.util.List&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="i12" class="altColor">
<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="i13" class="rowColor">
<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="i14" 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="#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="i15" class="rowColor">
<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="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>java.util.List&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;java.lang.String&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>private boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isPredicate(org.apache.calcite.rel.RelNode,int)">isPredicate</a></span>&#8203;(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;input,
int&nbsp;index)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i20" class="altColor">
<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="i21" class="rowColor">
<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="i22" class="altColor">
<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>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>private boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#typeMatchesInferred(org.apache.calcite.rel.core.AggregateCall,org.apache.calcite.util.Litmus)">typeMatchesInferred</a></span>&#8203;(<a href="AggregateCall.html" title="class in org.apache.calcite.rel.core">AggregateCall</a>&nbsp;aggCall,
<a href="../../util/Litmus.html" title="interface in org.apache.calcite.util">Litmus</a>&nbsp;litmus)</code></th>
<td class="colLast">
<div class="block">Returns whether the inferred type of an <a href="AggregateCall.html" title="class in org.apache.calcite.rel.core"><code>AggregateCall</code></a> matches the
type it was given when it was created.</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#computeDigest()">computeDigest</a>, <a href="../AbstractRelNode.html#computeSelfCost(org.apache.calcite.plan.RelOptPlanner)">computeSelfCost</a>, <a href="../AbstractRelNode.html#explain(org.apache.calcite.rel.RelWriter)">explain</a>, <a href="../AbstractRelNode.html#getChildExps()">getChildExps</a>, <a href="../AbstractRelNode.html#getCluster()">getCluster</a>, <a href="../AbstractRelNode.html#getCollationList()">getCollationList</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#getQuery()">getQuery</a>, <a href="../AbstractRelNode.html#getRelTypeName()">getRelTypeName</a>, <a href="../AbstractRelNode.html#getRows()">getRows</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#getVariablesStopped()">getVariablesStopped</a>, <a href="../AbstractRelNode.html#isDistinct()">isDistinct</a>, <a href="../AbstractRelNode.html#isKey(org.apache.calcite.util.ImmutableBitSet)">isKey</a>, <a href="../AbstractRelNode.html#isValid(boolean)">isValid</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.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</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="IS_SIMPLE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>IS_SIMPLE</h4>
<pre>@Deprecated
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>@Deprecated
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>@Deprecated
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>@Deprecated
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;java.util.List&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,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="../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,
java.util.List&lt;<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&nbsp;groupSets,
java.util.List&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>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,boolean,org.apache.calcite.util.ImmutableBitSet,java.util.List,java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>Aggregate</h4>
<pre>@Deprecated
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,
java.util.List&lt;<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&nbsp;groupSets,
java.util.List&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>
<div class="block">Creates an Aggregate.</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">@Deprecated
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="isPredicate(org.apache.calcite.rel.RelNode,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isPredicate</h4>
<pre class="methodSignature">private&nbsp;boolean&nbsp;isPredicate&#8203;(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;input,
int&nbsp;index)</pre>
</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,
java.util.List&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.</p></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,
java.util.List&lt;<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&nbsp;groupSets,
java.util.List&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">@Deprecated
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,
java.util.List&lt;<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&nbsp;groupSets,
java.util.List&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;java.util.List&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;java.util.List&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;java.lang.String&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">@Deprecated
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,
java.util.List&lt;<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&nbsp;groupSets,
java.util.List&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="allContain(java.util.List,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>allContain</h4>
<pre class="methodSignature">private static&nbsp;boolean&nbsp;allContain&#8203;(java.util.List&lt;<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&nbsp;groupSets,
int&nbsp;groupKey)</pre>
</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 <code>AssertionError</code> 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="typeMatchesInferred(org.apache.calcite.rel.core.AggregateCall,org.apache.calcite.util.Litmus)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>typeMatchesInferred</h4>
<pre class="methodSignature">private&nbsp;boolean&nbsp;typeMatchesInferred&#8203;(<a href="AggregateCall.html" title="class in org.apache.calcite.rel.core">AggregateCall</a>&nbsp;aggCall,
<a href="../../util/Litmus.html" title="interface in org.apache.calcite.util">Litmus</a>&nbsp;litmus)</pre>
<div class="block">Returns whether the inferred type of an <a href="AggregateCall.html" title="class in org.apache.calcite.rel.core"><code>AggregateCall</code></a> matches the
type it was given when it was created.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>aggCall</code> - Aggregate call</dd>
<dd><code>litmus</code> - What to do if an error is detected (types do not match)</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Whether the inferred and declared types match</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="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="class-use/Aggregate.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<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 &#169; 2012&#x2013;2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</body>
</html>