blob: ae6c183580be4734df62674765d7b0b218c9d9f1 [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>SqlAdvisorValidator (Apache Calcite API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.calcite.sql.advise, class: SqlAdvisorValidator">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<div class="about-language"><b>Apache Calcite</b></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<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="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.calcite.sql.advise</a></div>
<h1 title="Class SqlAdvisorValidator" class="title">Class SqlAdvisorValidator</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
<div class="inheritance"><a href="../validate/SqlValidatorImpl.html" title="class in org.apache.calcite.sql.validate">org.apache.calcite.sql.validate.SqlValidatorImpl</a>
<div class="inheritance">org.apache.calcite.sql.advise.SqlAdvisorValidator</div>
</div>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<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>
<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">SqlAdvisorValidator</span>
<span class="extends-implements">extends <a href="../validate/SqlValidatorImpl.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl</a></span></div>
<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>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<li>
<section class="nested-class-summary" id="nested-class-summary">
<h2>Nested Class Summary</h2>
<div class="inherited-list">
<h2 id="nested-classes-inherited-from-class-org.apache.calcite.sql.validate.SqlValidatorImpl">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></h2>
<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></div>
<div class="inherited-list">
<h2 id="nested-classes-inherited-from-class-org.apache.calcite.sql.validate.SqlValidator">Nested classes/interfaces inherited from interface&nbsp;org.apache.calcite.sql.validate.<a href="../validate/SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></h2>
<code><a href="../validate/SqlValidator.Config.html" title="interface in org.apache.calcite.sql.validate">SqlValidator.Config</a></code></div>
</section>
</li>
<!-- =========== FIELD SUMMARY =========== -->
<li>
<section class="field-summary" id="field-summary">
<h2>Field Summary</h2>
<div class="inherited-list">
<h3 id="fields-inherited-from-class-org.apache.calcite.sql.validate.SqlValidatorImpl">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#callToOperandTypesMap">callToOperandTypesMap</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#timeFrameSet">timeFrameSet</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></div>
</section>
</li>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li>
<section class="constructor-summary" id="constructor-summary">
<h2>Constructor Summary</h2>
<div class="caption"><span>Constructors</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-constructor-name even-row-color"><code><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.SqlValidator.Config)" class="member-name-link">SqlAdvisorValidator</a><wbr>(<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/SqlValidator.Config.html" title="interface in org.apache.calcite.sql.validate">SqlValidator.Config</a>&nbsp;config)</code></div>
<div class="col-last even-row-color">
<div class="block">Creates a SqlAdvisor validator.</div>
</div>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#deriveType(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlNode)" class="member-name-link">deriveType</a><wbr>(<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></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Calls the parent class method and mask Farrago exception thrown.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#expand(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope)" class="member-name-link">expand</a><wbr>(<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></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Expands an expression.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#expandOrderExpr(org.apache.calcite.sql.SqlSelect,org.apache.calcite.sql.SqlNode)" class="member-name-link">expandOrderExpr</a><wbr>(<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></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<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>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#expandSelectExpr(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SelectScope,org.apache.calcite.sql.SqlSelect)" class="member-name-link">expandSelectExpr</a><wbr>(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;expr,
<a href="../validate/SelectScope.html" title="class in org.apache.calcite.sql.validate">SelectScope</a>&nbsp;scope,
<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#shouldAllowOverRelation()" class="member-name-link">shouldAllowOverRelation</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#validateFrom(org.apache.calcite.sql.SqlNode,org.apache.calcite.rel.type.RelDataType,org.apache.calcite.sql.validate.SqlValidatorScope)" class="member-name-link">validateFrom</a><wbr>(<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></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<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>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#validateHavingClause(org.apache.calcite.sql.SqlSelect)" class="member-name-link">validateHavingClause</a><wbr>(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Calls the parent class method and masks Farrago exception thrown.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#validateIdentifier(org.apache.calcite.sql.SqlIdentifier,org.apache.calcite.sql.validate.SqlValidatorScope)" class="member-name-link">validateIdentifier</a><wbr>(<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></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Registers the identifier and its scope into a map keyed by ParserPosition.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#validateModality(org.apache.calcite.sql.SqlSelect,org.apache.calcite.sql.validate.SqlModality,boolean)" class="member-name-link">validateModality</a><wbr>(<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></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Validates that a query is capable of producing a return of given modality
(relational or streaming).</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#validateNamespace(org.apache.calcite.sql.validate.SqlValidatorNamespace,org.apache.calcite.rel.type.RelDataType)" class="member-name-link">validateNamespace</a><wbr>(<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></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Validates a namespace.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#validateOver(org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.validate.SqlValidatorScope)" class="member-name-link">validateOver</a><wbr>(<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></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#validateWhereClause(org.apache.calcite.sql.SqlSelect)" class="member-name-link">validateWhereClause</a><wbr>(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Calls the parent class method and masks Farrago exception thrown.</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-org.apache.calcite.sql.validate.SqlValidatorImpl">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.sql.validate.SqlValidatorScope,org.apache.calcite.sql.validate.SqlValidatorTable,org.apache.calcite.rel.type.RelDataType,org.apache.calcite.rel.type.RelDataType,org.apache.calcite.sql.SqlNode)">checkTypeAssignment</a>, <a href="../validate/SqlValidatorImpl.html#config()">config</a>, <a href="../validate/SqlValidatorImpl.html#createMatchRecognizeNameSpace(org.apache.calcite.sql.SqlMatchRecognize,org.apache.calcite.sql.SqlNode)">createMatchRecognizeNameSpace</a>, <a href="../validate/SqlValidatorImpl.html#createPivotNameSpace(org.apache.calcite.sql.SqlPivot,org.apache.calcite.sql.SqlNode)">createPivotNameSpace</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#createUnpivotNameSpace(org.apache.calcite.sql.SqlUnpivot,org.apache.calcite.sql.SqlNode)">createUnpivotNameSpace</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#expandStar(org.apache.calcite.sql.SqlNodeList,org.apache.calcite.sql.SqlSelect,boolean)">expandStar</a>, <a href="../validate/SqlValidatorImpl.html#extendedExpandGroupBy(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlSelect)">extendedExpandGroupBy</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#getConformance()">getConformance</a>, <a href="../validate/SqlValidatorImpl.html#getCursorScope(org.apache.calcite.sql.SqlSelect)">getCursorScope</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#getTimeFrameSet()">getTimeFrameSet</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#getValidatedOperandTypes(org.apache.calcite.sql.SqlCall)">getValidatedOperandTypes</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.SqlOperator,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#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#resolveLiteral(org.apache.calcite.sql.SqlLiteral)">resolveLiteral</a>, <a href="../validate/SqlValidatorImpl.html#resolveWindow(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope)">resolveWindow</a>, <a href="../validate/SqlValidatorImpl.html#setOriginal(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.SqlNode)">setOriginal</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#transform(java.util.function.UnaryOperator)">transform</a>, <a href="../validate/SqlValidatorImpl.html#usingNames(org.apache.calcite.sql.SqlJoin)">usingNames</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.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#validatePivot(org.apache.calcite.sql.SqlPivot)">validatePivot</a>, <a href="../validate/SqlValidatorImpl.html#validateQualifyClause(org.apache.calcite.sql.SqlSelect)">validateQualifyClause</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#validateTableFunction(org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.rel.type.RelDataType)">validateTableFunction</a>, <a href="../validate/SqlValidatorImpl.html#validateTimeFrame(org.apache.calcite.sql.SqlIntervalQualifier)">validateTimeFrame</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#validateUnpivot(org.apache.calcite.sql.SqlUnpivot)">validateUnpivot</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></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-org.apache.calcite.sql.validate.SqlValidator">Methods inherited from interface&nbsp;org.apache.calcite.sql.validate.<a href="../validate/SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></h3>
<code><a href="../validate/SqlValidator.html#resolveWindow(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope,boolean)">resolveWindow</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" 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.SqlValidator.Config)">
<h3>SqlAdvisorValidator</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">SqlAdvisorValidator</span><wbr><span class="parameters">(<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/SqlValidator.Config.html" title="interface in org.apache.calcite.sql.validate">SqlValidator.Config</a>&nbsp;config)</span></div>
<div class="block">Creates a SqlAdvisor validator.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>opTab</code> - Operator table</dd>
<dd><code>catalogReader</code> - Catalog reader</dd>
<dd><code>typeFactory</code> - Type factory</dd>
<dd><code>config</code> - Config</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="validateIdentifier(org.apache.calcite.sql.SqlIdentifier,org.apache.calcite.sql.validate.SqlValidatorScope)">
<h3>validateIdentifier</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">validateIdentifier</span><wbr><span class="parameters">(<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)</span></div>
<div class="block">Registers the identifier and its scope into a map keyed by ParserPosition.</div>
<dl class="notes">
<dt>Specified by:</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>Overrides:</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>Parameters:</dt>
<dd><code>id</code> - Identifier</dd>
<dd><code>scope</code> - Naming scope</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="expand(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope)">
<h3>expand</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a></span>&nbsp;<span class="element-name">expand</span><wbr><span class="parameters">(<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)</span></div>
<div class="block"><span class="descfrm-type-label">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 class="notes">
<dt>Specified by:</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>Overrides:</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>Parameters:</dt>
<dd><code>expr</code> - Expression</dd>
<dd><code>scope</code> - Scope</dd>
<dt>Returns:</dt>
<dd>Expanded expression</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="expandSelectExpr(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SelectScope,org.apache.calcite.sql.SqlSelect)">
<h3>expandSelectExpr</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a></span>&nbsp;<span class="element-name">expandSelectExpr</span><wbr><span class="parameters">(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;expr,
<a href="../validate/SelectScope.html" title="class in org.apache.calcite.sql.validate">SelectScope</a>&nbsp;scope,
<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</span></div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code><a href="../validate/SqlValidatorImpl.html#expandSelectExpr(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SelectScope,org.apache.calcite.sql.SqlSelect)">expandSelectExpr</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>
</section>
</li>
<li>
<section class="detail" id="expandOrderExpr(org.apache.calcite.sql.SqlSelect,org.apache.calcite.sql.SqlNode)">
<h3>expandOrderExpr</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a></span>&nbsp;<span class="element-name">expandOrderExpr</span><wbr><span class="parameters">(<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)</span></div>
<div class="block"><span class="descfrm-type-label">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 class="notes">
<dt>Specified by:</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>Overrides:</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>Parameters:</dt>
<dd><code>select</code> - Select statement which contains ORDER BY</dd>
<dd><code>orderExpr</code> - Expression in the ORDER BY clause.</dd>
<dt>Returns:</dt>
<dd>Expression translated into SELECT clause semantics</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="deriveType(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlNode)">
<h3>deriveType</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a></span>&nbsp;<span class="element-name">deriveType</span><wbr><span class="parameters">(<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)</span></div>
<div class="block">Calls the parent class method and mask Farrago exception thrown.</div>
<dl class="notes">
<dt>Specified by:</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>Overrides:</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>Parameters:</dt>
<dd><code>scope</code> - Syntactic scope</dd>
<dd><code>operand</code> - Parse tree node</dd>
<dt>Returns:</dt>
<dd>Type of the SqlNode. Should never return <code>NULL</code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="validateFrom(org.apache.calcite.sql.SqlNode,org.apache.calcite.rel.type.RelDataType,org.apache.calcite.sql.validate.SqlValidatorScope)">
<h3>validateFrom</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">validateFrom</span><wbr><span class="parameters">(<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)</span></div>
<div class="block"><span class="descfrm-type-label">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 class="notes">
<dt>Overrides:</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>Parameters:</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>
</section>
</li>
<li>
<section class="detail" id="validateWhereClause(org.apache.calcite.sql.SqlSelect)">
<h3>validateWhereClause</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">validateWhereClause</span><wbr><span class="parameters">(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</span></div>
<div class="block">Calls the parent class method and masks Farrago exception thrown.</div>
<dl class="notes">
<dt>Overrides:</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>
</section>
</li>
<li>
<section class="detail" id="validateHavingClause(org.apache.calcite.sql.SqlSelect)">
<h3>validateHavingClause</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">validateHavingClause</span><wbr><span class="parameters">(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</span></div>
<div class="block">Calls the parent class method and masks Farrago exception thrown.</div>
<dl class="notes">
<dt>Overrides:</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>
</section>
</li>
<li>
<section class="detail" id="validateOver(org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.validate.SqlValidatorScope)">
<h3>validateOver</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">validateOver</span><wbr><span class="parameters">(<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)</span></div>
<dl class="notes">
<dt>Overrides:</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>
</section>
</li>
<li>
<section class="detail" id="validateNamespace(org.apache.calcite.sql.validate.SqlValidatorNamespace,org.apache.calcite.rel.type.RelDataType)">
<h3>validateNamespace</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">validateNamespace</span><wbr><span class="parameters">(<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)</span></div>
<div class="block"><span class="descfrm-type-label">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 class="notes">
<dt>Overrides:</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>Parameters:</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>
</section>
</li>
<li>
<section class="detail" id="validateModality(org.apache.calcite.sql.SqlSelect,org.apache.calcite.sql.validate.SqlModality,boolean)">
<h3>validateModality</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">validateModality</span><wbr><span class="parameters">(<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)</span></div>
<div class="block"><span class="descfrm-type-label">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 class="notes">
<dt>Specified by:</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>Overrides:</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>Parameters:</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>Returns:</dt>
<dd>whether query supports the given modality</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="shouldAllowOverRelation()">
<h3>shouldAllowOverRelation</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">shouldAllowOverRelation</span>()</div>
<dl class="notes">
<dt>Overrides:</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>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &copy; 2012-2023 Apache Software Foundation. All Rights Reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>