blob: 589c83d66f659c54167b51540552efbcd1209655 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>AggregatingScope (Apache Calcite calcite API)</title>
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="AggregatingScope (Apache Calcite calcite API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><b>Apache Calcite</b></div>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../../../../org/apache/calcite/sql/validate/AggregatingSelectScope.html" title="class in org.apache.calcite.sql.validate"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/calcite/sql/validate/AggregatingScope.html" target="_top">Frames</a></li>
<li><a href="AggregatingScope.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.calcite.sql.validate</div>
<h2 title="Interface AggregatingScope" class="title">Interface AggregatingScope</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd><a href="../../../../../org/apache/calcite/sql/validate/SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a></dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../../../../../org/apache/calcite/sql/validate/AggregatingSelectScope.html" title="class in org.apache.calcite.sql.validate">AggregatingSelectScope</a></dd>
</dl>
<hr>
<br>
<pre>public interface <span class="typeNameLabel">AggregatingScope</span>
extends <a href="../../../../../org/apache/calcite/sql/validate/SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a></pre>
<div class="block">An extension to the <a href="../../../../../org/apache/calcite/sql/validate/SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate"><code>SqlValidatorScope</code></a> interface which indicates that
the scope is aggregating.
<p>A scope which is aggregating must implement this interface. Such a scope
will return the same set of identifiers as its parent scope, but some of
those identifiers may not be accessible because they are not in the GROUP BY
clause.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="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="../../../../../org/apache/calcite/sql/validate/SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a></h3>
<code><a href="../../../../../org/apache/calcite/sql/validate/SqlValidatorScope.EmptyPath.html" title="class in org.apache.calcite.sql.validate">SqlValidatorScope.EmptyPath</a>, <a href="../../../../../org/apache/calcite/sql/validate/SqlValidatorScope.Path.html" title="class in org.apache.calcite.sql.validate">SqlValidatorScope.Path</a>, <a href="../../../../../org/apache/calcite/sql/validate/SqlValidatorScope.Resolve.html" title="class in org.apache.calcite.sql.validate">SqlValidatorScope.Resolve</a>, <a href="../../../../../org/apache/calcite/sql/validate/SqlValidatorScope.Resolved.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope.Resolved</a>, <a href="../../../../../org/apache/calcite/sql/validate/SqlValidatorScope.ResolvedImpl.html" title="class in org.apache.calcite.sql.validate">SqlValidatorScope.ResolvedImpl</a>, <a href="../../../../../org/apache/calcite/sql/validate/SqlValidatorScope.Step.html" title="class in org.apache.calcite.sql.validate">SqlValidatorScope.Step</a></code></li>
</ul>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/sql/validate/AggregatingScope.html#checkAggregateExpr-org.apache.calcite.sql.SqlNode-boolean-">checkAggregateExpr</a></span>(<a href="../../../../../org/apache/calcite/sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;expr,
boolean&nbsp;deep)</code>
<div class="block">Checks whether an expression is constant within the GROUP BY clause.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.calcite.sql.validate.SqlValidatorScope">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.calcite.sql.validate.<a href="../../../../../org/apache/calcite/sql/validate/SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a></h3>
<code><a href="../../../../../org/apache/calcite/sql/validate/SqlValidatorScope.html#addChild-org.apache.calcite.sql.validate.SqlValidatorNamespace-java.lang.String-boolean-">addChild</a>, <a href="../../../../../org/apache/calcite/sql/validate/SqlValidatorScope.html#findAliases-java.util.Collection-">findAliases</a>, <a href="../../../../../org/apache/calcite/sql/validate/SqlValidatorScope.html#findAllColumnNames-java.util.List-">findAllColumnNames</a>, <a href="../../../../../org/apache/calcite/sql/validate/SqlValidatorScope.html#findQualifyingTableName-java.lang.String-org.apache.calcite.sql.SqlNode-">findQualifyingTableName</a>, <a href="../../../../../org/apache/calcite/sql/validate/SqlValidatorScope.html#findQualifyingTableNames-java.lang.String-org.apache.calcite.sql.SqlNode-org.apache.calcite.sql.validate.SqlNameMatcher-">findQualifyingTableNames</a>, <a href="../../../../../org/apache/calcite/sql/validate/SqlValidatorScope.html#fullyQualify-org.apache.calcite.sql.SqlIdentifier-">fullyQualify</a>, <a href="../../../../../org/apache/calcite/sql/validate/SqlValidatorScope.html#getMonotonicity-org.apache.calcite.sql.SqlNode-">getMonotonicity</a>, <a href="../../../../../org/apache/calcite/sql/validate/SqlValidatorScope.html#getNode--">getNode</a>, <a href="../../../../../org/apache/calcite/sql/validate/SqlValidatorScope.html#getOperandScope-org.apache.calcite.sql.SqlCall-">getOperandScope</a>, <a href="../../../../../org/apache/calcite/sql/validate/SqlValidatorScope.html#getOrderList--">getOrderList</a>, <a href="../../../../../org/apache/calcite/sql/validate/SqlValidatorScope.html#getTableNamespace-java.util.List-">getTableNamespace</a>, <a href="../../../../../org/apache/calcite/sql/validate/SqlValidatorScope.html#getValidator--">getValidator</a>, <a href="../../../../../org/apache/calcite/sql/validate/SqlValidatorScope.html#isWithin-org.apache.calcite.sql.validate.SqlValidatorScope-">isWithin</a>, <a href="../../../../../org/apache/calcite/sql/validate/SqlValidatorScope.html#lookupWindow-java.lang.String-">lookupWindow</a>, <a href="../../../../../org/apache/calcite/sql/validate/SqlValidatorScope.html#nullifyType-org.apache.calcite.sql.SqlNode-org.apache.calcite.rel.type.RelDataType-">nullifyType</a>, <a href="../../../../../org/apache/calcite/sql/validate/SqlValidatorScope.html#resolve-java.util.List-org.apache.calcite.sql.validate.SqlNameMatcher-boolean-org.apache.calcite.sql.validate.SqlValidatorScope.Resolved-">resolve</a>, <a href="../../../../../org/apache/calcite/sql/validate/SqlValidatorScope.html#resolveColumn-java.lang.String-org.apache.calcite.sql.SqlNode-">resolveColumn</a>, <a href="../../../../../org/apache/calcite/sql/validate/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>, <a href="../../../../../org/apache/calcite/sql/validate/SqlValidatorScope.html#validateExpr-org.apache.calcite.sql.SqlNode-">validateExpr</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="checkAggregateExpr-org.apache.calcite.sql.SqlNode-boolean-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>checkAggregateExpr</h4>
<pre>boolean&nbsp;checkAggregateExpr(<a href="../../../../../org/apache/calcite/sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;expr,
boolean&nbsp;deep)</pre>
<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>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><b>Apache Calcite</b></div>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../../../../org/apache/calcite/sql/validate/AggregatingSelectScope.html" title="class in org.apache.calcite.sql.validate"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/calcite/sql/validate/AggregatingScope.html" target="_top">Frames</a></li>
<li><a href="AggregatingScope.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &copy; 2012-2020 Apache Software Foundation. All Rights Reserved.</small></p>
</body>
</html>