blob: bb1982fec3201845cac199da6a6b31169323f148 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>SqlValidatorImpl (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="SqlValidatorImpl (Apache Calcite API)";
}
}
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":9,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":9,"i34":9,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":10,"i75":10,"i76":10,"i77":10,"i78":10,"i79":10,"i80":10,"i81":10,"i82":10,"i83":10,"i84":9,"i85":9,"i86":9,"i87":10,"i88":10,"i89":9,"i90":10,"i91":10,"i92":10,"i93":9,"i94":9,"i95":10,"i96":10,"i97":10,"i98":10,"i99":10,"i100":10,"i101":10,"i102":10,"i103":10,"i104":10,"i105":10,"i106":10,"i107":10,"i108":10,"i109":10,"i110":10,"i111":10,"i112":10,"i113":10,"i114":10,"i115":10,"i116":10,"i117":10,"i118":10,"i119":10,"i120":10,"i121":10,"i122":10,"i123":10,"i124":10,"i125":10,"i126":10,"i127":10,"i128":10,"i129":10,"i130":10,"i131":10,"i132":10,"i133":10,"i134":10,"i135":10,"i136":10,"i137":10,"i138":9,"i139":10,"i140":10,"i141":10,"i142":10,"i143":10,"i144":10,"i145":10,"i146":10,"i147":10,"i148":10,"i149":10,"i150":10,"i151":10,"i152":10,"i153":10,"i154":10,"i155":10,"i156":10,"i157":10,"i158":10,"i159":10,"i160":10,"i161":10,"i162":10,"i163":10,"i164":10,"i165":10,"i166":10,"i167":10,"i168":10,"i169":10,"i170":10,"i171":10,"i172":10,"i173":10,"i174":10,"i175":10,"i176":10,"i177":10,"i178":10,"i179":10,"i180":10,"i181":10,"i182":10,"i183":10,"i184":10,"i185":10,"i186":10,"i187":10,"i188":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/SqlValidatorImpl.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 SqlValidatorImpl" class="title">Class SqlValidatorImpl</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.calcite.sql.validate.SqlValidatorImpl</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code>, <code><a href="SqlValidatorWithHints.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorWithHints</a></code></dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><code><a href="../../prepare/CalciteSqlValidator.html" title="class in org.apache.calcite.prepare">CalciteSqlValidator</a></code>, <code><a href="../advise/SqlAdvisorValidator.html" title="class in org.apache.calcite.sql.advise">SqlAdvisorValidator</a></code></dd>
</dl>
<hr>
<pre>public class <span class="typeNameLabel">SqlValidatorImpl</span>
extends java.lang.Object
implements <a href="SqlValidatorWithHints.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorWithHints</a></pre>
<div class="block">Default implementation of <a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate"><code>SqlValidator</code></a>.</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>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="SqlValidatorImpl.DeleteNamespace.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl.DeleteNamespace</a></span></code></th>
<td class="colLast">
<div class="block">Namespace for a DELETE statement.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="SqlValidatorImpl.DeriveTypeVisitor.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl.DeriveTypeVisitor</a></span></code></th>
<td class="colLast">
<div class="block">Visitor which derives the type of a given <a href="../SqlNode.html" title="class in org.apache.calcite.sql"><code>SqlNode</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="SqlValidatorImpl.DmlNamespace.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl.DmlNamespace</a></span></code></th>
<td class="colLast">
<div class="block">Common base class for DML statement namespaces.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="SqlValidatorImpl.Expander.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl.Expander</a></span></code></th>
<td class="colLast">
<div class="block">Converts an expression into canonical form by fully-qualifying any
identifiers.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>(package private) static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="SqlValidatorImpl.ExtendedExpander.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl.ExtendedExpander</a></span></code></th>
<td class="colLast">
<div class="block">Shuttle which walks over an expression in the GROUP BY/HAVING clause, replacing
usages of aliases or ordinals with the underlying expression.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="SqlValidatorImpl.FunctionParamInfo.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl.FunctionParamInfo</a></span></code></th>
<td class="colLast">
<div class="block">Utility object used to maintain information about the parameters in a
function call.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="SqlValidatorImpl.IdInfo.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl.IdInfo</a></span></code></th>
<td class="colLast">
<div class="block">Information about an identifier in a particular scope.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="SqlValidatorImpl.InsertNamespace.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl.InsertNamespace</a></span></code></th>
<td class="colLast">
<div class="block">Namespace for an INSERT statement.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="SqlValidatorImpl.MergeNamespace.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl.MergeNamespace</a></span></code></th>
<td class="colLast">
<div class="block">Namespace for a MERGE statement.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="SqlValidatorImpl.NavigationExpander.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl.NavigationExpander</a></span></code></th>
<td class="colLast">
<div class="block">Shuttle that expands navigation expressions in a MATCH_RECOGNIZE clause.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="SqlValidatorImpl.NavigationModifier.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl.NavigationModifier</a></span></code></th>
<td class="colLast">
<div class="block">Modify the nodes in navigation function
such as FIRST, LAST, PREV AND NEXT.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="SqlValidatorImpl.NavigationReplacer.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl.NavigationReplacer</a></span></code></th>
<td class="colLast">
<div class="block">Shuttle that replaces <code>A as A.price &gt; PREV(B.price)</code> with
<code>PREV(A.price, 0) &gt; LAST(B.price, 0)</code>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>(package private) class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="SqlValidatorImpl.OrderExpressionExpander.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl.OrderExpressionExpander</a></span></code></th>
<td class="colLast">
<div class="block">Shuttle which walks over an expression in the ORDER BY clause, replacing
usages of aliases with the underlying expression.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="SqlValidatorImpl.PatternValidator.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl.PatternValidator</a></span></code></th>
<td class="colLast">
<div class="block">Within one navigation function, the pattern var should be same</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="SqlValidatorImpl.PatternVarVisitor.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl.PatternVarVisitor</a></span></code></th>
<td class="colLast">
<div class="block">retrieve pattern variables defined</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="SqlValidatorImpl.Permute.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl.Permute</a></span></code></th>
<td class="colLast">
<div class="block">Permutation of fields in NATURAL JOIN or USING.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="SqlValidatorImpl.Status.html" title="enum in org.apache.calcite.sql.validate">SqlValidatorImpl.Status</a></span></code></th>
<td class="colLast">
<div class="block">Validation status.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="SqlValidatorImpl.UpdateNamespace.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl.UpdateNamespace</a></span></code></th>
<td class="colLast">
<div class="block">Namespace for an UPDATE statement.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="SqlValidatorImpl.ValidationError.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl.ValidationError</a></span></code></th>
<td class="colLast">
<div class="block">Throws a validator exception with access to the validator context.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>(package private) class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="SqlValidatorImpl.ValidationErrorFunction.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl.ValidationErrorFunction</a></span></code></th>
<td class="colLast">
<div class="block">Throws a validator exception with access to the validator context.</div>
</td>
</tr>
</table>
</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 <a href="AggFinder.html" title="class in org.apache.calcite.sql.validate">AggFinder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#aggFinder">aggFinder</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="AggFinder.html" title="class in org.apache.calcite.sql.validate">AggFinder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#aggOrOverFinder">aggOrOverFinder</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="AggFinder.html" title="class in org.apache.calcite.sql.validate">AggFinder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#aggOrOverOrGroupFinder">aggOrOverOrGroupFinder</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <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="#booleanType">booleanType</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>(package private) <a href="SqlValidatorCatalogReader.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorCatalogReader</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#catalogReader">catalogReader</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#conformance">conformance</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private java.util.Map&lt;<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>,&#8203;<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#cursorScopes">cursorScopes</a></span></code></th>
<td class="colLast">
<div class="block">Maps a <a href="../SqlSelect.html" title="class in org.apache.calcite.sql"><code>SqlSelect</code></a> node that is the argument to a CURSOR
constructor to the scope of the result of that select node</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private java.util.Set&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="#cursorSet">cursorSet</a></span></code></th>
<td class="colLast">
<div class="block">Set of select expressions used as cursor definitions.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#expandColumnReferences">expandColumnReferences</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#expandIdentifiers">expandIdentifiers</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected java.util.Deque&lt;<a href="SqlValidatorImpl.FunctionParamInfo.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl.FunctionParamInfo</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#functionCallStack">functionCallStack</a></span></code></th>
<td class="colLast">
<div class="block">Stack of objects that maintain information about function calls.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private java.util.Map&lt;<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>,&#8203;<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#groupByScopes">groupByScopes</a></span></code></th>
<td class="colLast">
<div class="block">Maps a <a href="../SqlSelect.html" title="class in org.apache.calcite.sql"><code>SqlSelect</code></a> node to the scope used by its GROUP BY clause.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="AggFinder.html" title="class in org.apache.calcite.sql.validate">AggFinder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#groupFinder">groupFinder</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected java.util.Map&lt;java.lang.String,&#8203;<a href="SqlValidatorImpl.IdInfo.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl.IdInfo</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#idPositions">idPositions</a></span></code></th>
<td class="colLast">
<div class="block">Maps ParsePosition strings to the <a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql"><code>SqlIdentifier</code></a> identifier
objects at these positions</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#inWindow">inWindow</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected java.util.Map&lt;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>,&#8203;<a href="SqlValidatorNamespace.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorNamespace</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#namespaces">namespaces</a></span></code></th>
<td class="colLast">
<div class="block">Maps a <a href="../SqlNode.html" title="class in org.apache.calcite.sql"><code>node</code></a> to the
<a href="SqlValidatorNamespace.html" title="interface in org.apache.calcite.sql.validate"><code>namespace</code></a> which describes what columns they
contain.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#nextGeneratedId">nextGeneratedId</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private java.util.Map&lt;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>,&#8203;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#nodeToTypeMap">nodeToTypeMap</a></span></code></th>
<td class="colLast">
<div class="block">Map of derived RelDataType for each node.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="../../config/NullCollation.html" title="enum in org.apache.calcite.config">NullCollation</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#nullCollation">nullCollation</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="../SqlOperatorTable.html" title="interface in org.apache.calcite.sql">SqlOperatorTable</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#opTab">opTab</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private java.util.Map&lt;<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>,&#8203;<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#orderScopes">orderScopes</a></span></code></th>
<td class="colLast">
<div class="block">Maps a <a href="../SqlSelect.html" title="class in org.apache.calcite.sql"><code>SqlSelect</code></a> node to the scope used by its ORDER BY clause.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private java.util.Map&lt;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>,&#8203;<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="#originalExprs">originalExprs</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="AggFinder.html" title="class in org.apache.calcite.sql.validate">AggFinder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#overFinder">overFinder</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#rewriteCalls">rewriteCalls</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected java.util.Map&lt;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>,&#8203;<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#scopes">scopes</a></span></code></th>
<td class="colLast">
<div class="block">Maps <a href="../SqlNode.html" title="class in org.apache.calcite.sql"><code>query node</code></a> objects to the <a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate"><code>SqlValidatorScope</code></a>
scope created from them.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private java.util.Map&lt;<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>,&#8203;<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#selectScopes">selectScopes</a></span></code></th>
<td class="colLast">
<div class="block">Maps a <a href="../SqlSelect.html" title="class in org.apache.calcite.sql"><code>SqlSelect</code></a> node to the scope used by its SELECT and HAVING
clauses.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="TableScope.html" title="class in org.apache.calcite.sql.validate">TableScope</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#tableScope">tableScope</a></span></code></th>
<td class="colLast">
<div class="block">The name-resolution scope of a LATERAL TABLE clause.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <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="#top">top</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static org.slf4j.Logger</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#TRACER">TRACER</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="../../rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#typeFactory">typeFactory</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <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="#unknownType">unknownType</a></span></code></th>
<td class="colLast">
<div class="block">The type of dynamic parameters until a type is imposed on them.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#UPDATE_ANON_PREFIX">UPDATE_ANON_PREFIX</a></span></code></th>
<td class="colLast">
<div class="block">Alias prefix generated for source columns when rewriting UPDATE to MERGE.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#UPDATE_SRC_ALIAS">UPDATE_SRC_ALIAS</a></span></code></th>
<td class="colLast">
<div class="block">Alias generated for the source table when rewriting UPDATE to MERGE.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#UPDATE_TGT_ALIAS">UPDATE_TGT_ALIAS</a></span></code></th>
<td class="colLast">
<div class="block">Alias generated for the target table when rewriting UPDATE to MERGE if no
alias was specified by the user.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validatingSqlMerge">validatingSqlMerge</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="SqlValidatorImpl.ValidationErrorFunction.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl.ValidationErrorFunction</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validationErrorFunction">validationErrorFunction</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private java.util.Map&lt;<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>,&#8203;<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#whereScopes">whereScopes</a></span></code></th>
<td class="colLast">
<div class="block">Maps a <a href="../SqlSelect.html" title="class in org.apache.calcite.sql"><code>SqlSelect</code></a> node to the scope used by its WHERE and HAVING
clauses.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier</th>
<th class="colSecond" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected </code></td>
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.apache.calcite.sql.SqlOperatorTable,org.apache.calcite.sql.validate.SqlValidatorCatalogReader,org.apache.calcite.rel.type.RelDataTypeFactory,org.apache.calcite.sql.validate.SqlConformance)">SqlValidatorImpl</a></span>&#8203;(<a href="../SqlOperatorTable.html" title="interface in org.apache.calcite.sql">SqlOperatorTable</a>&nbsp;opTab,
<a href="SqlValidatorCatalogReader.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorCatalogReader</a>&nbsp;catalogReader,
<a href="../../rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;typeFactory,
<a href="SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a>&nbsp;conformance)</code></th>
<td class="colLast">
<div class="block">Creates a validator.</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 boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addOrExpandField(java.util.List,java.util.Set,java.util.List,boolean,org.apache.calcite.sql.validate.SelectScope,org.apache.calcite.sql.SqlIdentifier,org.apache.calcite.rel.type.RelDataTypeField)">addOrExpandField</a></span>&#8203;(java.util.List&lt;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;selectItems,
java.util.Set&lt;java.lang.String&gt;&nbsp;aliases,
java.util.List&lt;java.util.Map.Entry&lt;java.lang.String,&#8203;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&gt;&nbsp;fields,
boolean&nbsp;includeSystemVars,
<a href="SelectScope.html" title="class in org.apache.calcite.sql.validate">SelectScope</a>&nbsp;scope,
<a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql">SqlIdentifier</a>&nbsp;id,
<a href="../../rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&nbsp;field)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addToSelectList(java.util.List,java.util.Set,java.util.List,org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope,boolean)">addToSelectList</a></span>&#8203;(java.util.List&lt;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;list,
java.util.Set&lt;java.lang.String&gt;&nbsp;aliases,
java.util.List&lt;java.util.Map.Entry&lt;java.lang.String,&#8203;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&gt;&nbsp;fieldList,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;exp,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
boolean&nbsp;includeSystemVars)</code></th>
<td class="colLast">
<div class="block">Adds an expression to a select list, ensuring that its alias does not
clash with any existing expressions on the list.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>private static java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#alias(org.apache.calcite.sql.SqlNode)">alias</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;item)</code></th>
<td class="colLast">
<div class="block">Returns the alias of a "expr AS alias" expression.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkConstraint(org.apache.calcite.sql.validate.SqlValidatorTable,org.apache.calcite.sql.SqlNode,org.apache.calcite.rel.type.RelDataType)">checkConstraint</a></span>&#8203;(<a href="SqlValidatorTable.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorTable</a>&nbsp;validatorTable,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;source,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetRowType)</code></th>
<td class="colLast">
<div class="block">Validates insert values against the constraint of a modifiable view.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkConstraint(org.apache.calcite.sql.validate.SqlValidatorTable,org.apache.calcite.sql.SqlUpdate,org.apache.calcite.rel.type.RelDataType)">checkConstraint</a></span>&#8203;(<a href="SqlValidatorTable.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorTable</a>&nbsp;validatorTable,
<a href="../SqlUpdate.html" title="class in org.apache.calcite.sql">SqlUpdate</a>&nbsp;update,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetRowType)</code></th>
<td class="colLast">
<div class="block">Validates updates against the constraint of a modifiable view.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkFieldCount(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorTable,org.apache.calcite.sql.SqlNode,org.apache.calcite.rel.type.RelDataType,org.apache.calcite.rel.type.RelDataType)">checkFieldCount</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
<a href="SqlValidatorTable.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorTable</a>&nbsp;table,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;source,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;logicalSourceRowType,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;logicalTargetRowType)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkRollUp(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope)">checkRollUp</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;grandParent,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;parent,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;current,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkRollUp(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope,java.lang.String)">checkRollUp</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;grandParent,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;parent,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;current,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
java.lang.String&nbsp;optionalClause)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkRollUpInGroupBy(org.apache.calcite.sql.SqlSelect)">checkRollUpInGroupBy</a></span>&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkRollUpInOrderBy(org.apache.calcite.sql.SqlSelect)">checkRollUpInOrderBy</a></span>&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkRollUpInSelectList(org.apache.calcite.sql.SqlSelect)">checkRollUpInSelectList</a></span>&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkRollUpInUsing(org.apache.calcite.sql.SqlIdentifier,org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope)">checkRollUpInUsing</a></span>&#8203;(<a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql">SqlIdentifier</a>&nbsp;identifier,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;leftOrRight,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkRollUpInWindow(org.apache.calcite.sql.SqlWindow,org.apache.calcite.sql.validate.SqlValidatorScope)">checkRollUpInWindow</a></span>&#8203;(<a href="../SqlWindow.html" title="class in org.apache.calcite.sql">SqlWindow</a>&nbsp;window,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkRollUpInWindowDecl(org.apache.calcite.sql.SqlSelect)">checkRollUpInWindowDecl</a></span>&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkTypeAssignment(org.apache.calcite.rel.type.RelDataType,org.apache.calcite.rel.type.RelDataType,org.apache.calcite.sql.SqlNode)">checkTypeAssignment</a></span>&#8203;(<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;sourceRowType,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetRowType,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;query)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>protected <a href="MatchRecognizeNamespace.html" title="class in org.apache.calcite.sql.validate">MatchRecognizeNamespace</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createMatchRecognizeNameSpace(org.apache.calcite.sql.SqlMatchRecognize,org.apache.calcite.sql.SqlNode)">createMatchRecognizeNameSpace</a></span>&#8203;(<a href="../SqlMatchRecognize.html" title="class in org.apache.calcite.sql">SqlMatchRecognize</a>&nbsp;call,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;enclosingNode)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>protected <a href="SelectNamespace.html" title="class in org.apache.calcite.sql.validate">SelectNamespace</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createSelectNamespace(org.apache.calcite.sql.SqlSelect,org.apache.calcite.sql.SqlNode)">createSelectNamespace</a></span>&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;enclosingNode)</code></th>
<td class="colLast">
<div class="block">Creates a namespace for a <code>SELECT</code> node.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>protected <a href="SetopNamespace.html" title="class in org.apache.calcite.sql.validate">SetopNamespace</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createSetopNamespace(org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.SqlNode)">createSetopNamespace</a></span>&#8203;(<a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;enclosingNode)</code></th>
<td class="colLast">
<div class="block">Creates a namespace for a set operation (<code>UNION</code>, <code>
INTERSECT</code>, or <code>EXCEPT</code>).</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>protected <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="#createSourceSelectForDelete(org.apache.calcite.sql.SqlDelete)">createSourceSelectForDelete</a></span>&#8203;(<a href="../SqlDelete.html" title="class in org.apache.calcite.sql">SqlDelete</a>&nbsp;call)</code></th>
<td class="colLast">
<div class="block">Creates the SELECT statement that putatively feeds rows into a DELETE
statement to be deleted.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>protected <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="#createSourceSelectForUpdate(org.apache.calcite.sql.SqlUpdate)">createSourceSelectForUpdate</a></span>&#8203;(<a href="../SqlUpdate.html" title="class in org.apache.calcite.sql">SqlUpdate</a>&nbsp;call)</code></th>
<td class="colLast">
<div class="block">Creates the SELECT statement that putatively feeds rows into an UPDATE
statement to be updated.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>protected <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="#createTargetRowType(org.apache.calcite.sql.validate.SqlValidatorTable,org.apache.calcite.sql.SqlNodeList,boolean)">createTargetRowType</a></span>&#8203;(<a href="SqlValidatorTable.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorTable</a>&nbsp;table,
<a href="../SqlNodeList.html" title="class in org.apache.calcite.sql">SqlNodeList</a>&nbsp;targetColumnList,
boolean&nbsp;append)</code></th>
<td class="colLast">
<div class="block">Derives a row-type for INSERT and UPDATE operations.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#declareCursor(org.apache.calcite.sql.SqlSelect,org.apache.calcite.sql.validate.SqlValidatorScope)">declareCursor</a></span>&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;parentScope)</code></th>
<td class="colLast">
<div class="block">Declares a SELECT expression as a cursor.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>private <a href="SqlModality.html" title="enum in org.apache.calcite.sql.validate">SqlModality</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#deduceModality(org.apache.calcite.sql.SqlNode)">deduceModality</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;query)</code></th>
<td class="colLast">
<div class="block">Return the intended modality of a SELECT or set-op.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#deriveAlias(org.apache.calcite.sql.SqlNode,int)">deriveAlias</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
int&nbsp;ordinal)</code></th>
<td class="colLast">
<div class="block">Derives an alias for an expression.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<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="#deriveConstructorType(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.SqlFunction,org.apache.calcite.sql.SqlFunction,java.util.List)">deriveConstructorType</a></span>&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call,
<a href="../SqlFunction.html" title="class in org.apache.calcite.sql">SqlFunction</a>&nbsp;unresolvedConstructor,
<a href="../SqlFunction.html" title="class in org.apache.calcite.sql">SqlFunction</a>&nbsp;resolvedConstructor,
java.util.List&lt;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&nbsp;argTypes)</code></th>
<td class="colLast">
<div class="block">Derives the type of a constructor.</div>
</td>
</tr>
<tr id="i25" 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="#deriveType(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlNode)">deriveType</a></span>&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;expr)</code></th>
<td class="colLast">
<div class="block">Derives the type of a node in a given scope.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>(package private) <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="#deriveTypeImpl(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlNode)">deriveTypeImpl</a></span>&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;operand)</code></th>
<td class="colLast">
<div class="block">Derives the type of a node, never null.</div>
</td>
</tr>
<tr id="i27" 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="#expand(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope)">expand</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;expr,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</code></th>
<td class="colLast">
<div class="block">Expands an expression.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<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="#expandGroupByOrHavingExpr(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlSelect,boolean)">expandGroupByOrHavingExpr</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;expr,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select,
boolean&nbsp;havingExpression)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i29" 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="#expandOrderExpr(org.apache.calcite.sql.SqlSelect,org.apache.calcite.sql.SqlNode)">expandOrderExpr</a></span>&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;orderExpr)</code></th>
<td class="colLast">
<div class="block">Expands an expression in the ORDER BY clause into an expression with the
same semantics as expressions in the SELECT clause.</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>private boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#expandSelectItem(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.SqlSelect,org.apache.calcite.rel.type.RelDataType,java.util.List,java.util.Set,java.util.List,boolean)">expandSelectItem</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;selectItem,
<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetType,
java.util.List&lt;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;selectItems,
java.util.Set&lt;java.lang.String&gt;&nbsp;aliases,
java.util.List&lt;java.util.Map.Entry&lt;java.lang.String,&#8203;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&gt;&nbsp;fields,
boolean&nbsp;includeSystemVars)</code></th>
<td class="colLast">
<div class="block">If <code>selectItem</code> is "*" or "TABLE.*", expands it and returns
true; otherwise writes the unexpanded item.</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>private boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#expandStar(java.util.List,java.util.Set,java.util.List,boolean,org.apache.calcite.sql.validate.SelectScope,org.apache.calcite.sql.SqlNode)">expandStar</a></span>&#8203;(java.util.List&lt;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;selectItems,
java.util.Set&lt;java.lang.String&gt;&nbsp;aliases,
java.util.List&lt;java.util.Map.Entry&lt;java.lang.String,&#8203;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&gt;&nbsp;fields,
boolean&nbsp;includeSystemVars,
<a href="SelectScope.html" title="class in org.apache.calcite.sql.validate">SelectScope</a>&nbsp;scope,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code><a href="../SqlNodeList.html" title="class in org.apache.calcite.sql">SqlNodeList</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#expandStar(org.apache.calcite.sql.SqlNodeList,org.apache.calcite.sql.SqlSelect,boolean)">expandStar</a></span>&#8203;(<a href="../SqlNodeList.html" title="class in org.apache.calcite.sql">SqlNodeList</a>&nbsp;selectList,
<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select,
boolean&nbsp;includeSystemVars)</code></th>
<td class="colLast">
<div class="block">Returns a list of expressions, with every occurrence of "&#42;" or
"TABLE.&#42;" expanded.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>private static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#findAllValidFunctionNames(java.util.List,org.apache.calcite.sql.validate.SqlValidator,java.util.Collection,org.apache.calcite.sql.parser.SqlParserPos)">findAllValidFunctionNames</a></span>&#8203;(java.util.List&lt;java.lang.String&gt;&nbsp;names,
<a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a>&nbsp;validator,
java.util.Collection&lt;<a href="SqlMoniker.html" title="interface in org.apache.calcite.sql.validate">SqlMoniker</a>&gt;&nbsp;result,
<a href="../parser/SqlParserPos.html" title="class in org.apache.calcite.sql.parser">SqlParserPos</a>&nbsp;pos)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code>private static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#findAllValidUdfNames(java.util.List,org.apache.calcite.sql.validate.SqlValidator,java.util.Collection)">findAllValidUdfNames</a></span>&#8203;(java.util.List&lt;java.lang.String&gt;&nbsp;names,
<a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a>&nbsp;validator,
java.util.Collection&lt;<a href="SqlMoniker.html" title="interface in org.apache.calcite.sql.validate">SqlMoniker</a>&gt;&nbsp;result)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code>private <a href="../../util/Pair.html" title="class in org.apache.calcite.util">Pair</a>&lt;java.lang.String,&#8203;java.lang.String&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#findTableColumnPair(org.apache.calcite.sql.SqlIdentifier,org.apache.calcite.sql.validate.SqlValidatorScope)">findTableColumnPair</a></span>&#8203;(<a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql">SqlIdentifier</a>&nbsp;identifier,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><code>private <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="#getAgg(org.apache.calcite.sql.SqlSelect)">getAgg</a></span>&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</code></th>
<td class="colLast">
<div class="block">If there is at least one call to an aggregate function, returns the
first.</div>
</td>
</tr>
<tr id="i37" class="rowColor">
<td class="colFirst"><code>protected <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="#getAggregate(org.apache.calcite.sql.SqlSelect)">getAggregate</a></span>&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</code></th>
<td class="colLast">
<div class="block">Returns the parse tree node (GROUP BY, HAVING, or an aggregate function
call) that causes <code>select</code> to be an aggregate query, or null if it
is not an aggregate query.</div>
</td>
</tr>
<tr id="i38" class="altColor">
<td class="colFirst"><code><a href="SqlValidatorCatalogReader.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorCatalogReader</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCatalogReader()">getCatalogReader</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the catalog reader used by this validator.</div>
</td>
</tr>
<tr id="i39" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getColumnReferenceExpansion()">getColumnReferenceExpansion</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i40" class="altColor">
<td class="colFirst"><code><a href="SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getConformance()">getConformance</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the dialect of SQL (SQL:2003, etc.) this validator recognizes.</div>
</td>
</tr>
<tr id="i41" class="rowColor">
<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="#getCursorScope(org.apache.calcite.sql.SqlSelect)">getCursorScope</a></span>&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i42" class="altColor">
<td class="colFirst"><code><a href="../../config/NullCollation.html" title="enum in org.apache.calcite.config">NullCollation</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDefaultNullCollation()">getDefaultNullCollation</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns how NULL values should be collated if an ORDER BY item does not
contain NULLS FIRST or NULLS LAST.</div>
</td>
</tr>
<tr id="i43" class="rowColor">
<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="#getEmptyScope()">getEmptyScope</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i44" class="altColor">
<td class="colFirst"><code>private java.util.List&lt;java.lang.String&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getFieldOrigin(org.apache.calcite.sql.SqlNode,int)">getFieldOrigin</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;sqlQuery,
int&nbsp;i)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i45" class="rowColor">
<td class="colFirst"><code>java.util.List&lt;java.util.List&lt;java.lang.String&gt;&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getFieldOrigins(org.apache.calcite.sql.SqlNode)">getFieldOrigins</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;sqlQuery)</code></th>
<td class="colLast">
<div class="block">Returns a description of how each field in the row type maps to a
catalog, schema, table and column in the schema.</div>
</td>
</tr>
<tr id="i46" 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="#getFromScope(org.apache.calcite.sql.SqlSelect)">getFromScope</a></span>&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</code></th>
<td class="colLast">
<div class="block">Returns a scope containing the objects visible from the FROM clause of a
query.</div>
</td>
</tr>
<tr id="i47" class="rowColor">
<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="#getGroupScope(org.apache.calcite.sql.SqlSelect)">getGroupScope</a></span>&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</code></th>
<td class="colLast">
<div class="block">Returns a scope containing the objects visible from the GROUP BY clause
of a query.</div>
</td>
</tr>
<tr id="i48" 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="#getHavingScope(org.apache.calcite.sql.SqlSelect)">getHavingScope</a></span>&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</code></th>
<td class="colLast">
<div class="block">Returns a scope containing the objects visible from the HAVING clause of
a query.</div>
</td>
</tr>
<tr id="i49" class="rowColor">
<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="#getInnerSelect(org.apache.calcite.sql.SqlNode)">getInnerSelect</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i50" 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="#getJoinScope(org.apache.calcite.sql.SqlNode)">getJoinScope</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</code></th>
<td class="colLast">
<div class="block">Returns a scope containing the objects visible from the ON and USING
sections of a JOIN clause.</div>
</td>
</tr>
<tr id="i51" class="rowColor">
<td class="colFirst"><code>protected <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="#getLogicalSourceRowType(org.apache.calcite.rel.type.RelDataType,org.apache.calcite.sql.SqlInsert)">getLogicalSourceRowType</a></span>&#8203;(<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;sourceRowType,
<a href="../SqlInsert.html" title="class in org.apache.calcite.sql">SqlInsert</a>&nbsp;insert)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i52" class="altColor">
<td class="colFirst"><code>protected <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="#getLogicalTargetRowType(org.apache.calcite.rel.type.RelDataType,org.apache.calcite.sql.SqlInsert)">getLogicalTargetRowType</a></span>&#8203;(<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetRowType,
<a href="../SqlInsert.html" title="class in org.apache.calcite.sql">SqlInsert</a>&nbsp;insert)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i53" class="rowColor">
<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="#getMatchRecognizeScope(org.apache.calcite.sql.SqlMatchRecognize)">getMatchRecognizeScope</a></span>&#8203;(<a href="../SqlMatchRecognize.html" title="class in org.apache.calcite.sql">SqlMatchRecognize</a>&nbsp;node)</code></th>
<td class="colLast">
<div class="block">Returns a scope match recognize clause.</div>
</td>
</tr>
<tr id="i54" class="altColor">
<td class="colFirst"><code>private <a href="SqlValidatorNamespace.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorNamespace</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNamespace(org.apache.calcite.sql.SqlIdentifier,org.apache.calcite.sql.validate.DelegatingScope)">getNamespace</a></span>&#8203;(<a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql">SqlIdentifier</a>&nbsp;id,
<a href="DelegatingScope.html" title="class in org.apache.calcite.sql.validate">DelegatingScope</a>&nbsp;scope)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i55" class="rowColor">
<td class="colFirst"><code><a href="SqlValidatorNamespace.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorNamespace</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNamespace(org.apache.calcite.sql.SqlNode)">getNamespace</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</code></th>
<td class="colLast">
<div class="block">Finds the namespace corresponding to a given node.</div>
</td>
</tr>
<tr id="i56" class="altColor">
<td class="colFirst"><code>private <a href="SqlValidatorNamespace.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorNamespace</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNamespace(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope)">getNamespace</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i57" class="rowColor">
<td class="colFirst"><code>private <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="#getNthExpr(org.apache.calcite.sql.SqlNode,int,int)">getNthExpr</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;query,
int&nbsp;ordinal,
int&nbsp;sourceCount)</code></th>
<td class="colLast">
<div class="block">Locates the n'th expression in an INSERT or UPDATE query.</div>
</td>
</tr>
<tr id="i58" class="altColor">
<td class="colFirst"><code><a href="../SqlOperatorTable.html" title="interface in org.apache.calcite.sql">SqlOperatorTable</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOperatorTable()">getOperatorTable</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the operator table used by this validator.</div>
</td>
</tr>
<tr id="i59" class="rowColor">
<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="#getOrderScope(org.apache.calcite.sql.SqlSelect)">getOrderScope</a></span>&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</code></th>
<td class="colLast">
<div class="block">Returns the scope that expressions in the SELECT and HAVING clause of
this query should use.</div>
</td>
</tr>
<tr id="i60" class="altColor">
<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="#getOriginal(org.apache.calcite.sql.SqlNode)">getOriginal</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;expr)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i61" class="rowColor">
<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="#getOverScope(org.apache.calcite.sql.SqlNode)">getOverScope</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</code></th>
<td class="colLast">
<div class="block">Returns the scope of an OVER or VALUES node.</div>
</td>
</tr>
<tr id="i62" class="altColor">
<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="#getParameterRowType(org.apache.calcite.sql.SqlNode)">getParameterRowType</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;sqlQuery)</code></th>
<td class="colLast">
<div class="block">Returns a record type that contains the name and type of each parameter.</div>
</td>
</tr>
<tr id="i63" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getParentCursor(java.lang.String)">getParentCursor</a></span>&#8203;(java.lang.String&nbsp;columnListParamName)</code></th>
<td class="colLast">
<div class="block">Retrieves the name of the parent cursor referenced by a column list
parameter.</div>
</td>
</tr>
<tr id="i64" class="altColor">
<td class="colFirst"><code><a href="SelectScope.html" title="class in org.apache.calcite.sql.validate">SelectScope</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRawSelectScope(org.apache.calcite.sql.SqlSelect)">getRawSelectScope</a></span>&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</code></th>
<td class="colLast">
<div class="block">Returns the scope for resolving the SELECT, GROUP BY and HAVING clauses.</div>
</td>
</tr>
<tr id="i65" class="rowColor">
<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="#getSelectScope(org.apache.calcite.sql.SqlSelect)">getSelectScope</a></span>&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</code></th>
<td class="colLast">
<div class="block">Returns the appropriate scope for validating a particular clause of a
SELECT statement.</div>
</td>
</tr>
<tr id="i66" class="altColor">
<td class="colFirst"><code>protected <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="#getSelfJoinExprForUpdate(org.apache.calcite.sql.SqlNode,java.lang.String)">getSelfJoinExprForUpdate</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;table,
java.lang.String&nbsp;alias)</code></th>
<td class="colLast">
<div class="block">Allows a subclass to provide information about how to convert an UPDATE
into a MERGE via self-join.</div>
</td>
</tr>
<tr id="i67" class="rowColor">
<td class="colFirst"><code>(package private) <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="#getTableConstructorRowType(org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.validate.SqlValidatorScope)">getTableConstructorRowType</a></span>&#8203;(<a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;values,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</code></th>
<td class="colLast">
<div class="block">Returns null if there is no common type.</div>
</td>
</tr>
<tr id="i68" class="altColor">
<td class="colFirst"><code><a href="../../rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTypeFactory()">getTypeFactory</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the type factory used by this validator.</div>
</td>
</tr>
<tr id="i69" 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="#getUnknownType()">getUnknownType</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns an object representing the "unknown" type.</div>
</td>
</tr>
<tr id="i70" class="altColor">
<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="#getValidatedNodeType(org.apache.calcite.sql.SqlNode)">getValidatedNodeType</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</code></th>
<td class="colLast">
<div class="block">Returns the type assigned to a node by validation.</div>
</td>
</tr>
<tr id="i71" 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="#getValidatedNodeTypeIfKnown(org.apache.calcite.sql.SqlNode)">getValidatedNodeTypeIfKnown</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</code></th>
<td class="colLast">
<div class="block">Returns the type assigned to a node by validation, or null if unknown.</div>
</td>
</tr>
<tr id="i72" class="altColor">
<td class="colFirst"><code><a href="SqlValidatorImpl.ValidationErrorFunction.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl.ValidationErrorFunction</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getValidationErrorFunction()">getValidationErrorFunction</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i73" class="rowColor">
<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="#getWhereScope(org.apache.calcite.sql.SqlSelect)">getWhereScope</a></span>&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</code></th>
<td class="colLast">
<div class="block">Returns the scope that expressions in the WHERE and GROUP BY clause of
this query should use.</div>
</td>
</tr>
<tr id="i74" class="altColor">
<td class="colFirst"><code>protected <a href="../SqlWindow.html" title="class in org.apache.calcite.sql">SqlWindow</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getWindowByName(org.apache.calcite.sql.SqlIdentifier,org.apache.calcite.sql.validate.SqlValidatorScope)">getWindowByName</a></span>&#8203;(<a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql">SqlIdentifier</a>&nbsp;id,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i75" class="rowColor">
<td class="colFirst"><code>private <a href="../SqlWindow.html" title="class in org.apache.calcite.sql">SqlWindow</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getWindowInOver(org.apache.calcite.sql.SqlNode)">getWindowInOver</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;over)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i76" 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="#getWithScope(org.apache.calcite.sql.SqlNode)">getWithScope</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;withItem)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i77" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#handleOffsetFetch(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.SqlNode)">handleOffsetFetch</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;offset,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;fetch)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i78" class="altColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#handleScalarSubQuery(org.apache.calcite.sql.SqlSelect,org.apache.calcite.sql.SqlSelect,java.util.List,java.util.Set,java.util.List)">handleScalarSubQuery</a></span>&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;parentSelect,
<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;selectItem,
java.util.List&lt;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;expandedSelectItems,
java.util.Set&lt;java.lang.String&gt;&nbsp;aliasList,
java.util.List&lt;java.util.Map.Entry&lt;java.lang.String,&#8203;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&gt;&nbsp;fieldList)</code></th>
<td class="colLast">
<div class="block">Processes SubQuery found in Select list.</div>
</td>
</tr>
<tr id="i79" class="rowColor">
<td class="colFirst"><code><a href="../../runtime/CalciteException.html" title="class in org.apache.calcite.runtime">CalciteException</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#handleUnresolvedFunction(org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.SqlFunction,java.util.List,java.util.List)">handleUnresolvedFunction</a></span>&#8203;(<a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call,
<a href="../SqlFunction.html" title="class in org.apache.calcite.sql">SqlFunction</a>&nbsp;unresolvedFunction,
java.util.List&lt;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&nbsp;argTypes,
java.util.List&lt;java.lang.String&gt;&nbsp;argNames)</code></th>
<td class="colLast">
<div class="block">Handles a call to a function which cannot be resolved.</div>
</td>
</tr>
<tr id="i80" class="altColor">
<td class="colFirst"><code>private boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hasSortedPrefix(org.apache.calcite.sql.validate.SelectScope,org.apache.calcite.sql.SqlNodeList)">hasSortedPrefix</a></span>&#8203;(<a href="SelectScope.html" title="class in org.apache.calcite.sql.validate">SelectScope</a>&nbsp;scope,
<a href="../SqlNodeList.html" title="class in org.apache.calcite.sql">SqlNodeList</a>&nbsp;orderList)</code></th>
<td class="colLast">
<div class="block">Returns whether the prefix is sorted.</div>
</td>
</tr>
<tr id="i81" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#inferUnknownTypes(org.apache.calcite.rel.type.RelDataType,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlNode)">inferUnknownTypes</a></span>&#8203;(<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;inferredType,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i82" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isAggregate(org.apache.calcite.sql.SqlNode)">isAggregate</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;selectNode)</code></th>
<td class="colLast">
<div class="block">Returns whether a select list expression is an aggregate function.</div>
</td>
</tr>
<tr id="i83" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isAggregate(org.apache.calcite.sql.SqlSelect)">isAggregate</a></span>&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</code></th>
<td class="colLast">
<div class="block">Returns whether a SELECT statement is an aggregation.</div>
</td>
</tr>
<tr id="i84" class="altColor">
<td class="colFirst"><code>private static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isAggregation(org.apache.calcite.sql.SqlKind)">isAggregation</a></span>&#8203;(<a href="../SqlKind.html" title="enum in org.apache.calcite.sql">SqlKind</a>&nbsp;kind)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i85" class="rowColor">
<td class="colFirst"><code>private static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isLateral(org.apache.calcite.sql.SqlNode)">isLateral</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i86" class="altColor">
<td class="colFirst"><code>private static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isLogicalNavigation(org.apache.calcite.sql.SqlKind)">isLogicalNavigation</a></span>&#8203;(<a href="../SqlKind.html" title="enum in org.apache.calcite.sql">SqlKind</a>&nbsp;kind)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i87" class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isNestedAggregateWindow(org.apache.calcite.sql.SqlNode)">isNestedAggregateWindow</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i88" class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isOverAggregateWindow(org.apache.calcite.sql.SqlNode)">isOverAggregateWindow</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i89" class="rowColor">
<td class="colFirst"><code>private static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isPhysicalNavigation(org.apache.calcite.sql.SqlKind)">isPhysicalNavigation</a></span>&#8203;(<a href="../SqlKind.html" title="enum in org.apache.calcite.sql">SqlKind</a>&nbsp;kind)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i90" class="altColor">
<td class="colFirst"><code>private boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isRolledUpColumn(org.apache.calcite.sql.SqlIdentifier,org.apache.calcite.sql.validate.SqlValidatorScope)">isRolledUpColumn</a></span>&#8203;(<a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql">SqlIdentifier</a>&nbsp;identifier,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i91" class="rowColor">
<td class="colFirst"><code>private boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isRolledUpColumnAllowedInAgg(org.apache.calcite.sql.SqlIdentifier,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.SqlNode)">isRolledUpColumnAllowedInAgg</a></span>&#8203;(<a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql">SqlIdentifier</a>&nbsp;identifier,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;aggCall,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;parent)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i92" class="altColor">
<td class="colFirst"><code>private boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isRowWithDefault(org.apache.calcite.sql.SqlNode,int)">isRowWithDefault</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;operand,
int&nbsp;column)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i93" class="rowColor">
<td class="colFirst"><code>private static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isRunningOrFinal(org.apache.calcite.sql.SqlKind)">isRunningOrFinal</a></span>&#8203;(<a href="../SqlKind.html" title="enum in org.apache.calcite.sql">SqlKind</a>&nbsp;kind)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i94" class="altColor">
<td class="colFirst"><code>private static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isSingleVarRequired(org.apache.calcite.sql.SqlKind)">isSingleVarRequired</a></span>&#8203;(<a href="../SqlKind.html" title="enum in org.apache.calcite.sql">SqlKind</a>&nbsp;kind)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i95" class="rowColor">
<td class="colFirst"><code>private boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isSortCompatible(org.apache.calcite.sql.validate.SelectScope,org.apache.calcite.sql.SqlNode,boolean)">isSortCompatible</a></span>&#8203;(<a href="SelectScope.html" title="class in org.apache.calcite.sql.validate">SelectScope</a>&nbsp;scope,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
boolean&nbsp;descending)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i96" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isSystemField(org.apache.calcite.rel.type.RelDataTypeField)">isSystemField</a></span>&#8203;(<a href="../../rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&nbsp;field)</code></th>
<td class="colLast">
<div class="block">Returns whether a field is a system field.</div>
</td>
</tr>
<tr id="i97" class="rowColor">
<td class="colFirst"><code>private boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isValuesWithDefault(org.apache.calcite.sql.SqlNode,int)">isValuesWithDefault</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;source,
int&nbsp;column)</code></th>
<td class="colLast">
<div class="block">Returns whether a query uses <code>DEFAULT</code> to populate a given
column.</div>
</td>
</tr>
<tr id="i98" class="altColor">
<td class="colFirst"><code>(package private) <a href="SqlValidatorNamespace.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorNamespace</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#lookupFieldNamespace(org.apache.calcite.rel.type.RelDataType,java.lang.String)">lookupFieldNamespace</a></span>&#8203;(<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;rowType,
java.lang.String&nbsp;name)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i99" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#lookupFromHints(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.parser.SqlParserPos,java.util.Collection)">lookupFromHints</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="../parser/SqlParserPos.html" title="class in org.apache.calcite.sql.parser">SqlParserPos</a>&nbsp;pos,
java.util.Collection&lt;<a href="SqlMoniker.html" title="interface in org.apache.calcite.sql.validate">SqlMoniker</a>&gt;&nbsp;hintList)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i100" class="altColor">
<td class="colFirst"><code>java.util.List&lt;<a href="SqlMoniker.html" title="interface in org.apache.calcite.sql.validate">SqlMoniker</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#lookupHints(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.parser.SqlParserPos)">lookupHints</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;topNode,
<a href="../parser/SqlParserPos.html" title="class in org.apache.calcite.sql.parser">SqlParserPos</a>&nbsp;pos)</code></th>
<td class="colLast">
<div class="block">Looks up completion hints for a syntactically correct SQL statement that
has been parsed into an expression tree.</div>
</td>
</tr>
<tr id="i101" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#lookupJoinHints(org.apache.calcite.sql.SqlJoin,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.parser.SqlParserPos,java.util.Collection)">lookupJoinHints</a></span>&#8203;(<a href="../SqlJoin.html" title="class in org.apache.calcite.sql">SqlJoin</a>&nbsp;join,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="../parser/SqlParserPos.html" title="class in org.apache.calcite.sql.parser">SqlParserPos</a>&nbsp;pos,
java.util.Collection&lt;<a href="SqlMoniker.html" title="interface in org.apache.calcite.sql.validate">SqlMoniker</a>&gt;&nbsp;hintList)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i102" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#lookupNameCompletionHints(org.apache.calcite.sql.validate.SqlValidatorScope,java.util.List,org.apache.calcite.sql.parser.SqlParserPos,java.util.Collection)">lookupNameCompletionHints</a></span>&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
java.util.List&lt;java.lang.String&gt;&nbsp;names,
<a href="../parser/SqlParserPos.html" title="class in org.apache.calcite.sql.parser">SqlParserPos</a>&nbsp;pos,
java.util.Collection&lt;<a href="SqlMoniker.html" title="interface in org.apache.calcite.sql.validate">SqlMoniker</a>&gt;&nbsp;hintList)</code></th>
<td class="colLast">
<div class="block">Populates a list of all the valid alternatives for an identifier.</div>
</td>
</tr>
<tr id="i103" class="rowColor">
<td class="colFirst"><code><a href="SqlMoniker.html" title="interface in org.apache.calcite.sql.validate">SqlMoniker</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#lookupQualifiedName(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.parser.SqlParserPos)">lookupQualifiedName</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;topNode,
<a href="../parser/SqlParserPos.html" title="class in org.apache.calcite.sql.parser">SqlParserPos</a>&nbsp;pos)</code></th>
<td class="colLast">
<div class="block">Looks up the fully qualified name for a <a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql"><code>SqlIdentifier</code></a> at a given
Parser Position in a parsed expression tree Note: call this only after
<a href="SqlValidator.html#validate(org.apache.calcite.sql.SqlNode)"><code>SqlValidator.validate(org.apache.calcite.sql.SqlNode)</code></a> has been called.</div>
</td>
</tr>
<tr id="i104" class="altColor">
<td class="colFirst"><code>(package private) void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#lookupSelectHints(org.apache.calcite.sql.SqlSelect,org.apache.calcite.sql.parser.SqlParserPos,java.util.Collection)">lookupSelectHints</a></span>&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select,
<a href="../parser/SqlParserPos.html" title="class in org.apache.calcite.sql.parser">SqlParserPos</a>&nbsp;pos,
java.util.Collection&lt;<a href="SqlMoniker.html" title="interface in org.apache.calcite.sql.validate">SqlMoniker</a>&gt;&nbsp;hintList)</code></th>
<td class="colLast">
<div class="block">Looks up completion hints for a syntactically correct select SQL that has
been parsed into an expression tree.</div>
</td>
</tr>
<tr id="i105" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#lookupSelectHints(org.apache.calcite.sql.validate.SqlValidatorNamespace,org.apache.calcite.sql.parser.SqlParserPos,java.util.Collection)">lookupSelectHints</a></span>&#8203;(<a href="SqlValidatorNamespace.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorNamespace</a>&nbsp;ns,
<a href="../parser/SqlParserPos.html" title="class in org.apache.calcite.sql.parser">SqlParserPos</a>&nbsp;pos,
java.util.Collection&lt;<a href="SqlMoniker.html" title="interface in org.apache.calcite.sql.validate">SqlMoniker</a>&gt;&nbsp;hintList)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i106" class="altColor">
<td class="colFirst"><code><a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#makeNullaryCall(org.apache.calcite.sql.SqlIdentifier)">makeNullaryCall</a></span>&#8203;(<a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql">SqlIdentifier</a>&nbsp;id)</code></th>
<td class="colLast">
<div class="block">If an identifier is a legitimate call to a function that has no
arguments and requires no parentheses (for example "CURRENT_USER"),
returns a call to that function, otherwise returns null.</div>
</td>
</tr>
<tr id="i107" class="rowColor">
<td class="colFirst"><code>private <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="#maybeCast(org.apache.calcite.sql.SqlNode,org.apache.calcite.rel.type.RelDataType,org.apache.calcite.rel.type.RelDataType)">maybeCast</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;currentType,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;desiredType)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i108" class="altColor">
<td class="colFirst"><code>private <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="#navigationInDefine(org.apache.calcite.sql.SqlNode,java.lang.String)">navigationInDefine</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
java.lang.String&nbsp;alpha)</code></th>
<td class="colLast">
<div class="block">Checks that all pattern variables within a function are the same,
and canonizes expressions such as <code>PREV(B.price)</code> to
<code>LAST(B.price, 0)</code>.</div>
</td>
</tr>
<tr id="i109" class="rowColor">
<td class="colFirst"><code>private <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="#navigationInMeasure(org.apache.calcite.sql.SqlNode,boolean)">navigationInMeasure</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
boolean&nbsp;allRows)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i110" class="altColor">
<td class="colFirst"><code><a href="../../runtime/CalciteContextException.html" title="class in org.apache.calcite.runtime">CalciteContextException</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newValidationError(org.apache.calcite.sql.SqlNode,org.apache.calcite.runtime.Resources.ExInst)">newValidationError</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
<a href="../../runtime/Resources.ExInst.html" title="class in org.apache.calcite.runtime">Resources.ExInst</a>&lt;<a href="SqlValidatorException.html" title="class in org.apache.calcite.sql.validate">SqlValidatorException</a>&gt;&nbsp;e)</code></th>
<td class="colLast">
<div class="block">Adds "line x, column y" context to a validator exception.</div>
</td>
</tr>
<tr id="i111" class="rowColor">
<td class="colFirst"><code>protected <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="#performUnconditionalRewrites(org.apache.calcite.sql.SqlNode,boolean)">performUnconditionalRewrites</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
boolean&nbsp;underFrom)</code></th>
<td class="colLast">
<div class="block">Performs expression rewrites which are always used unconditionally.</div>
</td>
</tr>
<tr id="i112" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#popFunctionCall()">popFunctionCall</a></span>()</code></th>
<td class="colLast">
<div class="block">Removes the topmost entry from the function call stack.</div>
</td>
</tr>
<tr id="i113" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#pushFunctionCall()">pushFunctionCall</a></span>()</code></th>
<td class="colLast">
<div class="block">Pushes a new instance of a function call on to a function call stack.</div>
</td>
</tr>
<tr id="i114" class="altColor">
<td class="colFirst"><code>private <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="#registerFrom(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.validate.SqlValidatorScope,boolean,org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.SqlNode,java.lang.String,org.apache.calcite.sql.SqlNodeList,boolean,boolean)">registerFrom</a></span>&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;parentScope,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;usingScope,
boolean&nbsp;register,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;enclosingNode,
java.lang.String&nbsp;alias,
<a href="../SqlNodeList.html" title="class in org.apache.calcite.sql">SqlNodeList</a>&nbsp;extendList,
boolean&nbsp;forceNullable,
boolean&nbsp;lateral)</code></th>
<td class="colLast">
<div class="block">Registers scopes and namespaces implied a relational expression in the
FROM clause.</div>
</td>
</tr>
<tr id="i115" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#registerMatchRecognize(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlMatchRecognize,org.apache.calcite.sql.SqlNode,java.lang.String,boolean)">registerMatchRecognize</a></span>&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;parentScope,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;usingScope,
<a href="../SqlMatchRecognize.html" title="class in org.apache.calcite.sql">SqlMatchRecognize</a>&nbsp;call,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;enclosingNode,
java.lang.String&nbsp;alias,
boolean&nbsp;forceNullable)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i116" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#registerNamespace(org.apache.calcite.sql.validate.SqlValidatorScope,java.lang.String,org.apache.calcite.sql.validate.SqlValidatorNamespace,boolean)">registerNamespace</a></span>&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;usingScope,
java.lang.String&nbsp;alias,
<a href="SqlValidatorNamespace.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorNamespace</a>&nbsp;ns,
boolean&nbsp;forceNullable)</code></th>
<td class="colLast">
<div class="block">Registers a new namespace, and adds it as a child of its parent scope.</div>
</td>
</tr>
<tr id="i117" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#registerOperandSubQueries(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlCall,int)">registerOperandSubQueries</a></span>&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;parentScope,
<a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call,
int&nbsp;operandOrdinal)</code></th>
<td class="colLast">
<div class="block">Registers any sub-queries inside a given call operand, and converts the
operand to a scalar sub-query if the operator requires it.</div>
</td>
</tr>
<tr id="i118" class="altColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#registerQuery(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.SqlNode,java.lang.String,boolean)">registerQuery</a></span>&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;parentScope,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;usingScope,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;enclosingNode,
java.lang.String&nbsp;alias,
boolean&nbsp;forceNullable)</code></th>
<td class="colLast">
<div class="block">Registers a query in a parent scope.</div>
</td>
</tr>
<tr id="i119" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#registerQuery(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.SqlNode,java.lang.String,boolean,boolean)">registerQuery</a></span>&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;parentScope,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;usingScope,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;enclosingNode,
java.lang.String&nbsp;alias,
boolean&nbsp;forceNullable,
boolean&nbsp;checkUpdate)</code></th>
<td class="colLast">
<div class="block">Registers a query in a parent scope.</div>
</td>
</tr>
<tr id="i120" class="altColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#registerSetop(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.SqlNode,java.lang.String,boolean)">registerSetop</a></span>&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;parentScope,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;usingScope,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;enclosingNode,
java.lang.String&nbsp;alias,
boolean&nbsp;forceNullable)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i121" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#registerSubQueries(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlNode)">registerSubQueries</a></span>&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;parentScope,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i122" class="altColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#registerWith(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlWith,org.apache.calcite.sql.SqlNode,java.lang.String,boolean,boolean)">registerWith</a></span>&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;parentScope,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;usingScope,
<a href="../SqlWith.html" title="class in org.apache.calcite.sql">SqlWith</a>&nbsp;with,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;enclosingNode,
java.lang.String&nbsp;alias,
boolean&nbsp;forceNullable,
boolean&nbsp;checkUpdate)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i123" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeValidatedNodeType(org.apache.calcite.sql.SqlNode)">removeValidatedNodeType</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</code></th>
<td class="colLast">
<div class="block">Removes a node from the set of validated nodes</div>
</td>
</tr>
<tr id="i124" class="altColor">
<td class="colFirst"><code><a href="../SqlWindow.html" title="class in org.apache.calcite.sql">SqlWindow</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#resolveWindow(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope,boolean)">resolveWindow</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;windowOrRef,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
boolean&nbsp;populateBounds)</code></th>
<td class="colLast">
<div class="block">Converts a window specification or window name into a fully-resolved
window specification.</div>
</td>
</tr>
<tr id="i125" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#rewriteMerge(org.apache.calcite.sql.SqlMerge)">rewriteMerge</a></span>&#8203;(<a href="../SqlMerge.html" title="class in org.apache.calcite.sql">SqlMerge</a>&nbsp;call)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i126" class="altColor">
<td class="colFirst"><code>private <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="#rewriteUpdateToMerge(org.apache.calcite.sql.SqlUpdate,org.apache.calcite.sql.SqlNode)">rewriteUpdateToMerge</a></span>&#8203;(<a href="../SqlUpdate.html" title="class in org.apache.calcite.sql">SqlUpdate</a>&nbsp;updateCall,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;selfJoinSrcExpr)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i127" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setCallRewrite(boolean)">setCallRewrite</a></span>&#8203;(boolean&nbsp;rewriteCalls)</code></th>
<td class="colLast">
<div class="block">Enables or disables rewrite of "macro-like" calls such as COALESCE.</div>
</td>
</tr>
<tr id="i128" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setColumnReferenceExpansion(boolean)">setColumnReferenceExpansion</a></span>&#8203;(boolean&nbsp;expandColumnReferences)</code></th>
<td class="colLast">
<div class="block">Enables or disables expansion of column references.</div>
</td>
</tr>
<tr id="i129" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setDefaultNullCollation(org.apache.calcite.config.NullCollation)">setDefaultNullCollation</a></span>&#8203;(<a href="../../config/NullCollation.html" title="enum in org.apache.calcite.config">NullCollation</a>&nbsp;nullCollation)</code></th>
<td class="colLast">
<div class="block">Sets how NULL values should be collated if an ORDER BY item does not
contain NULLS FIRST or NULLS LAST.</div>
</td>
</tr>
<tr id="i130" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setIdentifierExpansion(boolean)">setIdentifierExpansion</a></span>&#8203;(boolean&nbsp;expandIdentifiers)</code></th>
<td class="colLast">
<div class="block">Enables or disables expansion of identifiers other than column
references.</div>
</td>
</tr>
<tr id="i131" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setOriginal(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.SqlNode)">setOriginal</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;expr,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;original)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i132" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setValidatedNodeType(org.apache.calcite.sql.SqlNode,org.apache.calcite.rel.type.RelDataType)">setValidatedNodeType</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">Saves the type of a <a href="../SqlNode.html" title="class in org.apache.calcite.sql"><code>SqlNode</code></a>, now that it has been validated.</div>
</td>
</tr>
<tr id="i133" class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#shouldAllowIntermediateOrderBy()">shouldAllowIntermediateOrderBy</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i134" class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#shouldAllowOverRelation()">shouldAllowOverRelation</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i135" class="rowColor">
<td class="colFirst"><code>private boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#shouldCheckForRollUp(org.apache.calcite.sql.SqlNode)">shouldCheckForRollUp</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;from)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i136" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#shouldExpandIdentifiers()">shouldExpandIdentifiers</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns expansion of identifiers.</div>
</td>
</tr>
<tr id="i137" class="rowColor">
<td class="colFirst"><code>private <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="#stripDot(org.apache.calcite.sql.SqlNode)">stripDot</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i138" class="altColor">
<td class="colFirst"><code>private static <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="#stripOver(org.apache.calcite.sql.SqlNode)">stripOver</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i139" 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="#validate(org.apache.calcite.sql.SqlNode)">validate</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;topNode)</code></th>
<td class="colLast">
<div class="block">Validates an expression tree.</div>
</td>
</tr>
<tr id="i140" class="altColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateAccess(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorTable,org.apache.calcite.sql.SqlAccessEnum)">validateAccess</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
<a href="SqlValidatorTable.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorTable</a>&nbsp;table,
<a href="../SqlAccessEnum.html" title="enum in org.apache.calcite.sql">SqlAccessEnum</a>&nbsp;requiredAccess)</code></th>
<td class="colLast">
<div class="block">Validates access to a table.</div>
</td>
</tr>
<tr id="i141" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateAggregateParams(org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.SqlNodeList,org.apache.calcite.sql.validate.SqlValidatorScope)">validateAggregateParams</a></span>&#8203;(<a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;aggCall,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;filter,
<a href="../SqlNodeList.html" title="class in org.apache.calcite.sql">SqlNodeList</a>&nbsp;orderList,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</code></th>
<td class="colLast">
<div class="block">Validates parameters for aggregate function.</div>
</td>
</tr>
<tr id="i142" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateCall(org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.validate.SqlValidatorScope)">validateCall</a></span>&#8203;(<a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</code></th>
<td class="colLast">
<div class="block">Validates a call to an operator.</div>
</td>
</tr>
<tr id="i143" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateColumnListParams(org.apache.calcite.sql.SqlFunction,java.util.List,java.util.List)">validateColumnListParams</a></span>&#8203;(<a href="../SqlFunction.html" title="class in org.apache.calcite.sql">SqlFunction</a>&nbsp;function,
java.util.List&lt;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&nbsp;argTypes,
java.util.List&lt;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;operands)</code></th>
<td class="colLast">
<div class="block">Validates a COLUMN_LIST parameter</div>
</td>
</tr>
<tr id="i144" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateDataType(org.apache.calcite.sql.SqlDataTypeSpec)">validateDataType</a></span>&#8203;(<a href="../SqlDataTypeSpec.html" title="class in org.apache.calcite.sql">SqlDataTypeSpec</a>&nbsp;dataType)</code></th>
<td class="colLast">
<div class="block">Validates a data type expression.</div>
</td>
</tr>
<tr id="i145" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateDefinitions(org.apache.calcite.sql.SqlMatchRecognize,org.apache.calcite.sql.validate.MatchRecognizeScope)">validateDefinitions</a></span>&#8203;(<a href="../SqlMatchRecognize.html" title="class in org.apache.calcite.sql">SqlMatchRecognize</a>&nbsp;mr,
<a href="MatchRecognizeScope.html" title="class in org.apache.calcite.sql.validate">MatchRecognizeScope</a>&nbsp;scope)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i146" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateDelete(org.apache.calcite.sql.SqlDelete)">validateDelete</a></span>&#8203;(<a href="../SqlDelete.html" title="class in org.apache.calcite.sql">SqlDelete</a>&nbsp;call)</code></th>
<td class="colLast">
<div class="block">Validates a DELETE statement.</div>
</td>
</tr>
<tr id="i147" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateDynamicParam(org.apache.calcite.sql.SqlDynamicParam)">validateDynamicParam</a></span>&#8203;(<a href="../SqlDynamicParam.html" title="class in org.apache.calcite.sql">SqlDynamicParam</a>&nbsp;dynamicParam)</code></th>
<td class="colLast">
<div class="block">Validates a dynamic parameter.</div>
</td>
</tr>
<tr id="i148" class="altColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateExpr(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope)">validateExpr</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;expr,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</code></th>
<td class="colLast">
<div class="block">Validates an expression.</div>
</td>
</tr>
<tr id="i149" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateFeature(org.apache.calcite.runtime.Feature,org.apache.calcite.sql.parser.SqlParserPos)">validateFeature</a></span>&#8203;(<a href="../../runtime/Feature.html" title="class in org.apache.calcite.runtime">Feature</a>&nbsp;feature,
<a href="../parser/SqlParserPos.html" title="class in org.apache.calcite.sql.parser">SqlParserPos</a>&nbsp;context)</code></th>
<td class="colLast">
<div class="block">Validates that a particular feature is enabled.</div>
</td>
</tr>
<tr id="i150" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateFrom(org.apache.calcite.sql.SqlNode,org.apache.calcite.rel.type.RelDataType,org.apache.calcite.sql.validate.SqlValidatorScope)">validateFrom</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;targetRowType,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</code></th>
<td class="colLast">
<div class="block">Validates the FROM clause of a query, or (recursively) a child node of
the FROM clause: AS, OVER, JOIN, VALUES, or sub-query.</div>
</td>
</tr>
<tr id="i151" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateGroupByItem(org.apache.calcite.sql.SqlSelect,org.apache.calcite.sql.SqlNode)">validateGroupByItem</a></span>&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;groupByItem)</code></th>
<td class="colLast">
<div class="block">Validates an item in the GROUP BY clause of a SELECT statement.</div>
</td>
</tr>
<tr id="i152" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateGroupClause(org.apache.calcite.sql.SqlSelect)">validateGroupClause</a></span>&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</code></th>
<td class="colLast">
<div class="block">Validates the GROUP BY clause of a SELECT statement.</div>
</td>
</tr>
<tr id="i153" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateGroupingSets(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.validate.AggregatingSelectScope,org.apache.calcite.sql.SqlCall)">validateGroupingSets</a></span>&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;groupScope,
<a href="AggregatingSelectScope.html" title="class in org.apache.calcite.sql.validate">AggregatingSelectScope</a>&nbsp;aggregatingScope,
<a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;groupItem)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i154" class="altColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateGroupItem(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.validate.AggregatingSelectScope,org.apache.calcite.sql.SqlNode)">validateGroupItem</a></span>&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;groupScope,
<a href="AggregatingSelectScope.html" title="class in org.apache.calcite.sql.validate">AggregatingSelectScope</a>&nbsp;aggregatingScope,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;groupItem)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i155" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateHavingClause(org.apache.calcite.sql.SqlSelect)">validateHavingClause</a></span>&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i156" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateIdentifier(org.apache.calcite.sql.SqlIdentifier,org.apache.calcite.sql.validate.SqlValidatorScope)">validateIdentifier</a></span>&#8203;(<a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql">SqlIdentifier</a>&nbsp;id,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</code></th>
<td class="colLast">
<div class="block">Resolves an identifier to a fully-qualified name.</div>
</td>
</tr>
<tr id="i157" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateInsert(org.apache.calcite.sql.SqlInsert)">validateInsert</a></span>&#8203;(<a href="../SqlInsert.html" title="class in org.apache.calcite.sql">SqlInsert</a>&nbsp;insert)</code></th>
<td class="colLast">
<div class="block">Validates an INSERT statement.</div>
</td>
</tr>
<tr id="i158" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateIntervalQualifier(org.apache.calcite.sql.SqlIntervalQualifier)">validateIntervalQualifier</a></span>&#8203;(<a href="../SqlIntervalQualifier.html" title="class in org.apache.calcite.sql">SqlIntervalQualifier</a>&nbsp;qualifier)</code></th>
<td class="colLast">
<div class="block">Validates a <a href="../SqlIntervalQualifier.html" title="class in org.apache.calcite.sql"><code>SqlIntervalQualifier</code></a></div>
</td>
</tr>
<tr id="i159" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateJoin(org.apache.calcite.sql.SqlJoin,org.apache.calcite.sql.validate.SqlValidatorScope)">validateJoin</a></span>&#8203;(<a href="../SqlJoin.html" title="class in org.apache.calcite.sql">SqlJoin</a>&nbsp;join,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i160" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateLiteral(org.apache.calcite.sql.SqlLiteral)">validateLiteral</a></span>&#8203;(<a href="../SqlLiteral.html" title="class in org.apache.calcite.sql">SqlLiteral</a>&nbsp;literal)</code></th>
<td class="colLast">
<div class="block">Validates a literal.</div>
</td>
</tr>
<tr id="i161" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateLiteralAsDouble(org.apache.calcite.sql.SqlLiteral)">validateLiteralAsDouble</a></span>&#8203;(<a href="../SqlLiteral.html" title="class in org.apache.calcite.sql">SqlLiteral</a>&nbsp;literal)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i162" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateMatchRecognize(org.apache.calcite.sql.SqlCall)">validateMatchRecognize</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">Validates a MATCH_RECOGNIZE clause.</div>
</td>
</tr>
<tr id="i163" class="rowColor">
<td class="colFirst"><code>private java.util.List&lt;java.util.Map.Entry&lt;java.lang.String,&#8203;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateMeasure(org.apache.calcite.sql.SqlMatchRecognize,org.apache.calcite.sql.validate.MatchRecognizeScope,boolean)">validateMeasure</a></span>&#8203;(<a href="../SqlMatchRecognize.html" title="class in org.apache.calcite.sql">SqlMatchRecognize</a>&nbsp;mr,
<a href="MatchRecognizeScope.html" title="class in org.apache.calcite.sql.validate">MatchRecognizeScope</a>&nbsp;scope,
boolean&nbsp;allRows)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i164" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateMerge(org.apache.calcite.sql.SqlMerge)">validateMerge</a></span>&#8203;(<a href="../SqlMerge.html" title="class in org.apache.calcite.sql">SqlMerge</a>&nbsp;call)</code></th>
<td class="colLast">
<div class="block">Validates a MERGE statement.</div>
</td>
</tr>
<tr id="i165" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateModality(org.apache.calcite.sql.SqlNode)">validateModality</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;query)</code></th>
<td class="colLast">
<div class="block">Validates that a query can deliver the modality it promises.</div>
</td>
</tr>
<tr id="i166" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateModality(org.apache.calcite.sql.SqlSelect,org.apache.calcite.sql.validate.SqlModality,boolean)">validateModality</a></span>&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select,
<a href="SqlModality.html" title="enum in org.apache.calcite.sql.validate">SqlModality</a>&nbsp;modality,
boolean&nbsp;fail)</code></th>
<td class="colLast">
<div class="block">Validates that a query is capable of producing a return of given modality
(relational or streaming).</div>
</td>
</tr>
<tr id="i167" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateNamespace(org.apache.calcite.sql.validate.SqlValidatorNamespace,org.apache.calcite.rel.type.RelDataType)">validateNamespace</a></span>&#8203;(<a href="SqlValidatorNamespace.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorNamespace</a>&nbsp;namespace,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetRowType)</code></th>
<td class="colLast">
<div class="block">Validates a namespace.</div>
</td>
</tr>
<tr id="i168" class="altColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateNoAggs(org.apache.calcite.sql.validate.AggFinder,org.apache.calcite.sql.SqlNode,java.lang.String)">validateNoAggs</a></span>&#8203;(<a href="AggFinder.html" title="class in org.apache.calcite.sql.validate">AggFinder</a>&nbsp;aggFinder,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
java.lang.String&nbsp;clause)</code></th>
<td class="colLast">
<div class="block">Throws an error if there is an aggregate or windowed aggregate in the
given clause.</div>
</td>
</tr>
<tr id="i169" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateNodeFeature(org.apache.calcite.sql.SqlNode)">validateNodeFeature</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i170" class="altColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateOrderItem(org.apache.calcite.sql.SqlSelect,org.apache.calcite.sql.SqlNode)">validateOrderItem</a></span>&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;orderItem)</code></th>
<td class="colLast">
<div class="block">Validates an item in the ORDER BY clause of a SELECT statement.</div>
</td>
</tr>
<tr id="i171" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateOrderList(org.apache.calcite.sql.SqlSelect)">validateOrderList</a></span>&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</code></th>
<td class="colLast">
<div class="block">Validates the ORDER BY clause of a SELECT statement.</div>
</td>
</tr>
<tr id="i172" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateOver(org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.validate.SqlValidatorScope)">validateOver</a></span>&#8203;(<a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i173" 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="#validateParameterizedExpression(org.apache.calcite.sql.SqlNode,java.util.Map)">validateParameterizedExpression</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;topNode,
java.util.Map&lt;java.lang.String,&#8203;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&nbsp;nameToTypeMap)</code></th>
<td class="colLast">
<div class="block">Validates an expression tree.</div>
</td>
</tr>
<tr id="i174" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateQuery(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.rel.type.RelDataType)">validateQuery</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetRowType)</code></th>
<td class="colLast">
<div class="block">Checks that a query is valid.</div>
</td>
</tr>
<tr id="i175" class="rowColor">
<td class="colFirst"><code>private <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="#validateScopedExpression(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope)">validateScopedExpression</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;topNode,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i176" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateSelect(org.apache.calcite.sql.SqlSelect,org.apache.calcite.rel.type.RelDataType)">validateSelect</a></span>&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetRowType)</code></th>
<td class="colLast">
<div class="block">Validates a SELECT statement.</div>
</td>
</tr>
<tr id="i177" class="rowColor">
<td class="colFirst"><code>protected <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="#validateSelectList(org.apache.calcite.sql.SqlNodeList,org.apache.calcite.sql.SqlSelect,org.apache.calcite.rel.type.RelDataType)">validateSelectList</a></span>&#8203;(<a href="../SqlNodeList.html" title="class in org.apache.calcite.sql">SqlNodeList</a>&nbsp;selectItems,
<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetRowType)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i178" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateSequenceValue(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlIdentifier)">validateSequenceValue</a></span>&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql">SqlIdentifier</a>&nbsp;id)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i179" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateUnnest(org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.rel.type.RelDataType)">validateUnnest</a></span>&#8203;(<a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetRowType)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i180" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateUpdate(org.apache.calcite.sql.SqlUpdate)">validateUpdate</a></span>&#8203;(<a href="../SqlUpdate.html" title="class in org.apache.calcite.sql">SqlUpdate</a>&nbsp;call)</code></th>
<td class="colLast">
<div class="block">Validates an UPDATE statement.</div>
</td>
</tr>
<tr id="i181" class="rowColor">
<td class="colFirst"><code>private <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="#validateUsingCol(org.apache.calcite.sql.SqlIdentifier,org.apache.calcite.sql.SqlNode)">validateUsingCol</a></span>&#8203;(<a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql">SqlIdentifier</a>&nbsp;id,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;leftOrRight)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i182" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateValues(org.apache.calcite.sql.SqlCall,org.apache.calcite.rel.type.RelDataType,org.apache.calcite.sql.validate.SqlValidatorScope)">validateValues</a></span>&#8203;(<a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;node,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetRowType,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</code></th>
<td class="colLast">
<div class="block">Validates a VALUES clause.</div>
</td>
</tr>
<tr id="i183" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateWhereClause(org.apache.calcite.sql.SqlSelect)">validateWhereClause</a></span>&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i184" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateWhereOrOn(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlNode,java.lang.String)">validateWhereOrOn</a></span>&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;condition,
java.lang.String&nbsp;clause)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i185" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateWindow(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlCall)">validateWindow</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;windowOrId,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call)</code></th>
<td class="colLast">
<div class="block">Validates the right-hand side of an OVER expression.</div>
</td>
</tr>
<tr id="i186" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateWindowClause(org.apache.calcite.sql.SqlSelect)">validateWindowClause</a></span>&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i187" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateWith(org.apache.calcite.sql.SqlWith,org.apache.calcite.sql.validate.SqlValidatorScope)">validateWith</a></span>&#8203;(<a href="../SqlWith.html" title="class in org.apache.calcite.sql">SqlWith</a>&nbsp;with,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i188" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateWithItem(org.apache.calcite.sql.SqlWithItem)">validateWithItem</a></span>&#8203;(<a href="../SqlWithItem.html" title="class in org.apache.calcite.sql">SqlWithItem</a>&nbsp;withItem)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
<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>
</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="TRACER">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TRACER</h4>
<pre>public static final&nbsp;org.slf4j.Logger TRACER</pre>
</li>
</ul>
<a id="UPDATE_SRC_ALIAS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>UPDATE_SRC_ALIAS</h4>
<pre>public static final&nbsp;java.lang.String UPDATE_SRC_ALIAS</pre>
<div class="block">Alias generated for the source table when rewriting UPDATE to MERGE.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#org.apache.calcite.sql.validate.SqlValidatorImpl.UPDATE_SRC_ALIAS">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="UPDATE_TGT_ALIAS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>UPDATE_TGT_ALIAS</h4>
<pre>public static final&nbsp;java.lang.String UPDATE_TGT_ALIAS</pre>
<div class="block">Alias generated for the target table when rewriting UPDATE to MERGE if no
alias was specified by the user.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#org.apache.calcite.sql.validate.SqlValidatorImpl.UPDATE_TGT_ALIAS">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="UPDATE_ANON_PREFIX">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>UPDATE_ANON_PREFIX</h4>
<pre>public static final&nbsp;java.lang.String UPDATE_ANON_PREFIX</pre>
<div class="block">Alias prefix generated for source columns when rewriting UPDATE to MERGE.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#org.apache.calcite.sql.validate.SqlValidatorImpl.UPDATE_ANON_PREFIX">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="opTab">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>opTab</h4>
<pre>private final&nbsp;<a href="../SqlOperatorTable.html" title="interface in org.apache.calcite.sql">SqlOperatorTable</a> opTab</pre>
</li>
</ul>
<a id="catalogReader">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>catalogReader</h4>
<pre>final&nbsp;<a href="SqlValidatorCatalogReader.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorCatalogReader</a> catalogReader</pre>
</li>
</ul>
<a id="idPositions">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>idPositions</h4>
<pre>protected final&nbsp;java.util.Map&lt;java.lang.String,&#8203;<a href="SqlValidatorImpl.IdInfo.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl.IdInfo</a>&gt; idPositions</pre>
<div class="block">Maps ParsePosition strings to the <a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql"><code>SqlIdentifier</code></a> identifier
objects at these positions</div>
</li>
</ul>
<a id="scopes">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>scopes</h4>
<pre>protected final&nbsp;java.util.Map&lt;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>,&#8203;<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&gt; scopes</pre>
<div class="block">Maps <a href="../SqlNode.html" title="class in org.apache.calcite.sql"><code>query node</code></a> objects to the <a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate"><code>SqlValidatorScope</code></a>
scope created from them.</div>
</li>
</ul>
<a id="whereScopes">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>whereScopes</h4>
<pre>private final&nbsp;java.util.Map&lt;<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>,&#8203;<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&gt; whereScopes</pre>
<div class="block">Maps a <a href="../SqlSelect.html" title="class in org.apache.calcite.sql"><code>SqlSelect</code></a> node to the scope used by its WHERE and HAVING
clauses.</div>
</li>
</ul>
<a id="groupByScopes">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>groupByScopes</h4>
<pre>private final&nbsp;java.util.Map&lt;<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>,&#8203;<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&gt; groupByScopes</pre>
<div class="block">Maps a <a href="../SqlSelect.html" title="class in org.apache.calcite.sql"><code>SqlSelect</code></a> node to the scope used by its GROUP BY clause.</div>
</li>
</ul>
<a id="selectScopes">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>selectScopes</h4>
<pre>private final&nbsp;java.util.Map&lt;<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>,&#8203;<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&gt; selectScopes</pre>
<div class="block">Maps a <a href="../SqlSelect.html" title="class in org.apache.calcite.sql"><code>SqlSelect</code></a> node to the scope used by its SELECT and HAVING
clauses.</div>
</li>
</ul>
<a id="orderScopes">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>orderScopes</h4>
<pre>private final&nbsp;java.util.Map&lt;<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>,&#8203;<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&gt; orderScopes</pre>
<div class="block">Maps a <a href="../SqlSelect.html" title="class in org.apache.calcite.sql"><code>SqlSelect</code></a> node to the scope used by its ORDER BY clause.</div>
</li>
</ul>
<a id="cursorScopes">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>cursorScopes</h4>
<pre>private final&nbsp;java.util.Map&lt;<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>,&#8203;<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&gt; cursorScopes</pre>
<div class="block">Maps a <a href="../SqlSelect.html" title="class in org.apache.calcite.sql"><code>SqlSelect</code></a> node that is the argument to a CURSOR
constructor to the scope of the result of that select node</div>
</li>
</ul>
<a id="tableScope">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>tableScope</h4>
<pre>private&nbsp;<a href="TableScope.html" title="class in org.apache.calcite.sql.validate">TableScope</a> tableScope</pre>
<div class="block">The name-resolution scope of a LATERAL TABLE clause.</div>
</li>
</ul>
<a id="namespaces">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>namespaces</h4>
<pre>protected final&nbsp;java.util.Map&lt;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>,&#8203;<a href="SqlValidatorNamespace.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorNamespace</a>&gt; namespaces</pre>
<div class="block">Maps a <a href="../SqlNode.html" title="class in org.apache.calcite.sql"><code>node</code></a> to the
<a href="SqlValidatorNamespace.html" title="interface in org.apache.calcite.sql.validate"><code>namespace</code></a> which describes what columns they
contain.</div>
</li>
</ul>
<a id="cursorSet">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>cursorSet</h4>
<pre>private final&nbsp;java.util.Set&lt;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt; cursorSet</pre>
<div class="block">Set of select expressions used as cursor definitions. In standard SQL,
only the top-level SELECT is a cursor; Calcite extends this with
cursors as inputs to table functions.</div>
</li>
</ul>
<a id="functionCallStack">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>functionCallStack</h4>
<pre>protected final&nbsp;java.util.Deque&lt;<a href="SqlValidatorImpl.FunctionParamInfo.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl.FunctionParamInfo</a>&gt; functionCallStack</pre>
<div class="block">Stack of objects that maintain information about function calls. A stack
is needed to handle nested function calls. The function call currently
being validated is at the top of the stack.</div>
</li>
</ul>
<a id="nextGeneratedId">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nextGeneratedId</h4>
<pre>private&nbsp;int nextGeneratedId</pre>
</li>
</ul>
<a id="typeFactory">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>typeFactory</h4>
<pre>protected final&nbsp;<a href="../../rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a> typeFactory</pre>
</li>
</ul>
<a id="unknownType">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unknownType</h4>
<pre>protected final&nbsp;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a> unknownType</pre>
<div class="block">The type of dynamic parameters until a type is imposed on them.</div>
</li>
</ul>
<a id="booleanType">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>booleanType</h4>
<pre>private final&nbsp;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a> booleanType</pre>
</li>
</ul>
<a id="nodeToTypeMap">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nodeToTypeMap</h4>
<pre>private final&nbsp;java.util.Map&lt;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>,&#8203;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt; nodeToTypeMap</pre>
<div class="block">Map of derived RelDataType for each node. This is an IdentityHashMap
since in some cases (such as null literals) we need to discriminate by
instance.</div>
</li>
</ul>
<a id="aggFinder">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>aggFinder</h4>
<pre>private final&nbsp;<a href="AggFinder.html" title="class in org.apache.calcite.sql.validate">AggFinder</a> aggFinder</pre>
</li>
</ul>
<a id="aggOrOverFinder">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>aggOrOverFinder</h4>
<pre>private final&nbsp;<a href="AggFinder.html" title="class in org.apache.calcite.sql.validate">AggFinder</a> aggOrOverFinder</pre>
</li>
</ul>
<a id="aggOrOverOrGroupFinder">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>aggOrOverOrGroupFinder</h4>
<pre>private final&nbsp;<a href="AggFinder.html" title="class in org.apache.calcite.sql.validate">AggFinder</a> aggOrOverOrGroupFinder</pre>
</li>
</ul>
<a id="groupFinder">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>groupFinder</h4>
<pre>private final&nbsp;<a href="AggFinder.html" title="class in org.apache.calcite.sql.validate">AggFinder</a> groupFinder</pre>
</li>
</ul>
<a id="overFinder">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>overFinder</h4>
<pre>private final&nbsp;<a href="AggFinder.html" title="class in org.apache.calcite.sql.validate">AggFinder</a> overFinder</pre>
</li>
</ul>
<a id="conformance">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>conformance</h4>
<pre>private final&nbsp;<a href="SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a> conformance</pre>
</li>
</ul>
<a id="originalExprs">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>originalExprs</h4>
<pre>private final&nbsp;java.util.Map&lt;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>,&#8203;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt; originalExprs</pre>
</li>
</ul>
<a id="top">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>top</h4>
<pre>private&nbsp;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a> top</pre>
</li>
</ul>
<a id="expandIdentifiers">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>expandIdentifiers</h4>
<pre>protected&nbsp;boolean expandIdentifiers</pre>
</li>
</ul>
<a id="expandColumnReferences">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>expandColumnReferences</h4>
<pre>protected&nbsp;boolean expandColumnReferences</pre>
</li>
</ul>
<a id="rewriteCalls">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rewriteCalls</h4>
<pre>private&nbsp;boolean rewriteCalls</pre>
</li>
</ul>
<a id="nullCollation">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nullCollation</h4>
<pre>private&nbsp;<a href="../../config/NullCollation.html" title="enum in org.apache.calcite.config">NullCollation</a> nullCollation</pre>
</li>
</ul>
<a id="validatingSqlMerge">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validatingSqlMerge</h4>
<pre>private&nbsp;boolean validatingSqlMerge</pre>
</li>
</ul>
<a id="inWindow">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>inWindow</h4>
<pre>private&nbsp;boolean inWindow</pre>
</li>
</ul>
<a id="validationErrorFunction">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>validationErrorFunction</h4>
<pre>private final&nbsp;<a href="SqlValidatorImpl.ValidationErrorFunction.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl.ValidationErrorFunction</a> validationErrorFunction</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.SqlOperatorTable,org.apache.calcite.sql.validate.SqlValidatorCatalogReader,org.apache.calcite.rel.type.RelDataTypeFactory,org.apache.calcite.sql.validate.SqlConformance)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>SqlValidatorImpl</h4>
<pre>protected&nbsp;SqlValidatorImpl&#8203;(<a href="../SqlOperatorTable.html" title="interface in org.apache.calcite.sql">SqlOperatorTable</a>&nbsp;opTab,
<a href="SqlValidatorCatalogReader.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorCatalogReader</a>&nbsp;catalogReader,
<a href="../../rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;typeFactory,
<a href="SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a>&nbsp;conformance)</pre>
<div class="block">Creates a validator.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>opTab</code> - Operator table</dd>
<dd><code>catalogReader</code> - Catalog reader</dd>
<dd><code>typeFactory</code> - Type factory</dd>
<dd><code>conformance</code> - Compatibility mode</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="getConformance()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getConformance</h4>
<pre class="methodSignature">public&nbsp;<a href="SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a>&nbsp;getConformance()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#getConformance()">SqlValidator</a></code></span></div>
<div class="block">Returns the dialect of SQL (SQL:2003, etc.) this validator recognizes.
Default is <a href="SqlConformanceEnum.html#DEFAULT"><code>SqlConformanceEnum.DEFAULT</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#getConformance()">getConformance</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>dialect of SQL this validator recognizes</dd>
</dl>
</li>
</ul>
<a id="getCatalogReader()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCatalogReader</h4>
<pre class="methodSignature">public&nbsp;<a href="SqlValidatorCatalogReader.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorCatalogReader</a>&nbsp;getCatalogReader()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#getCatalogReader()">SqlValidator</a></code></span></div>
<div class="block">Returns the catalog reader used by this validator.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#getCatalogReader()">getCatalogReader</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>catalog reader</dd>
</dl>
</li>
</ul>
<a id="getOperatorTable()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOperatorTable</h4>
<pre class="methodSignature">public&nbsp;<a href="../SqlOperatorTable.html" title="interface in org.apache.calcite.sql">SqlOperatorTable</a>&nbsp;getOperatorTable()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#getOperatorTable()">SqlValidator</a></code></span></div>
<div class="block">Returns the operator table used by this validator.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#getOperatorTable()">getOperatorTable</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>operator table</dd>
</dl>
</li>
</ul>
<a id="getTypeFactory()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTypeFactory</h4>
<pre class="methodSignature">public&nbsp;<a href="../../rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;getTypeFactory()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#getTypeFactory()">SqlValidator</a></code></span></div>
<div class="block">Returns the type factory used by this validator.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#getTypeFactory()">getTypeFactory</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>type factory</dd>
</dl>
</li>
</ul>
<a id="getUnknownType()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getUnknownType</h4>
<pre class="methodSignature">public&nbsp;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;getUnknownType()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#getUnknownType()">SqlValidator</a></code></span></div>
<div class="block">Returns an object representing the "unknown" type.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#getUnknownType()">getUnknownType</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>unknown type</dd>
</dl>
</li>
</ul>
<a id="expandStar(org.apache.calcite.sql.SqlNodeList,org.apache.calcite.sql.SqlSelect,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>expandStar</h4>
<pre class="methodSignature">public&nbsp;<a href="../SqlNodeList.html" title="class in org.apache.calcite.sql">SqlNodeList</a>&nbsp;expandStar&#8203;(<a href="../SqlNodeList.html" title="class in org.apache.calcite.sql">SqlNodeList</a>&nbsp;selectList,
<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select,
boolean&nbsp;includeSystemVars)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#expandStar(org.apache.calcite.sql.SqlNodeList,org.apache.calcite.sql.SqlSelect,boolean)">SqlValidator</a></code></span></div>
<div class="block">Returns a list of expressions, with every occurrence of "&#42;" or
"TABLE.&#42;" expanded.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#expandStar(org.apache.calcite.sql.SqlNodeList,org.apache.calcite.sql.SqlSelect,boolean)">expandStar</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>selectList</code> - Select clause to be expanded</dd>
<dd><code>select</code> - Query</dd>
<dd><code>includeSystemVars</code> - Whether to include system variables</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>expanded select clause</dd>
</dl>
</li>
</ul>
<a id="declareCursor(org.apache.calcite.sql.SqlSelect,org.apache.calcite.sql.validate.SqlValidatorScope)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>declareCursor</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;declareCursor&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;parentScope)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#declareCursor(org.apache.calcite.sql.SqlSelect,org.apache.calcite.sql.validate.SqlValidatorScope)">SqlValidator</a></code></span></div>
<div class="block">Declares a SELECT expression as a cursor.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#declareCursor(org.apache.calcite.sql.SqlSelect,org.apache.calcite.sql.validate.SqlValidatorScope)">declareCursor</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>select</code> - select expression associated with the cursor</dd>
<dd><code>parentScope</code> - scope of the parent query associated with the cursor</dd>
</dl>
</li>
</ul>
<a id="pushFunctionCall()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>pushFunctionCall</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;pushFunctionCall()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#pushFunctionCall()">SqlValidator</a></code></span></div>
<div class="block">Pushes a new instance of a function call on to a function call stack.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#pushFunctionCall()">pushFunctionCall</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
</dl>
</li>
</ul>
<a id="popFunctionCall()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>popFunctionCall</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;popFunctionCall()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#popFunctionCall()">SqlValidator</a></code></span></div>
<div class="block">Removes the topmost entry from the function call stack.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#popFunctionCall()">popFunctionCall</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
</dl>
</li>
</ul>
<a id="getParentCursor(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParentCursor</h4>
<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;getParentCursor&#8203;(java.lang.String&nbsp;columnListParamName)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#getParentCursor(java.lang.String)">SqlValidator</a></code></span></div>
<div class="block">Retrieves the name of the parent cursor referenced by a column list
parameter.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#getParentCursor(java.lang.String)">getParentCursor</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>columnListParamName</code> - name of the column list parameter</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>name of the parent cursor</dd>
</dl>
</li>
</ul>
<a id="expandSelectItem(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.SqlSelect,org.apache.calcite.rel.type.RelDataType,java.util.List,java.util.Set,java.util.List,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>expandSelectItem</h4>
<pre class="methodSignature">private&nbsp;boolean&nbsp;expandSelectItem&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;selectItem,
<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetType,
java.util.List&lt;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;selectItems,
java.util.Set&lt;java.lang.String&gt;&nbsp;aliases,
java.util.List&lt;java.util.Map.Entry&lt;java.lang.String,&#8203;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&gt;&nbsp;fields,
boolean&nbsp;includeSystemVars)</pre>
<div class="block">If <code>selectItem</code> is "*" or "TABLE.*", expands it and returns
true; otherwise writes the unexpanded item.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>selectItem</code> - Select-list item</dd>
<dd><code>select</code> - Containing select clause</dd>
<dd><code>selectItems</code> - List that expanded items are written to</dd>
<dd><code>aliases</code> - Set of aliases</dd>
<dd><code>fields</code> - List of field names and types, in alias order</dd>
<dd><code>includeSystemVars</code> - If true include system vars in lists</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Whether the node was expanded</dd>
</dl>
</li>
</ul>
<a id="expandStar(java.util.List,java.util.Set,java.util.List,boolean,org.apache.calcite.sql.validate.SelectScope,org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>expandStar</h4>
<pre class="methodSignature">private&nbsp;boolean&nbsp;expandStar&#8203;(java.util.List&lt;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;selectItems,
java.util.Set&lt;java.lang.String&gt;&nbsp;aliases,
java.util.List&lt;java.util.Map.Entry&lt;java.lang.String,&#8203;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&gt;&nbsp;fields,
boolean&nbsp;includeSystemVars,
<a href="SelectScope.html" title="class in org.apache.calcite.sql.validate">SelectScope</a>&nbsp;scope,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</pre>
</li>
</ul>
<a id="maybeCast(org.apache.calcite.sql.SqlNode,org.apache.calcite.rel.type.RelDataType,org.apache.calcite.rel.type.RelDataType)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>maybeCast</h4>
<pre class="methodSignature">private&nbsp;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;maybeCast&#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;currentType,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;desiredType)</pre>
</li>
</ul>
<a id="addOrExpandField(java.util.List,java.util.Set,java.util.List,boolean,org.apache.calcite.sql.validate.SelectScope,org.apache.calcite.sql.SqlIdentifier,org.apache.calcite.rel.type.RelDataTypeField)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addOrExpandField</h4>
<pre class="methodSignature">private&nbsp;boolean&nbsp;addOrExpandField&#8203;(java.util.List&lt;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;selectItems,
java.util.Set&lt;java.lang.String&gt;&nbsp;aliases,
java.util.List&lt;java.util.Map.Entry&lt;java.lang.String,&#8203;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&gt;&nbsp;fields,
boolean&nbsp;includeSystemVars,
<a href="SelectScope.html" title="class in org.apache.calcite.sql.validate">SelectScope</a>&nbsp;scope,
<a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql">SqlIdentifier</a>&nbsp;id,
<a href="../../rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&nbsp;field)</pre>
</li>
</ul>
<a id="validate(org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validate</h4>
<pre class="methodSignature">public&nbsp;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;validate&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;topNode)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#validate(org.apache.calcite.sql.SqlNode)">SqlValidator</a></code></span></div>
<div class="block">Validates an expression tree. You can call this method multiple times,
but not reentrantly.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#validate(org.apache.calcite.sql.SqlNode)">validate</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>topNode</code> - top of expression tree to be validated</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>validated tree (possibly rewritten)</dd>
</dl>
</li>
</ul>
<a id="lookupHints(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.parser.SqlParserPos)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>lookupHints</h4>
<pre class="methodSignature">public&nbsp;java.util.List&lt;<a href="SqlMoniker.html" title="interface in org.apache.calcite.sql.validate">SqlMoniker</a>&gt;&nbsp;lookupHints&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;topNode,
<a href="../parser/SqlParserPos.html" title="class in org.apache.calcite.sql.parser">SqlParserPos</a>&nbsp;pos)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidatorWithHints.html#lookupHints(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.parser.SqlParserPos)">SqlValidatorWithHints</a></code></span></div>
<div class="block">Looks up completion hints for a syntactically correct SQL statement that
has been parsed into an expression tree. (Note this should be called
after <a href="SqlValidator.html#validate(org.apache.calcite.sql.SqlNode)"><code>SqlValidator.validate(org.apache.calcite.sql.SqlNode)</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidatorWithHints.html#lookupHints(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.parser.SqlParserPos)">lookupHints</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidatorWithHints.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorWithHints</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>topNode</code> - top of expression tree in which to lookup completion hints</dd>
<dd><code>pos</code> - indicates the position in the sql statement we want to get
completion hints for. For example, "select a.ename, b.deptno
from sales.emp a join sales.dept b "on a.deptno=b.deptno
where empno=1"; setting pos to 'Line 1, Column 17' returns
all the possible column names that can be selected from
sales.dept table setting pos to 'Line 1, Column 31' returns
all the possible table names in 'sales' schema</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an array of <a href="SqlMoniker.html" title="interface in org.apache.calcite.sql.validate"><code>SqlMoniker</code></a> (sql identifiers) that can fill in
at the indicated position</dd>
</dl>
</li>
</ul>
<a id="lookupQualifiedName(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.parser.SqlParserPos)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>lookupQualifiedName</h4>
<pre class="methodSignature">public&nbsp;<a href="SqlMoniker.html" title="interface in org.apache.calcite.sql.validate">SqlMoniker</a>&nbsp;lookupQualifiedName&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;topNode,
<a href="../parser/SqlParserPos.html" title="class in org.apache.calcite.sql.parser">SqlParserPos</a>&nbsp;pos)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidatorWithHints.html#lookupQualifiedName(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.parser.SqlParserPos)">SqlValidatorWithHints</a></code></span></div>
<div class="block">Looks up the fully qualified name for a <a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql"><code>SqlIdentifier</code></a> at a given
Parser Position in a parsed expression tree Note: call this only after
<a href="SqlValidator.html#validate(org.apache.calcite.sql.SqlNode)"><code>SqlValidator.validate(org.apache.calcite.sql.SqlNode)</code></a> has been called.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidatorWithHints.html#lookupQualifiedName(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.parser.SqlParserPos)">lookupQualifiedName</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidatorWithHints.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorWithHints</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>topNode</code> - top of expression tree in which to lookup the qualified
name for the SqlIdentifier</dd>
<dd><code>pos</code> - indicates the position of the <a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql"><code>SqlIdentifier</code></a> in
the SQL statement we want to get the qualified
name for</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a string of the fully qualified name of the <a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql"><code>SqlIdentifier</code></a>
if the Parser position represents a valid <a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql"><code>SqlIdentifier</code></a>. Else
return an empty string</dd>
</dl>
</li>
</ul>
<a id="lookupSelectHints(org.apache.calcite.sql.SqlSelect,org.apache.calcite.sql.parser.SqlParserPos,java.util.Collection)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>lookupSelectHints</h4>
<pre class="methodSignature">void&nbsp;lookupSelectHints&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select,
<a href="../parser/SqlParserPos.html" title="class in org.apache.calcite.sql.parser">SqlParserPos</a>&nbsp;pos,
java.util.Collection&lt;<a href="SqlMoniker.html" title="interface in org.apache.calcite.sql.validate">SqlMoniker</a>&gt;&nbsp;hintList)</pre>
<div class="block">Looks up completion hints for a syntactically correct select SQL that has
been parsed into an expression tree.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>select</code> - the Select node of the parsed expression tree</dd>
<dd><code>pos</code> - indicates the position in the sql statement we want to get
completion hints for</dd>
<dd><code>hintList</code> - list of <a href="SqlMoniker.html" title="interface in org.apache.calcite.sql.validate"><code>SqlMoniker</code></a> (sql identifiers) that can
fill in at the indicated position</dd>
</dl>
</li>
</ul>
<a id="lookupSelectHints(org.apache.calcite.sql.validate.SqlValidatorNamespace,org.apache.calcite.sql.parser.SqlParserPos,java.util.Collection)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>lookupSelectHints</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;lookupSelectHints&#8203;(<a href="SqlValidatorNamespace.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorNamespace</a>&nbsp;ns,
<a href="../parser/SqlParserPos.html" title="class in org.apache.calcite.sql.parser">SqlParserPos</a>&nbsp;pos,
java.util.Collection&lt;<a href="SqlMoniker.html" title="interface in org.apache.calcite.sql.validate">SqlMoniker</a>&gt;&nbsp;hintList)</pre>
</li>
</ul>
<a id="lookupFromHints(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.parser.SqlParserPos,java.util.Collection)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>lookupFromHints</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;lookupFromHints&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="../parser/SqlParserPos.html" title="class in org.apache.calcite.sql.parser">SqlParserPos</a>&nbsp;pos,
java.util.Collection&lt;<a href="SqlMoniker.html" title="interface in org.apache.calcite.sql.validate">SqlMoniker</a>&gt;&nbsp;hintList)</pre>
</li>
</ul>
<a id="lookupJoinHints(org.apache.calcite.sql.SqlJoin,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.parser.SqlParserPos,java.util.Collection)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>lookupJoinHints</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;lookupJoinHints&#8203;(<a href="../SqlJoin.html" title="class in org.apache.calcite.sql">SqlJoin</a>&nbsp;join,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="../parser/SqlParserPos.html" title="class in org.apache.calcite.sql.parser">SqlParserPos</a>&nbsp;pos,
java.util.Collection&lt;<a href="SqlMoniker.html" title="interface in org.apache.calcite.sql.validate">SqlMoniker</a>&gt;&nbsp;hintList)</pre>
</li>
</ul>
<a id="lookupNameCompletionHints(org.apache.calcite.sql.validate.SqlValidatorScope,java.util.List,org.apache.calcite.sql.parser.SqlParserPos,java.util.Collection)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>lookupNameCompletionHints</h4>
<pre class="methodSignature">public final&nbsp;void&nbsp;lookupNameCompletionHints&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
java.util.List&lt;java.lang.String&gt;&nbsp;names,
<a href="../parser/SqlParserPos.html" title="class in org.apache.calcite.sql.parser">SqlParserPos</a>&nbsp;pos,
java.util.Collection&lt;<a href="SqlMoniker.html" title="interface in org.apache.calcite.sql.validate">SqlMoniker</a>&gt;&nbsp;hintList)</pre>
<div class="block">Populates a list of all the valid alternatives for an identifier.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>scope</code> - Validation scope</dd>
<dd><code>names</code> - Components of the identifier</dd>
<dd><code>pos</code> - position</dd>
<dd><code>hintList</code> - a list of valid options</dd>
</dl>
</li>
</ul>
<a id="findAllValidUdfNames(java.util.List,org.apache.calcite.sql.validate.SqlValidator,java.util.Collection)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>findAllValidUdfNames</h4>
<pre class="methodSignature">private static&nbsp;void&nbsp;findAllValidUdfNames&#8203;(java.util.List&lt;java.lang.String&gt;&nbsp;names,
<a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a>&nbsp;validator,
java.util.Collection&lt;<a href="SqlMoniker.html" title="interface in org.apache.calcite.sql.validate">SqlMoniker</a>&gt;&nbsp;result)</pre>
</li>
</ul>
<a id="findAllValidFunctionNames(java.util.List,org.apache.calcite.sql.validate.SqlValidator,java.util.Collection,org.apache.calcite.sql.parser.SqlParserPos)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>findAllValidFunctionNames</h4>
<pre class="methodSignature">private static&nbsp;void&nbsp;findAllValidFunctionNames&#8203;(java.util.List&lt;java.lang.String&gt;&nbsp;names,
<a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a>&nbsp;validator,
java.util.Collection&lt;<a href="SqlMoniker.html" title="interface in org.apache.calcite.sql.validate">SqlMoniker</a>&gt;&nbsp;result,
<a href="../parser/SqlParserPos.html" title="class in org.apache.calcite.sql.parser">SqlParserPos</a>&nbsp;pos)</pre>
</li>
</ul>
<a id="validateParameterizedExpression(org.apache.calcite.sql.SqlNode,java.util.Map)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateParameterizedExpression</h4>
<pre class="methodSignature">public&nbsp;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;validateParameterizedExpression&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;topNode,
java.util.Map&lt;java.lang.String,&#8203;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&nbsp;nameToTypeMap)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#validateParameterizedExpression(org.apache.calcite.sql.SqlNode,java.util.Map)">SqlValidator</a></code></span></div>
<div class="block">Validates an expression tree. You can call this method multiple times,
but not reentrantly.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#validateParameterizedExpression(org.apache.calcite.sql.SqlNode,java.util.Map)">validateParameterizedExpression</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>topNode</code> - top of expression tree to be validated</dd>
<dd><code>nameToTypeMap</code> - map of simple name to <a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type"><code>RelDataType</code></a>; used to
resolve <a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql"><code>SqlIdentifier</code></a> references</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>validated tree (possibly rewritten)</dd>
</dl>
</li>
</ul>
<a id="validateScopedExpression(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateScopedExpression</h4>
<pre class="methodSignature">private&nbsp;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;validateScopedExpression&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;topNode,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</pre>
</li>
</ul>
<a id="validateQuery(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.rel.type.RelDataType)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateQuery</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;validateQuery&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetRowType)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#validateQuery(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.rel.type.RelDataType)">SqlValidator</a></code></span></div>
<div class="block">Checks that a query is valid.
<p>Valid queries include:
<ul>
<li><code>SELECT</code> statement,
<li>set operation (<code>UNION</code>, <code>INTERSECT</code>, <code>
EXCEPT</code>)
<li>identifier (e.g. representing use of a table in a FROM clause)
<li>query aliased with the <code>AS</code> operator
</ul></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#validateQuery(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.rel.type.RelDataType)">validateQuery</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>node</code> - Query node</dd>
<dd><code>scope</code> - Scope in which the query occurs</dd>
<dd><code>targetRowType</code> - Desired row type, must not be null, may be the data
type 'unknown'.</dd>
</dl>
</li>
</ul>
<a id="validateNamespace(org.apache.calcite.sql.validate.SqlValidatorNamespace,org.apache.calcite.rel.type.RelDataType)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateNamespace</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;validateNamespace&#8203;(<a href="SqlValidatorNamespace.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorNamespace</a>&nbsp;namespace,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetRowType)</pre>
<div class="block">Validates a namespace.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>namespace</code> - Namespace</dd>
<dd><code>targetRowType</code> - Desired row type, must not be null, may be the data
type 'unknown'.</dd>
</dl>
</li>
</ul>
<a id="getEmptyScope()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getEmptyScope</h4>
<pre class="methodSignature">public&nbsp;<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;getEmptyScope()</pre>
</li>
</ul>
<a id="getCursorScope(org.apache.calcite.sql.SqlSelect)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCursorScope</h4>
<pre class="methodSignature">public&nbsp;<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;getCursorScope&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</pre>
</li>
</ul>
<a id="getWhereScope(org.apache.calcite.sql.SqlSelect)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getWhereScope</h4>
<pre class="methodSignature">public&nbsp;<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;getWhereScope&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#getWhereScope(org.apache.calcite.sql.SqlSelect)">SqlValidator</a></code></span></div>
<div class="block">Returns the scope that expressions in the WHERE and GROUP BY clause of
this query should use. This scope consists of the tables in the FROM
clause, and the enclosing scope.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#getWhereScope(org.apache.calcite.sql.SqlSelect)">getWhereScope</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>select</code> - Query</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>naming scope of WHERE clause</dd>
</dl>
</li>
</ul>
<a id="getSelectScope(org.apache.calcite.sql.SqlSelect)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSelectScope</h4>
<pre class="methodSignature">public&nbsp;<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;getSelectScope&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#getSelectScope(org.apache.calcite.sql.SqlSelect)">SqlValidator</a></code></span></div>
<div class="block">Returns the appropriate scope for validating a particular clause of a
SELECT statement.
<p>Consider</p>
<blockquote><pre><code>SELECT *
FROM foo
WHERE EXISTS (
SELECT deptno AS x
FROM emp
JOIN dept ON emp.deptno = dept.deptno
WHERE emp.deptno = 5
GROUP BY deptno
ORDER BY x)</code></pre></blockquote>
<p>What objects can be seen in each part of the sub-query?</p>
<ul>
<li>In FROM (<a href="SqlValidator.html#getFromScope(org.apache.calcite.sql.SqlSelect)"><code>SqlValidator.getFromScope(org.apache.calcite.sql.SqlSelect)</code></a> , you can only see 'foo'.
<li>In WHERE (<a href="SqlValidator.html#getWhereScope(org.apache.calcite.sql.SqlSelect)"><code>SqlValidator.getWhereScope(org.apache.calcite.sql.SqlSelect)</code></a>), GROUP BY (<a href="SqlValidator.html#getGroupScope(org.apache.calcite.sql.SqlSelect)"><code>SqlValidator.getGroupScope(org.apache.calcite.sql.SqlSelect)</code></a>),
SELECT (<code>getSelectScope</code>), and the ON clause of the JOIN
(<a href="SqlValidator.html#getJoinScope(org.apache.calcite.sql.SqlNode)"><code>SqlValidator.getJoinScope(org.apache.calcite.sql.SqlNode)</code></a>) you can see 'emp', 'dept', and 'foo'.
<li>In ORDER BY (<a href="SqlValidator.html#getOrderScope(org.apache.calcite.sql.SqlSelect)"><code>SqlValidator.getOrderScope(org.apache.calcite.sql.SqlSelect)</code></a>), you can see the column alias 'x';
and tables 'emp', 'dept', and 'foo'.
</ul></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#getSelectScope(org.apache.calcite.sql.SqlSelect)">getSelectScope</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>select</code> - SELECT statement</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>naming scope for SELECT statement</dd>
</dl>
</li>
</ul>
<a id="getRawSelectScope(org.apache.calcite.sql.SqlSelect)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRawSelectScope</h4>
<pre class="methodSignature">public&nbsp;<a href="SelectScope.html" title="class in org.apache.calcite.sql.validate">SelectScope</a>&nbsp;getRawSelectScope&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#getRawSelectScope(org.apache.calcite.sql.SqlSelect)">SqlValidator</a></code></span></div>
<div class="block">Returns the scope for resolving the SELECT, GROUP BY and HAVING clauses.
Always a <a href="SelectScope.html" title="class in org.apache.calcite.sql.validate"><code>SelectScope</code></a>; if this is an aggregation query, the
<a href="AggregatingScope.html" title="interface in org.apache.calcite.sql.validate"><code>AggregatingScope</code></a> is stripped away.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#getRawSelectScope(org.apache.calcite.sql.SqlSelect)">getRawSelectScope</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>select</code> - SELECT statement</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>naming scope for SELECT statement, sans any aggregating scope</dd>
</dl>
</li>
</ul>
<a id="getHavingScope(org.apache.calcite.sql.SqlSelect)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getHavingScope</h4>
<pre class="methodSignature">public&nbsp;<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;getHavingScope&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#getHavingScope(org.apache.calcite.sql.SqlSelect)">SqlValidator</a></code></span></div>
<div class="block">Returns a scope containing the objects visible from the HAVING clause of
a query.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#getHavingScope(org.apache.calcite.sql.SqlSelect)">getHavingScope</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>select</code> - SELECT statement</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>naming scope for HAVING clause</dd>
</dl>
</li>
</ul>
<a id="getGroupScope(org.apache.calcite.sql.SqlSelect)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getGroupScope</h4>
<pre class="methodSignature">public&nbsp;<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;getGroupScope&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#getGroupScope(org.apache.calcite.sql.SqlSelect)">SqlValidator</a></code></span></div>
<div class="block">Returns a scope containing the objects visible from the GROUP BY clause
of a query.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#getGroupScope(org.apache.calcite.sql.SqlSelect)">getGroupScope</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>select</code> - SELECT statement</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>naming scope for GROUP BY clause</dd>
</dl>
</li>
</ul>
<a id="getFromScope(org.apache.calcite.sql.SqlSelect)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFromScope</h4>
<pre class="methodSignature">public&nbsp;<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;getFromScope&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#getFromScope(org.apache.calcite.sql.SqlSelect)">SqlValidator</a></code></span></div>
<div class="block">Returns a scope containing the objects visible from the FROM clause of a
query.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#getFromScope(org.apache.calcite.sql.SqlSelect)">getFromScope</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>select</code> - SELECT statement</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>naming scope for FROM clause</dd>
</dl>
</li>
</ul>
<a id="getOrderScope(org.apache.calcite.sql.SqlSelect)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOrderScope</h4>
<pre class="methodSignature">public&nbsp;<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;getOrderScope&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#getOrderScope(org.apache.calcite.sql.SqlSelect)">SqlValidator</a></code></span></div>
<div class="block">Returns the scope that expressions in the SELECT and HAVING clause of
this query should use. This scope consists of the FROM clause and the
enclosing scope. If the query is aggregating, only columns in the GROUP
BY clause may be used.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#getOrderScope(org.apache.calcite.sql.SqlSelect)">getOrderScope</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>select</code> - SELECT statement</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>naming scope for ORDER BY clause</dd>
</dl>
</li>
</ul>
<a id="getMatchRecognizeScope(org.apache.calcite.sql.SqlMatchRecognize)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMatchRecognizeScope</h4>
<pre class="methodSignature">public&nbsp;<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;getMatchRecognizeScope&#8203;(<a href="../SqlMatchRecognize.html" title="class in org.apache.calcite.sql">SqlMatchRecognize</a>&nbsp;node)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#getMatchRecognizeScope(org.apache.calcite.sql.SqlMatchRecognize)">SqlValidator</a></code></span></div>
<div class="block">Returns a scope match recognize clause.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#getMatchRecognizeScope(org.apache.calcite.sql.SqlMatchRecognize)">getMatchRecognizeScope</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>node</code> - Match recognize</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>naming scope for Match recognize clause</dd>
</dl>
</li>
</ul>
<a id="getJoinScope(org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getJoinScope</h4>
<pre class="methodSignature">public&nbsp;<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;getJoinScope&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#getJoinScope(org.apache.calcite.sql.SqlNode)">SqlValidator</a></code></span></div>
<div class="block">Returns a scope containing the objects visible from the ON and USING
sections of a JOIN clause.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#getJoinScope(org.apache.calcite.sql.SqlNode)">getJoinScope</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>node</code> - The item in the FROM clause which contains the ON or USING
expression</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>naming scope for JOIN clause</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="SqlValidator.html#getFromScope(org.apache.calcite.sql.SqlSelect)"><code>SqlValidator.getFromScope(org.apache.calcite.sql.SqlSelect)</code></a></dd>
</dl>
</li>
</ul>
<a id="getOverScope(org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOverScope</h4>
<pre class="methodSignature">public&nbsp;<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;getOverScope&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#getOverScope(org.apache.calcite.sql.SqlNode)">SqlValidator</a></code></span></div>
<div class="block">Returns the scope of an OVER or VALUES node.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#getOverScope(org.apache.calcite.sql.SqlNode)">getOverScope</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>node</code> - Node</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Scope</dd>
</dl>
</li>
</ul>
<a id="getNamespace(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNamespace</h4>
<pre class="methodSignature">private&nbsp;<a href="SqlValidatorNamespace.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorNamespace</a>&nbsp;getNamespace&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</pre>
</li>
</ul>
<a id="getNamespace(org.apache.calcite.sql.SqlIdentifier,org.apache.calcite.sql.validate.DelegatingScope)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNamespace</h4>
<pre class="methodSignature">private&nbsp;<a href="SqlValidatorNamespace.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorNamespace</a>&nbsp;getNamespace&#8203;(<a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql">SqlIdentifier</a>&nbsp;id,
<a href="DelegatingScope.html" title="class in org.apache.calcite.sql.validate">DelegatingScope</a>&nbsp;scope)</pre>
</li>
</ul>
<a id="getNamespace(org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNamespace</h4>
<pre class="methodSignature">public&nbsp;<a href="SqlValidatorNamespace.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorNamespace</a>&nbsp;getNamespace&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#getNamespace(org.apache.calcite.sql.SqlNode)">SqlValidator</a></code></span></div>
<div class="block">Finds the namespace corresponding to a given node.
<p>For example, in the query <code>SELECT * FROM (SELECT * FROM t), t1 AS
alias</code>, the both items in the FROM clause have a corresponding
namespace.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#getNamespace(org.apache.calcite.sql.SqlNode)">getNamespace</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>node</code> - Parse tree node</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>namespace of node</dd>
</dl>
</li>
</ul>
<a id="handleOffsetFetch(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleOffsetFetch</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;handleOffsetFetch&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;offset,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;fetch)</pre>
</li>
</ul>
<a id="performUnconditionalRewrites(org.apache.calcite.sql.SqlNode,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>performUnconditionalRewrites</h4>
<pre class="methodSignature">protected&nbsp;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;performUnconditionalRewrites&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
boolean&nbsp;underFrom)</pre>
<div class="block">Performs expression rewrites which are always used unconditionally. These
rewrites massage the expression tree into a standard form so that the
rest of the validation logic can be simpler.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>node</code> - expression to be rewritten</dd>
<dd><code>underFrom</code> - whether node appears directly under a FROM clause</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>rewritten expression</dd>
</dl>
</li>
</ul>
<a id="getInnerSelect(org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getInnerSelect</h4>
<pre class="methodSignature">private&nbsp;<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;getInnerSelect&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</pre>
</li>
</ul>
<a id="rewriteMerge(org.apache.calcite.sql.SqlMerge)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rewriteMerge</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;rewriteMerge&#8203;(<a href="../SqlMerge.html" title="class in org.apache.calcite.sql">SqlMerge</a>&nbsp;call)</pre>
</li>
</ul>
<a id="rewriteUpdateToMerge(org.apache.calcite.sql.SqlUpdate,org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rewriteUpdateToMerge</h4>
<pre class="methodSignature">private&nbsp;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;rewriteUpdateToMerge&#8203;(<a href="../SqlUpdate.html" title="class in org.apache.calcite.sql">SqlUpdate</a>&nbsp;updateCall,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;selfJoinSrcExpr)</pre>
</li>
</ul>
<a id="getSelfJoinExprForUpdate(org.apache.calcite.sql.SqlNode,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSelfJoinExprForUpdate</h4>
<pre class="methodSignature">protected&nbsp;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;getSelfJoinExprForUpdate&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;table,
java.lang.String&nbsp;alias)</pre>
<div class="block">Allows a subclass to provide information about how to convert an UPDATE
into a MERGE via self-join. If this method returns null, then no such
conversion takes place. Otherwise, this method should return a suitable
unique identifier expression for the given table.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>table</code> - identifier for table being updated</dd>
<dd><code>alias</code> - alias to use for qualifying columns in expression, or null
for unqualified references; if this is equal to
<a href="#UPDATE_SRC_ALIAS">"SYS$SRC"</a>, then column references have been
anonymized to "SYS$ANONx", where x is the 1-based column
number.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>expression for unique identifier, or null to prevent conversion</dd>
</dl>
</li>
</ul>
<a id="createSourceSelectForUpdate(org.apache.calcite.sql.SqlUpdate)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createSourceSelectForUpdate</h4>
<pre class="methodSignature">protected&nbsp;<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;createSourceSelectForUpdate&#8203;(<a href="../SqlUpdate.html" title="class in org.apache.calcite.sql">SqlUpdate</a>&nbsp;call)</pre>
<div class="block">Creates the SELECT statement that putatively feeds rows into an UPDATE
statement to be updated.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>call</code> - Call to the UPDATE operator</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>select statement</dd>
</dl>
</li>
</ul>
<a id="createSourceSelectForDelete(org.apache.calcite.sql.SqlDelete)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createSourceSelectForDelete</h4>
<pre class="methodSignature">protected&nbsp;<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;createSourceSelectForDelete&#8203;(<a href="../SqlDelete.html" title="class in org.apache.calcite.sql">SqlDelete</a>&nbsp;call)</pre>
<div class="block">Creates the SELECT statement that putatively feeds rows into a DELETE
statement to be deleted.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>call</code> - Call to the DELETE operator</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>select statement</dd>
</dl>
</li>
</ul>
<a id="getTableConstructorRowType(org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.validate.SqlValidatorScope)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTableConstructorRowType</h4>
<pre class="methodSignature"><a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;getTableConstructorRowType&#8203;(<a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;values,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</pre>
<div class="block">Returns null if there is no common type. E.g. if the rows have a
different number of columns.</div>
</li>
</ul>
<a id="getValidatedNodeType(org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getValidatedNodeType</h4>
<pre class="methodSignature">public&nbsp;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;getValidatedNodeType&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#getValidatedNodeType(org.apache.calcite.sql.SqlNode)">SqlValidator</a></code></span></div>
<div class="block">Returns the type assigned to a node by validation.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#getValidatedNodeType(org.apache.calcite.sql.SqlNode)">getValidatedNodeType</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>node</code> - the node of interest</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>validated type, never null</dd>
</dl>
</li>
</ul>
<a id="getValidatedNodeTypeIfKnown(org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getValidatedNodeTypeIfKnown</h4>
<pre class="methodSignature">public&nbsp;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;getValidatedNodeTypeIfKnown&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#getValidatedNodeTypeIfKnown(org.apache.calcite.sql.SqlNode)">SqlValidator</a></code></span></div>
<div class="block">Returns the type assigned to a node by validation, or null if unknown.
This allows for queries against nodes such as aliases, which have no type
of their own. If you want to assert that the node of interest must have a
type, use <a href="SqlValidator.html#getValidatedNodeType(org.apache.calcite.sql.SqlNode)"><code>SqlValidator.getValidatedNodeType(org.apache.calcite.sql.SqlNode)</code></a> instead.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#getValidatedNodeTypeIfKnown(org.apache.calcite.sql.SqlNode)">getValidatedNodeTypeIfKnown</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>node</code> - the node of interest</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>validated type, or null if unknown or not applicable</dd>
</dl>
</li>
</ul>
<a id="setValidatedNodeType(org.apache.calcite.sql.SqlNode,org.apache.calcite.rel.type.RelDataType)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setValidatedNodeType</h4>
<pre class="methodSignature">public final&nbsp;void&nbsp;setValidatedNodeType&#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">Saves the type of a <a href="../SqlNode.html" title="class in org.apache.calcite.sql"><code>SqlNode</code></a>, now that it has been validated.
<p>Unlike the base class method, this method is not deprecated.
It is available from within Calcite, but is not part of the public API.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#setValidatedNodeType(org.apache.calcite.sql.SqlNode,org.apache.calcite.rel.type.RelDataType)">setValidatedNodeType</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>node</code> - A SQL parse tree node, never null</dd>
<dd><code>type</code> - Its type; must not be null</dd>
</dl>
</li>
</ul>
<a id="removeValidatedNodeType(org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeValidatedNodeType</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;removeValidatedNodeType&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#removeValidatedNodeType(org.apache.calcite.sql.SqlNode)">SqlValidator</a></code></span></div>
<div class="block">Removes a node from the set of validated nodes</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#removeValidatedNodeType(org.apache.calcite.sql.SqlNode)">removeValidatedNodeType</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>node</code> - node to be removed</dd>
</dl>
</li>
</ul>
<a id="makeNullaryCall(org.apache.calcite.sql.SqlIdentifier)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>makeNullaryCall</h4>
<pre class="methodSignature">@Nullable
public&nbsp;<a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;makeNullaryCall&#8203;(<a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql">SqlIdentifier</a>&nbsp;id)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#makeNullaryCall(org.apache.calcite.sql.SqlIdentifier)">SqlValidator</a></code></span></div>
<div class="block">If an identifier is a legitimate call to a function that has no
arguments and requires no parentheses (for example "CURRENT_USER"),
returns a call to that function, otherwise returns null.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#makeNullaryCall(org.apache.calcite.sql.SqlIdentifier)">makeNullaryCall</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
</dl>
</li>
</ul>
<a id="deriveType(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>deriveType</h4>
<pre class="methodSignature">public&nbsp;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;deriveType&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<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="SqlValidator.html#deriveType(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlNode)">SqlValidator</a></code></span></div>
<div class="block">Derives the type of a node in a given scope. If the type has already been
inferred, returns the previous type.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#deriveType(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlNode)">deriveType</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>scope</code> - Syntactic scope</dd>
<dd><code>expr</code> - Parse tree node</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Type of the SqlNode. Should never return <code>NULL</code></dd>
</dl>
</li>
</ul>
<a id="deriveTypeImpl(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>deriveTypeImpl</h4>
<pre class="methodSignature"><a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;deriveTypeImpl&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;operand)</pre>
<div class="block">Derives the type of a node, never null.</div>
</li>
</ul>
<a id="deriveConstructorType(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.SqlFunction,org.apache.calcite.sql.SqlFunction,java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>deriveConstructorType</h4>
<pre class="methodSignature">public&nbsp;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;deriveConstructorType&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call,
<a href="../SqlFunction.html" title="class in org.apache.calcite.sql">SqlFunction</a>&nbsp;unresolvedConstructor,
<a href="../SqlFunction.html" title="class in org.apache.calcite.sql">SqlFunction</a>&nbsp;resolvedConstructor,
java.util.List&lt;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&nbsp;argTypes)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#deriveConstructorType(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.SqlFunction,org.apache.calcite.sql.SqlFunction,java.util.List)">SqlValidator</a></code></span></div>
<div class="block">Derives the type of a constructor.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#deriveConstructorType(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.SqlFunction,org.apache.calcite.sql.SqlFunction,java.util.List)">deriveConstructorType</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>scope</code> - Scope</dd>
<dd><code>call</code> - Call</dd>
<dd><code>unresolvedConstructor</code> - TODO</dd>
<dd><code>resolvedConstructor</code> - TODO</dd>
<dd><code>argTypes</code> - Types of arguments</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Resolved type of constructor</dd>
</dl>
</li>
</ul>
<a id="handleUnresolvedFunction(org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.SqlFunction,java.util.List,java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleUnresolvedFunction</h4>
<pre class="methodSignature">public&nbsp;<a href="../../runtime/CalciteException.html" title="class in org.apache.calcite.runtime">CalciteException</a>&nbsp;handleUnresolvedFunction&#8203;(<a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call,
<a href="../SqlFunction.html" title="class in org.apache.calcite.sql">SqlFunction</a>&nbsp;unresolvedFunction,
java.util.List&lt;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&nbsp;argTypes,
java.util.List&lt;java.lang.String&gt;&nbsp;argNames)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#handleUnresolvedFunction(org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.SqlFunction,java.util.List,java.util.List)">SqlValidator</a></code></span></div>
<div class="block">Handles a call to a function which cannot be resolved. Returns a an
appropriately descriptive error, which caller must throw.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#handleUnresolvedFunction(org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.SqlFunction,java.util.List,java.util.List)">handleUnresolvedFunction</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>call</code> - Call</dd>
<dd><code>unresolvedFunction</code> - Overloaded function which is the target of the
call</dd>
<dd><code>argTypes</code> - Types of arguments</dd>
<dd><code>argNames</code> - Names of arguments, or null if call by position</dd>
</dl>
</li>
</ul>
<a id="inferUnknownTypes(org.apache.calcite.rel.type.RelDataType,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>inferUnknownTypes</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;inferUnknownTypes&#8203;(@Nonnull
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;inferredType,
@Nonnull
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
@Nonnull
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</pre>
</li>
</ul>
<a id="addToSelectList(java.util.List,java.util.Set,java.util.List,org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addToSelectList</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;addToSelectList&#8203;(java.util.List&lt;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;list,
java.util.Set&lt;java.lang.String&gt;&nbsp;aliases,
java.util.List&lt;java.util.Map.Entry&lt;java.lang.String,&#8203;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&gt;&nbsp;fieldList,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;exp,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
boolean&nbsp;includeSystemVars)</pre>
<div class="block">Adds an expression to a select list, ensuring that its alias does not
clash with any existing expressions on the list.</div>
</li>
</ul>
<a id="deriveAlias(org.apache.calcite.sql.SqlNode,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>deriveAlias</h4>
<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;deriveAlias&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
int&nbsp;ordinal)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#deriveAlias(org.apache.calcite.sql.SqlNode,int)">SqlValidator</a></code></span></div>
<div class="block">Derives an alias for an expression. If no alias can be derived, returns
null if <code>ordinal</code> is less than zero, otherwise generates an
alias <code>EXPR$<i>ordinal</i></code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#deriveAlias(org.apache.calcite.sql.SqlNode,int)">deriveAlias</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>node</code> - Expression</dd>
<dd><code>ordinal</code> - Ordinal of expression</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>derived alias, or null if no alias can be derived and ordinal is
less than zero</dd>
</dl>
</li>
</ul>
<a id="setIdentifierExpansion(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setIdentifierExpansion</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setIdentifierExpansion&#8203;(boolean&nbsp;expandIdentifiers)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#setIdentifierExpansion(boolean)">SqlValidator</a></code></span></div>
<div class="block">Enables or disables expansion of identifiers other than column
references.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#setIdentifierExpansion(boolean)">setIdentifierExpansion</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>expandIdentifiers</code> - new setting</dd>
</dl>
</li>
</ul>
<a id="setColumnReferenceExpansion(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setColumnReferenceExpansion</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setColumnReferenceExpansion&#8203;(boolean&nbsp;expandColumnReferences)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#setColumnReferenceExpansion(boolean)">SqlValidator</a></code></span></div>
<div class="block">Enables or disables expansion of column references. (Currently this does
not apply to the ORDER BY clause; may be fixed in the future.)</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#setColumnReferenceExpansion(boolean)">setColumnReferenceExpansion</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>expandColumnReferences</code> - new setting</dd>
</dl>
</li>
</ul>
<a id="getColumnReferenceExpansion()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getColumnReferenceExpansion</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;getColumnReferenceExpansion()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#getColumnReferenceExpansion()">getColumnReferenceExpansion</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>whether column reference expansion is enabled</dd>
</dl>
</li>
</ul>
<a id="setDefaultNullCollation(org.apache.calcite.config.NullCollation)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setDefaultNullCollation</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setDefaultNullCollation&#8203;(<a href="../../config/NullCollation.html" title="enum in org.apache.calcite.config">NullCollation</a>&nbsp;nullCollation)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#setDefaultNullCollation(org.apache.calcite.config.NullCollation)">SqlValidator</a></code></span></div>
<div class="block">Sets how NULL values should be collated if an ORDER BY item does not
contain NULLS FIRST or NULLS LAST.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#setDefaultNullCollation(org.apache.calcite.config.NullCollation)">setDefaultNullCollation</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
</dl>
</li>
</ul>
<a id="getDefaultNullCollation()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDefaultNullCollation</h4>
<pre class="methodSignature">public&nbsp;<a href="../../config/NullCollation.html" title="enum in org.apache.calcite.config">NullCollation</a>&nbsp;getDefaultNullCollation()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#getDefaultNullCollation()">SqlValidator</a></code></span></div>
<div class="block">Returns how NULL values should be collated if an ORDER BY item does not
contain NULLS FIRST or NULLS LAST.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#getDefaultNullCollation()">getDefaultNullCollation</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
</dl>
</li>
</ul>
<a id="setCallRewrite(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setCallRewrite</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setCallRewrite&#8203;(boolean&nbsp;rewriteCalls)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#setCallRewrite(boolean)">SqlValidator</a></code></span></div>
<div class="block">Enables or disables rewrite of "macro-like" calls such as COALESCE.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#setCallRewrite(boolean)">setCallRewrite</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>rewriteCalls</code> - new setting</dd>
</dl>
</li>
</ul>
<a id="shouldExpandIdentifiers()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>shouldExpandIdentifiers</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;shouldExpandIdentifiers()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#shouldExpandIdentifiers()">SqlValidator</a></code></span></div>
<div class="block">Returns expansion of identifiers.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#shouldExpandIdentifiers()">shouldExpandIdentifiers</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>whether this validator should expand identifiers</dd>
</dl>
</li>
</ul>
<a id="shouldAllowIntermediateOrderBy()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>shouldAllowIntermediateOrderBy</h4>
<pre class="methodSignature">protected&nbsp;boolean&nbsp;shouldAllowIntermediateOrderBy()</pre>
</li>
</ul>
<a id="registerMatchRecognize(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlMatchRecognize,org.apache.calcite.sql.SqlNode,java.lang.String,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerMatchRecognize</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;registerMatchRecognize&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;parentScope,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;usingScope,
<a href="../SqlMatchRecognize.html" title="class in org.apache.calcite.sql">SqlMatchRecognize</a>&nbsp;call,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;enclosingNode,
java.lang.String&nbsp;alias,
boolean&nbsp;forceNullable)</pre>
</li>
</ul>
<a id="createMatchRecognizeNameSpace(org.apache.calcite.sql.SqlMatchRecognize,org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createMatchRecognizeNameSpace</h4>
<pre class="methodSignature">protected&nbsp;<a href="MatchRecognizeNamespace.html" title="class in org.apache.calcite.sql.validate">MatchRecognizeNamespace</a>&nbsp;createMatchRecognizeNameSpace&#8203;(<a href="../SqlMatchRecognize.html" title="class in org.apache.calcite.sql">SqlMatchRecognize</a>&nbsp;call,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;enclosingNode)</pre>
</li>
</ul>
<a id="registerNamespace(org.apache.calcite.sql.validate.SqlValidatorScope,java.lang.String,org.apache.calcite.sql.validate.SqlValidatorNamespace,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerNamespace</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;registerNamespace&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;usingScope,
java.lang.String&nbsp;alias,
<a href="SqlValidatorNamespace.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorNamespace</a>&nbsp;ns,
boolean&nbsp;forceNullable)</pre>
<div class="block">Registers a new namespace, and adds it as a child of its parent scope.
Derived class can override this method to tinker with namespaces as they
are created.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>usingScope</code> - Parent scope (which will want to look for things in
this namespace)</dd>
<dd><code>alias</code> - Alias by which parent will refer to this namespace</dd>
<dd><code>ns</code> - Namespace</dd>
<dd><code>forceNullable</code> - Whether to force the type of namespace to be nullable</dd>
</dl>
</li>
</ul>
<a id="registerFrom(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.validate.SqlValidatorScope,boolean,org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.SqlNode,java.lang.String,org.apache.calcite.sql.SqlNodeList,boolean,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerFrom</h4>
<pre class="methodSignature">private&nbsp;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;registerFrom&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;parentScope,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;usingScope,
boolean&nbsp;register,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;enclosingNode,
java.lang.String&nbsp;alias,
<a href="../SqlNodeList.html" title="class in org.apache.calcite.sql">SqlNodeList</a>&nbsp;extendList,
boolean&nbsp;forceNullable,
boolean&nbsp;lateral)</pre>
<div class="block">Registers scopes and namespaces implied a relational expression in the
FROM clause.
<p><code>parentScope</code> and <code>usingScope</code> are often the same. They
differ when the namespace are not visible within the parent. (Example
needed.)
<p>Likewise, <code>enclosingNode</code> and <code>node</code> are often the same.
<code>enclosingNode</code> is the topmost node within the FROM clause, from
which any decorations like an alias (<code>AS alias</code>) or a table
sample clause are stripped away to get <code>node</code>. Both are recorded in
the namespace.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>parentScope</code> - Parent scope which this scope turns to in order to
resolve objects</dd>
<dd><code>usingScope</code> - Scope whose child list this scope should add itself to</dd>
<dd><code>register</code> - Whether to register this scope as a child of
<code>usingScope</code></dd>
<dd><code>node</code> - Node which namespace is based on</dd>
<dd><code>enclosingNode</code> - Outermost node for namespace, including decorations
such as alias and sample clause</dd>
<dd><code>alias</code> - Alias</dd>
<dd><code>extendList</code> - Definitions of extended columns</dd>
<dd><code>forceNullable</code> - Whether to force the type of namespace to be
nullable because it is in an outer join</dd>
<dd><code>lateral</code> - Whether LATERAL is specified, so that items to the
left of this in the JOIN tree are visible in the
scope</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>registered node, usually the same as <code>node</code></dd>
</dl>
</li>
</ul>
<a id="isLateral(org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isLateral</h4>
<pre class="methodSignature">private static&nbsp;boolean&nbsp;isLateral&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</pre>
</li>
</ul>
<a id="shouldAllowOverRelation()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>shouldAllowOverRelation</h4>
<pre class="methodSignature">protected&nbsp;boolean&nbsp;shouldAllowOverRelation()</pre>
</li>
</ul>
<a id="createSelectNamespace(org.apache.calcite.sql.SqlSelect,org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createSelectNamespace</h4>
<pre class="methodSignature">protected&nbsp;<a href="SelectNamespace.html" title="class in org.apache.calcite.sql.validate">SelectNamespace</a>&nbsp;createSelectNamespace&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;enclosingNode)</pre>
<div class="block">Creates a namespace for a <code>SELECT</code> node. Derived class may
override this factory method.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>select</code> - Select node</dd>
<dd><code>enclosingNode</code> - Enclosing node</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Select namespace</dd>
</dl>
</li>
</ul>
<a id="createSetopNamespace(org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createSetopNamespace</h4>
<pre class="methodSignature">protected&nbsp;<a href="SetopNamespace.html" title="class in org.apache.calcite.sql.validate">SetopNamespace</a>&nbsp;createSetopNamespace&#8203;(<a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;enclosingNode)</pre>
<div class="block">Creates a namespace for a set operation (<code>UNION</code>, <code>
INTERSECT</code>, or <code>EXCEPT</code>). Derived class may override
this factory method.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>call</code> - Call to set operation</dd>
<dd><code>enclosingNode</code> - Enclosing node</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Set operation namespace</dd>
</dl>
</li>
</ul>
<a id="registerQuery(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.SqlNode,java.lang.String,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerQuery</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;registerQuery&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;parentScope,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;usingScope,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;enclosingNode,
java.lang.String&nbsp;alias,
boolean&nbsp;forceNullable)</pre>
<div class="block">Registers a query in a parent scope.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>parentScope</code> - Parent scope which this scope turns to in order to
resolve objects</dd>
<dd><code>usingScope</code> - Scope whose child list this scope should add itself to</dd>
<dd><code>node</code> - Query node</dd>
<dd><code>alias</code> - Name of this query within its parent. Must be specified
if usingScope != null</dd>
</dl>
</li>
</ul>
<a id="registerQuery(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.SqlNode,java.lang.String,boolean,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerQuery</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;registerQuery&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;parentScope,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;usingScope,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;enclosingNode,
java.lang.String&nbsp;alias,
boolean&nbsp;forceNullable,
boolean&nbsp;checkUpdate)</pre>
<div class="block">Registers a query in a parent scope.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>parentScope</code> - Parent scope which this scope turns to in order to
resolve objects</dd>
<dd><code>usingScope</code> - Scope whose child list this scope should add itself to</dd>
<dd><code>node</code> - Query node</dd>
<dd><code>alias</code> - Name of this query within its parent. Must be specified
if usingScope != null</dd>
<dd><code>checkUpdate</code> - if true, validate that the update feature is supported
if validating the update statement</dd>
</dl>
</li>
</ul>
<a id="registerSetop(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.SqlNode,java.lang.String,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerSetop</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;registerSetop&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;parentScope,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;usingScope,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;enclosingNode,
java.lang.String&nbsp;alias,
boolean&nbsp;forceNullable)</pre>
</li>
</ul>
<a id="registerWith(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlWith,org.apache.calcite.sql.SqlNode,java.lang.String,boolean,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerWith</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;registerWith&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;parentScope,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;usingScope,
<a href="../SqlWith.html" title="class in org.apache.calcite.sql">SqlWith</a>&nbsp;with,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;enclosingNode,
java.lang.String&nbsp;alias,
boolean&nbsp;forceNullable,
boolean&nbsp;checkUpdate)</pre>
</li>
</ul>
<a id="isAggregate(org.apache.calcite.sql.SqlSelect)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isAggregate</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isAggregate&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#isAggregate(org.apache.calcite.sql.SqlSelect)">SqlValidator</a></code></span></div>
<div class="block">Returns whether a SELECT statement is an aggregation. Criteria are: (1)
contains GROUP BY, or (2) contains HAVING, or (3) SELECT or ORDER BY
clause contains aggregate functions. (Windowed aggregate functions, such
as <code>SUM(x) OVER w</code>, don't count.)</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#isAggregate(org.apache.calcite.sql.SqlSelect)">isAggregate</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>select</code> - SELECT statement</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>whether SELECT statement is an aggregation</dd>
</dl>
</li>
</ul>
<a id="isNestedAggregateWindow(org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isNestedAggregateWindow</h4>
<pre class="methodSignature">protected&nbsp;boolean&nbsp;isNestedAggregateWindow&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</pre>
</li>
</ul>
<a id="isOverAggregateWindow(org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isOverAggregateWindow</h4>
<pre class="methodSignature">protected&nbsp;boolean&nbsp;isOverAggregateWindow&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</pre>
</li>
</ul>
<a id="getAggregate(org.apache.calcite.sql.SqlSelect)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAggregate</h4>
<pre class="methodSignature">protected&nbsp;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;getAggregate&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</pre>
<div class="block">Returns the parse tree node (GROUP BY, HAVING, or an aggregate function
call) that causes <code>select</code> to be an aggregate query, or null if it
is not an aggregate query.
<p>The node is useful context for error messages,
but you cannot assume that the node is the only aggregate function.</div>
</li>
</ul>
<a id="getAgg(org.apache.calcite.sql.SqlSelect)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAgg</h4>
<pre class="methodSignature">private&nbsp;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;getAgg&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</pre>
<div class="block">If there is at least one call to an aggregate function, returns the
first.</div>
</li>
</ul>
<a id="isAggregate(org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isAggregate</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isAggregate&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;selectNode)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#isAggregate(org.apache.calcite.sql.SqlNode)">SqlValidator</a></code></span></div>
<div class="block">Returns whether a select list expression is an aggregate function.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#isAggregate(org.apache.calcite.sql.SqlNode)">isAggregate</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>selectNode</code> - Expression in SELECT clause</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>whether expression is an aggregate function</dd>
</dl>
</li>
</ul>
<a id="validateNodeFeature(org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateNodeFeature</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;validateNodeFeature&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</pre>
</li>
</ul>
<a id="registerSubQueries(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerSubQueries</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;registerSubQueries&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;parentScope,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</pre>
</li>
</ul>
<a id="registerOperandSubQueries(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlCall,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerOperandSubQueries</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;registerOperandSubQueries&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;parentScope,
<a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call,
int&nbsp;operandOrdinal)</pre>
<div class="block">Registers any sub-queries inside a given call operand, and converts the
operand to a scalar sub-query if the operator requires it.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>parentScope</code> - Parent scope</dd>
<dd><code>call</code> - Call</dd>
<dd><code>operandOrdinal</code> - Ordinal of operand within call</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../SqlOperator.html#argumentMustBeScalar(int)"><code>SqlOperator.argumentMustBeScalar(int)</code></a></dd>
</dl>
</li>
</ul>
<a id="validateIdentifier(org.apache.calcite.sql.SqlIdentifier,org.apache.calcite.sql.validate.SqlValidatorScope)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateIdentifier</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;validateIdentifier&#8203;(<a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql">SqlIdentifier</a>&nbsp;id,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#validateIdentifier(org.apache.calcite.sql.SqlIdentifier,org.apache.calcite.sql.validate.SqlValidatorScope)">SqlValidator</a></code></span></div>
<div class="block">Resolves an identifier to a fully-qualified name.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#validateIdentifier(org.apache.calcite.sql.SqlIdentifier,org.apache.calcite.sql.validate.SqlValidatorScope)">validateIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>id</code> - Identifier</dd>
<dd><code>scope</code> - Naming scope</dd>
</dl>
</li>
</ul>
<a id="validateLiteral(org.apache.calcite.sql.SqlLiteral)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateLiteral</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;validateLiteral&#8203;(<a href="../SqlLiteral.html" title="class in org.apache.calcite.sql">SqlLiteral</a>&nbsp;literal)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#validateLiteral(org.apache.calcite.sql.SqlLiteral)">SqlValidator</a></code></span></div>
<div class="block">Validates a literal.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#validateLiteral(org.apache.calcite.sql.SqlLiteral)">validateLiteral</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>literal</code> - Literal</dd>
</dl>
</li>
</ul>
<a id="validateLiteralAsDouble(org.apache.calcite.sql.SqlLiteral)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateLiteralAsDouble</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;validateLiteralAsDouble&#8203;(<a href="../SqlLiteral.html" title="class in org.apache.calcite.sql">SqlLiteral</a>&nbsp;literal)</pre>
</li>
</ul>
<a id="validateIntervalQualifier(org.apache.calcite.sql.SqlIntervalQualifier)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateIntervalQualifier</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;validateIntervalQualifier&#8203;(<a href="../SqlIntervalQualifier.html" title="class in org.apache.calcite.sql">SqlIntervalQualifier</a>&nbsp;qualifier)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#validateIntervalQualifier(org.apache.calcite.sql.SqlIntervalQualifier)">SqlValidator</a></code></span></div>
<div class="block">Validates a <a href="../SqlIntervalQualifier.html" title="class in org.apache.calcite.sql"><code>SqlIntervalQualifier</code></a></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#validateIntervalQualifier(org.apache.calcite.sql.SqlIntervalQualifier)">validateIntervalQualifier</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>qualifier</code> - Interval qualifier</dd>
</dl>
</li>
</ul>
<a id="validateFrom(org.apache.calcite.sql.SqlNode,org.apache.calcite.rel.type.RelDataType,org.apache.calcite.sql.validate.SqlValidatorScope)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateFrom</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;validateFrom&#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;targetRowType,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</pre>
<div class="block">Validates the FROM clause of a query, or (recursively) a child node of
the FROM clause: AS, OVER, JOIN, VALUES, or sub-query.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>node</code> - Node in FROM clause, typically a table or derived
table</dd>
<dd><code>targetRowType</code> - Desired row type of this expression, or
<a href="#unknownType"><code>unknownType</code></a> if not fussy. Must not be null.</dd>
<dd><code>scope</code> - Scope</dd>
</dl>
</li>
</ul>
<a id="validateOver(org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.validate.SqlValidatorScope)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateOver</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;validateOver&#8203;(<a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</pre>
</li>
</ul>
<a id="validateUnnest(org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.rel.type.RelDataType)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateUnnest</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;validateUnnest&#8203;(<a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetRowType)</pre>
</li>
</ul>
<a id="checkRollUpInUsing(org.apache.calcite.sql.SqlIdentifier,org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkRollUpInUsing</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;checkRollUpInUsing&#8203;(<a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql">SqlIdentifier</a>&nbsp;identifier,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;leftOrRight,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</pre>
</li>
</ul>
<a id="validateJoin(org.apache.calcite.sql.SqlJoin,org.apache.calcite.sql.validate.SqlValidatorScope)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateJoin</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;validateJoin&#8203;(<a href="../SqlJoin.html" title="class in org.apache.calcite.sql">SqlJoin</a>&nbsp;join,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</pre>
</li>
</ul>
<a id="validateNoAggs(org.apache.calcite.sql.validate.AggFinder,org.apache.calcite.sql.SqlNode,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateNoAggs</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;validateNoAggs&#8203;(<a href="AggFinder.html" title="class in org.apache.calcite.sql.validate">AggFinder</a>&nbsp;aggFinder,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
java.lang.String&nbsp;clause)</pre>
<div class="block">Throws an error if there is an aggregate or windowed aggregate in the
given clause.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>aggFinder</code> - Finder for the particular kind(s) of aggregate function</dd>
<dd><code>node</code> - Parse tree</dd>
<dd><code>clause</code> - Name of clause: "WHERE", "GROUP BY", "ON"</dd>
</dl>
</li>
</ul>
<a id="validateUsingCol(org.apache.calcite.sql.SqlIdentifier,org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateUsingCol</h4>
<pre class="methodSignature">private&nbsp;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;validateUsingCol&#8203;(<a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql">SqlIdentifier</a>&nbsp;id,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;leftOrRight)</pre>
</li>
</ul>
<a id="validateSelect(org.apache.calcite.sql.SqlSelect,org.apache.calcite.rel.type.RelDataType)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateSelect</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;validateSelect&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetRowType)</pre>
<div class="block">Validates a SELECT statement.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>select</code> - Select statement</dd>
<dd><code>targetRowType</code> - Desired row type, must not be null, may be the data
type 'unknown'.</dd>
</dl>
</li>
</ul>
<a id="checkRollUpInSelectList(org.apache.calcite.sql.SqlSelect)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkRollUpInSelectList</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;checkRollUpInSelectList&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</pre>
</li>
</ul>
<a id="checkRollUpInGroupBy(org.apache.calcite.sql.SqlSelect)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkRollUpInGroupBy</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;checkRollUpInGroupBy&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</pre>
</li>
</ul>
<a id="checkRollUpInOrderBy(org.apache.calcite.sql.SqlSelect)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkRollUpInOrderBy</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;checkRollUpInOrderBy&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</pre>
</li>
</ul>
<a id="checkRollUpInWindow(org.apache.calcite.sql.SqlWindow,org.apache.calcite.sql.validate.SqlValidatorScope)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkRollUpInWindow</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;checkRollUpInWindow&#8203;(<a href="../SqlWindow.html" title="class in org.apache.calcite.sql">SqlWindow</a>&nbsp;window,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</pre>
</li>
</ul>
<a id="checkRollUpInWindowDecl(org.apache.calcite.sql.SqlSelect)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkRollUpInWindowDecl</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;checkRollUpInWindowDecl&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</pre>
</li>
</ul>
<a id="stripDot(org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>stripDot</h4>
<pre class="methodSignature">private&nbsp;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;stripDot&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</pre>
</li>
</ul>
<a id="checkRollUp(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkRollUp</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;checkRollUp&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;grandParent,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;parent,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;current,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
java.lang.String&nbsp;optionalClause)</pre>
</li>
</ul>
<a id="checkRollUp(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkRollUp</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;checkRollUp&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;grandParent,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;parent,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;current,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</pre>
</li>
</ul>
<a id="getWindowInOver(org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getWindowInOver</h4>
<pre class="methodSignature">private&nbsp;<a href="../SqlWindow.html" title="class in org.apache.calcite.sql">SqlWindow</a>&nbsp;getWindowInOver&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;over)</pre>
</li>
</ul>
<a id="stripOver(org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>stripOver</h4>
<pre class="methodSignature">private static&nbsp;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;stripOver&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</pre>
</li>
</ul>
<a id="findTableColumnPair(org.apache.calcite.sql.SqlIdentifier,org.apache.calcite.sql.validate.SqlValidatorScope)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>findTableColumnPair</h4>
<pre class="methodSignature">private&nbsp;<a href="../../util/Pair.html" title="class in org.apache.calcite.util">Pair</a>&lt;java.lang.String,&#8203;java.lang.String&gt;&nbsp;findTableColumnPair&#8203;(<a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql">SqlIdentifier</a>&nbsp;identifier,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</pre>
</li>
</ul>
<a id="isRolledUpColumnAllowedInAgg(org.apache.calcite.sql.SqlIdentifier,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isRolledUpColumnAllowedInAgg</h4>
<pre class="methodSignature">private&nbsp;boolean&nbsp;isRolledUpColumnAllowedInAgg&#8203;(<a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql">SqlIdentifier</a>&nbsp;identifier,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;aggCall,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;parent)</pre>
</li>
</ul>
<a id="isRolledUpColumn(org.apache.calcite.sql.SqlIdentifier,org.apache.calcite.sql.validate.SqlValidatorScope)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isRolledUpColumn</h4>
<pre class="methodSignature">private&nbsp;boolean&nbsp;isRolledUpColumn&#8203;(<a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql">SqlIdentifier</a>&nbsp;identifier,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</pre>
</li>
</ul>
<a id="shouldCheckForRollUp(org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>shouldCheckForRollUp</h4>
<pre class="methodSignature">private&nbsp;boolean&nbsp;shouldCheckForRollUp&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;from)</pre>
</li>
</ul>
<a id="validateModality(org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateModality</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;validateModality&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;query)</pre>
<div class="block">Validates that a query can deliver the modality it promises. Only called
on the top-most SELECT or set operator in the tree.</div>
</li>
</ul>
<a id="deduceModality(org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>deduceModality</h4>
<pre class="methodSignature">private&nbsp;<a href="SqlModality.html" title="enum in org.apache.calcite.sql.validate">SqlModality</a>&nbsp;deduceModality&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;query)</pre>
<div class="block">Return the intended modality of a SELECT or set-op.</div>
</li>
</ul>
<a id="validateModality(org.apache.calcite.sql.SqlSelect,org.apache.calcite.sql.validate.SqlModality,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateModality</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;validateModality&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select,
<a href="SqlModality.html" title="enum in org.apache.calcite.sql.validate">SqlModality</a>&nbsp;modality,
boolean&nbsp;fail)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#validateModality(org.apache.calcite.sql.SqlSelect,org.apache.calcite.sql.validate.SqlModality,boolean)">SqlValidator</a></code></span></div>
<div class="block">Validates that a query is capable of producing a return of given modality
(relational or streaming).</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#validateModality(org.apache.calcite.sql.SqlSelect,org.apache.calcite.sql.validate.SqlModality,boolean)">validateModality</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>select</code> - Query</dd>
<dd><code>modality</code> - Modality (streaming or relational)</dd>
<dd><code>fail</code> - Whether to throw a user error if does not support required
modality</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>whether query supports the given modality</dd>
</dl>
</li>
</ul>
<a id="hasSortedPrefix(org.apache.calcite.sql.validate.SelectScope,org.apache.calcite.sql.SqlNodeList)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasSortedPrefix</h4>
<pre class="methodSignature">private&nbsp;boolean&nbsp;hasSortedPrefix&#8203;(<a href="SelectScope.html" title="class in org.apache.calcite.sql.validate">SelectScope</a>&nbsp;scope,
<a href="../SqlNodeList.html" title="class in org.apache.calcite.sql">SqlNodeList</a>&nbsp;orderList)</pre>
<div class="block">Returns whether the prefix is sorted.</div>
</li>
</ul>
<a id="isSortCompatible(org.apache.calcite.sql.validate.SelectScope,org.apache.calcite.sql.SqlNode,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isSortCompatible</h4>
<pre class="methodSignature">private&nbsp;boolean&nbsp;isSortCompatible&#8203;(<a href="SelectScope.html" title="class in org.apache.calcite.sql.validate">SelectScope</a>&nbsp;scope,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
boolean&nbsp;descending)</pre>
</li>
</ul>
<a id="validateWindowClause(org.apache.calcite.sql.SqlSelect)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateWindowClause</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;validateWindowClause&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</pre>
</li>
</ul>
<a id="validateWith(org.apache.calcite.sql.SqlWith,org.apache.calcite.sql.validate.SqlValidatorScope)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateWith</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;validateWith&#8203;(<a href="../SqlWith.html" title="class in org.apache.calcite.sql">SqlWith</a>&nbsp;with,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#validateWith(org.apache.calcite.sql.SqlWith,org.apache.calcite.sql.validate.SqlValidatorScope)">validateWith</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
</dl>
</li>
</ul>
<a id="validateWithItem(org.apache.calcite.sql.SqlWithItem)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateWithItem</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;validateWithItem&#8203;(<a href="../SqlWithItem.html" title="class in org.apache.calcite.sql">SqlWithItem</a>&nbsp;withItem)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#validateWithItem(org.apache.calcite.sql.SqlWithItem)">validateWithItem</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
</dl>
</li>
</ul>
<a id="validateSequenceValue(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlIdentifier)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateSequenceValue</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;validateSequenceValue&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql">SqlIdentifier</a>&nbsp;id)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#validateSequenceValue(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlIdentifier)">validateSequenceValue</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
</dl>
</li>
</ul>
<a id="getWithScope(org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getWithScope</h4>
<pre class="methodSignature">public&nbsp;<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;getWithScope&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;withItem)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#getWithScope(org.apache.calcite.sql.SqlNode)">getWithScope</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
</dl>
</li>
</ul>
<a id="validateOrderList(org.apache.calcite.sql.SqlSelect)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateOrderList</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;validateOrderList&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</pre>
<div class="block">Validates the ORDER BY clause of a SELECT statement.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>select</code> - Select statement</dd>
</dl>
</li>
</ul>
<a id="validateGroupByItem(org.apache.calcite.sql.SqlSelect,org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateGroupByItem</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;validateGroupByItem&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;groupByItem)</pre>
<div class="block">Validates an item in the GROUP BY clause of a SELECT statement.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>select</code> - Select statement</dd>
<dd><code>groupByItem</code> - GROUP BY clause item</dd>
</dl>
</li>
</ul>
<a id="validateOrderItem(org.apache.calcite.sql.SqlSelect,org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateOrderItem</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;validateOrderItem&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;orderItem)</pre>
<div class="block">Validates an item in the ORDER BY clause of a SELECT statement.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>select</code> - Select statement</dd>
<dd><code>orderItem</code> - ORDER BY clause item</dd>
</dl>
</li>
</ul>
<a id="expandOrderExpr(org.apache.calcite.sql.SqlSelect,org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>expandOrderExpr</h4>
<pre class="methodSignature">public&nbsp;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;expandOrderExpr&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;orderExpr)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#expandOrderExpr(org.apache.calcite.sql.SqlSelect,org.apache.calcite.sql.SqlNode)">SqlValidator</a></code></span></div>
<div class="block">Expands an expression in the ORDER BY clause into an expression with the
same semantics as expressions in the SELECT clause.
<p>This is made necessary by a couple of dialect 'features':
<ul>
<li><b>ordinal expressions</b>: In "SELECT x, y FROM t ORDER BY 2", the
expression "2" is shorthand for the 2nd item in the select clause, namely
"y".
<li><b>alias references</b>: In "SELECT x AS a, y FROM t ORDER BY a", the
expression "a" is shorthand for the item in the select clause whose alias
is "a"
</ul></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#expandOrderExpr(org.apache.calcite.sql.SqlSelect,org.apache.calcite.sql.SqlNode)">expandOrderExpr</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>select</code> - Select statement which contains ORDER BY</dd>
<dd><code>orderExpr</code> - Expression in the ORDER BY clause.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Expression translated into SELECT clause semantics</dd>
</dl>
</li>
</ul>
<a id="validateGroupClause(org.apache.calcite.sql.SqlSelect)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateGroupClause</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;validateGroupClause&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</pre>
<div class="block">Validates the GROUP BY clause of a SELECT statement. This method is
called even if no GROUP BY clause is present.</div>
</li>
</ul>
<a id="validateGroupItem(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.validate.AggregatingSelectScope,org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateGroupItem</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;validateGroupItem&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;groupScope,
<a href="AggregatingSelectScope.html" title="class in org.apache.calcite.sql.validate">AggregatingSelectScope</a>&nbsp;aggregatingScope,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;groupItem)</pre>
</li>
</ul>
<a id="validateGroupingSets(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.validate.AggregatingSelectScope,org.apache.calcite.sql.SqlCall)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateGroupingSets</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;validateGroupingSets&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;groupScope,
<a href="AggregatingSelectScope.html" title="class in org.apache.calcite.sql.validate">AggregatingSelectScope</a>&nbsp;aggregatingScope,
<a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;groupItem)</pre>
</li>
</ul>
<a id="validateWhereClause(org.apache.calcite.sql.SqlSelect)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateWhereClause</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;validateWhereClause&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</pre>
</li>
</ul>
<a id="validateWhereOrOn(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlNode,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateWhereOrOn</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;validateWhereOrOn&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;condition,
java.lang.String&nbsp;clause)</pre>
</li>
</ul>
<a id="validateHavingClause(org.apache.calcite.sql.SqlSelect)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateHavingClause</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;validateHavingClause&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</pre>
</li>
</ul>
<a id="validateSelectList(org.apache.calcite.sql.SqlNodeList,org.apache.calcite.sql.SqlSelect,org.apache.calcite.rel.type.RelDataType)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateSelectList</h4>
<pre class="methodSignature">protected&nbsp;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;validateSelectList&#8203;(<a href="../SqlNodeList.html" title="class in org.apache.calcite.sql">SqlNodeList</a>&nbsp;selectItems,
<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetRowType)</pre>
</li>
</ul>
<a id="validateExpr(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateExpr</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;validateExpr&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;expr,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</pre>
<div class="block">Validates an expression.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>expr</code> - Expression</dd>
<dd><code>scope</code> - Scope in which expression occurs</dd>
</dl>
</li>
</ul>
<a id="handleScalarSubQuery(org.apache.calcite.sql.SqlSelect,org.apache.calcite.sql.SqlSelect,java.util.List,java.util.Set,java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleScalarSubQuery</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;handleScalarSubQuery&#8203;(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;parentSelect,
<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;selectItem,
java.util.List&lt;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;expandedSelectItems,
java.util.Set&lt;java.lang.String&gt;&nbsp;aliasList,
java.util.List&lt;java.util.Map.Entry&lt;java.lang.String,&#8203;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&gt;&nbsp;fieldList)</pre>
<div class="block">Processes SubQuery found in Select list. Checks that is actually Scalar
sub-query and makes proper entries in each of the 3 lists used to create
the final rowType entry.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>parentSelect</code> - base SqlSelect item</dd>
<dd><code>selectItem</code> - child SqlSelect from select list</dd>
<dd><code>expandedSelectItems</code> - Select items after processing</dd>
<dd><code>aliasList</code> - built from user or system values</dd>
<dd><code>fieldList</code> - Built up entries for each select list entry</dd>
</dl>
</li>
</ul>
<a id="createTargetRowType(org.apache.calcite.sql.validate.SqlValidatorTable,org.apache.calcite.sql.SqlNodeList,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createTargetRowType</h4>
<pre class="methodSignature">protected&nbsp;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;createTargetRowType&#8203;(<a href="SqlValidatorTable.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorTable</a>&nbsp;table,
<a href="../SqlNodeList.html" title="class in org.apache.calcite.sql">SqlNodeList</a>&nbsp;targetColumnList,
boolean&nbsp;append)</pre>
<div class="block">Derives a row-type for INSERT and UPDATE operations.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>table</code> - Target table for INSERT/UPDATE</dd>
<dd><code>targetColumnList</code> - List of target columns, or null if not specified</dd>
<dd><code>append</code> - Whether to append fields to those in <code>
baseRowType</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Rowtype</dd>
</dl>
</li>
</ul>
<a id="validateInsert(org.apache.calcite.sql.SqlInsert)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateInsert</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;validateInsert&#8203;(<a href="../SqlInsert.html" title="class in org.apache.calcite.sql">SqlInsert</a>&nbsp;insert)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#validateInsert(org.apache.calcite.sql.SqlInsert)">SqlValidator</a></code></span></div>
<div class="block">Validates an INSERT statement.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#validateInsert(org.apache.calcite.sql.SqlInsert)">validateInsert</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>insert</code> - INSERT statement</dd>
</dl>
</li>
</ul>
<a id="checkConstraint(org.apache.calcite.sql.validate.SqlValidatorTable,org.apache.calcite.sql.SqlNode,org.apache.calcite.rel.type.RelDataType)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkConstraint</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;checkConstraint&#8203;(<a href="SqlValidatorTable.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorTable</a>&nbsp;validatorTable,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;source,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetRowType)</pre>
<div class="block">Validates insert values against the constraint of a modifiable view.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>validatorTable</code> - Table that may wrap a ModifiableViewTable</dd>
<dd><code>source</code> - The values being inserted</dd>
<dd><code>targetRowType</code> - The target type for the view</dd>
</dl>
</li>
</ul>
<a id="checkConstraint(org.apache.calcite.sql.validate.SqlValidatorTable,org.apache.calcite.sql.SqlUpdate,org.apache.calcite.rel.type.RelDataType)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkConstraint</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;checkConstraint&#8203;(<a href="SqlValidatorTable.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorTable</a>&nbsp;validatorTable,
<a href="../SqlUpdate.html" title="class in org.apache.calcite.sql">SqlUpdate</a>&nbsp;update,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetRowType)</pre>
<div class="block">Validates updates against the constraint of a modifiable view.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>validatorTable</code> - A <a href="SqlValidatorTable.html" title="interface in org.apache.calcite.sql.validate"><code>SqlValidatorTable</code></a> that may wrap a
ModifiableViewTable</dd>
<dd><code>update</code> - The UPDATE parse tree node</dd>
<dd><code>targetRowType</code> - The target type</dd>
</dl>
</li>
</ul>
<a id="checkFieldCount(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorTable,org.apache.calcite.sql.SqlNode,org.apache.calcite.rel.type.RelDataType,org.apache.calcite.rel.type.RelDataType)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkFieldCount</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;checkFieldCount&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
<a href="SqlValidatorTable.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorTable</a>&nbsp;table,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;source,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;logicalSourceRowType,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;logicalTargetRowType)</pre>
</li>
</ul>
<a id="isValuesWithDefault(org.apache.calcite.sql.SqlNode,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isValuesWithDefault</h4>
<pre class="methodSignature">private&nbsp;boolean&nbsp;isValuesWithDefault&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;source,
int&nbsp;column)</pre>
<div class="block">Returns whether a query uses <code>DEFAULT</code> to populate a given
column.</div>
</li>
</ul>
<a id="isRowWithDefault(org.apache.calcite.sql.SqlNode,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isRowWithDefault</h4>
<pre class="methodSignature">private&nbsp;boolean&nbsp;isRowWithDefault&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;operand,
int&nbsp;column)</pre>
</li>
</ul>
<a id="getLogicalTargetRowType(org.apache.calcite.rel.type.RelDataType,org.apache.calcite.sql.SqlInsert)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLogicalTargetRowType</h4>
<pre class="methodSignature">protected&nbsp;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;getLogicalTargetRowType&#8203;(<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetRowType,
<a href="../SqlInsert.html" title="class in org.apache.calcite.sql">SqlInsert</a>&nbsp;insert)</pre>
</li>
</ul>
<a id="getLogicalSourceRowType(org.apache.calcite.rel.type.RelDataType,org.apache.calcite.sql.SqlInsert)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLogicalSourceRowType</h4>
<pre class="methodSignature">protected&nbsp;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;getLogicalSourceRowType&#8203;(<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;sourceRowType,
<a href="../SqlInsert.html" title="class in org.apache.calcite.sql">SqlInsert</a>&nbsp;insert)</pre>
</li>
</ul>
<a id="checkTypeAssignment(org.apache.calcite.rel.type.RelDataType,org.apache.calcite.rel.type.RelDataType,org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkTypeAssignment</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;checkTypeAssignment&#8203;(<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;sourceRowType,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetRowType,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;query)</pre>
</li>
</ul>
<a id="getNthExpr(org.apache.calcite.sql.SqlNode,int,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNthExpr</h4>
<pre class="methodSignature">private&nbsp;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;getNthExpr&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;query,
int&nbsp;ordinal,
int&nbsp;sourceCount)</pre>
<div class="block">Locates the n'th expression in an INSERT or UPDATE query.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>query</code> - Query</dd>
<dd><code>ordinal</code> - Ordinal of expression</dd>
<dd><code>sourceCount</code> - Number of expressions</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Ordinal'th expression, never null</dd>
</dl>
</li>
</ul>
<a id="validateDelete(org.apache.calcite.sql.SqlDelete)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateDelete</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;validateDelete&#8203;(<a href="../SqlDelete.html" title="class in org.apache.calcite.sql">SqlDelete</a>&nbsp;call)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#validateDelete(org.apache.calcite.sql.SqlDelete)">SqlValidator</a></code></span></div>
<div class="block">Validates a DELETE statement.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#validateDelete(org.apache.calcite.sql.SqlDelete)">validateDelete</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>call</code> - DELETE statement</dd>
</dl>
</li>
</ul>
<a id="validateUpdate(org.apache.calcite.sql.SqlUpdate)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateUpdate</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;validateUpdate&#8203;(<a href="../SqlUpdate.html" title="class in org.apache.calcite.sql">SqlUpdate</a>&nbsp;call)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#validateUpdate(org.apache.calcite.sql.SqlUpdate)">SqlValidator</a></code></span></div>
<div class="block">Validates an UPDATE statement.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#validateUpdate(org.apache.calcite.sql.SqlUpdate)">validateUpdate</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>call</code> - UPDATE statement</dd>
</dl>
</li>
</ul>
<a id="validateMerge(org.apache.calcite.sql.SqlMerge)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateMerge</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;validateMerge&#8203;(<a href="../SqlMerge.html" title="class in org.apache.calcite.sql">SqlMerge</a>&nbsp;call)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#validateMerge(org.apache.calcite.sql.SqlMerge)">SqlValidator</a></code></span></div>
<div class="block">Validates a MERGE statement.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#validateMerge(org.apache.calcite.sql.SqlMerge)">validateMerge</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>call</code> - MERGE statement</dd>
</dl>
</li>
</ul>
<a id="validateAccess(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorTable,org.apache.calcite.sql.SqlAccessEnum)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateAccess</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;validateAccess&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
<a href="SqlValidatorTable.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorTable</a>&nbsp;table,
<a href="../SqlAccessEnum.html" title="enum in org.apache.calcite.sql">SqlAccessEnum</a>&nbsp;requiredAccess)</pre>
<div class="block">Validates access to a table.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>table</code> - Table</dd>
<dd><code>requiredAccess</code> - Access requested on table</dd>
</dl>
</li>
</ul>
<a id="validateValues(org.apache.calcite.sql.SqlCall,org.apache.calcite.rel.type.RelDataType,org.apache.calcite.sql.validate.SqlValidatorScope)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateValues</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;validateValues&#8203;(<a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;node,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetRowType,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</pre>
<div class="block">Validates a VALUES clause.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>node</code> - Values clause</dd>
<dd><code>targetRowType</code> - Row type which expression must conform to</dd>
<dd><code>scope</code> - Scope within which clause occurs</dd>
</dl>
</li>
</ul>
<a id="validateDataType(org.apache.calcite.sql.SqlDataTypeSpec)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateDataType</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;validateDataType&#8203;(<a href="../SqlDataTypeSpec.html" title="class in org.apache.calcite.sql">SqlDataTypeSpec</a>&nbsp;dataType)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#validateDataType(org.apache.calcite.sql.SqlDataTypeSpec)">SqlValidator</a></code></span></div>
<div class="block">Validates a data type expression.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#validateDataType(org.apache.calcite.sql.SqlDataTypeSpec)">validateDataType</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>dataType</code> - Data type</dd>
</dl>
</li>
</ul>
<a id="validateDynamicParam(org.apache.calcite.sql.SqlDynamicParam)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateDynamicParam</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;validateDynamicParam&#8203;(<a href="../SqlDynamicParam.html" title="class in org.apache.calcite.sql">SqlDynamicParam</a>&nbsp;dynamicParam)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#validateDynamicParam(org.apache.calcite.sql.SqlDynamicParam)">SqlValidator</a></code></span></div>
<div class="block">Validates a dynamic parameter.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#validateDynamicParam(org.apache.calcite.sql.SqlDynamicParam)">validateDynamicParam</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>dynamicParam</code> - Dynamic parameter</dd>
</dl>
</li>
</ul>
<a id="getValidationErrorFunction()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getValidationErrorFunction</h4>
<pre class="methodSignature">public&nbsp;<a href="SqlValidatorImpl.ValidationErrorFunction.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl.ValidationErrorFunction</a>&nbsp;getValidationErrorFunction()</pre>
</li>
</ul>
<a id="newValidationError(org.apache.calcite.sql.SqlNode,org.apache.calcite.runtime.Resources.ExInst)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newValidationError</h4>
<pre class="methodSignature">public&nbsp;<a href="../../runtime/CalciteContextException.html" title="class in org.apache.calcite.runtime">CalciteContextException</a>&nbsp;newValidationError&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
<a href="../../runtime/Resources.ExInst.html" title="class in org.apache.calcite.runtime">Resources.ExInst</a>&lt;<a href="SqlValidatorException.html" title="class in org.apache.calcite.sql.validate">SqlValidatorException</a>&gt;&nbsp;e)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#newValidationError(org.apache.calcite.sql.SqlNode,org.apache.calcite.runtime.Resources.ExInst)">SqlValidator</a></code></span></div>
<div class="block">Adds "line x, column y" context to a validator exception.
<p>Note that the input exception is checked (it derives from
<code>Exception</code>) and the output exception is unchecked (it derives from
<code>RuntimeException</code>). This is intentional -- it should remind code
authors to provide context for their validation errors.</p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#newValidationError(org.apache.calcite.sql.SqlNode,org.apache.calcite.runtime.Resources.ExInst)">newValidationError</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>node</code> - The place where the exception occurred, not null</dd>
<dd><code>e</code> - The validation error</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Exception containing positional information, never null</dd>
</dl>
</li>
</ul>
<a id="getWindowByName(org.apache.calcite.sql.SqlIdentifier,org.apache.calcite.sql.validate.SqlValidatorScope)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getWindowByName</h4>
<pre class="methodSignature">protected&nbsp;<a href="../SqlWindow.html" title="class in org.apache.calcite.sql">SqlWindow</a>&nbsp;getWindowByName&#8203;(<a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql">SqlIdentifier</a>&nbsp;id,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</pre>
</li>
</ul>
<a id="resolveWindow(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>resolveWindow</h4>
<pre class="methodSignature">public&nbsp;<a href="../SqlWindow.html" title="class in org.apache.calcite.sql">SqlWindow</a>&nbsp;resolveWindow&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;windowOrRef,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
boolean&nbsp;populateBounds)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#resolveWindow(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope,boolean)">SqlValidator</a></code></span></div>
<div class="block">Converts a window specification or window name into a fully-resolved
window specification. For example, in <code>SELECT sum(x) OVER (PARTITION
BY x ORDER BY y), sum(y) OVER w1, sum(z) OVER (w ORDER BY y) FROM t
WINDOW w AS (PARTITION BY x)</code> all aggregations have the same
resolved window specification <code>(PARTITION BY x ORDER BY y)</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#resolveWindow(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope,boolean)">resolveWindow</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>windowOrRef</code> - Either the name of a window (a <a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql"><code>SqlIdentifier</code></a>)
or a window specification (a <a href="../SqlWindow.html" title="class in org.apache.calcite.sql"><code>SqlWindow</code></a>).</dd>
<dd><code>scope</code> - Scope in which to resolve window names</dd>
<dd><code>populateBounds</code> - Whether to populate bounds. Doing so may alter the
definition of the window. It is recommended that
populate bounds when translating to physical algebra,
but not when validating.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A window</dd>
</dl>
</li>
</ul>
<a id="getOriginal(org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOriginal</h4>
<pre class="methodSignature">public&nbsp;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;getOriginal&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;expr)</pre>
</li>
</ul>
<a id="setOriginal(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setOriginal</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setOriginal&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;expr,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;original)</pre>
</li>
</ul>
<a id="lookupFieldNamespace(org.apache.calcite.rel.type.RelDataType,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>lookupFieldNamespace</h4>
<pre class="methodSignature"><a href="SqlValidatorNamespace.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorNamespace</a>&nbsp;lookupFieldNamespace&#8203;(<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;rowType,
java.lang.String&nbsp;name)</pre>
</li>
</ul>
<a id="validateWindow(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlCall)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateWindow</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;validateWindow&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;windowOrId,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<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="SqlValidator.html#validateWindow(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlCall)">SqlValidator</a></code></span></div>
<div class="block">Validates the right-hand side of an OVER expression. It might be either
an <a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql"><code>identifier</code></a> referencing a window, or an
<a href="../SqlWindow.html" title="class in org.apache.calcite.sql"><code>inline window specification</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#validateWindow(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlCall)">validateWindow</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>windowOrId</code> - SqlNode that can be either SqlWindow with all the
components of a window spec or a SqlIdentifier with the
name of a window spec.</dd>
<dd><code>scope</code> - Naming scope</dd>
<dd><code>call</code> - the SqlNode if a function call if the window is attached
to one.</dd>
</dl>
</li>
</ul>
<a id="validateMatchRecognize(org.apache.calcite.sql.SqlCall)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateMatchRecognize</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;validateMatchRecognize&#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="SqlValidator.html#validateMatchRecognize(org.apache.calcite.sql.SqlCall)">SqlValidator</a></code></span></div>
<div class="block">Validates a MATCH_RECOGNIZE clause.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#validateMatchRecognize(org.apache.calcite.sql.SqlCall)">validateMatchRecognize</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>call</code> - MATCH_RECOGNIZE clause</dd>
</dl>
</li>
</ul>
<a id="validateMeasure(org.apache.calcite.sql.SqlMatchRecognize,org.apache.calcite.sql.validate.MatchRecognizeScope,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateMeasure</h4>
<pre class="methodSignature">private&nbsp;java.util.List&lt;java.util.Map.Entry&lt;java.lang.String,&#8203;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&gt;&nbsp;validateMeasure&#8203;(<a href="../SqlMatchRecognize.html" title="class in org.apache.calcite.sql">SqlMatchRecognize</a>&nbsp;mr,
<a href="MatchRecognizeScope.html" title="class in org.apache.calcite.sql.validate">MatchRecognizeScope</a>&nbsp;scope,
boolean&nbsp;allRows)</pre>
</li>
</ul>
<a id="navigationInMeasure(org.apache.calcite.sql.SqlNode,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>navigationInMeasure</h4>
<pre class="methodSignature">private&nbsp;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;navigationInMeasure&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
boolean&nbsp;allRows)</pre>
</li>
</ul>
<a id="validateDefinitions(org.apache.calcite.sql.SqlMatchRecognize,org.apache.calcite.sql.validate.MatchRecognizeScope)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateDefinitions</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;validateDefinitions&#8203;(<a href="../SqlMatchRecognize.html" title="class in org.apache.calcite.sql">SqlMatchRecognize</a>&nbsp;mr,
<a href="MatchRecognizeScope.html" title="class in org.apache.calcite.sql.validate">MatchRecognizeScope</a>&nbsp;scope)</pre>
</li>
</ul>
<a id="alias(org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>alias</h4>
<pre class="methodSignature">private static&nbsp;java.lang.String&nbsp;alias&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;item)</pre>
<div class="block">Returns the alias of a "expr AS alias" expression.</div>
</li>
</ul>
<a id="navigationInDefine(org.apache.calcite.sql.SqlNode,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>navigationInDefine</h4>
<pre class="methodSignature">private&nbsp;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;navigationInDefine&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
java.lang.String&nbsp;alpha)</pre>
<div class="block">Checks that all pattern variables within a function are the same,
and canonizes expressions such as <code>PREV(B.price)</code> to
<code>LAST(B.price, 0)</code>.</div>
</li>
</ul>
<a id="validateAggregateParams(org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.SqlNodeList,org.apache.calcite.sql.validate.SqlValidatorScope)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateAggregateParams</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;validateAggregateParams&#8203;(<a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;aggCall,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;filter,
<a href="../SqlNodeList.html" title="class in org.apache.calcite.sql">SqlNodeList</a>&nbsp;orderList,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#validateAggregateParams(org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.SqlNodeList,org.apache.calcite.sql.validate.SqlValidatorScope)">SqlValidator</a></code></span></div>
<div class="block">Validates parameters for aggregate function.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#validateAggregateParams(org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.SqlNodeList,org.apache.calcite.sql.validate.SqlValidatorScope)">validateAggregateParams</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>aggCall</code> - Call to aggregate function</dd>
<dd><code>filter</code> - Filter (<code>FILTER (WHERE)</code> clause), or null</dd>
<dd><code>orderList</code> - Ordering specification (<code>WITHING GROUP</code> clause),
or null</dd>
<dd><code>scope</code> - Syntactic scope</dd>
</dl>
</li>
</ul>
<a id="validateCall(org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.validate.SqlValidatorScope)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateCall</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;validateCall&#8203;(<a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#validateCall(org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.validate.SqlValidatorScope)">SqlValidator</a></code></span></div>
<div class="block">Validates a call to an operator.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#validateCall(org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.validate.SqlValidatorScope)">validateCall</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>call</code> - Operator call</dd>
<dd><code>scope</code> - Naming scope</dd>
</dl>
</li>
</ul>
<a id="validateFeature(org.apache.calcite.runtime.Feature,org.apache.calcite.sql.parser.SqlParserPos)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateFeature</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;validateFeature&#8203;(<a href="../../runtime/Feature.html" title="class in org.apache.calcite.runtime">Feature</a>&nbsp;feature,
<a href="../parser/SqlParserPos.html" title="class in org.apache.calcite.sql.parser">SqlParserPos</a>&nbsp;context)</pre>
<div class="block">Validates that a particular feature is enabled. By default, all features
are enabled; subclasses may override this method to be more
discriminating.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>feature</code> - feature being used, represented as a resource instance</dd>
<dd><code>context</code> - parser position context for error reporting, or null if</dd>
</dl>
</li>
</ul>
<a id="expand(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>expand</h4>
<pre class="methodSignature">public&nbsp;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;expand&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;expr,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#expand(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope)">SqlValidator</a></code></span></div>
<div class="block">Expands an expression.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#expand(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope)">expand</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>expr</code> - Expression</dd>
<dd><code>scope</code> - Scope</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Expanded expression</dd>
</dl>
</li>
</ul>
<a id="expandGroupByOrHavingExpr(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlSelect,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>expandGroupByOrHavingExpr</h4>
<pre class="methodSignature">public&nbsp;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;expandGroupByOrHavingExpr&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;expr,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select,
boolean&nbsp;havingExpression)</pre>
</li>
</ul>
<a id="isSystemField(org.apache.calcite.rel.type.RelDataTypeField)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isSystemField</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isSystemField&#8203;(<a href="../../rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&nbsp;field)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#isSystemField(org.apache.calcite.rel.type.RelDataTypeField)">SqlValidator</a></code></span></div>
<div class="block">Returns whether a field is a system field. Such fields may have
particular properties such as sortedness and nullability.
<p>In the default implementation, always returns <code>false</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#isSystemField(org.apache.calcite.rel.type.RelDataTypeField)">isSystemField</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>field</code> - Field</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>whether field is a system field</dd>
</dl>
</li>
</ul>
<a id="getFieldOrigins(org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFieldOrigins</h4>
<pre class="methodSignature">public&nbsp;java.util.List&lt;java.util.List&lt;java.lang.String&gt;&gt;&nbsp;getFieldOrigins&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;sqlQuery)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#getFieldOrigins(org.apache.calcite.sql.SqlNode)">SqlValidator</a></code></span></div>
<div class="block">Returns a description of how each field in the row type maps to a
catalog, schema, table and column in the schema.
<p>The returned list is never null, and has one element for each field
in the row type. Each element is a list of four elements (catalog,
schema, table, column), or may be null if the column is an expression.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#getFieldOrigins(org.apache.calcite.sql.SqlNode)">getFieldOrigins</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sqlQuery</code> - Query</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Description of how each field in the row type maps to a schema
object</dd>
</dl>
</li>
</ul>
<a id="getFieldOrigin(org.apache.calcite.sql.SqlNode,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFieldOrigin</h4>
<pre class="methodSignature">private&nbsp;java.util.List&lt;java.lang.String&gt;&nbsp;getFieldOrigin&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;sqlQuery,
int&nbsp;i)</pre>
</li>
</ul>
<a id="getParameterRowType(org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParameterRowType</h4>
<pre class="methodSignature">public&nbsp;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;getParameterRowType&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;sqlQuery)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#getParameterRowType(org.apache.calcite.sql.SqlNode)">SqlValidator</a></code></span></div>
<div class="block">Returns a record type that contains the name and type of each parameter.
Returns a record type with no fields if there are no parameters.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#getParameterRowType(org.apache.calcite.sql.SqlNode)">getParameterRowType</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sqlQuery</code> - Query</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Record type</dd>
</dl>
</li>
</ul>
<a id="validateColumnListParams(org.apache.calcite.sql.SqlFunction,java.util.List,java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateColumnListParams</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;validateColumnListParams&#8203;(<a href="../SqlFunction.html" title="class in org.apache.calcite.sql">SqlFunction</a>&nbsp;function,
java.util.List&lt;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&nbsp;argTypes,
java.util.List&lt;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;operands)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#validateColumnListParams(org.apache.calcite.sql.SqlFunction,java.util.List,java.util.List)">SqlValidator</a></code></span></div>
<div class="block">Validates a COLUMN_LIST parameter</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlValidator.html#validateColumnListParams(org.apache.calcite.sql.SqlFunction,java.util.List,java.util.List)">validateColumnListParams</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>function</code> - function containing COLUMN_LIST parameter</dd>
<dd><code>argTypes</code> - function arguments</dd>
<dd><code>operands</code> - operands passed into the function call</dd>
</dl>
</li>
</ul>
<a id="isPhysicalNavigation(org.apache.calcite.sql.SqlKind)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isPhysicalNavigation</h4>
<pre class="methodSignature">private static&nbsp;boolean&nbsp;isPhysicalNavigation&#8203;(<a href="../SqlKind.html" title="enum in org.apache.calcite.sql">SqlKind</a>&nbsp;kind)</pre>
</li>
</ul>
<a id="isLogicalNavigation(org.apache.calcite.sql.SqlKind)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isLogicalNavigation</h4>
<pre class="methodSignature">private static&nbsp;boolean&nbsp;isLogicalNavigation&#8203;(<a href="../SqlKind.html" title="enum in org.apache.calcite.sql">SqlKind</a>&nbsp;kind)</pre>
</li>
</ul>
<a id="isAggregation(org.apache.calcite.sql.SqlKind)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isAggregation</h4>
<pre class="methodSignature">private static&nbsp;boolean&nbsp;isAggregation&#8203;(<a href="../SqlKind.html" title="enum in org.apache.calcite.sql">SqlKind</a>&nbsp;kind)</pre>
</li>
</ul>
<a id="isRunningOrFinal(org.apache.calcite.sql.SqlKind)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isRunningOrFinal</h4>
<pre class="methodSignature">private static&nbsp;boolean&nbsp;isRunningOrFinal&#8203;(<a href="../SqlKind.html" title="enum in org.apache.calcite.sql">SqlKind</a>&nbsp;kind)</pre>
</li>
</ul>
<a id="isSingleVarRequired(org.apache.calcite.sql.SqlKind)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>isSingleVarRequired</h4>
<pre class="methodSignature">private static&nbsp;boolean&nbsp;isSingleVarRequired&#8203;(<a href="../SqlKind.html" title="enum in org.apache.calcite.sql">SqlKind</a>&nbsp;kind)</pre>
</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/SqlValidatorImpl.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>