blob: e059247cbb57722046d3d7bc60690853ce161114 [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">
<meta name="description" content="declaration: package: org.apache.calcite.rel.core, class: Aggregate">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../script-dir/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../script-dir/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../script-dir/jquery-3.4.1.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-ui.js"></script>
</head>
<body class="class-declaration">
<script type="text/javascript">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 = "../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flexBox">
<header role="banner" class="flexHeader">
<nav role="navigation">
<!-- ========= 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">
<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>
<div class="navListSearch"><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="skipNav"><a id="skip.navbar.top">
<!-- -->
</a></div>
</nav>
</header>
<div class="flexContent">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.calcite.rel.core</a></div>
<h1 title="Class Aggregate" class="title">Class Aggregate</h1>
</div>
<div class="contentContainer">
<div class="inheritance" title="Inheritance Tree"><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>
<div class="inheritance"><a href="../AbstractRelNode.html" title="class in org.apache.calcite.rel">org.apache.calcite.rel.AbstractRelNode</a>
<div class="inheritance"><a href="../SingleRel.html" title="class in org.apache.calcite.rel">org.apache.calcite.rel.SingleRel</a>
<div class="inheritance">org.apache.calcite.rel.core.Aggregate</div>
</div>
</div>
</div>
<section class="description">
<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>
</section>
<section class="summary">
<ul class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<li class="blockList">
<section class="nestedClassSummary"><a id="nested.class.summary">
<!-- -->
</a>
<h2>Nested Class Summary</h2>
<div class="memberSummary">
<table>
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<thead>
<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>
</thead>
<tbody>
<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>
</tbody>
</table>
</div>
<div class="inheritedList">
<h2>Nested classes/interfaces inherited from interface&nbsp;org.apache.calcite.rel.<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></h2>
<a id="nested.classes.inherited.from.class.org.apache.calcite.rel.RelNode">
<!-- -->
</a><code><a href="../RelNode.Context.html" title="interface in org.apache.calcite.rel">RelNode.Context</a></code></div>
</section>
</li>
<!-- =========== FIELD SUMMARY =========== -->
<li class="blockList">
<section class="fieldSummary"><a id="field.summary">
<!-- -->
</a>
<h2>Field Summary</h2>
<div class="memberSummary">
<table>
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<thead>
<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>
</thead>
<tbody>
<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>
</tbody>
</table>
</div>
<div class="inheritedList">
<h3>Fields inherited from class&nbsp;org.apache.calcite.rel.<a href="../SingleRel.html" title="class in org.apache.calcite.rel">SingleRel</a></h3>
<a id="fields.inherited.from.class.org.apache.calcite.rel.SingleRel">
<!-- -->
</a><code><a href="../SingleRel.html#input">input</a></code></div>
<div class="inheritedList">
<h3>Fields inherited from class&nbsp;org.apache.calcite.rel.<a href="../AbstractRelNode.html" title="class in org.apache.calcite.rel">AbstractRelNode</a></h3>
<a id="fields.inherited.from.class.org.apache.calcite.rel.AbstractRelNode">
<!-- -->
</a><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></div>
</section>
</li>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li class="blockList">
<section class="constructorSummary"><a id="constructor.summary">
<!-- -->
</a>
<h2>Constructor Summary</h2>
<div class="memberSummary">
<table>
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<thead>
<tr>
<th class="colFirst" scope="col">Modifier</th>
<th class="colSecond" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
</thead>
<tbody>
<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,
@Nullable <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>
</tbody>
</table>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li class="blockList">
<section class="methodSummary"><a id="method.summary">
<!-- -->
</a>
<h2>Method Summary</h2>
<div class="memberSummary">
<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t1" class="tableTab" onclick="show(1);">Static Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t4" class="tableTab" onclick="show(8);">Concrete Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t6" class="tableTab" onclick="show(32);">Deprecated Methods</button></div>
<div id="memberSummary_tabpanel" role="tabpanel">
<table aria-labelledby="t0">
<thead>
<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>
</thead>
<tbody>
<tr class="altColor" id="i0">
<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 class="rowColor" id="i1">
<td class="colFirst"><code>@Nullable <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 class="altColor" id="i2">
<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 class="rowColor" id="i3">
<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 class="altColor" id="i4">
<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 class="rowColor" id="i5">
<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,
@Nullable <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 class="altColor" id="i6">
<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 class="rowColor" id="i7">
<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,
@Nullable <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 class="altColor" id="i8">
<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 class="rowColor" id="i9">
<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 class="altColor" id="i10">
<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 class="rowColor" id="i11">
<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 class="altColor" id="i12">
<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 class="rowColor" id="i13">
<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 class="altColor" id="i14">
<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 class="rowColor" id="i15">
<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 class="altColor" id="i16">
<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 class="rowColor" id="i17">
<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 class="altColor" id="i18">
<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 class="rowColor" id="i19">
<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 class="altColor" id="i20">
<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,
@Nullable <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 class="rowColor" id="i21">
<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>
</tbody>
</table>
</div>
</div>
<div class="inheritedList">
<h3>Methods inherited from class&nbsp;org.apache.calcite.rel.<a href="../SingleRel.html" title="class in org.apache.calcite.rel">SingleRel</a></h3>
<a id="methods.inherited.from.class.org.apache.calcite.rel.SingleRel">
<!-- -->
</a><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></div>
<div class="inheritedList">
<h3>Methods inherited from class&nbsp;org.apache.calcite.rel.<a href="../AbstractRelNode.html" title="class in org.apache.calcite.rel">AbstractRelNode</a></h3>
<a id="methods.inherited.from.class.org.apache.calcite.rel.AbstractRelNode">
<!-- -->
</a><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></div>
<div class="inheritedList">
<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>
<a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a><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></div>
<div class="inheritedList">
<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>
<a id="methods.inherited.from.class.org.apache.calcite.rel.hint.Hintable">
<!-- -->
</a><code><a href="../hint/Hintable.html#attachHints(java.util.List)">attachHints</a>, <a href="../hint/Hintable.html#withHints(java.util.List)">withHints</a></code></div>
<div class="inheritedList">
<h3>Methods inherited from interface&nbsp;org.apache.calcite.rel.<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></h3>
<a id="methods.inherited.from.class.org.apache.calcite.rel.RelNode">
<!-- -->
</a><code><a href="../RelNode.html#explain()">explain</a>, <a href="../RelNode.html#fieldIsNullable(int)">fieldIsNullable</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<li class="blockList">
<section class="fieldDetails"><a id="field.detail">
<!-- -->
</a>
<h2>Field Details</h2>
<ul class="blockList">
<li class="blockList">
<section class="detail">
<h3><a id="hints">hints</a></h3>
<div class="memberSignature"><span class="modifiers">protected final</span>&nbsp;<span class="returnType">com.google.common.collect.ImmutableList&lt;<a href="../hint/RelHint.html" title="class in org.apache.calcite.rel.hint">RelHint</a>&gt;</span>&nbsp;<span class="memberName">hints</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="IS_SIMPLE">IS_SIMPLE</a></h3>
<div class="memberSignature"><span class="annotations"><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>
</span><span class="modifiers">public static final</span>&nbsp;<span class="returnType">com.google.common.base.Predicate&lt;<a href="Aggregate.html" title="class in org.apache.calcite.rel.core">Aggregate</a>&gt;</span>&nbsp;<span class="memberName">IS_SIMPLE</span></div>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="NO_INDICATOR">NO_INDICATOR</a></h3>
<div class="memberSignature"><span class="annotations"><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>
</span><span class="modifiers">public static final</span>&nbsp;<span class="returnType">com.google.common.base.Predicate&lt;<a href="Aggregate.html" title="class in org.apache.calcite.rel.core">Aggregate</a>&gt;</span>&nbsp;<span class="memberName">NO_INDICATOR</span></div>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="IS_NOT_GRAND_TOTAL">IS_NOT_GRAND_TOTAL</a></h3>
<div class="memberSignature"><span class="annotations"><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>
</span><span class="modifiers">public static final</span>&nbsp;<span class="returnType">com.google.common.base.Predicate&lt;<a href="Aggregate.html" title="class in org.apache.calcite.rel.core">Aggregate</a>&gt;</span>&nbsp;<span class="memberName">IS_NOT_GRAND_TOTAL</span></div>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="indicator">indicator</a></h3>
<div class="memberSignature"><span class="annotations"><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>
</span><span class="modifiers">public final</span>&nbsp;<span class="returnType">boolean</span>&nbsp;<span class="memberName">indicator</span></div>
<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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="aggCalls">aggCalls</a></h3>
<div class="memberSignature"><span class="modifiers">protected final</span>&nbsp;<span class="returnType"><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;</span>&nbsp;<span class="memberName">aggCalls</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="groupSet">groupSet</a></h3>
<div class="memberSignature"><span class="modifiers">protected final</span>&nbsp;<span class="returnType"><a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a></span>&nbsp;<span class="memberName">groupSet</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="groupSets">groupSets</a></h3>
<div class="memberSignature"><span class="modifiers">public final</span>&nbsp;<span class="returnType">com.google.common.collect.ImmutableList&lt;<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;</span>&nbsp;<span class="memberName">groupSets</span></div>
</section>
</li>
</ul>
</section>
</li>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li class="blockList">
<section class="constructorDetails"><a id="constructor.detail">
<!-- -->
</a>
<h2>Constructor Details</h2>
<ul class="blockList">
<li class="blockList">
<section class="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)">Aggregate</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="memberName">Aggregate</span>&#8203;(<span class="arguments"><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,
@Nullable <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)</span></div>
<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>
</section>
</li>
<li class="blockList">
<section class="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)">Aggregate</a></h3>
<div class="memberSignature"><span class="annotations"><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>
</span><span class="modifiers">protected</span>&nbsp;<span class="memberName">Aggregate</span>&#8203;(<span class="arguments"><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)</span></div>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><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)">Aggregate</a></h3>
<div class="memberSignature"><span class="annotations"><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>
</span><span class="modifiers">protected</span>&nbsp;<span class="memberName">Aggregate</span>&#8203;(<span class="arguments"><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)</span></div>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="&lt;init&gt;(org.apache.calcite.rel.RelInput)">Aggregate</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="memberName">Aggregate</span>&#8203;(<span class="arguments"><a href="../RelInput.html" title="interface in org.apache.calcite.rel">RelInput</a>&nbsp;input)</span></div>
<div class="block">Creates an Aggregate by parsing serialized output.</div>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li class="blockList">
<section class="methodDetails"><a id="method.detail">
<!-- -->
</a>
<h2>Method Details</h2>
<ul class="blockList">
<li class="blockList">
<section class="detail">
<h3><a id="isSimple(org.apache.calcite.rel.core.Aggregate)">isSimple</a></h3>
<div class="memberSignature"><span class="modifiers">public static</span>&nbsp;<span class="returnType">boolean</span>&nbsp;<span class="memberName">isSimple</span>&#8203;(<span class="arguments"><a href="Aggregate.html" title="class in org.apache.calcite.rel.core">Aggregate</a>&nbsp;aggregate)</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="checkIndicator(boolean)">checkIndicator</a></h3>
<div class="memberSignature"><span class="modifiers">public static</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">checkIndicator</span>&#8203;(<span class="arguments">boolean&nbsp;indicator)</span></div>
<div class="block">Used internally; will removed when <a href="#indicator"><code>indicator</code></a> is removed,
before 2.0.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="isNotGrandTotal(org.apache.calcite.rel.core.Aggregate)">isNotGrandTotal</a></h3>
<div class="memberSignature"><span class="modifiers">public static</span>&nbsp;<span class="returnType">boolean</span>&nbsp;<span class="memberName">isNotGrandTotal</span>&#8203;(<span class="arguments"><a href="Aggregate.html" title="class in org.apache.calcite.rel.core">Aggregate</a>&nbsp;aggregate)</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="noIndicator(org.apache.calcite.rel.core.Aggregate)">noIndicator</a></h3>
<div class="memberSignature"><span class="annotations"><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>
</span><span class="modifiers">public static</span>&nbsp;<span class="returnType">boolean</span>&nbsp;<span class="memberName">noIndicator</span>&#8203;(<span class="arguments"><a href="Aggregate.html" title="class in org.apache.calcite.rel.core">Aggregate</a>&nbsp;aggregate)</span></div>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="copy(org.apache.calcite.plan.RelTraitSet,java.util.List)">copy</a></h3>
<div class="memberSignature"><span class="modifiers">public final</span>&nbsp;<span class="returnType"><a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></span>&nbsp;<span class="memberName">copy</span>&#8203;(<span class="arguments"><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)</span></div>
<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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="copy(org.apache.calcite.plan.RelTraitSet,org.apache.calcite.rel.RelNode,org.apache.calcite.util.ImmutableBitSet,java.util.List,java.util.List)">copy</a></h3>
<div class="memberSignature"><span class="modifiers">public abstract</span>&nbsp;<span class="returnType"><a href="Aggregate.html" title="class in org.apache.calcite.rel.core">Aggregate</a></span>&nbsp;<span class="memberName">copy</span>&#8203;(<span class="arguments"><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,
@Nullable <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)</span></div>
<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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><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)">copy</a></h3>
<div class="memberSignature"><span class="annotations"><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>
</span><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="Aggregate.html" title="class in org.apache.calcite.rel.core">Aggregate</a></span>&nbsp;<span class="memberName">copy</span>&#8203;(<span class="arguments"><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)</span></div>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getAggCallList()">getAggCallList</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><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;</span>&nbsp;<span class="memberName">getAggCallList</span>()</div>
<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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getNamedAggCalls()">getNamedAggCalls</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><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;</span>&nbsp;<span class="memberName">getNamedAggCalls</span>()</div>
<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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getGroupCount()">getGroupCount</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">int</span>&nbsp;<span class="memberName">getGroupCount</span>()</div>
<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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getIndicatorCount()">getIndicatorCount</a></h3>
<div class="memberSignature"><span class="annotations"><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>
</span><span class="modifiers">public</span>&nbsp;<span class="returnType">int</span>&nbsp;<span class="memberName">getIndicatorCount</span>()</div>
<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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getGroupSet()">getGroupSet</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a></span>&nbsp;<span class="memberName">getGroupSet</span>()</div>
<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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getGroupSets()">getGroupSets</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">com.google.common.collect.ImmutableList&lt;<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;</span>&nbsp;<span class="memberName">getGroupSets</span>()</div>
<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</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="explainTerms(org.apache.calcite.rel.RelWriter)">explainTerms</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="../RelWriter.html" title="interface in org.apache.calcite.rel">RelWriter</a></span>&nbsp;<span class="memberName">explainTerms</span>&#8203;(<span class="arguments"><a href="../RelWriter.html" title="interface in org.apache.calcite.rel">RelWriter</a>&nbsp;pw)</span></div>
<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="../RelWriter.html#item(java.lang.String,java.lang.Object)"><code>RelWriter.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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="estimateRowCount(org.apache.calcite.rel.metadata.RelMetadataQuery)">estimateRowCount</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">double</span>&nbsp;<span class="memberName">estimateRowCount</span>&#8203;(<span class="arguments"><a href="../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq)</span></div>
<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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="computeSelfCost(org.apache.calcite.plan.RelOptPlanner,org.apache.calcite.rel.metadata.RelMetadataQuery)">computeSelfCost</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">@Nullable <a href="../../plan/RelOptCost.html" title="interface in org.apache.calcite.plan">RelOptCost</a></span>&nbsp;<span class="memberName">computeSelfCost</span>&#8203;(<span class="arguments"><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)</span></div>
<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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="deriveRowType()">deriveRowType</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType"><a href="../type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a></span>&nbsp;<span class="memberName">deriveRowType</span>()</div>
<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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><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)">deriveRowType</a></h3>
<div class="memberSignature"><span class="modifiers">public static</span>&nbsp;<span class="returnType"><a href="../type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a></span>&nbsp;<span class="memberName">deriveRowType</span>&#8203;(<span class="arguments"><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,
@Nullable <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)</span></div>
<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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="isValid(org.apache.calcite.util.Litmus,org.apache.calcite.rel.RelNode.Context)">isValid</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">boolean</span>&nbsp;<span class="memberName">isValid</span>&#8203;(<span class="arguments"><a href="../../util/Litmus.html" title="interface in org.apache.calcite.util">Litmus</a>&nbsp;litmus,
@Nullable <a href="../RelNode.Context.html" title="interface in org.apache.calcite.rel">RelNode.Context</a>&nbsp;context)</span></div>
<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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="containsDistinctCall()">containsDistinctCall</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">boolean</span>&nbsp;<span class="memberName">containsDistinctCall</span>()</div>
<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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getHints()">getHints</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">com.google.common.collect.ImmutableList&lt;<a href="../hint/RelHint.html" title="class in org.apache.calcite.rel.hint">RelHint</a>&gt;</span>&nbsp;<span class="memberName">getHints</span>()</div>
<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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getGroupType()">getGroupType</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="Aggregate.Group.html" title="enum in org.apache.calcite.rel.core">Aggregate.Group</a></span>&nbsp;<span class="memberName">getGroupType</span>()</div>
<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>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
</div>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li 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">
<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>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &copy; 2012-2021 Apache Software Foundation. All Rights Reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>