blob: d3577414bd9be43d0fdd83867d9c43ac9a0bef74 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>AggregatingSelectScope (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="AggregatingSelectScope (Apache Calcite API)";
}
}
catch(err) {
}
//-->
var data = {"i0":9,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete 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/AggregatingSelectScope.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.sql.validate</a></div>
<h2 title="Class AggregatingSelectScope" class="title">Class AggregatingSelectScope</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li><a href="DelegatingScope.html" title="class in org.apache.calcite.sql.validate">org.apache.calcite.sql.validate.DelegatingScope</a></li>
<li>
<ul class="inheritance">
<li>org.apache.calcite.sql.validate.AggregatingSelectScope</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="AggregatingScope.html" title="interface in org.apache.calcite.sql.validate">AggregatingScope</a></code>, <code><a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a></code></dd>
</dl>
<hr>
<pre>public class <span class="typeNameLabel">AggregatingSelectScope</span>
extends <a href="DelegatingScope.html" title="class in org.apache.calcite.sql.validate">DelegatingScope</a>
implements <a href="AggregatingScope.html" title="interface in org.apache.calcite.sql.validate">AggregatingScope</a></pre>
<div class="block">Scope for resolving identifiers within a SELECT statement that has a
GROUP BY clause.
<p>The same set of identifiers are in scope, but it won't allow access to
identifiers or expressions which are not group-expressions.</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>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="AggregatingSelectScope.Resolved.html" title="class in org.apache.calcite.sql.validate">AggregatingSelectScope.Resolved</a></span></code></th>
<td class="colLast">
<div class="block">Information about an aggregating scope that can only be determined
after validation has occurred.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="nested.classes.inherited.from.class.org.apache.calcite.sql.validate.SqlValidatorScope">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.calcite.sql.validate.<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a></h3>
<code><a href="SqlValidatorScope.EmptyPath.html" title="class in org.apache.calcite.sql.validate">SqlValidatorScope.EmptyPath</a>, <a href="SqlValidatorScope.Path.html" title="class in org.apache.calcite.sql.validate">SqlValidatorScope.Path</a>, <a href="SqlValidatorScope.Resolve.html" title="class in org.apache.calcite.sql.validate">SqlValidatorScope.Resolve</a>, <a href="SqlValidatorScope.ResolvedImpl.html" title="class in org.apache.calcite.sql.validate">SqlValidatorScope.ResolvedImpl</a>, <a href="SqlValidatorScope.Step.html" title="class in org.apache.calcite.sql.validate">SqlValidatorScope.Step</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>private boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#distinct">distinct</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.util.function.Supplier&lt;<a href="AggregatingSelectScope.Resolved.html" title="class in org.apache.calcite.sql.validate">AggregatingSelectScope.Resolved</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#resolved">resolved</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#select">select</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private java.util.List&lt;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#temporaryGroupExprList">temporaryGroupExprList</a></span></code></th>
<td class="colLast">
<div class="block">Use while under construction.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.org.apache.calcite.sql.validate.DelegatingScope">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.calcite.sql.validate.<a href="DelegatingScope.html" title="class in org.apache.calcite.sql.validate">DelegatingScope</a></h3>
<code><a href="DelegatingScope.html#parent">parent</a>, <a href="DelegatingScope.html#validator">validator</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">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlSelect,boolean)">AggregatingSelectScope</a></span>&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;selectScope,
<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select,
boolean&nbsp;distinct)</code></th>
<td class="colLast">
<div class="block">Creates an AggregatingSelectScope</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="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="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;bitSets,
int&nbsp;bit)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkAggregateExpr(org.apache.calcite.sql.SqlNode,boolean)">checkAggregateExpr</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;expr,
boolean&nbsp;deep)</code></th>
<td class="colLast">
<div class="block">Checks whether an expression is constant within the GROUP BY clause.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>private <a href="../../util/Pair.html" title="class in org.apache.calcite.util">Pair</a>&lt;com.google.common.collect.ImmutableList&lt;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;,&#8203;com.google.common.collect.ImmutableList&lt;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getGroupExprs()">getGroupExprs</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the expressions that are in the GROUP BY clause (or the SELECT
DISTINCT clause, if distinct) and that can therefore be referenced
without being wrapped in aggregate functions.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNode()">getNode</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the root node of this scope.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOperandScope(org.apache.calcite.sql.SqlCall)">getOperandScope</a></span>&#8203;(<a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call)</code></th>
<td class="colLast">
<div class="block">Returns the scope within which operands to a call are to be validated.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="../../rel/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="#nullifyType(org.apache.calcite.sql.SqlNode,org.apache.calcite.rel.type.RelDataType)">nullifyType</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</code></th>
<td class="colLast">
<div class="block">Converts the type of an expression to nullable, if the context
warrants it.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>private <a href="AggregatingSelectScope.Resolved.html" title="class in org.apache.calcite.sql.validate">AggregatingSelectScope.Resolved</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#resolve()">resolve</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateExpr(org.apache.calcite.sql.SqlNode)">validateExpr</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;expr)</code></th>
<td class="colLast">
<div class="block">Performs any scope-specific validation of an expression.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.apache.calcite.sql.validate.DelegatingScope">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.calcite.sql.validate.<a href="DelegatingScope.html" title="class in org.apache.calcite.sql.validate">DelegatingScope</a></h3>
<code><a href="DelegatingScope.html#addChild(org.apache.calcite.sql.validate.SqlValidatorNamespace,java.lang.String,boolean)">addChild</a>, <a href="DelegatingScope.html#addColumnNames(org.apache.calcite.sql.validate.SqlValidatorNamespace,java.util.List)">addColumnNames</a>, <a href="DelegatingScope.html#findAliases(java.util.Collection)">findAliases</a>, <a href="DelegatingScope.html#findAllColumnNames(java.util.List)">findAllColumnNames</a>, <a href="DelegatingScope.html#findQualifyingTableName(java.lang.String,org.apache.calcite.sql.SqlNode)">findQualifyingTableName</a>, <a href="DelegatingScope.html#findQualifyingTableNames(java.lang.String,org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlNameMatcher)">findQualifyingTableNames</a>, <a href="DelegatingScope.html#fullyQualify(org.apache.calcite.sql.SqlIdentifier)">fullyQualify</a>, <a href="DelegatingScope.html#getMonotonicity(org.apache.calcite.sql.SqlNode)">getMonotonicity</a>, <a href="DelegatingScope.html#getOrderList()">getOrderList</a>, <a href="DelegatingScope.html#getParent()">getParent</a>, <a href="DelegatingScope.html#getTableNamespace(java.util.List)">getTableNamespace</a>, <a href="DelegatingScope.html#getValidator()">getValidator</a>, <a href="DelegatingScope.html#lookupWindow(java.lang.String)">lookupWindow</a>, <a href="DelegatingScope.html#resolve(java.util.List,org.apache.calcite.sql.validate.SqlNameMatcher,boolean,org.apache.calcite.sql.validate.SqlValidatorScope.Resolved)">resolve</a>, <a href="DelegatingScope.html#resolveColumn(java.lang.String,org.apache.calcite.sql.SqlNode)">resolveColumn</a>, <a href="DelegatingScope.html#resolveInNamespace(org.apache.calcite.sql.validate.SqlValidatorNamespace,boolean,java.util.List,org.apache.calcite.sql.validate.SqlNameMatcher,org.apache.calcite.sql.validate.SqlValidatorScope.Path,org.apache.calcite.sql.validate.SqlValidatorScope.Resolved)">resolveInNamespace</a>, <a href="DelegatingScope.html#resolveTable(java.util.List,org.apache.calcite.sql.validate.SqlNameMatcher,org.apache.calcite.sql.validate.SqlValidatorScope.Path,org.apache.calcite.sql.validate.SqlValidatorScope.Resolved)">resolveTable</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, toString, wait, wait, wait</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.apache.calcite.sql.validate.SqlValidatorScope">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.calcite.sql.validate.<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a></h3>
<code><a href="SqlValidatorScope.html#addChild(org.apache.calcite.sql.validate.SqlValidatorNamespace,java.lang.String,boolean)">addChild</a>, <a href="SqlValidatorScope.html#findAliases(java.util.Collection)">findAliases</a>, <a href="SqlValidatorScope.html#findAllColumnNames(java.util.List)">findAllColumnNames</a>, <a href="SqlValidatorScope.html#findQualifyingTableName(java.lang.String,org.apache.calcite.sql.SqlNode)">findQualifyingTableName</a>, <a href="SqlValidatorScope.html#findQualifyingTableNames(java.lang.String,org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlNameMatcher)">findQualifyingTableNames</a>, <a href="SqlValidatorScope.html#fullyQualify(org.apache.calcite.sql.SqlIdentifier)">fullyQualify</a>, <a href="SqlValidatorScope.html#getMonotonicity(org.apache.calcite.sql.SqlNode)">getMonotonicity</a>, <a href="SqlValidatorScope.html#getOrderList()">getOrderList</a>, <a href="SqlValidatorScope.html#getTableNamespace(java.util.List)">getTableNamespace</a>, <a href="SqlValidatorScope.html#getValidator()">getValidator</a>, <a href="SqlValidatorScope.html#isWithin(org.apache.calcite.sql.validate.SqlValidatorScope)">isWithin</a>, <a href="SqlValidatorScope.html#lookupWindow(java.lang.String)">lookupWindow</a>, <a href="SqlValidatorScope.html#resolve(java.util.List,org.apache.calcite.sql.validate.SqlNameMatcher,boolean,org.apache.calcite.sql.validate.SqlValidatorScope.Resolved)">resolve</a>, <a href="SqlValidatorScope.html#resolveColumn(java.lang.String,org.apache.calcite.sql.SqlNode)">resolveColumn</a>, <a href="SqlValidatorScope.html#resolveTable(java.util.List,org.apache.calcite.sql.validate.SqlNameMatcher,org.apache.calcite.sql.validate.SqlValidatorScope.Path,org.apache.calcite.sql.validate.SqlValidatorScope.Resolved)">resolveTable</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a id="select">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>select</h4>
<pre>private final&nbsp;<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a> select</pre>
</li>
</ul>
<a id="distinct">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>distinct</h4>
<pre>private final&nbsp;boolean distinct</pre>
</li>
</ul>
<a id="temporaryGroupExprList">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>temporaryGroupExprList</h4>
<pre>private&nbsp;java.util.List&lt;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt; temporaryGroupExprList</pre>
<div class="block">Use while under construction.</div>
</li>
</ul>
<a id="resolved">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>resolved</h4>
<pre>public final&nbsp;java.util.function.Supplier&lt;<a href="AggregatingSelectScope.Resolved.html" title="class in org.apache.calcite.sql.validate">AggregatingSelectScope.Resolved</a>&gt; resolved</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.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlSelect,boolean)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>AggregatingSelectScope</h4>
<pre>AggregatingSelectScope&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;selectScope,
<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select,
boolean&nbsp;distinct)</pre>
<div class="block">Creates an AggregatingSelectScope</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>selectScope</code> - Parent scope</dd>
<dd><code>select</code> - Enclosing SELECT node</dd>
<dd><code>distinct</code> - Whether SELECT is DISTINCT</dd>
</dl>
</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="resolve()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>resolve</h4>
<pre class="methodSignature">private&nbsp;<a href="AggregatingSelectScope.Resolved.html" title="class in org.apache.calcite.sql.validate">AggregatingSelectScope.Resolved</a>&nbsp;resolve()</pre>
</li>
</ul>
<a id="getGroupExprs()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getGroupExprs</h4>
<pre class="methodSignature">private&nbsp;<a href="../../util/Pair.html" title="class in org.apache.calcite.util">Pair</a>&lt;com.google.common.collect.ImmutableList&lt;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;,&#8203;com.google.common.collect.ImmutableList&lt;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&gt;&nbsp;getGroupExprs()</pre>
<div class="block">Returns the expressions that are in the GROUP BY clause (or the SELECT
DISTINCT clause, if distinct) and that can therefore be referenced
without being wrapped in aggregate functions.
<p>The expressions are fully-qualified, and any "*" in select clauses are
expanded.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>list of grouping expressions</dd>
</dl>
</li>
</ul>
<a id="getNode()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNode</h4>
<pre class="methodSignature">public&nbsp;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;getNode()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidatorScope.html#getNode()">SqlValidatorScope</a></code></span></div>
<div class="block">Returns the root node of this scope. Never null.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidatorScope.html#getNode()">getNode</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a></code></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;bitSets,
int&nbsp;bit)</pre>
</li>
</ul>
<a id="nullifyType(org.apache.calcite.sql.SqlNode,org.apache.calcite.rel.type.RelDataType)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nullifyType</h4>
<pre class="methodSignature">public&nbsp;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;nullifyType&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidatorScope.html#nullifyType(org.apache.calcite.sql.SqlNode,org.apache.calcite.rel.type.RelDataType)">SqlValidatorScope</a></code></span></div>
<div class="block">Converts the type of an expression to nullable, if the context
warrants it.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidatorScope.html#nullifyType(org.apache.calcite.sql.SqlNode,org.apache.calcite.rel.type.RelDataType)">nullifyType</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="DelegatingScope.html#nullifyType(org.apache.calcite.sql.SqlNode,org.apache.calcite.rel.type.RelDataType)">nullifyType</a></code>&nbsp;in class&nbsp;<code><a href="DelegatingScope.html" title="class in org.apache.calcite.sql.validate">DelegatingScope</a></code></dd>
</dl>
</li>
</ul>
<a id="getOperandScope(org.apache.calcite.sql.SqlCall)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOperandScope</h4>
<pre class="methodSignature">public&nbsp;<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;getOperandScope&#8203;(<a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidatorScope.html#getOperandScope(org.apache.calcite.sql.SqlCall)">SqlValidatorScope</a></code></span></div>
<div class="block">Returns the scope within which operands to a call are to be validated.
Usually it is this scope, but when the call is to an aggregate function
and this is an aggregating scope, it will be a a different scope.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidatorScope.html#getOperandScope(org.apache.calcite.sql.SqlCall)">getOperandScope</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="DelegatingScope.html#getOperandScope(org.apache.calcite.sql.SqlCall)">getOperandScope</a></code>&nbsp;in class&nbsp;<code><a href="DelegatingScope.html" title="class in org.apache.calcite.sql.validate">DelegatingScope</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>call</code> - Call</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Scope within which to validate arguments to call.</dd>
</dl>
</li>
</ul>
<a id="checkAggregateExpr(org.apache.calcite.sql.SqlNode,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkAggregateExpr</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;checkAggregateExpr&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;expr,
boolean&nbsp;deep)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="AggregatingScope.html#checkAggregateExpr(org.apache.calcite.sql.SqlNode,boolean)">AggregatingScope</a></code></span></div>
<div class="block">Checks whether an expression is constant within the GROUP BY clause. If
the expression completely matches an expression in the GROUP BY clause,
returns true. If the expression is constant within the group, but does
not exactly match, returns false. If the expression is not constant,
throws an exception. Examples:
<ul>
<li>If we are 'f(b, c)' in 'SELECT a + f(b, c) FROM t GROUP BY a', then
the whole expression matches a group column. Return true.
<li>Just an ordinary expression in a GROUP BY query, such as 'f(SUM(a),
1, b)' in 'SELECT f(SUM(a), 1, b) FROM t GROUP BY b'. Returns false.
<li>Illegal expression, such as 'f(5, a, b)' in 'SELECT f(a, b) FROM t
GROUP BY a'. Throws when it enounters the 'b' operand, because it is not
in the group clause.
</ul></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="AggregatingScope.html#checkAggregateExpr(org.apache.calcite.sql.SqlNode,boolean)">checkAggregateExpr</a></code>&nbsp;in interface&nbsp;<code><a href="AggregatingScope.html" title="interface in org.apache.calcite.sql.validate">AggregatingScope</a></code></dd>
</dl>
</li>
</ul>
<a id="validateExpr(org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>validateExpr</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;validateExpr&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;expr)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidatorScope.html#validateExpr(org.apache.calcite.sql.SqlNode)">SqlValidatorScope</a></code></span></div>
<div class="block">Performs any scope-specific validation of an expression. For example, an
aggregating scope requires that expressions are valid aggregations. The
expression has already been validated.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidatorScope.html#validateExpr(org.apache.calcite.sql.SqlNode)">validateExpr</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="DelegatingScope.html#validateExpr(org.apache.calcite.sql.SqlNode)">validateExpr</a></code>&nbsp;in class&nbsp;<code><a href="DelegatingScope.html" title="class in org.apache.calcite.sql.validate">DelegatingScope</a></code></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/AggregatingSelectScope.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>