blob: c1b2ed16697a8af229f77585c7991894b8c9cd9b [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>SqlAdvisorValidator (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="SqlAdvisorValidator (Apache Calcite API)";
}
}
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10};
var tabs = {65535:["t0","All 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/SqlAdvisorValidator.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.advise</a></div>
<h2 title="Class SqlAdvisorValidator" class="title">Class SqlAdvisorValidator</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li><a href="../validate/SqlValidatorImpl.html" title="class in org.apache.calcite.sql.validate">org.apache.calcite.sql.validate.SqlValidatorImpl</a></li>
<li>
<ul class="inheritance">
<li>org.apache.calcite.sql.advise.SqlAdvisorValidator</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="../validate/SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code>, <code><a href="../validate/SqlValidatorWithHints.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorWithHints</a></code></dd>
</dl>
<hr>
<pre>public class <span class="typeNameLabel">SqlAdvisorValidator</span>
extends <a href="../validate/SqlValidatorImpl.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl</a></pre>
<div class="block"><code>SqlAdvisorValidator</code> is used by <a href="SqlAdvisor.html" title="class in org.apache.calcite.sql.advise"><code>SqlAdvisor</code></a> to traverse
the parse tree of a SQL statement, not for validation purpose but for setting
up the scopes and namespaces to facilitate retrieval of SQL statement
completion hints.</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>
<ul class="blockList">
<li class="blockList"><a id="nested.classes.inherited.from.class.org.apache.calcite.sql.validate.SqlValidatorImpl">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.calcite.sql.validate.<a href="../validate/SqlValidatorImpl.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl</a></h3>
<code><a href="../validate/SqlValidatorImpl.DmlNamespace.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl.DmlNamespace</a>, <a href="../validate/SqlValidatorImpl.FunctionParamInfo.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl.FunctionParamInfo</a>, <a href="../validate/SqlValidatorImpl.IdInfo.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl.IdInfo</a>, <a href="../validate/SqlValidatorImpl.Status.html" title="enum in org.apache.calcite.sql.validate">SqlValidatorImpl.Status</a></code></li>
</ul>
</li>
</ul>
</section>
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private java.util.Set&lt;<a href="../validate/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="#activeNamespaces">activeNamespaces</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="#emptyStructType">emptyStructType</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.org.apache.calcite.sql.validate.SqlValidatorImpl">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.calcite.sql.validate.<a href="../validate/SqlValidatorImpl.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl</a></h3>
<code><a href="../validate/SqlValidatorImpl.html#expandColumnReferences">expandColumnReferences</a>, <a href="../validate/SqlValidatorImpl.html#expandIdentifiers">expandIdentifiers</a>, <a href="../validate/SqlValidatorImpl.html#functionCallStack">functionCallStack</a>, <a href="../validate/SqlValidatorImpl.html#idPositions">idPositions</a>, <a href="../validate/SqlValidatorImpl.html#namespaces">namespaces</a>, <a href="../validate/SqlValidatorImpl.html#scopes">scopes</a>, <a href="../validate/SqlValidatorImpl.html#TRACER">TRACER</a>, <a href="../validate/SqlValidatorImpl.html#typeFactory">typeFactory</a>, <a href="../validate/SqlValidatorImpl.html#unknownType">unknownType</a>, <a href="../validate/SqlValidatorImpl.html#UPDATE_ANON_PREFIX">UPDATE_ANON_PREFIX</a>, <a href="../validate/SqlValidatorImpl.html#UPDATE_SRC_ALIAS">UPDATE_SRC_ALIAS</a>, <a href="../validate/SqlValidatorImpl.html#UPDATE_TGT_ALIAS">UPDATE_TGT_ALIAS</a></code></li>
</ul>
</li>
</ul>
</section>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.apache.calcite.sql.SqlOperatorTable,org.apache.calcite.sql.validate.SqlValidatorCatalogReader,org.apache.calcite.rel.type.RelDataTypeFactory,org.apache.calcite.sql.validate.SqlConformance)">SqlAdvisorValidator</a></span>&#8203;(<a href="../SqlOperatorTable.html" title="interface in org.apache.calcite.sql">SqlOperatorTable</a>&nbsp;opTab,
<a href="../validate/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="../validate/SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a>&nbsp;conformance)</code></th>
<td class="colLast">
<div class="block">Creates a SqlAdvisor 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="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><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="../validate/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">Calls the parent class method and mask Farrago exception thrown.</div>
</td>
</tr>
<tr id="i1" 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="../validate/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="i2" 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="#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="i3" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#registerId(org.apache.calcite.sql.SqlIdentifier,org.apache.calcite.sql.validate.SqlValidatorScope)">registerId</a></span>&#8203;(<a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql">SqlIdentifier</a>&nbsp;id,
<a href="../validate/SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i4" 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="i5" class="rowColor">
<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="../validate/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="i6" class="altColor">
<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">
<div class="block">Calls the parent class method and masks Farrago exception thrown.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#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="../validate/SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</code></th>
<td class="colLast">
<div class="block">Registers the identifier and its scope into a map keyed by ParserPosition.</div>
</td>
</tr>
<tr id="i8" 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="../validate/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="i9" 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="../validate/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="i10" 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="../validate/SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i11" 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">
<div class="block">Calls the parent class method and masks Farrago exception thrown.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.apache.calcite.sql.validate.SqlValidatorImpl">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.calcite.sql.validate.<a href="../validate/SqlValidatorImpl.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl</a></h3>
<code><a href="../validate/SqlValidatorImpl.html#addToSelectList(java.util.List,java.util.Set,java.util.List,org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SelectScope,boolean)">addToSelectList</a>, <a href="../validate/SqlValidatorImpl.html#checkTypeAssignment(org.apache.calcite.rel.type.RelDataType,org.apache.calcite.rel.type.RelDataType,org.apache.calcite.sql.SqlNode)">checkTypeAssignment</a>, <a href="../validate/SqlValidatorImpl.html#createMatchRecognizeNameSpace(org.apache.calcite.sql.SqlMatchRecognize,org.apache.calcite.sql.SqlNode)">createMatchRecognizeNameSpace</a>, <a href="../validate/SqlValidatorImpl.html#createSelectNamespace(org.apache.calcite.sql.SqlSelect,org.apache.calcite.sql.SqlNode)">createSelectNamespace</a>, <a href="../validate/SqlValidatorImpl.html#createSetopNamespace(org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.SqlNode)">createSetopNamespace</a>, <a href="../validate/SqlValidatorImpl.html#createSourceSelectForDelete(org.apache.calcite.sql.SqlDelete)">createSourceSelectForDelete</a>, <a href="../validate/SqlValidatorImpl.html#createSourceSelectForUpdate(org.apache.calcite.sql.SqlUpdate)">createSourceSelectForUpdate</a>, <a href="../validate/SqlValidatorImpl.html#createTargetRowType(org.apache.calcite.sql.validate.SqlValidatorTable,org.apache.calcite.sql.SqlNodeList,boolean)">createTargetRowType</a>, <a href="../validate/SqlValidatorImpl.html#declareCursor(org.apache.calcite.sql.SqlSelect,org.apache.calcite.sql.validate.SqlValidatorScope)">declareCursor</a>, <a href="../validate/SqlValidatorImpl.html#deriveAlias(org.apache.calcite.sql.SqlNode,int)">deriveAlias</a>, <a href="../validate/SqlValidatorImpl.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>, <a href="../validate/SqlValidatorImpl.html#expandGroupByOrHavingExpr(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlSelect,boolean)">expandGroupByOrHavingExpr</a>, <a href="../validate/SqlValidatorImpl.html#expandStar(org.apache.calcite.sql.SqlNodeList,org.apache.calcite.sql.SqlSelect,boolean)">expandStar</a>, <a href="../validate/SqlValidatorImpl.html#getAggregate(org.apache.calcite.sql.SqlSelect)">getAggregate</a>, <a href="../validate/SqlValidatorImpl.html#getCatalogReader()">getCatalogReader</a>, <a href="../validate/SqlValidatorImpl.html#getColumnReferenceExpansion()">getColumnReferenceExpansion</a>, <a href="../validate/SqlValidatorImpl.html#getConformance()">getConformance</a>, <a href="../validate/SqlValidatorImpl.html#getCursorScope(org.apache.calcite.sql.SqlSelect)">getCursorScope</a>, <a href="../validate/SqlValidatorImpl.html#getDefaultNullCollation()">getDefaultNullCollation</a>, <a href="../validate/SqlValidatorImpl.html#getEmptyScope()">getEmptyScope</a>, <a href="../validate/SqlValidatorImpl.html#getFieldOrigins(org.apache.calcite.sql.SqlNode)">getFieldOrigins</a>, <a href="../validate/SqlValidatorImpl.html#getFromScope(org.apache.calcite.sql.SqlSelect)">getFromScope</a>, <a href="../validate/SqlValidatorImpl.html#getGroupScope(org.apache.calcite.sql.SqlSelect)">getGroupScope</a>, <a href="../validate/SqlValidatorImpl.html#getHavingScope(org.apache.calcite.sql.SqlSelect)">getHavingScope</a>, <a href="../validate/SqlValidatorImpl.html#getJoinScope(org.apache.calcite.sql.SqlNode)">getJoinScope</a>, <a href="../validate/SqlValidatorImpl.html#getLogicalSourceRowType(org.apache.calcite.rel.type.RelDataType,org.apache.calcite.sql.SqlInsert)">getLogicalSourceRowType</a>, <a href="../validate/SqlValidatorImpl.html#getLogicalTargetRowType(org.apache.calcite.rel.type.RelDataType,org.apache.calcite.sql.SqlInsert)">getLogicalTargetRowType</a>, <a href="../validate/SqlValidatorImpl.html#getMatchRecognizeScope(org.apache.calcite.sql.SqlMatchRecognize)">getMatchRecognizeScope</a>, <a href="../validate/SqlValidatorImpl.html#getNamespace(org.apache.calcite.sql.SqlNode)">getNamespace</a>, <a href="../validate/SqlValidatorImpl.html#getOperatorTable()">getOperatorTable</a>, <a href="../validate/SqlValidatorImpl.html#getOrderScope(org.apache.calcite.sql.SqlSelect)">getOrderScope</a>, <a href="../validate/SqlValidatorImpl.html#getOriginal(org.apache.calcite.sql.SqlNode)">getOriginal</a>, <a href="../validate/SqlValidatorImpl.html#getOverScope(org.apache.calcite.sql.SqlNode)">getOverScope</a>, <a href="../validate/SqlValidatorImpl.html#getParameterRowType(org.apache.calcite.sql.SqlNode)">getParameterRowType</a>, <a href="../validate/SqlValidatorImpl.html#getParentCursor(java.lang.String)">getParentCursor</a>, <a href="../validate/SqlValidatorImpl.html#getRawSelectScope(org.apache.calcite.sql.SqlSelect)">getRawSelectScope</a>, <a href="../validate/SqlValidatorImpl.html#getSelectScope(org.apache.calcite.sql.SqlSelect)">getSelectScope</a>, <a href="../validate/SqlValidatorImpl.html#getSelfJoinExprForUpdate(org.apache.calcite.sql.SqlNode,java.lang.String)">getSelfJoinExprForUpdate</a>, <a href="../validate/SqlValidatorImpl.html#getTypeCoercion()">getTypeCoercion</a>, <a href="../validate/SqlValidatorImpl.html#getTypeFactory()">getTypeFactory</a>, <a href="../validate/SqlValidatorImpl.html#getUnknownType()">getUnknownType</a>, <a href="../validate/SqlValidatorImpl.html#getValidatedNodeType(org.apache.calcite.sql.SqlNode)">getValidatedNodeType</a>, <a href="../validate/SqlValidatorImpl.html#getValidatedNodeTypeIfKnown(org.apache.calcite.sql.SqlNode)">getValidatedNodeTypeIfKnown</a>, <a href="../validate/SqlValidatorImpl.html#getValidationErrorFunction()">getValidationErrorFunction</a>, <a href="../validate/SqlValidatorImpl.html#getWhereScope(org.apache.calcite.sql.SqlSelect)">getWhereScope</a>, <a href="../validate/SqlValidatorImpl.html#getWindowByName(org.apache.calcite.sql.SqlIdentifier,org.apache.calcite.sql.validate.SqlValidatorScope)">getWindowByName</a>, <a href="../validate/SqlValidatorImpl.html#getWithScope(org.apache.calcite.sql.SqlNode)">getWithScope</a>, <a href="../validate/SqlValidatorImpl.html#handleUnresolvedFunction(org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.SqlFunction,java.util.List,java.util.List)">handleUnresolvedFunction</a>, <a href="../validate/SqlValidatorImpl.html#inferUnknownTypes(org.apache.calcite.rel.type.RelDataType,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlNode)">inferUnknownTypes</a>, <a href="../validate/SqlValidatorImpl.html#isAggregate(org.apache.calcite.sql.SqlNode)">isAggregate</a>, <a href="../validate/SqlValidatorImpl.html#isAggregate(org.apache.calcite.sql.SqlSelect)">isAggregate</a>, <a href="../validate/SqlValidatorImpl.html#isNestedAggregateWindow(org.apache.calcite.sql.SqlNode)">isNestedAggregateWindow</a>, <a href="../validate/SqlValidatorImpl.html#isOverAggregateWindow(org.apache.calcite.sql.SqlNode)">isOverAggregateWindow</a>, <a href="../validate/SqlValidatorImpl.html#isSystemField(org.apache.calcite.rel.type.RelDataTypeField)">isSystemField</a>, <a href="../validate/SqlValidatorImpl.html#isTypeCoercionEnabled()">isTypeCoercionEnabled</a>, <a href="../validate/SqlValidatorImpl.html#lookupHints(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.parser.SqlParserPos)">lookupHints</a>, <a href="../validate/SqlValidatorImpl.html#lookupNameCompletionHints(org.apache.calcite.sql.validate.SqlValidatorScope,java.util.List,org.apache.calcite.sql.parser.SqlParserPos,java.util.Collection)">lookupNameCompletionHints</a>, <a href="../validate/SqlValidatorImpl.html#lookupQualifiedName(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.parser.SqlParserPos)">lookupQualifiedName</a>, <a href="../validate/SqlValidatorImpl.html#makeNullaryCall(org.apache.calcite.sql.SqlIdentifier)">makeNullaryCall</a>, <a href="../validate/SqlValidatorImpl.html#newValidationError(org.apache.calcite.sql.SqlNode,org.apache.calcite.runtime.Resources.ExInst)">newValidationError</a>, <a href="../validate/SqlValidatorImpl.html#performUnconditionalRewrites(org.apache.calcite.sql.SqlNode,boolean)">performUnconditionalRewrites</a>, <a href="../validate/SqlValidatorImpl.html#popFunctionCall()">popFunctionCall</a>, <a href="../validate/SqlValidatorImpl.html#pushFunctionCall()">pushFunctionCall</a>, <a href="../validate/SqlValidatorImpl.html#registerNamespace(org.apache.calcite.sql.validate.SqlValidatorScope,java.lang.String,org.apache.calcite.sql.validate.SqlValidatorNamespace,boolean)">registerNamespace</a>, <a href="../validate/SqlValidatorImpl.html#removeValidatedNodeType(org.apache.calcite.sql.SqlNode)">removeValidatedNodeType</a>, <a href="../validate/SqlValidatorImpl.html#resolveWindow(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope,boolean)">resolveWindow</a>, <a href="../validate/SqlValidatorImpl.html#setCallRewrite(boolean)">setCallRewrite</a>, <a href="../validate/SqlValidatorImpl.html#setColumnReferenceExpansion(boolean)">setColumnReferenceExpansion</a>, <a href="../validate/SqlValidatorImpl.html#setDefaultNullCollation(org.apache.calcite.config.NullCollation)">setDefaultNullCollation</a>, <a href="../validate/SqlValidatorImpl.html#setEnableTypeCoercion(boolean)">setEnableTypeCoercion</a>, <a href="../validate/SqlValidatorImpl.html#setIdentifierExpansion(boolean)">setIdentifierExpansion</a>, <a href="../validate/SqlValidatorImpl.html#setOriginal(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.SqlNode)">setOriginal</a>, <a href="../validate/SqlValidatorImpl.html#setTypeCoercion(org.apache.calcite.sql.validate.implicit.TypeCoercion)">setTypeCoercion</a>, <a href="../validate/SqlValidatorImpl.html#setValidatedNodeType(org.apache.calcite.sql.SqlNode,org.apache.calcite.rel.type.RelDataType)">setValidatedNodeType</a>, <a href="../validate/SqlValidatorImpl.html#shouldAllowIntermediateOrderBy()">shouldAllowIntermediateOrderBy</a>, <a href="../validate/SqlValidatorImpl.html#shouldExpandIdentifiers()">shouldExpandIdentifiers</a>, <a href="../validate/SqlValidatorImpl.html#validate(org.apache.calcite.sql.SqlNode)">validate</a>, <a href="../validate/SqlValidatorImpl.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>, <a href="../validate/SqlValidatorImpl.html#validateCall(org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.validate.SqlValidatorScope)">validateCall</a>, <a href="../validate/SqlValidatorImpl.html#validateColumnListParams(org.apache.calcite.sql.SqlFunction,java.util.List,java.util.List)">validateColumnListParams</a>, <a href="../validate/SqlValidatorImpl.html#validateDataType(org.apache.calcite.sql.SqlDataTypeSpec)">validateDataType</a>, <a href="../validate/SqlValidatorImpl.html#validateDelete(org.apache.calcite.sql.SqlDelete)">validateDelete</a>, <a href="../validate/SqlValidatorImpl.html#validateDynamicParam(org.apache.calcite.sql.SqlDynamicParam)">validateDynamicParam</a>, <a href="../validate/SqlValidatorImpl.html#validateFeature(org.apache.calcite.runtime.Feature,org.apache.calcite.sql.parser.SqlParserPos)">validateFeature</a>, <a href="../validate/SqlValidatorImpl.html#validateGroupClause(org.apache.calcite.sql.SqlSelect)">validateGroupClause</a>, <a href="../validate/SqlValidatorImpl.html#validateInsert(org.apache.calcite.sql.SqlInsert)">validateInsert</a>, <a href="../validate/SqlValidatorImpl.html#validateIntervalQualifier(org.apache.calcite.sql.SqlIntervalQualifier)">validateIntervalQualifier</a>, <a href="../validate/SqlValidatorImpl.html#validateJoin(org.apache.calcite.sql.SqlJoin,org.apache.calcite.sql.validate.SqlValidatorScope)">validateJoin</a>, <a href="../validate/SqlValidatorImpl.html#validateLiteral(org.apache.calcite.sql.SqlLiteral)">validateLiteral</a>, <a href="../validate/SqlValidatorImpl.html#validateMatchRecognize(org.apache.calcite.sql.SqlCall)">validateMatchRecognize</a>, <a href="../validate/SqlValidatorImpl.html#validateMerge(org.apache.calcite.sql.SqlMerge)">validateMerge</a>, <a href="../validate/SqlValidatorImpl.html#validateOrderList(org.apache.calcite.sql.SqlSelect)">validateOrderList</a>, <a href="../validate/SqlValidatorImpl.html#validateParameterizedExpression(org.apache.calcite.sql.SqlNode,java.util.Map)">validateParameterizedExpression</a>, <a href="../validate/SqlValidatorImpl.html#validateQuery(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.rel.type.RelDataType)">validateQuery</a>, <a href="../validate/SqlValidatorImpl.html#validateSelect(org.apache.calcite.sql.SqlSelect,org.apache.calcite.rel.type.RelDataType)">validateSelect</a>, <a href="../validate/SqlValidatorImpl.html#validateSelectList(org.apache.calcite.sql.SqlNodeList,org.apache.calcite.sql.SqlSelect,org.apache.calcite.rel.type.RelDataType)">validateSelectList</a>, <a href="../validate/SqlValidatorImpl.html#validateSequenceValue(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlIdentifier)">validateSequenceValue</a>, <a href="../validate/SqlValidatorImpl.html#validateUnnest(org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.rel.type.RelDataType)">validateUnnest</a>, <a href="../validate/SqlValidatorImpl.html#validateUpdate(org.apache.calcite.sql.SqlUpdate)">validateUpdate</a>, <a href="../validate/SqlValidatorImpl.html#validateValues(org.apache.calcite.sql.SqlCall,org.apache.calcite.rel.type.RelDataType,org.apache.calcite.sql.validate.SqlValidatorScope)">validateValues</a>, <a href="../validate/SqlValidatorImpl.html#validateWhereOrOn(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlNode,java.lang.String)">validateWhereOrOn</a>, <a href="../validate/SqlValidatorImpl.html#validateWindow(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlCall)">validateWindow</a>, <a href="../validate/SqlValidatorImpl.html#validateWindowClause(org.apache.calcite.sql.SqlSelect)">validateWindowClause</a>, <a href="../validate/SqlValidatorImpl.html#validateWith(org.apache.calcite.sql.SqlWith,org.apache.calcite.sql.validate.SqlValidatorScope)">validateWith</a>, <a href="../validate/SqlValidatorImpl.html#validateWithItem(org.apache.calcite.sql.SqlWithItem)">validateWithItem</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</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="activeNamespaces">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>activeNamespaces</h4>
<pre>private final&nbsp;java.util.Set&lt;<a href="../validate/SqlValidatorNamespace.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorNamespace</a>&gt; activeNamespaces</pre>
</li>
</ul>
<a id="emptyStructType">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>emptyStructType</h4>
<pre>private final&nbsp;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a> emptyStructType</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>SqlAdvisorValidator</h4>
<pre>public&nbsp;SqlAdvisorValidator&#8203;(<a href="../SqlOperatorTable.html" title="interface in org.apache.calcite.sql">SqlOperatorTable</a>&nbsp;opTab,
<a href="../validate/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="../validate/SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a>&nbsp;conformance)</pre>
<div class="block">Creates a SqlAdvisor 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="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="../validate/SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</pre>
<div class="block">Registers the identifier and its scope into a map keyed by ParserPosition.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../validate/SqlValidator.html#validateIdentifier(org.apache.calcite.sql.SqlIdentifier,org.apache.calcite.sql.validate.SqlValidatorScope)">validateIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../validate/SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../validate/SqlValidatorImpl.html#validateIdentifier(org.apache.calcite.sql.SqlIdentifier,org.apache.calcite.sql.validate.SqlValidatorScope)">validateIdentifier</a></code>&nbsp;in class&nbsp;<code><a href="../validate/SqlValidatorImpl.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl</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="registerId(org.apache.calcite.sql.SqlIdentifier,org.apache.calcite.sql.validate.SqlValidatorScope)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerId</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;registerId&#8203;(<a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql">SqlIdentifier</a>&nbsp;id,
<a href="../validate/SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</pre>
</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="../validate/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="../validate/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="../validate/SqlValidator.html#expand(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope)">expand</a></code>&nbsp;in interface&nbsp;<code><a href="../validate/SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../validate/SqlValidatorImpl.html#expand(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope)">expand</a></code>&nbsp;in class&nbsp;<code><a href="../validate/SqlValidatorImpl.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl</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="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="../validate/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="../validate/SqlValidator.html#expandOrderExpr(org.apache.calcite.sql.SqlSelect,org.apache.calcite.sql.SqlNode)">expandOrderExpr</a></code>&nbsp;in interface&nbsp;<code><a href="../validate/SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../validate/SqlValidatorImpl.html#expandOrderExpr(org.apache.calcite.sql.SqlSelect,org.apache.calcite.sql.SqlNode)">expandOrderExpr</a></code>&nbsp;in class&nbsp;<code><a href="../validate/SqlValidatorImpl.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl</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="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="../validate/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">Calls the parent class method and mask Farrago exception thrown.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../validate/SqlValidator.html#deriveType(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlNode)">deriveType</a></code>&nbsp;in interface&nbsp;<code><a href="../validate/SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../validate/SqlValidatorImpl.html#deriveType(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlNode)">deriveType</a></code>&nbsp;in class&nbsp;<code><a href="../validate/SqlValidatorImpl.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>scope</code> - Syntactic scope</dd>
<dd><code>operand</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="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="../validate/SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../validate/SqlValidatorImpl.html#validateFrom(org.apache.calcite.sql.SqlNode,org.apache.calcite.rel.type.RelDataType,org.apache.calcite.sql.validate.SqlValidatorScope)">SqlValidatorImpl</a></code></span></div>
<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="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../validate/SqlValidatorImpl.html#validateFrom(org.apache.calcite.sql.SqlNode,org.apache.calcite.rel.type.RelDataType,org.apache.calcite.sql.validate.SqlValidatorScope)">validateFrom</a></code>&nbsp;in class&nbsp;<code><a href="../validate/SqlValidatorImpl.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl</a></code></dd>
<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="../validate/SqlValidatorImpl.html#unknownType"><code>SqlValidatorImpl.unknownType</code></a> if not fussy. Must not be null.</dd>
<dd><code>scope</code> - Scope</dd>
</dl>
</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>
<div class="block">Calls the parent class method and masks Farrago exception thrown.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../validate/SqlValidatorImpl.html#validateWhereClause(org.apache.calcite.sql.SqlSelect)">validateWhereClause</a></code>&nbsp;in class&nbsp;<code><a href="../validate/SqlValidatorImpl.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl</a></code></dd>
</dl>
</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>
<div class="block">Calls the parent class method and masks Farrago exception thrown.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../validate/SqlValidatorImpl.html#validateHavingClause(org.apache.calcite.sql.SqlSelect)">validateHavingClause</a></code>&nbsp;in class&nbsp;<code><a href="../validate/SqlValidatorImpl.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl</a></code></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="../validate/SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../validate/SqlValidatorImpl.html#validateOver(org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.validate.SqlValidatorScope)">validateOver</a></code>&nbsp;in class&nbsp;<code><a href="../validate/SqlValidatorImpl.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl</a></code></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="../validate/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"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../validate/SqlValidatorImpl.html#validateNamespace(org.apache.calcite.sql.validate.SqlValidatorNamespace,org.apache.calcite.rel.type.RelDataType)">SqlValidatorImpl</a></code></span></div>
<div class="block">Validates a namespace.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../validate/SqlValidatorImpl.html#validateNamespace(org.apache.calcite.sql.validate.SqlValidatorNamespace,org.apache.calcite.rel.type.RelDataType)">validateNamespace</a></code>&nbsp;in class&nbsp;<code><a href="../validate/SqlValidatorImpl.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl</a></code></dd>
<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="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="../validate/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="../validate/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="../validate/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="../validate/SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../validate/SqlValidatorImpl.html#validateModality(org.apache.calcite.sql.SqlSelect,org.apache.calcite.sql.validate.SqlModality,boolean)">validateModality</a></code>&nbsp;in class&nbsp;<code><a href="../validate/SqlValidatorImpl.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl</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="shouldAllowOverRelation()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>shouldAllowOverRelation</h4>
<pre class="methodSignature">protected&nbsp;boolean&nbsp;shouldAllowOverRelation()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../validate/SqlValidatorImpl.html#shouldAllowOverRelation()">shouldAllowOverRelation</a></code>&nbsp;in class&nbsp;<code><a href="../validate/SqlValidatorImpl.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl</a></code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/SqlAdvisorValidator.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>