blob: 19acf7e71ce3a27cef478b5fda44f61f9379e193 [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>SqlValidatorImpl (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.validate, class: SqlValidatorImpl">
<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><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>
<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.validate</a></div>
<h1 title="Class SqlValidatorImpl" class="title">Class SqlValidatorImpl</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">org.apache.calcite.sql.validate.SqlValidatorImpl</div>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code>, <code><a href="SqlValidatorWithHints.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorWithHints</a></code></dd>
</dl>
<dl class="notes">
<dt>Direct Known Subclasses:</dt>
<dd><code><a href="../../jdbc/ContextSqlValidator.html" title="class in org.apache.calcite.jdbc">ContextSqlValidator</a></code>, <code><a href="../advise/SqlAdvisorValidator.html" title="class in org.apache.calcite.sql.advise">SqlAdvisorValidator</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">SqlValidatorImpl</span>
<span class="extends-implements">extends <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>
implements <a href="SqlValidatorWithHints.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorWithHints</a></span></div>
<div class="block">Default implementation of <a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate"><code>SqlValidator</code></a>.</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="caption"><span>Nested Classes</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Class</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>static class&nbsp;</code></div>
<div class="col-second even-row-color"><code><a href="SqlValidatorImpl.DmlNamespace.html" class="type-name-link" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl.DmlNamespace</a></code></div>
<div class="col-last even-row-color">
<div class="block">Common base class for DML statement namespaces.</div>
</div>
<div class="col-first odd-row-color"><code>protected static class&nbsp;</code></div>
<div class="col-second odd-row-color"><code><a href="SqlValidatorImpl.FunctionParamInfo.html" class="type-name-link" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl.FunctionParamInfo</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Utility object used to maintain information about the parameters in a
function call.</div>
</div>
<div class="col-first even-row-color"><code>protected static class&nbsp;</code></div>
<div class="col-second even-row-color"><code><a href="SqlValidatorImpl.IdInfo.html" class="type-name-link" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl.IdInfo</a></code></div>
<div class="col-last even-row-color">
<div class="block">Information about an identifier in a particular scope.</div>
</div>
<div class="col-first odd-row-color"><code>static enum&nbsp;</code></div>
<div class="col-second odd-row-color"><code><a href="SqlValidatorImpl.Status.html" class="type-name-link" title="enum in org.apache.calcite.sql.validate">SqlValidatorImpl.Status</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Validation status.</div>
</div>
</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="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></h2>
<code><a href="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="caption"><span>Fields</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Field</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>final <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/IdentityHashMap.html" title="class or interface in java.util" class="external-link">IdentityHashMap</a>&lt;<a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>,<wbr><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&gt;</code></div>
<div class="col-second even-row-color"><code><a href="#callToOperandTypesMap" class="member-name-link">callToOperandTypesMap</a></code></div>
<div class="col-last even-row-color">
<div class="block">Provides the data for <a href="#getValidatedOperandTypes(org.apache.calcite.sql.SqlCall)"><code>getValidatedOperandTypes(SqlCall)</code></a>.</div>
</div>
<div class="col-first odd-row-color"><code>protected final <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Deque.html" title="class or interface in java.util" class="external-link">Deque</a>&lt;<a href="SqlValidatorImpl.FunctionParamInfo.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl.FunctionParamInfo</a>&gt;</code></div>
<div class="col-second odd-row-color"><code><a href="#functionCallStack" class="member-name-link">functionCallStack</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Stack of objects that maintain information about function calls.</div>
</div>
<div class="col-first even-row-color"><code>protected final <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>,<wbr><a href="SqlValidatorImpl.IdInfo.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl.IdInfo</a>&gt;</code></div>
<div class="col-second even-row-color"><code><a href="#idPositions" class="member-name-link">idPositions</a></code></div>
<div class="col-last even-row-color">
<div class="block">Maps <a href="../parser/SqlParserPos.html" title="class in org.apache.calcite.sql.parser"><code>SqlParserPos</code></a> strings to the <a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql"><code>SqlIdentifier</code></a> identifier
objects at these positions.</div>
</div>
<div class="col-first odd-row-color"><code>protected final <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/IdentityHashMap.html" title="class or interface in java.util" class="external-link">IdentityHashMap</a>&lt;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>,<wbr><a href="SqlValidatorNamespace.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorNamespace</a>&gt;</code></div>
<div class="col-second odd-row-color"><code><a href="#namespaces" class="member-name-link">namespaces</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Maps a <a href="../SqlNode.html" title="class in org.apache.calcite.sql"><code>node</code></a> to the
<a href="SqlValidatorNamespace.html" title="interface in org.apache.calcite.sql.validate"><code>namespace</code></a> which describes what columns they
contain.</div>
</div>
<div class="col-first even-row-color"><code>protected final <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/IdentityHashMap.html" title="class or interface in java.util" class="external-link">IdentityHashMap</a>&lt;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>,<wbr><a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&gt;</code></div>
<div class="col-second even-row-color"><code><a href="#scopes" class="member-name-link">scopes</a></code></div>
<div class="col-last even-row-color">
<div class="block">Maps <a href="../SqlNode.html" title="class in org.apache.calcite.sql"><code>query node</code></a> objects to the <a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate"><code>SqlValidatorScope</code></a>
scope created from them.</div>
</div>
<div class="col-first odd-row-color"><code>protected final <a href="../../rel/type/TimeFrameSet.html" title="class in org.apache.calcite.rel.type">TimeFrameSet</a></code></div>
<div class="col-second odd-row-color"><code><a href="#timeFrameSet" class="member-name-link">timeFrameSet</a></code></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><code>static final org.slf4j.Logger</code></div>
<div class="col-second even-row-color"><code><a href="#TRACER" class="member-name-link">TRACER</a></code></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><code>protected final <a href="../../rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a></code></div>
<div class="col-second odd-row-color"><code><a href="#typeFactory" class="member-name-link">typeFactory</a></code></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><code>protected final <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"><code><a href="#unknownType" class="member-name-link">unknownType</a></code></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><code>static final <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second odd-row-color"><code><a href="#UPDATE_ANON_PREFIX" class="member-name-link">UPDATE_ANON_PREFIX</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Alias prefix generated for source columns when rewriting UPDATE to MERGE.</div>
</div>
<div class="col-first even-row-color"><code>static final <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second even-row-color"><code><a href="#UPDATE_SRC_ALIAS" class="member-name-link">UPDATE_SRC_ALIAS</a></code></div>
<div class="col-last even-row-color">
<div class="block">Alias generated for the source table when rewriting UPDATE to MERGE.</div>
</div>
<div class="col-first odd-row-color"><code>static final <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second odd-row-color"><code><a href="#UPDATE_TGT_ALIAS" class="member-name-link">UPDATE_TGT_ALIAS</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Alias generated for the target table when rewriting UPDATE to MERGE if no
alias was specified by the user.</div>
</div>
</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 three-column-summary">
<div class="table-header col-first">Modifier</div>
<div class="table-header col-second">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>protected </code></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">SqlValidatorImpl</a><wbr>(<a href="../SqlOperatorTable.html" title="interface in org.apache.calcite.sql">SqlOperatorTable</a>&nbsp;opTab,
<a href="SqlValidatorCatalogReader.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorCatalogReader</a>&nbsp;catalogReader,
<a href="../../rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;typeFactory,
<a href="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 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><button id="method-summary-table-tab6" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab6', 3)" class="table-tab">Deprecated 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>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="#addToSelectList(java.util.List,java.util.Set,java.util.List,org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SelectScope,boolean)" class="member-name-link">addToSelectList</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;list,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Set.html" title="class or interface in java.util" class="external-link">Set</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&gt;&nbsp;aliases,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.Entry.html" title="class or interface in java.util" class="external-link">Map.Entry</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>,<wbr><a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&gt;&nbsp;fieldList,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;exp,
<a href="SelectScope.html" title="class in org.apache.calcite.sql.validate">SelectScope</a>&nbsp;scope,
boolean&nbsp;includeSystemVars)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds an expression to a select list, ensuring that its alias does not
clash with any existing expressions on the list.</div>
</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="#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)" class="member-name-link">checkTypeAssignment</a><wbr>(@Nullable <a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;sourceScope,
<a href="SqlValidatorTable.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorTable</a>&nbsp;table,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;sourceRowType,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetRowType,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;query)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Checks the type assignment of an INSERT or UPDATE query.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="SqlValidator.Config.html" title="interface in org.apache.calcite.sql.validate">SqlValidator.Config</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#config()" class="member-name-link">config</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the config of the validator.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected <a href="MatchRecognizeNamespace.html" title="class in org.apache.calcite.sql.validate">MatchRecognizeNamespace</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#createMatchRecognizeNameSpace(org.apache.calcite.sql.SqlMatchRecognize,org.apache.calcite.sql.SqlNode)" class="member-name-link">createMatchRecognizeNameSpace</a><wbr>(<a href="../SqlMatchRecognize.html" title="class in org.apache.calcite.sql">SqlMatchRecognize</a>&nbsp;call,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;enclosingNode)</code></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 <a href="PivotNamespace.html" title="class in org.apache.calcite.sql.validate">PivotNamespace</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#createPivotNameSpace(org.apache.calcite.sql.SqlPivot,org.apache.calcite.sql.SqlNode)" class="member-name-link">createPivotNameSpace</a><wbr>(<a href="../SqlPivot.html" title="class in org.apache.calcite.sql">SqlPivot</a>&nbsp;call,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;enclosingNode)</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 <a href="SelectNamespace.html" title="class in org.apache.calcite.sql.validate">SelectNamespace</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#createSelectNamespace(org.apache.calcite.sql.SqlSelect,org.apache.calcite.sql.SqlNode)" class="member-name-link">createSelectNamespace</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;enclosingNode)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Creates a namespace for a <code>SELECT</code> node.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected <a href="SetopNamespace.html" title="class in org.apache.calcite.sql.validate">SetopNamespace</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#createSetopNamespace(org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.SqlNode)" class="member-name-link">createSetopNamespace</a><wbr>(<a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;enclosingNode)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Creates a namespace for a set operation (<code>UNION</code>, <code>
INTERSECT</code>, or <code>EXCEPT</code>).</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected <a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#createSourceSelectForDelete(org.apache.calcite.sql.SqlDelete)" class="member-name-link">createSourceSelectForDelete</a><wbr>(<a href="../SqlDelete.html" title="class in org.apache.calcite.sql">SqlDelete</a>&nbsp;call)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Creates the SELECT statement that putatively feeds rows into a DELETE
statement to be deleted.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected <a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#createSourceSelectForUpdate(org.apache.calcite.sql.SqlUpdate)" class="member-name-link">createSourceSelectForUpdate</a><wbr>(<a href="../SqlUpdate.html" title="class in org.apache.calcite.sql">SqlUpdate</a>&nbsp;call)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Creates the SELECT statement that putatively feeds rows into an UPDATE
statement to be updated.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected <a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#createTargetRowType(org.apache.calcite.sql.validate.SqlValidatorTable,org.apache.calcite.sql.SqlNodeList,boolean)" class="member-name-link">createTargetRowType</a><wbr>(<a href="SqlValidatorTable.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorTable</a>&nbsp;table,
@Nullable <a href="../SqlNodeList.html" title="class in org.apache.calcite.sql">SqlNodeList</a>&nbsp;targetColumnList,
boolean&nbsp;append)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Derives a row-type for INSERT and UPDATE operations.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected <a href="UnpivotNamespace.html" title="class in org.apache.calcite.sql.validate">UnpivotNamespace</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#createUnpivotNameSpace(org.apache.calcite.sql.SqlUnpivot,org.apache.calcite.sql.SqlNode)" class="member-name-link">createUnpivotNameSpace</a><wbr>(<a href="../SqlUnpivot.html" title="class in org.apache.calcite.sql">SqlUnpivot</a>&nbsp;call,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;enclosingNode)</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>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#declareCursor(org.apache.calcite.sql.SqlSelect,org.apache.calcite.sql.validate.SqlValidatorScope)" class="member-name-link">declareCursor</a><wbr>(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;parentScope)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Declares a SELECT expression as a cursor.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#deriveAlias(org.apache.calcite.sql.SqlNode,int)" class="member-name-link">deriveAlias</a><wbr>(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
int&nbsp;ordinal)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Derives an alias for an expression.</div>
</div>
<div class="col-first odd-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 odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#deriveConstructorType(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.SqlFunction,org.apache.calcite.sql.SqlFunction,java.util.List)" class="member-name-link">deriveConstructorType</a><wbr>(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call,
<a href="../SqlFunction.html" title="class in org.apache.calcite.sql">SqlFunction</a>&nbsp;unresolvedConstructor,
@Nullable <a href="../SqlFunction.html" title="class in org.apache.calcite.sql">SqlFunction</a>&nbsp;resolvedConstructor,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&nbsp;argTypes)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Derives the type of a constructor.</div>
</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="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;expr)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Derives the type of a node in a given scope.</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="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="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><a href="../SqlNodeList.html" title="class in org.apache.calcite.sql">SqlNodeList</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#expandStar(org.apache.calcite.sql.SqlNodeList,org.apache.calcite.sql.SqlSelect,boolean)" class="member-name-link">expandStar</a><wbr>(<a href="../SqlNodeList.html" title="class in org.apache.calcite.sql">SqlNodeList</a>&nbsp;selectList,
<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select,
boolean&nbsp;includeSystemVars)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns a list of expressions, with every occurrence of "&#42;" or
"TABLE.&#42;" expanded.</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="#extendedExpandGroupBy(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlSelect)" class="member-name-link">extendedExpandGroupBy</a><wbr>(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;expr,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</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 @Nullable <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="#getAggregate(org.apache.calcite.sql.SqlSelect)" class="member-name-link">getAggregate</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">Returns the parse tree node (GROUP BY, HAVING, or an aggregate function
call) that causes <code>select</code> to be an aggregate query, or null if it
is not an aggregate query.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="SqlValidatorCatalogReader.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorCatalogReader</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getCatalogReader()" class="member-name-link">getCatalogReader</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the catalog reader used by this validator.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getConformance()" class="member-name-link">getConformance</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><a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getCursorScope(org.apache.calcite.sql.SqlSelect)" class="member-name-link">getCursorScope</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">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getEmptyScope()" class="member-name-link">getEmptyScope</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><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&gt;&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getFieldOrigins(org.apache.calcite.sql.SqlNode)" class="member-name-link">getFieldOrigins</a><wbr>(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;sqlQuery)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns a description of how each field in the row type maps to a
catalog, schema, table and column in the schema.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>@Nullable <a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getFromScope(org.apache.calcite.sql.SqlSelect)" class="member-name-link">getFromScope</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">Returns a scope containing the objects visible from the FROM clause of a
query.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getGroupScope(org.apache.calcite.sql.SqlSelect)" class="member-name-link">getGroupScope</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">Returns a scope containing the objects visible from the GROUP BY clause
of a query.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getHavingScope(org.apache.calcite.sql.SqlSelect)" class="member-name-link">getHavingScope</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">Returns a scope containing the objects visible from the HAVING clause of
a query.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>@Nullable <a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getJoinScope(org.apache.calcite.sql.SqlNode)" class="member-name-link">getJoinScope</a><wbr>(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns a scope containing the objects visible from the ON and USING
sections of a JOIN clause.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected <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="#getLogicalSourceRowType(org.apache.calcite.rel.type.RelDataType,org.apache.calcite.sql.SqlInsert)" class="member-name-link">getLogicalSourceRowType</a><wbr>(<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;sourceRowType,
<a href="../SqlInsert.html" title="class in org.apache.calcite.sql">SqlInsert</a>&nbsp;insert)</code></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 <a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getLogicalTargetRowType(org.apache.calcite.rel.type.RelDataType,org.apache.calcite.sql.SqlInsert)" class="member-name-link">getLogicalTargetRowType</a><wbr>(<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetRowType,
<a href="../SqlInsert.html" title="class in org.apache.calcite.sql">SqlInsert</a>&nbsp;insert)</code></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><a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getMatchRecognizeScope(org.apache.calcite.sql.SqlMatchRecognize)" class="member-name-link">getMatchRecognizeScope</a><wbr>(<a href="../SqlMatchRecognize.html" title="class in org.apache.calcite.sql">SqlMatchRecognize</a>&nbsp;node)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns a scope match recognize clause.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>@Nullable <a href="SqlValidatorNamespace.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorNamespace</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getNamespace(org.apache.calcite.sql.SqlNode)" class="member-name-link">getNamespace</a><wbr>(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Finds the namespace corresponding to a given node.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="../SqlOperatorTable.html" title="interface in org.apache.calcite.sql">SqlOperatorTable</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getOperatorTable()" class="member-name-link">getOperatorTable</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the operator table used by this validator.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getOrderScope(org.apache.calcite.sql.SqlSelect)" class="member-name-link">getOrderScope</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">Returns the scope that expressions in the SELECT and HAVING clause of
this query should use.</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="#getOriginal(org.apache.calcite.sql.SqlNode)" class="member-name-link">getOriginal</a><wbr>(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;expr)</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><a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getOverScope(org.apache.calcite.sql.SqlNode)" class="member-name-link">getOverScope</a><wbr>(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the scope of an OVER or VALUES node.</div>
</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="#getParameterRowType(org.apache.calcite.sql.SqlNode)" class="member-name-link">getParameterRowType</a><wbr>(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;sqlQuery)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns a record type that contains the name and type of each parameter.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getParentCursor(java.lang.String)" class="member-name-link">getParentCursor</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;columnListParamName)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Retrieves the name of the parent cursor referenced by a column list
parameter.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>@Nullable <a href="SelectScope.html" title="class in org.apache.calcite.sql.validate">SelectScope</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getRawSelectScope(org.apache.calcite.sql.SqlSelect)" class="member-name-link">getRawSelectScope</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">Returns the scope for resolving the SELECT, GROUP BY and HAVING clauses.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getSelectScope(org.apache.calcite.sql.SqlSelect)" class="member-name-link">getSelectScope</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">Returns the appropriate scope for validating a particular clause of a
SELECT statement.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected @Nullable <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="#getSelfJoinExprForUpdate(org.apache.calcite.sql.SqlNode,java.lang.String)" class="member-name-link">getSelfJoinExprForUpdate</a><wbr>(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;table,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;alias)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Allows a subclass to provide information about how to convert an UPDATE
into a MERGE via self-join.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="../../rel/type/TimeFrameSet.html" title="class in org.apache.calcite.rel.type">TimeFrameSet</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getTimeFrameSet()" class="member-name-link">getTimeFrameSet</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the set of allowed time frames.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="implicit/TypeCoercion.html" title="interface in org.apache.calcite.sql.validate.implicit">TypeCoercion</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getTypeCoercion()" class="member-name-link">getTypeCoercion</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Get the type coercion instance.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="../../rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getTypeFactory()" class="member-name-link">getTypeFactory</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the type factory used by this validator.</div>
</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="#getUnknownType()" class="member-name-link">getUnknownType</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns an object representing the "unknown" type.</div>
</div>
<div class="col-first odd-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 odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getValidatedNodeType(org.apache.calcite.sql.SqlNode)" class="member-name-link">getValidatedNodeType</a><wbr>(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the type assigned to a node by validation.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>@Nullable <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="#getValidatedNodeTypeIfKnown(org.apache.calcite.sql.SqlNode)" class="member-name-link">getValidatedNodeTypeIfKnown</a><wbr>(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the type assigned to a node by validation, or null if unknown.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getValidatedOperandTypes(org.apache.calcite.sql.SqlCall)" class="member-name-link">getValidatedOperandTypes</a><wbr>(<a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the types of a call's operands.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>org.apache.calcite.sql.validate.SqlValidatorImpl.ValidationErrorFunction</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getValidationErrorFunction()" class="member-name-link">getValidationErrorFunction</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><a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getWhereScope(org.apache.calcite.sql.SqlSelect)" class="member-name-link">getWhereScope</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">Returns the scope that expressions in the WHERE and GROUP BY clause of
this query should use.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected <a href="../SqlWindow.html" title="class in org.apache.calcite.sql">SqlWindow</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getWindowByName(org.apache.calcite.sql.SqlIdentifier,org.apache.calcite.sql.validate.SqlValidatorScope)" class="member-name-link">getWindowByName</a><wbr>(<a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql">SqlIdentifier</a>&nbsp;id,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</code></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>@Nullable <a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getWithScope(org.apache.calcite.sql.SqlNode)" class="member-name-link">getWithScope</a><wbr>(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;withItem)</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><a href="../../runtime/CalciteException.html" title="class in org.apache.calcite.runtime">CalciteException</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#handleUnresolvedFunction(org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.SqlOperator,java.util.List,java.util.List)" class="member-name-link">handleUnresolvedFunction</a><wbr>(<a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call,
<a href="../SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&nbsp;unresolvedFunction,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&nbsp;argTypes,
@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&gt;&nbsp;argNames)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Handles a call to a function which cannot be resolved.</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="#inferUnknownTypes(org.apache.calcite.rel.type.RelDataType,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlNode)" class="member-name-link">inferUnknownTypes</a><wbr>(<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;inferredType,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</code></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 method-summary-table-tab6"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4 method-summary-table-tab6"><code><a href="#isAggregate(org.apache.calcite.sql.SqlNode)" class="member-name-link">isAggregate</a><wbr>(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;selectNode)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4 method-summary-table-tab6">
<div class="block"><span class="deprecated-label">Deprecated.</span></div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isAggregate(org.apache.calcite.sql.SqlSelect)" class="member-name-link">isAggregate</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">Returns whether a SELECT statement is an aggregation.</div>
</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="#isNestedAggregateWindow(org.apache.calcite.sql.SqlNode)" class="member-name-link">isNestedAggregateWindow</a><wbr>(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</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 boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isOverAggregateWindow(org.apache.calcite.sql.SqlNode)" class="member-name-link">isOverAggregateWindow</a><wbr>(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</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>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isSystemField(org.apache.calcite.rel.type.RelDataTypeField)" class="member-name-link">isSystemField</a><wbr>(<a href="../../rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&nbsp;field)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns whether a field is a system field.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="SqlMoniker.html" title="interface in org.apache.calcite.sql.validate">SqlMoniker</a>&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#lookupHints(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.parser.SqlParserPos)" class="member-name-link">lookupHints</a><wbr>(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;topNode,
<a href="../parser/SqlParserPos.html" title="class in org.apache.calcite.sql.parser">SqlParserPos</a>&nbsp;pos)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Looks up completion hints for a syntactically correct SQL statement that
has been parsed into an expression tree.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>final void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#lookupNameCompletionHints(org.apache.calcite.sql.validate.SqlValidatorScope,java.util.List,org.apache.calcite.sql.parser.SqlParserPos,java.util.Collection)" class="member-name-link">lookupNameCompletionHints</a><wbr>(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&gt;&nbsp;names,
<a href="../parser/SqlParserPos.html" title="class in org.apache.calcite.sql.parser">SqlParserPos</a>&nbsp;pos,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Collection.html" title="class or interface in java.util" class="external-link">Collection</a>&lt;<a href="SqlMoniker.html" title="interface in org.apache.calcite.sql.validate">SqlMoniker</a>&gt;&nbsp;hintList)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Populates a list of all the valid alternatives for an identifier.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>@Nullable <a href="SqlMoniker.html" title="interface in org.apache.calcite.sql.validate">SqlMoniker</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#lookupQualifiedName(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.parser.SqlParserPos)" class="member-name-link">lookupQualifiedName</a><wbr>(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;topNode,
<a href="../parser/SqlParserPos.html" title="class in org.apache.calcite.sql.parser">SqlParserPos</a>&nbsp;pos)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Looks up the fully qualified name for a <a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql"><code>SqlIdentifier</code></a> at a given
Parser Position in a parsed expression tree Note: call this only after
<a href="SqlValidator.html#validate(org.apache.calcite.sql.SqlNode)"><code>SqlValidator.validate(org.apache.calcite.sql.SqlNode)</code></a> has been called.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>@Nullable <a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#makeNullaryCall(org.apache.calcite.sql.SqlIdentifier)" class="member-name-link">makeNullaryCall</a><wbr>(<a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql">SqlIdentifier</a>&nbsp;id)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">If an identifier is a legitimate call to a function that has no
arguments and requires no parentheses (for example "CURRENT_USER"),
returns a call to that function, otherwise returns null.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="../../runtime/CalciteContextException.html" title="class in org.apache.calcite.runtime">CalciteContextException</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#newValidationError(org.apache.calcite.sql.SqlNode,org.apache.calcite.runtime.Resources.ExInst)" class="member-name-link">newValidationError</a><wbr>(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
org.apache.calcite.runtime.Resources.ExInst&lt;<a href="SqlValidatorException.html" title="class in org.apache.calcite.sql.validate">SqlValidatorException</a>&gt;&nbsp;e)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Adds "line x, column y" context to a validator exception.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected @PolyNull <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="#performUnconditionalRewrites(org.apache.calcite.sql.SqlNode,boolean)" class="member-name-link">performUnconditionalRewrites</a><wbr>(@PolyNull <a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
boolean&nbsp;underFrom)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Performs expression rewrites which are always used unconditionally.</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="#popFunctionCall()" class="member-name-link">popFunctionCall</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Removes the topmost entry from the function call stack.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#pushFunctionCall()" class="member-name-link">pushFunctionCall</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Pushes a new instance of a function call on to a function call stack.</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="#registerNamespace(org.apache.calcite.sql.validate.SqlValidatorScope,java.lang.String,org.apache.calcite.sql.validate.SqlValidatorNamespace,boolean)" class="member-name-link">registerNamespace</a><wbr>(@Nullable <a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;usingScope,
@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;alias,
<a href="SqlValidatorNamespace.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorNamespace</a>&nbsp;ns,
boolean&nbsp;forceNullable)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Registers a new namespace, and adds it as a child of its parent scope.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#removeValidatedNodeType(org.apache.calcite.sql.SqlNode)" class="member-name-link">removeValidatedNodeType</a><wbr>(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Removes a node from the set of validated nodes.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="../SqlLiteral.html" title="class in org.apache.calcite.sql">SqlLiteral</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#resolveLiteral(org.apache.calcite.sql.SqlLiteral)" class="member-name-link">resolveLiteral</a><wbr>(<a href="../SqlLiteral.html" title="class in org.apache.calcite.sql">SqlLiteral</a>&nbsp;literal)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Resolves a literal.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="../SqlWindow.html" title="class in org.apache.calcite.sql">SqlWindow</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#resolveWindow(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope)" class="member-name-link">resolveWindow</a><wbr>(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;windowOrRef,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Converts a window specification or window name into a fully-resolved
window specification.</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="#setOriginal(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.SqlNode)" class="member-name-link">setOriginal</a><wbr>(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;expr,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;original)</code></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>final void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setValidatedNodeType(org.apache.calcite.sql.SqlNode,org.apache.calcite.rel.type.RelDataType)" class="member-name-link">setValidatedNodeType</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;type)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Saves the type of a <a href="../SqlNode.html" title="class in org.apache.calcite.sql"><code>SqlNode</code></a>, now that it has been validated.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#shouldAllowIntermediateOrderBy()" class="member-name-link">shouldAllowIntermediateOrderBy</a>()</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><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#transform(java.util.function.UnaryOperator)" class="member-name-link">transform</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/function/UnaryOperator.html" title="class or interface in java.util.function" class="external-link">UnaryOperator</a>&lt;<a href="SqlValidator.Config.html" title="interface in org.apache.calcite.sql.validate">SqlValidator.Config</a>&gt;&nbsp;transform)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns this SqlValidator, with the same state, applying
a transform to the config.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#usingNames(org.apache.calcite.sql.SqlJoin)" class="member-name-link">usingNames</a><wbr>(<a href="../SqlJoin.html" title="class in org.apache.calcite.sql">SqlJoin</a>&nbsp;join)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the set of field names in the join condition specified by USING
or implicitly by NATURAL, de-duplicated and in order.</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="#validate(org.apache.calcite.sql.SqlNode)" class="member-name-link">validate</a><wbr>(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;topNode)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Validates an expression tree.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#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)" class="member-name-link">validateAggregateParams</a><wbr>(<a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;aggCall,
@Nullable <a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;filter,
@Nullable <a href="../SqlNodeList.html" title="class in org.apache.calcite.sql">SqlNodeList</a>&nbsp;distinctList,
@Nullable <a href="../SqlNodeList.html" title="class in org.apache.calcite.sql">SqlNodeList</a>&nbsp;orderList,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Validates parameters for aggregate function.</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="#validateCall(org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.validate.SqlValidatorScope)" class="member-name-link">validateCall</a><wbr>(<a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Validates a call to an operator.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#validateColumnListParams(org.apache.calcite.sql.SqlFunction,java.util.List,java.util.List)" class="member-name-link">validateColumnListParams</a><wbr>(<a href="../SqlFunction.html" title="class in org.apache.calcite.sql">SqlFunction</a>&nbsp;function,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&nbsp;argTypes,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;operands)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Validates a COLUMN_LIST parameter.</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="#validateDataType(org.apache.calcite.sql.SqlDataTypeSpec)" class="member-name-link">validateDataType</a><wbr>(<a href="../SqlDataTypeSpec.html" title="class in org.apache.calcite.sql">SqlDataTypeSpec</a>&nbsp;dataType)</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 data type expression.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#validateDelete(org.apache.calcite.sql.SqlDelete)" class="member-name-link">validateDelete</a><wbr>(<a href="../SqlDelete.html" title="class in org.apache.calcite.sql">SqlDelete</a>&nbsp;call)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Validates a DELETE statement.</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="#validateDynamicParam(org.apache.calcite.sql.SqlDynamicParam)" class="member-name-link">validateDynamicParam</a><wbr>(<a href="../SqlDynamicParam.html" title="class in org.apache.calcite.sql">SqlDynamicParam</a>&nbsp;dynamicParam)</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 dynamic parameter.</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="#validateFeature(org.apache.calcite.runtime.Feature,org.apache.calcite.sql.parser.SqlParserPos)" class="member-name-link">validateFeature</a><wbr>(<a href="../../runtime/Feature.html" title="class in org.apache.calcite.runtime">Feature</a>&nbsp;feature,
<a href="../parser/SqlParserPos.html" title="class in org.apache.calcite.sql.parser">SqlParserPos</a>&nbsp;context)</code></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 particular feature is enabled.</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="#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="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="#validateGroupClause(org.apache.calcite.sql.SqlSelect)" class="member-name-link">validateGroupClause</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">Validates the GROUP BY clause of a SELECT statement.</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="#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 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>void</code></div>
<div class="col-second even-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="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">
<div class="block">Resolves an identifier to a fully-qualified name.</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="#validateInsert(org.apache.calcite.sql.SqlInsert)" class="member-name-link">validateInsert</a><wbr>(<a href="../SqlInsert.html" title="class in org.apache.calcite.sql">SqlInsert</a>&nbsp;insert)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Validates an INSERT statement.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#validateIntervalQualifier(org.apache.calcite.sql.SqlIntervalQualifier)" class="member-name-link">validateIntervalQualifier</a><wbr>(<a href="../SqlIntervalQualifier.html" title="class in org.apache.calcite.sql">SqlIntervalQualifier</a>&nbsp;qualifier)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Validates a <a href="../SqlIntervalQualifier.html" title="class in org.apache.calcite.sql"><code>SqlIntervalQualifier</code></a>.</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="#validateJoin(org.apache.calcite.sql.SqlJoin,org.apache.calcite.sql.validate.SqlValidatorScope)" class="member-name-link">validateJoin</a><wbr>(<a href="../SqlJoin.html" title="class in org.apache.calcite.sql">SqlJoin</a>&nbsp;join,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</code></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>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#validateLiteral(org.apache.calcite.sql.SqlLiteral)" class="member-name-link">validateLiteral</a><wbr>(<a href="../SqlLiteral.html" title="class in org.apache.calcite.sql">SqlLiteral</a>&nbsp;literal)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Validates a literal.</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="#validateMatchRecognize(org.apache.calcite.sql.SqlCall)" class="member-name-link">validateMatchRecognize</a><wbr>(<a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call)</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 MATCH_RECOGNIZE clause.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#validateMerge(org.apache.calcite.sql.SqlMerge)" class="member-name-link">validateMerge</a><wbr>(<a href="../SqlMerge.html" title="class in org.apache.calcite.sql">SqlMerge</a>&nbsp;call)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Validates a MERGE statement.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second odd-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="SqlModality.html" title="enum in org.apache.calcite.sql.validate">SqlModality</a>&nbsp;modality,
boolean&nbsp;fail)</code></div>
<div class="col-last odd-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 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="#validateNamespace(org.apache.calcite.sql.validate.SqlValidatorNamespace,org.apache.calcite.rel.type.RelDataType)" class="member-name-link">validateNamespace</a><wbr>(<a href="SqlValidatorNamespace.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorNamespace</a>&nbsp;namespace,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetRowType)</code></div>
<div class="col-last even-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 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="#validateOrderList(org.apache.calcite.sql.SqlSelect)" class="member-name-link">validateOrderList</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">Validates the ORDER BY clause of a SELECT statement.</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="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><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="#validateParameterizedExpression(org.apache.calcite.sql.SqlNode,java.util.Map)" class="member-name-link">validateParameterizedExpression</a><wbr>(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;topNode,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>,<wbr><a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&nbsp;nameToTypeMap)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Validates an expression tree.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#validatePivot(org.apache.calcite.sql.SqlPivot)" class="member-name-link">validatePivot</a><wbr>(<a href="../SqlPivot.html" title="class in org.apache.calcite.sql">SqlPivot</a>&nbsp;pivot)</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="#validateQualifyClause(org.apache.calcite.sql.SqlSelect)" class="member-name-link">validateQualifyClause</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">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#validateQuery(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.rel.type.RelDataType)" class="member-name-link">validateQuery</a><wbr>(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
@Nullable <a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetRowType)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Checks that a query is valid.</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="#validateSelect(org.apache.calcite.sql.SqlSelect,org.apache.calcite.rel.type.RelDataType)" class="member-name-link">validateSelect</a><wbr>(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetRowType)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Validates a SELECT statement.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected <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="#validateSelectList(org.apache.calcite.sql.SqlNodeList,org.apache.calcite.sql.SqlSelect,org.apache.calcite.rel.type.RelDataType)" class="member-name-link">validateSelectList</a><wbr>(<a href="../SqlNodeList.html" title="class in org.apache.calcite.sql">SqlNodeList</a>&nbsp;selectItems,
<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetRowType)</code></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>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#validateSequenceValue(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlIdentifier)" class="member-name-link">validateSequenceValue</a><wbr>(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql">SqlIdentifier</a>&nbsp;id)</code></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 void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#validateTableFunction(org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.rel.type.RelDataType)" class="member-name-link">validateTableFunction</a><wbr>(<a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;node,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetRowType)</code></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><a href="../../rel/type/TimeFrame.html" title="interface in org.apache.calcite.rel.type">TimeFrame</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#validateTimeFrame(org.apache.calcite.sql.SqlIntervalQualifier)" class="member-name-link">validateTimeFrame</a><wbr>(<a href="../SqlIntervalQualifier.html" title="class in org.apache.calcite.sql">SqlIntervalQualifier</a>&nbsp;qualifier)</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 time frame.</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="#validateUnnest(org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.rel.type.RelDataType)" class="member-name-link">validateUnnest</a><wbr>(<a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetRowType)</code></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>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#validateUnpivot(org.apache.calcite.sql.SqlUnpivot)" class="member-name-link">validateUnpivot</a><wbr>(<a href="../SqlUnpivot.html" title="class in org.apache.calcite.sql">SqlUnpivot</a>&nbsp;unpivot)</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>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#validateUpdate(org.apache.calcite.sql.SqlUpdate)" class="member-name-link">validateUpdate</a><wbr>(<a href="../SqlUpdate.html" title="class in org.apache.calcite.sql">SqlUpdate</a>&nbsp;call)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Validates an UPDATE statement.</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="#validateValues(org.apache.calcite.sql.SqlCall,org.apache.calcite.rel.type.RelDataType,org.apache.calcite.sql.validate.SqlValidatorScope)" class="member-name-link">validateValues</a><wbr>(<a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;node,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetRowType,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Validates a VALUES clause.</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="#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 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="#validateWhereOrOn(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlNode,java.lang.String)" class="member-name-link">validateWhereOrOn</a><wbr>(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;condition,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;clause)</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>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#validateWindow(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlCall)" class="member-name-link">validateWindow</a><wbr>(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;windowOrId,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
@Nullable <a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Validates the right-hand side of an OVER expression.</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="#validateWindowClause(org.apache.calcite.sql.SqlSelect)" class="member-name-link">validateWindowClause</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">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#validateWith(org.apache.calcite.sql.SqlWith,org.apache.calcite.sql.validate.SqlValidatorScope)" class="member-name-link">validateWith</a><wbr>(<a href="../SqlWith.html" title="class in org.apache.calcite.sql">SqlWith</a>&nbsp;with,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</code></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>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#validateWithItem(org.apache.calcite.sql.SqlWithItem)" class="member-name-link">validateWithItem</a><wbr>(<a href="../SqlWithItem.html" title="class in org.apache.calcite.sql">SqlWithItem</a>&nbsp;withItem)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
</div>
</div>
</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="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></h3>
<code><a href="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">
<!-- ============ FIELD DETAIL =========== -->
<li>
<section class="field-details" id="field-detail">
<h2>Field Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="TRACER">
<h3>TRACER</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type">org.slf4j.Logger</span>&nbsp;<span class="element-name">TRACER</span></div>
</section>
</li>
<li>
<section class="detail" id="UPDATE_SRC_ALIAS">
<h3>UPDATE_SRC_ALIAS</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">UPDATE_SRC_ALIAS</span></div>
<div class="block">Alias generated for the source table when rewriting UPDATE to MERGE.</div>
<dl class="notes">
<dt>See Also:</dt>
<dd>
<ul class="see-list">
<li><a href="../../../../../constant-values.html#org.apache.calcite.sql.validate.SqlValidatorImpl.UPDATE_SRC_ALIAS">Constant Field Values</a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="UPDATE_TGT_ALIAS">
<h3>UPDATE_TGT_ALIAS</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">UPDATE_TGT_ALIAS</span></div>
<div class="block">Alias generated for the target table when rewriting UPDATE to MERGE if no
alias was specified by the user.</div>
<dl class="notes">
<dt>See Also:</dt>
<dd>
<ul class="see-list">
<li><a href="../../../../../constant-values.html#org.apache.calcite.sql.validate.SqlValidatorImpl.UPDATE_TGT_ALIAS">Constant Field Values</a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="UPDATE_ANON_PREFIX">
<h3>UPDATE_ANON_PREFIX</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">UPDATE_ANON_PREFIX</span></div>
<div class="block">Alias prefix generated for source columns when rewriting UPDATE to MERGE.</div>
<dl class="notes">
<dt>See Also:</dt>
<dd>
<ul class="see-list">
<li><a href="../../../../../constant-values.html#org.apache.calcite.sql.validate.SqlValidatorImpl.UPDATE_ANON_PREFIX">Constant Field Values</a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="idPositions">
<h3>idPositions</h3>
<div class="member-signature"><span class="modifiers">protected final</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>,<wbr><a href="SqlValidatorImpl.IdInfo.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl.IdInfo</a>&gt;</span>&nbsp;<span class="element-name">idPositions</span></div>
<div class="block">Maps <a href="../parser/SqlParserPos.html" title="class in org.apache.calcite.sql.parser"><code>SqlParserPos</code></a> strings to the <a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql"><code>SqlIdentifier</code></a> identifier
objects at these positions.</div>
</section>
</li>
<li>
<section class="detail" id="scopes">
<h3>scopes</h3>
<div class="member-signature"><span class="modifiers">protected final</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/IdentityHashMap.html" title="class or interface in java.util" class="external-link">IdentityHashMap</a>&lt;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>,<wbr><a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&gt;</span>&nbsp;<span class="element-name">scopes</span></div>
<div class="block">Maps <a href="../SqlNode.html" title="class in org.apache.calcite.sql"><code>query node</code></a> objects to the <a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate"><code>SqlValidatorScope</code></a>
scope created from them.</div>
</section>
</li>
<li>
<section class="detail" id="namespaces">
<h3>namespaces</h3>
<div class="member-signature"><span class="modifiers">protected final</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/IdentityHashMap.html" title="class or interface in java.util" class="external-link">IdentityHashMap</a>&lt;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>,<wbr><a href="SqlValidatorNamespace.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorNamespace</a>&gt;</span>&nbsp;<span class="element-name">namespaces</span></div>
<div class="block">Maps a <a href="../SqlNode.html" title="class in org.apache.calcite.sql"><code>node</code></a> to the
<a href="SqlValidatorNamespace.html" title="interface in org.apache.calcite.sql.validate"><code>namespace</code></a> which describes what columns they
contain.</div>
</section>
</li>
<li>
<section class="detail" id="functionCallStack">
<h3>functionCallStack</h3>
<div class="member-signature"><span class="modifiers">protected final</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Deque.html" title="class or interface in java.util" class="external-link">Deque</a>&lt;<a href="SqlValidatorImpl.FunctionParamInfo.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl.FunctionParamInfo</a>&gt;</span>&nbsp;<span class="element-name">functionCallStack</span></div>
<div class="block">Stack of objects that maintain information about function calls. A stack
is needed to handle nested function calls. The function call currently
being validated is at the top of the stack.</div>
</section>
</li>
<li>
<section class="detail" id="typeFactory">
<h3>typeFactory</h3>
<div class="member-signature"><span class="modifiers">protected final</span>&nbsp;<span class="return-type"><a href="../../rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a></span>&nbsp;<span class="element-name">typeFactory</span></div>
</section>
</li>
<li>
<section class="detail" id="unknownType">
<h3>unknownType</h3>
<div class="member-signature"><span class="modifiers">protected final</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">unknownType</span></div>
</section>
</li>
<li>
<section class="detail" id="timeFrameSet">
<h3>timeFrameSet</h3>
<div class="member-signature"><span class="modifiers">protected final</span>&nbsp;<span class="return-type"><a href="../../rel/type/TimeFrameSet.html" title="class in org.apache.calcite.rel.type">TimeFrameSet</a></span>&nbsp;<span class="element-name">timeFrameSet</span></div>
</section>
</li>
<li>
<section class="detail" id="callToOperandTypesMap">
<h3>callToOperandTypesMap</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/IdentityHashMap.html" title="class or interface in java.util" class="external-link">IdentityHashMap</a>&lt;<a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>,<wbr><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&gt;</span>&nbsp;<span class="element-name">callToOperandTypesMap</span></div>
<div class="block">Provides the data for <a href="#getValidatedOperandTypes(org.apache.calcite.sql.SqlCall)"><code>getValidatedOperandTypes(SqlCall)</code></a>.</div>
</section>
</li>
</ul>
</section>
</li>
<!-- ========= 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>SqlValidatorImpl</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="element-name">SqlValidatorImpl</span><wbr><span class="parameters">(<a href="../SqlOperatorTable.html" title="interface in org.apache.calcite.sql">SqlOperatorTable</a>&nbsp;opTab,
<a href="SqlValidatorCatalogReader.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorCatalogReader</a>&nbsp;catalogReader,
<a href="../../rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;typeFactory,
<a href="SqlValidator.Config.html" title="interface in org.apache.calcite.sql.validate">SqlValidator.Config</a>&nbsp;config)</span></div>
<div class="block">Creates a 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="getConformance()">
<h3>getConformance</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a></span>&nbsp;<span class="element-name">getConformance</span>()</div>
</section>
</li>
<li>
<section class="detail" id="getCatalogReader()">
<h3>getCatalogReader</h3>
<div class="member-signature"><span class="annotations">@Pure
</span><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="SqlValidatorCatalogReader.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorCatalogReader</a></span>&nbsp;<span class="element-name">getCatalogReader</span>()</div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#getCatalogReader()">SqlValidator</a></code></span></div>
<div class="block">Returns the catalog reader used by this validator.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#getCatalogReader()">getCatalogReader</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>Returns:</dt>
<dd>catalog reader</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getOperatorTable()">
<h3>getOperatorTable</h3>
<div class="member-signature"><span class="annotations">@Pure
</span><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="../SqlOperatorTable.html" title="interface in org.apache.calcite.sql">SqlOperatorTable</a></span>&nbsp;<span class="element-name">getOperatorTable</span>()</div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#getOperatorTable()">SqlValidator</a></code></span></div>
<div class="block">Returns the operator table used by this validator.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#getOperatorTable()">getOperatorTable</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>Returns:</dt>
<dd>operator table</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getTypeFactory()">
<h3>getTypeFactory</h3>
<div class="member-signature"><span class="annotations">@Pure
</span><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="../../rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a></span>&nbsp;<span class="element-name">getTypeFactory</span>()</div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#getTypeFactory()">SqlValidator</a></code></span></div>
<div class="block">Returns the type factory used by this validator.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#getTypeFactory()">getTypeFactory</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>Returns:</dt>
<dd>type factory</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getUnknownType()">
<h3>getUnknownType</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">getUnknownType</span>()</div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#getUnknownType()">SqlValidator</a></code></span></div>
<div class="block">Returns an object representing the "unknown" type.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#getUnknownType()">getUnknownType</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>Returns:</dt>
<dd>unknown type</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getTimeFrameSet()">
<h3>getTimeFrameSet</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="../../rel/type/TimeFrameSet.html" title="class in org.apache.calcite.rel.type">TimeFrameSet</a></span>&nbsp;<span class="element-name">getTimeFrameSet</span>()</div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#getTimeFrameSet()">SqlValidator</a></code></span></div>
<div class="block">Returns the set of allowed time frames.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#getTimeFrameSet()">getTimeFrameSet</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="expandStar(org.apache.calcite.sql.SqlNodeList,org.apache.calcite.sql.SqlSelect,boolean)">
<h3>expandStar</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="../SqlNodeList.html" title="class in org.apache.calcite.sql">SqlNodeList</a></span>&nbsp;<span class="element-name">expandStar</span><wbr><span class="parameters">(<a href="../SqlNodeList.html" title="class in org.apache.calcite.sql">SqlNodeList</a>&nbsp;selectList,
<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select,
boolean&nbsp;includeSystemVars)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#expandStar(org.apache.calcite.sql.SqlNodeList,org.apache.calcite.sql.SqlSelect,boolean)">SqlValidator</a></code></span></div>
<div class="block">Returns a list of expressions, with every occurrence of "&#42;" or
"TABLE.&#42;" expanded.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#expandStar(org.apache.calcite.sql.SqlNodeList,org.apache.calcite.sql.SqlSelect,boolean)">expandStar</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>selectList</code> - Select clause to be expanded</dd>
<dd><code>select</code> - Query</dd>
<dd><code>includeSystemVars</code> - Whether to include system variables</dd>
<dt>Returns:</dt>
<dd>expanded select clause</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="declareCursor(org.apache.calcite.sql.SqlSelect,org.apache.calcite.sql.validate.SqlValidatorScope)">
<h3>declareCursor</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">declareCursor</span><wbr><span class="parameters">(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;parentScope)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#declareCursor(org.apache.calcite.sql.SqlSelect,org.apache.calcite.sql.validate.SqlValidatorScope)">SqlValidator</a></code></span></div>
<div class="block">Declares a SELECT expression as a cursor.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#declareCursor(org.apache.calcite.sql.SqlSelect,org.apache.calcite.sql.validate.SqlValidatorScope)">declareCursor</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>select</code> - select expression associated with the cursor</dd>
<dd><code>parentScope</code> - scope of the parent query associated with the cursor</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="pushFunctionCall()">
<h3>pushFunctionCall</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">pushFunctionCall</span>()</div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#pushFunctionCall()">SqlValidator</a></code></span></div>
<div class="block">Pushes a new instance of a function call on to a function call stack.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#pushFunctionCall()">pushFunctionCall</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="popFunctionCall()">
<h3>popFunctionCall</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">popFunctionCall</span>()</div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#popFunctionCall()">SqlValidator</a></code></span></div>
<div class="block">Removes the topmost entry from the function call stack.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#popFunctionCall()">popFunctionCall</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getParentCursor(java.lang.String)">
<h3>getParentCursor</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">getParentCursor</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;columnListParamName)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#getParentCursor(java.lang.String)">SqlValidator</a></code></span></div>
<div class="block">Retrieves the name of the parent cursor referenced by a column list
parameter.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#getParentCursor(java.lang.String)">getParentCursor</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>columnListParamName</code> - name of the column list parameter</dd>
<dt>Returns:</dt>
<dd>name of the parent cursor</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="usingNames(org.apache.calcite.sql.SqlJoin)">
<h3>usingNames</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&gt;</span>&nbsp;<span class="element-name">usingNames</span><wbr><span class="parameters">(<a href="../SqlJoin.html" title="class in org.apache.calcite.sql">SqlJoin</a>&nbsp;join)</span></div>
<div class="block">Returns the set of field names in the join condition specified by USING
or implicitly by NATURAL, de-duplicated and in order.</div>
</section>
</li>
<li>
<section class="detail" id="validate(org.apache.calcite.sql.SqlNode)">
<h3>validate</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">validate</span><wbr><span class="parameters">(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;topNode)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#validate(org.apache.calcite.sql.SqlNode)">SqlValidator</a></code></span></div>
<div class="block">Validates an expression tree. You can call this method multiple times,
but not reentrantly.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#validate(org.apache.calcite.sql.SqlNode)">validate</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>topNode</code> - top of expression tree to be validated</dd>
<dt>Returns:</dt>
<dd>validated tree (possibly rewritten)</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="lookupHints(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.parser.SqlParserPos)">
<h3>lookupHints</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="SqlMoniker.html" title="interface in org.apache.calcite.sql.validate">SqlMoniker</a>&gt;</span>&nbsp;<span class="element-name">lookupHints</span><wbr><span class="parameters">(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;topNode,
<a href="../parser/SqlParserPos.html" title="class in org.apache.calcite.sql.parser">SqlParserPos</a>&nbsp;pos)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidatorWithHints.html#lookupHints(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.parser.SqlParserPos)">SqlValidatorWithHints</a></code></span></div>
<div class="block">Looks up completion hints for a syntactically correct SQL statement that
has been parsed into an expression tree. (Note this should be called
after <a href="SqlValidator.html#validate(org.apache.calcite.sql.SqlNode)"><code>SqlValidator.validate(org.apache.calcite.sql.SqlNode)</code></a>.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidatorWithHints.html#lookupHints(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.parser.SqlParserPos)">lookupHints</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidatorWithHints.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorWithHints</a></code></dd>
<dt>Parameters:</dt>
<dd><code>topNode</code> - top of expression tree in which to lookup completion hints</dd>
<dd><code>pos</code> - indicates the position in the sql statement we want to get
completion hints for. For example, "select a.ename, b.deptno
from sales.emp a join sales.dept b "on a.deptno=b.deptno
where empno=1"; setting pos to 'Line 1, Column 17' returns
all the possible column names that can be selected from
sales.dept table setting pos to 'Line 1, Column 31' returns
all the possible table names in 'sales' schema</dd>
<dt>Returns:</dt>
<dd>an array of <a href="SqlMoniker.html" title="interface in org.apache.calcite.sql.validate"><code>SqlMoniker</code></a> (sql identifiers) that can fill in
at the indicated position</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="lookupQualifiedName(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.parser.SqlParserPos)">
<h3>lookupQualifiedName</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">@Nullable <a href="SqlMoniker.html" title="interface in org.apache.calcite.sql.validate">SqlMoniker</a></span>&nbsp;<span class="element-name">lookupQualifiedName</span><wbr><span class="parameters">(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;topNode,
<a href="../parser/SqlParserPos.html" title="class in org.apache.calcite.sql.parser">SqlParserPos</a>&nbsp;pos)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidatorWithHints.html#lookupQualifiedName(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.parser.SqlParserPos)">SqlValidatorWithHints</a></code></span></div>
<div class="block">Looks up the fully qualified name for a <a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql"><code>SqlIdentifier</code></a> at a given
Parser Position in a parsed expression tree Note: call this only after
<a href="SqlValidator.html#validate(org.apache.calcite.sql.SqlNode)"><code>SqlValidator.validate(org.apache.calcite.sql.SqlNode)</code></a> has been called.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidatorWithHints.html#lookupQualifiedName(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.parser.SqlParserPos)">lookupQualifiedName</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidatorWithHints.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorWithHints</a></code></dd>
<dt>Parameters:</dt>
<dd><code>topNode</code> - top of expression tree in which to lookup the qualified
name for the SqlIdentifier</dd>
<dd><code>pos</code> - indicates the position of the <a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql"><code>SqlIdentifier</code></a> in
the SQL statement we want to get the qualified
name for</dd>
<dt>Returns:</dt>
<dd>a string of the fully qualified name of the <a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql"><code>SqlIdentifier</code></a>
if the Parser position represents a valid <a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql"><code>SqlIdentifier</code></a>. Else
return null</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="lookupNameCompletionHints(org.apache.calcite.sql.validate.SqlValidatorScope,java.util.List,org.apache.calcite.sql.parser.SqlParserPos,java.util.Collection)">
<h3>lookupNameCompletionHints</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">lookupNameCompletionHints</span><wbr><span class="parameters">(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&gt;&nbsp;names,
<a href="../parser/SqlParserPos.html" title="class in org.apache.calcite.sql.parser">SqlParserPos</a>&nbsp;pos,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Collection.html" title="class or interface in java.util" class="external-link">Collection</a>&lt;<a href="SqlMoniker.html" title="interface in org.apache.calcite.sql.validate">SqlMoniker</a>&gt;&nbsp;hintList)</span></div>
<div class="block">Populates a list of all the valid alternatives for an identifier.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>scope</code> - Validation scope</dd>
<dd><code>names</code> - Components of the identifier</dd>
<dd><code>pos</code> - position</dd>
<dd><code>hintList</code> - a list of valid options</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="validateParameterizedExpression(org.apache.calcite.sql.SqlNode,java.util.Map)">
<h3>validateParameterizedExpression</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">validateParameterizedExpression</span><wbr><span class="parameters">(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;topNode,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>,<wbr><a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&nbsp;nameToTypeMap)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#validateParameterizedExpression(org.apache.calcite.sql.SqlNode,java.util.Map)">SqlValidator</a></code></span></div>
<div class="block">Validates an expression tree. You can call this method multiple times,
but not reentrantly.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#validateParameterizedExpression(org.apache.calcite.sql.SqlNode,java.util.Map)">validateParameterizedExpression</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>topNode</code> - top of expression tree to be validated</dd>
<dd><code>nameToTypeMap</code> - map of simple name to <a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type"><code>RelDataType</code></a>; used to
resolve <a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql"><code>SqlIdentifier</code></a> references</dd>
<dt>Returns:</dt>
<dd>validated tree (possibly rewritten)</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="validateQuery(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.rel.type.RelDataType)">
<h3>validateQuery</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">validateQuery</span><wbr><span class="parameters">(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
@Nullable <a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetRowType)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#validateQuery(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.rel.type.RelDataType)">SqlValidator</a></code></span></div>
<div class="block">Checks that a query is valid.
<p>Valid queries include:
<ul>
<li><code>SELECT</code> statement,
<li>set operation (<code>UNION</code>, <code>INTERSECT</code>, <code>
EXCEPT</code>)
<li>identifier (e.g. representing use of a table in a FROM clause)
<li>query aliased with the <code>AS</code> operator
</ul></div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#validateQuery(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.rel.type.RelDataType)">validateQuery</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>node</code> - Query node</dd>
<dd><code>scope</code> - Scope in which the query occurs</dd>
<dd><code>targetRowType</code> - Desired row type, must not be null, may be the data
type 'unknown'.</dd>
</dl>
</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="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">Validates a namespace.</div>
<dl class="notes">
<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="getEmptyScope()">
<h3>getEmptyScope</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a></span>&nbsp;<span class="element-name">getEmptyScope</span>()</div>
</section>
</li>
<li>
<section class="detail" id="getCursorScope(org.apache.calcite.sql.SqlSelect)">
<h3>getCursorScope</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a></span>&nbsp;<span class="element-name">getCursorScope</span><wbr><span class="parameters">(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</span></div>
</section>
</li>
<li>
<section class="detail" id="getWhereScope(org.apache.calcite.sql.SqlSelect)">
<h3>getWhereScope</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a></span>&nbsp;<span class="element-name">getWhereScope</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"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#getWhereScope(org.apache.calcite.sql.SqlSelect)">SqlValidator</a></code></span></div>
<div class="block">Returns the scope that expressions in the WHERE and GROUP BY clause of
this query should use. This scope consists of the tables in the FROM
clause, and the enclosing scope.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#getWhereScope(org.apache.calcite.sql.SqlSelect)">getWhereScope</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>select</code> - Query</dd>
<dt>Returns:</dt>
<dd>naming scope of WHERE clause</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getSelectScope(org.apache.calcite.sql.SqlSelect)">
<h3>getSelectScope</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a></span>&nbsp;<span class="element-name">getSelectScope</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"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#getSelectScope(org.apache.calcite.sql.SqlSelect)">SqlValidator</a></code></span></div>
<div class="block">Returns the appropriate scope for validating a particular clause of a
SELECT statement.
<p>Consider</p>
<blockquote><pre><code>SELECT *
FROM foo
WHERE EXISTS (
SELECT deptno AS x
FROM emp
JOIN dept ON emp.deptno = dept.deptno
WHERE emp.deptno = 5
GROUP BY deptno
ORDER BY x)</code></pre></blockquote>
<p>What objects can be seen in each part of the sub-query?</p>
<ul>
<li>In FROM (<a href="SqlValidator.html#getFromScope(org.apache.calcite.sql.SqlSelect)"><code>SqlValidator.getFromScope(org.apache.calcite.sql.SqlSelect)</code></a> , you can only see 'foo'.
<li>In WHERE (<a href="SqlValidator.html#getWhereScope(org.apache.calcite.sql.SqlSelect)"><code>SqlValidator.getWhereScope(org.apache.calcite.sql.SqlSelect)</code></a>), GROUP BY (<a href="SqlValidator.html#getGroupScope(org.apache.calcite.sql.SqlSelect)"><code>SqlValidator.getGroupScope(org.apache.calcite.sql.SqlSelect)</code></a>),
SELECT (<code>getSelectScope</code>), and the ON clause of the JOIN
(<a href="SqlValidator.html#getJoinScope(org.apache.calcite.sql.SqlNode)"><code>SqlValidator.getJoinScope(org.apache.calcite.sql.SqlNode)</code></a>) you can see 'emp', 'dept', and 'foo'.
<li>In ORDER BY (<a href="SqlValidator.html#getOrderScope(org.apache.calcite.sql.SqlSelect)"><code>SqlValidator.getOrderScope(org.apache.calcite.sql.SqlSelect)</code></a>), you can see the column alias 'x';
and tables 'emp', 'dept', and 'foo'.
</ul></div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#getSelectScope(org.apache.calcite.sql.SqlSelect)">getSelectScope</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>select</code> - SELECT statement</dd>
<dt>Returns:</dt>
<dd>naming scope for SELECT statement</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getRawSelectScope(org.apache.calcite.sql.SqlSelect)">
<h3>getRawSelectScope</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">@Nullable <a href="SelectScope.html" title="class in org.apache.calcite.sql.validate">SelectScope</a></span>&nbsp;<span class="element-name">getRawSelectScope</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"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#getRawSelectScope(org.apache.calcite.sql.SqlSelect)">SqlValidator</a></code></span></div>
<div class="block">Returns the scope for resolving the SELECT, GROUP BY and HAVING clauses.
Always a <a href="SelectScope.html" title="class in org.apache.calcite.sql.validate"><code>SelectScope</code></a>; if this is an aggregation query, the
<a href="AggregatingScope.html" title="interface in org.apache.calcite.sql.validate"><code>AggregatingScope</code></a> is stripped away.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#getRawSelectScope(org.apache.calcite.sql.SqlSelect)">getRawSelectScope</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>select</code> - SELECT statement</dd>
<dt>Returns:</dt>
<dd>naming scope for SELECT statement, sans any aggregating scope</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getHavingScope(org.apache.calcite.sql.SqlSelect)">
<h3>getHavingScope</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a></span>&nbsp;<span class="element-name">getHavingScope</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"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#getHavingScope(org.apache.calcite.sql.SqlSelect)">SqlValidator</a></code></span></div>
<div class="block">Returns a scope containing the objects visible from the HAVING clause of
a query.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#getHavingScope(org.apache.calcite.sql.SqlSelect)">getHavingScope</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>select</code> - SELECT statement</dd>
<dt>Returns:</dt>
<dd>naming scope for HAVING clause</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getGroupScope(org.apache.calcite.sql.SqlSelect)">
<h3>getGroupScope</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a></span>&nbsp;<span class="element-name">getGroupScope</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"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#getGroupScope(org.apache.calcite.sql.SqlSelect)">SqlValidator</a></code></span></div>
<div class="block">Returns a scope containing the objects visible from the GROUP BY clause
of a query.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#getGroupScope(org.apache.calcite.sql.SqlSelect)">getGroupScope</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>select</code> - SELECT statement</dd>
<dt>Returns:</dt>
<dd>naming scope for GROUP BY clause</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getFromScope(org.apache.calcite.sql.SqlSelect)">
<h3>getFromScope</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">@Nullable <a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a></span>&nbsp;<span class="element-name">getFromScope</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"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#getFromScope(org.apache.calcite.sql.SqlSelect)">SqlValidator</a></code></span></div>
<div class="block">Returns a scope containing the objects visible from the FROM clause of a
query.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#getFromScope(org.apache.calcite.sql.SqlSelect)">getFromScope</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>select</code> - SELECT statement</dd>
<dt>Returns:</dt>
<dd>naming scope for FROM clause</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getOrderScope(org.apache.calcite.sql.SqlSelect)">
<h3>getOrderScope</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a></span>&nbsp;<span class="element-name">getOrderScope</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"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#getOrderScope(org.apache.calcite.sql.SqlSelect)">SqlValidator</a></code></span></div>
<div class="block">Returns the scope that expressions in the SELECT and HAVING clause of
this query should use. This scope consists of the FROM clause and the
enclosing scope. If the query is aggregating, only columns in the GROUP
BY clause may be used.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#getOrderScope(org.apache.calcite.sql.SqlSelect)">getOrderScope</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>select</code> - SELECT statement</dd>
<dt>Returns:</dt>
<dd>naming scope for ORDER BY clause</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getMatchRecognizeScope(org.apache.calcite.sql.SqlMatchRecognize)">
<h3>getMatchRecognizeScope</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a></span>&nbsp;<span class="element-name">getMatchRecognizeScope</span><wbr><span class="parameters">(<a href="../SqlMatchRecognize.html" title="class in org.apache.calcite.sql">SqlMatchRecognize</a>&nbsp;node)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#getMatchRecognizeScope(org.apache.calcite.sql.SqlMatchRecognize)">SqlValidator</a></code></span></div>
<div class="block">Returns a scope match recognize clause.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#getMatchRecognizeScope(org.apache.calcite.sql.SqlMatchRecognize)">getMatchRecognizeScope</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>node</code> - Match recognize</dd>
<dt>Returns:</dt>
<dd>naming scope for Match recognize clause</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getJoinScope(org.apache.calcite.sql.SqlNode)">
<h3>getJoinScope</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">@Nullable <a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a></span>&nbsp;<span class="element-name">getJoinScope</span><wbr><span class="parameters">(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#getJoinScope(org.apache.calcite.sql.SqlNode)">SqlValidator</a></code></span></div>
<div class="block">Returns a scope containing the objects visible from the ON and USING
sections of a JOIN clause.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#getJoinScope(org.apache.calcite.sql.SqlNode)">getJoinScope</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>node</code> - The item in the FROM clause which contains the ON or USING
expression</dd>
<dt>Returns:</dt>
<dd>naming scope for JOIN clause</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list-long">
<li><a href="SqlValidator.html#getFromScope(org.apache.calcite.sql.SqlSelect)"><code>SqlValidator.getFromScope(org.apache.calcite.sql.SqlSelect)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getOverScope(org.apache.calcite.sql.SqlNode)">
<h3>getOverScope</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a></span>&nbsp;<span class="element-name">getOverScope</span><wbr><span class="parameters">(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#getOverScope(org.apache.calcite.sql.SqlNode)">SqlValidator</a></code></span></div>
<div class="block">Returns the scope of an OVER or VALUES node.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#getOverScope(org.apache.calcite.sql.SqlNode)">getOverScope</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>node</code> - Node</dd>
<dt>Returns:</dt>
<dd>Scope</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getNamespace(org.apache.calcite.sql.SqlNode)">
<h3>getNamespace</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">@Nullable <a href="SqlValidatorNamespace.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorNamespace</a></span>&nbsp;<span class="element-name">getNamespace</span><wbr><span class="parameters">(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#getNamespace(org.apache.calcite.sql.SqlNode)">SqlValidator</a></code></span></div>
<div class="block">Finds the namespace corresponding to a given node.
<p>For example, in the query <code>SELECT * FROM (SELECT * FROM t), t1 AS
alias</code>, the both items in the FROM clause have a corresponding
namespace.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#getNamespace(org.apache.calcite.sql.SqlNode)">getNamespace</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>node</code> - Parse tree node</dd>
<dt>Returns:</dt>
<dd>namespace of node</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="performUnconditionalRewrites(org.apache.calcite.sql.SqlNode,boolean)">
<h3>performUnconditionalRewrites</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">@PolyNull <a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a></span>&nbsp;<span class="element-name">performUnconditionalRewrites</span><wbr><span class="parameters">(@PolyNull <a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
boolean&nbsp;underFrom)</span></div>
<div class="block">Performs expression rewrites which are always used unconditionally. These
rewrites massage the expression tree into a standard form so that the
rest of the validation logic can be simpler.
<p>Returns null if and only if the original expression is null.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>node</code> - expression to be rewritten</dd>
<dd><code>underFrom</code> - whether node appears directly under a FROM clause</dd>
<dt>Returns:</dt>
<dd>rewritten expression, or null if the original expression is null</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getSelfJoinExprForUpdate(org.apache.calcite.sql.SqlNode,java.lang.String)">
<h3>getSelfJoinExprForUpdate</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">@Nullable <a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a></span>&nbsp;<span class="element-name">getSelfJoinExprForUpdate</span><wbr><span class="parameters">(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;table,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;alias)</span></div>
<div class="block">Allows a subclass to provide information about how to convert an UPDATE
into a MERGE via self-join. If this method returns null, then no such
conversion takes place. Otherwise, this method should return a suitable
unique identifier expression for the given table.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>table</code> - identifier for table being updated</dd>
<dd><code>alias</code> - alias to use for qualifying columns in expression, or null
for unqualified references; if this is equal to
<a href="#UPDATE_SRC_ALIAS">"SYS$SRC"</a>, then column references have been
anonymized to "SYS$ANONx", where x is the 1-based column
number.</dd>
<dt>Returns:</dt>
<dd>expression for unique identifier, or null to prevent conversion</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="createSourceSelectForUpdate(org.apache.calcite.sql.SqlUpdate)">
<h3>createSourceSelectForUpdate</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type"><a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a></span>&nbsp;<span class="element-name">createSourceSelectForUpdate</span><wbr><span class="parameters">(<a href="../SqlUpdate.html" title="class in org.apache.calcite.sql">SqlUpdate</a>&nbsp;call)</span></div>
<div class="block">Creates the SELECT statement that putatively feeds rows into an UPDATE
statement to be updated.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>call</code> - Call to the UPDATE operator</dd>
<dt>Returns:</dt>
<dd>select statement</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="createSourceSelectForDelete(org.apache.calcite.sql.SqlDelete)">
<h3>createSourceSelectForDelete</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type"><a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a></span>&nbsp;<span class="element-name">createSourceSelectForDelete</span><wbr><span class="parameters">(<a href="../SqlDelete.html" title="class in org.apache.calcite.sql">SqlDelete</a>&nbsp;call)</span></div>
<div class="block">Creates the SELECT statement that putatively feeds rows into a DELETE
statement to be deleted.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>call</code> - Call to the DELETE operator</dd>
<dt>Returns:</dt>
<dd>select statement</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getValidatedNodeType(org.apache.calcite.sql.SqlNode)">
<h3>getValidatedNodeType</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">getValidatedNodeType</span><wbr><span class="parameters">(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#getValidatedNodeType(org.apache.calcite.sql.SqlNode)">SqlValidator</a></code></span></div>
<div class="block">Returns the type assigned to a node by validation.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#getValidatedNodeType(org.apache.calcite.sql.SqlNode)">getValidatedNodeType</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>node</code> - the node of interest</dd>
<dt>Returns:</dt>
<dd>validated type, never null</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getValidatedNodeTypeIfKnown(org.apache.calcite.sql.SqlNode)">
<h3>getValidatedNodeTypeIfKnown</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">@Nullable <a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a></span>&nbsp;<span class="element-name">getValidatedNodeTypeIfKnown</span><wbr><span class="parameters">(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#getValidatedNodeTypeIfKnown(org.apache.calcite.sql.SqlNode)">SqlValidator</a></code></span></div>
<div class="block">Returns the type assigned to a node by validation, or null if unknown.
This allows for queries against nodes such as aliases, which have no type
of their own. If you want to assert that the node of interest must have a
type, use <a href="SqlValidator.html#getValidatedNodeType(org.apache.calcite.sql.SqlNode)"><code>SqlValidator.getValidatedNodeType(org.apache.calcite.sql.SqlNode)</code></a> instead.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#getValidatedNodeTypeIfKnown(org.apache.calcite.sql.SqlNode)">getValidatedNodeTypeIfKnown</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>node</code> - the node of interest</dd>
<dt>Returns:</dt>
<dd>validated type, or null if unknown or not applicable</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getValidatedOperandTypes(org.apache.calcite.sql.SqlCall)">
<h3>getValidatedOperandTypes</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;</span>&nbsp;<span class="element-name">getValidatedOperandTypes</span><wbr><span class="parameters">(<a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#getValidatedOperandTypes(org.apache.calcite.sql.SqlCall)">SqlValidator</a></code></span></div>
<div class="block">Returns the types of a call's operands.
<p>Returns null if the call has not been validated, or if the operands'
types do not differ from their types as expressions.
<p>This method is most useful when some of the operands are of type ANY,
or if they need to be coerced to be consistent with other operands, or
with the needs of the function.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#getValidatedOperandTypes(org.apache.calcite.sql.SqlCall)">getValidatedOperandTypes</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>call</code> - Call</dd>
<dt>Returns:</dt>
<dd>List of operands' types, or null if not known or 'obvious'</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setValidatedNodeType(org.apache.calcite.sql.SqlNode,org.apache.calcite.rel.type.RelDataType)">
<h3>setValidatedNodeType</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setValidatedNodeType</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;type)</span></div>
<div class="block">Saves the type of a <a href="../SqlNode.html" title="class in org.apache.calcite.sql"><code>SqlNode</code></a>, now that it has been validated.
<p>Unlike the base class method, this method is not deprecated.
It is available from within Calcite, but is not part of the public API.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#setValidatedNodeType(org.apache.calcite.sql.SqlNode,org.apache.calcite.rel.type.RelDataType)">setValidatedNodeType</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>node</code> - A SQL parse tree node, never null</dd>
<dd><code>type</code> - Its type; must not be null</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="removeValidatedNodeType(org.apache.calcite.sql.SqlNode)">
<h3>removeValidatedNodeType</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">removeValidatedNodeType</span><wbr><span class="parameters">(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#removeValidatedNodeType(org.apache.calcite.sql.SqlNode)">SqlValidator</a></code></span></div>
<div class="block">Removes a node from the set of validated nodes.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#removeValidatedNodeType(org.apache.calcite.sql.SqlNode)">removeValidatedNodeType</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>node</code> - node to be removed</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="makeNullaryCall(org.apache.calcite.sql.SqlIdentifier)">
<h3>makeNullaryCall</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">@Nullable <a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a></span>&nbsp;<span class="element-name">makeNullaryCall</span><wbr><span class="parameters">(<a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql">SqlIdentifier</a>&nbsp;id)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#makeNullaryCall(org.apache.calcite.sql.SqlIdentifier)">SqlValidator</a></code></span></div>
<div class="block">If an identifier is a legitimate call to a function that has no
arguments and requires no parentheses (for example "CURRENT_USER"),
returns a call to that function, otherwise returns null.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#makeNullaryCall(org.apache.calcite.sql.SqlIdentifier)">makeNullaryCall</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
</dl>
</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="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;expr)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#deriveType(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlNode)">SqlValidator</a></code></span></div>
<div class="block">Derives the type of a node in a given scope. If the type has already been
inferred, returns the previous type.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#deriveType(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlNode)">deriveType</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>scope</code> - Syntactic scope</dd>
<dd><code>expr</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="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)">
<h3>deriveConstructorType</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">deriveConstructorType</span><wbr><span class="parameters">(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call,
<a href="../SqlFunction.html" title="class in org.apache.calcite.sql">SqlFunction</a>&nbsp;unresolvedConstructor,
@Nullable <a href="../SqlFunction.html" title="class in org.apache.calcite.sql">SqlFunction</a>&nbsp;resolvedConstructor,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&nbsp;argTypes)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#deriveConstructorType(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.SqlFunction,org.apache.calcite.sql.SqlFunction,java.util.List)">SqlValidator</a></code></span></div>
<div class="block">Derives the type of a constructor.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#deriveConstructorType(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.SqlFunction,org.apache.calcite.sql.SqlFunction,java.util.List)">deriveConstructorType</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>scope</code> - Scope</dd>
<dd><code>call</code> - Call</dd>
<dd><code>unresolvedConstructor</code> - TODO</dd>
<dd><code>resolvedConstructor</code> - TODO</dd>
<dd><code>argTypes</code> - Types of arguments</dd>
<dt>Returns:</dt>
<dd>Resolved type of constructor</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="handleUnresolvedFunction(org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.SqlOperator,java.util.List,java.util.List)">
<h3>handleUnresolvedFunction</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="../../runtime/CalciteException.html" title="class in org.apache.calcite.runtime">CalciteException</a></span>&nbsp;<span class="element-name">handleUnresolvedFunction</span><wbr><span class="parameters">(<a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call,
<a href="../SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&nbsp;unresolvedFunction,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&nbsp;argTypes,
@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&gt;&nbsp;argNames)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#handleUnresolvedFunction(org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.SqlOperator,java.util.List,java.util.List)">SqlValidator</a></code></span></div>
<div class="block">Handles a call to a function which cannot be resolved. Returns an
appropriately descriptive error, which caller must throw.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#handleUnresolvedFunction(org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.SqlOperator,java.util.List,java.util.List)">handleUnresolvedFunction</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>call</code> - Call</dd>
<dd><code>unresolvedFunction</code> - Overloaded function which is the target of the
call</dd>
<dd><code>argTypes</code> - Types of arguments</dd>
<dd><code>argNames</code> - Names of arguments, or null if call by position</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="inferUnknownTypes(org.apache.calcite.rel.type.RelDataType,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlNode)">
<h3>inferUnknownTypes</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">inferUnknownTypes</span><wbr><span class="parameters">(<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;inferredType,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</span></div>
</section>
</li>
<li>
<section class="detail" id="addToSelectList(java.util.List,java.util.Set,java.util.List,org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SelectScope,boolean)">
<h3>addToSelectList</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">addToSelectList</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;list,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Set.html" title="class or interface in java.util" class="external-link">Set</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&gt;&nbsp;aliases,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.Entry.html" title="class or interface in java.util" class="external-link">Map.Entry</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>,<wbr><a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&gt;&nbsp;fieldList,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;exp,
<a href="SelectScope.html" title="class in org.apache.calcite.sql.validate">SelectScope</a>&nbsp;scope,
boolean&nbsp;includeSystemVars)</span></div>
<div class="block">Adds an expression to a select list, ensuring that its alias does not
clash with any existing expressions on the list.</div>
</section>
</li>
<li>
<section class="detail" id="deriveAlias(org.apache.calcite.sql.SqlNode,int)">
<h3>deriveAlias</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">deriveAlias</span><wbr><span class="parameters">(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
int&nbsp;ordinal)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#deriveAlias(org.apache.calcite.sql.SqlNode,int)">SqlValidator</a></code></span></div>
<div class="block">Derives an alias for an expression. If no alias can be derived, returns
null if <code>ordinal</code> is less than zero, otherwise generates an
alias <code>EXPR$<i>ordinal</i></code>.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#deriveAlias(org.apache.calcite.sql.SqlNode,int)">deriveAlias</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>node</code> - Expression</dd>
<dd><code>ordinal</code> - Ordinal of expression</dd>
<dt>Returns:</dt>
<dd>derived alias, or null if no alias can be derived and ordinal is
less than zero</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="shouldAllowIntermediateOrderBy()">
<h3>shouldAllowIntermediateOrderBy</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">shouldAllowIntermediateOrderBy</span>()</div>
</section>
</li>
<li>
<section class="detail" id="createMatchRecognizeNameSpace(org.apache.calcite.sql.SqlMatchRecognize,org.apache.calcite.sql.SqlNode)">
<h3>createMatchRecognizeNameSpace</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type"><a href="MatchRecognizeNamespace.html" title="class in org.apache.calcite.sql.validate">MatchRecognizeNamespace</a></span>&nbsp;<span class="element-name">createMatchRecognizeNameSpace</span><wbr><span class="parameters">(<a href="../SqlMatchRecognize.html" title="class in org.apache.calcite.sql">SqlMatchRecognize</a>&nbsp;call,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;enclosingNode)</span></div>
</section>
</li>
<li>
<section class="detail" id="createPivotNameSpace(org.apache.calcite.sql.SqlPivot,org.apache.calcite.sql.SqlNode)">
<h3>createPivotNameSpace</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type"><a href="PivotNamespace.html" title="class in org.apache.calcite.sql.validate">PivotNamespace</a></span>&nbsp;<span class="element-name">createPivotNameSpace</span><wbr><span class="parameters">(<a href="../SqlPivot.html" title="class in org.apache.calcite.sql">SqlPivot</a>&nbsp;call,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;enclosingNode)</span></div>
</section>
</li>
<li>
<section class="detail" id="createUnpivotNameSpace(org.apache.calcite.sql.SqlUnpivot,org.apache.calcite.sql.SqlNode)">
<h3>createUnpivotNameSpace</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type"><a href="UnpivotNamespace.html" title="class in org.apache.calcite.sql.validate">UnpivotNamespace</a></span>&nbsp;<span class="element-name">createUnpivotNameSpace</span><wbr><span class="parameters">(<a href="../SqlUnpivot.html" title="class in org.apache.calcite.sql">SqlUnpivot</a>&nbsp;call,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;enclosingNode)</span></div>
</section>
</li>
<li>
<section class="detail" id="registerNamespace(org.apache.calcite.sql.validate.SqlValidatorScope,java.lang.String,org.apache.calcite.sql.validate.SqlValidatorNamespace,boolean)">
<h3>registerNamespace</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">registerNamespace</span><wbr><span class="parameters">(@Nullable <a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;usingScope,
@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;alias,
<a href="SqlValidatorNamespace.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorNamespace</a>&nbsp;ns,
boolean&nbsp;forceNullable)</span></div>
<div class="block">Registers a new namespace, and adds it as a child of its parent scope.
Derived class can override this method to tinker with namespaces as they
are created.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>usingScope</code> - Parent scope (which will want to look for things in
this namespace)</dd>
<dd><code>alias</code> - Alias by which parent will refer to this namespace</dd>
<dd><code>ns</code> - Namespace</dd>
<dd><code>forceNullable</code> - Whether to force the type of namespace to be nullable</dd>
</dl>
</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>
</section>
</li>
<li>
<section class="detail" id="createSelectNamespace(org.apache.calcite.sql.SqlSelect,org.apache.calcite.sql.SqlNode)">
<h3>createSelectNamespace</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type"><a href="SelectNamespace.html" title="class in org.apache.calcite.sql.validate">SelectNamespace</a></span>&nbsp;<span class="element-name">createSelectNamespace</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;enclosingNode)</span></div>
<div class="block">Creates a namespace for a <code>SELECT</code> node. Derived class may
override this factory method.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>select</code> - Select node</dd>
<dd><code>enclosingNode</code> - Enclosing node</dd>
<dt>Returns:</dt>
<dd>Select namespace</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="createSetopNamespace(org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.SqlNode)">
<h3>createSetopNamespace</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type"><a href="SetopNamespace.html" title="class in org.apache.calcite.sql.validate">SetopNamespace</a></span>&nbsp;<span class="element-name">createSetopNamespace</span><wbr><span class="parameters">(<a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;enclosingNode)</span></div>
<div class="block">Creates a namespace for a set operation (<code>UNION</code>, <code>
INTERSECT</code>, or <code>EXCEPT</code>). Derived class may override
this factory method.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>call</code> - Call to set operation</dd>
<dd><code>enclosingNode</code> - Enclosing node</dd>
<dt>Returns:</dt>
<dd>Set operation namespace</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="isAggregate(org.apache.calcite.sql.SqlSelect)">
<h3>isAggregate</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isAggregate</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"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#isAggregate(org.apache.calcite.sql.SqlSelect)">SqlValidator</a></code></span></div>
<div class="block">Returns whether a SELECT statement is an aggregation. Criteria are: (1)
contains GROUP BY, or (2) contains HAVING, or (3) SELECT or ORDER BY
clause contains aggregate functions. (Windowed aggregate functions, such
as <code>SUM(x) OVER w</code>, don't count.)</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#isAggregate(org.apache.calcite.sql.SqlSelect)">isAggregate</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>select</code> - SELECT statement</dd>
<dt>Returns:</dt>
<dd>whether SELECT statement is an aggregation</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="isNestedAggregateWindow(org.apache.calcite.sql.SqlNode)">
<h3>isNestedAggregateWindow</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isNestedAggregateWindow</span><wbr><span class="parameters">(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</span></div>
</section>
</li>
<li>
<section class="detail" id="isOverAggregateWindow(org.apache.calcite.sql.SqlNode)">
<h3>isOverAggregateWindow</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isOverAggregateWindow</span><wbr><span class="parameters">(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</span></div>
</section>
</li>
<li>
<section class="detail" id="getAggregate(org.apache.calcite.sql.SqlSelect)">
<h3>getAggregate</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">@Nullable <a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a></span>&nbsp;<span class="element-name">getAggregate</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">Returns the parse tree node (GROUP BY, HAVING, or an aggregate function
call) that causes <code>select</code> to be an aggregate query, or null if it
is not an aggregate query.
<p>The node is useful context for error messages,
but you cannot assume that the node is the only aggregate function.</div>
</section>
</li>
<li>
<section class="detail" id="isAggregate(org.apache.calcite.sql.SqlNode)">
<h3>isAggregate</h3>
<div class="member-signature"><span class="annotations"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Deprecated.html" title="class or interface in java.lang" class="external-link">@Deprecated</a>
</span><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isAggregate</span><wbr><span class="parameters">(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;selectNode)</span></div>
<div class="deprecation-block"><span class="deprecated-label">Deprecated.</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#isAggregate(org.apache.calcite.sql.SqlNode)">SqlValidator</a></code></span></div>
<div class="block">Returns whether a select list expression is an aggregate function.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#isAggregate(org.apache.calcite.sql.SqlNode)">isAggregate</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>selectNode</code> - Expression in SELECT clause</dd>
<dt>Returns:</dt>
<dd>whether expression is an aggregate function</dd>
</dl>
</section>
</li>
<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="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="SqlValidator.html#validateIdentifier(org.apache.calcite.sql.SqlIdentifier,org.apache.calcite.sql.validate.SqlValidatorScope)">SqlValidator</a></code></span></div>
<div class="block">Resolves an identifier to a fully-qualified name.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#validateIdentifier(org.apache.calcite.sql.SqlIdentifier,org.apache.calcite.sql.validate.SqlValidatorScope)">validateIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>id</code> - Identifier</dd>
<dd><code>scope</code> - Naming scope</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="validateLiteral(org.apache.calcite.sql.SqlLiteral)">
<h3>validateLiteral</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">validateLiteral</span><wbr><span class="parameters">(<a href="../SqlLiteral.html" title="class in org.apache.calcite.sql">SqlLiteral</a>&nbsp;literal)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#validateLiteral(org.apache.calcite.sql.SqlLiteral)">SqlValidator</a></code></span></div>
<div class="block">Validates a literal.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#validateLiteral(org.apache.calcite.sql.SqlLiteral)">validateLiteral</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>literal</code> - Literal</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="validateIntervalQualifier(org.apache.calcite.sql.SqlIntervalQualifier)">
<h3>validateIntervalQualifier</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">validateIntervalQualifier</span><wbr><span class="parameters">(<a href="../SqlIntervalQualifier.html" title="class in org.apache.calcite.sql">SqlIntervalQualifier</a>&nbsp;qualifier)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#validateIntervalQualifier(org.apache.calcite.sql.SqlIntervalQualifier)">SqlValidator</a></code></span></div>
<div class="block">Validates a <a href="../SqlIntervalQualifier.html" title="class in org.apache.calcite.sql"><code>SqlIntervalQualifier</code></a>.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#validateIntervalQualifier(org.apache.calcite.sql.SqlIntervalQualifier)">validateIntervalQualifier</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>qualifier</code> - Interval qualifier</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="validateTimeFrame(org.apache.calcite.sql.SqlIntervalQualifier)">
<h3>validateTimeFrame</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="../../rel/type/TimeFrame.html" title="interface in org.apache.calcite.rel.type">TimeFrame</a></span>&nbsp;<span class="element-name">validateTimeFrame</span><wbr><span class="parameters">(<a href="../SqlIntervalQualifier.html" title="class in org.apache.calcite.sql">SqlIntervalQualifier</a>&nbsp;qualifier)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#validateTimeFrame(org.apache.calcite.sql.SqlIntervalQualifier)">SqlValidator</a></code></span></div>
<div class="block">Validates a time frame.
<p>A time frame is either a built-in time frame based on a time unit such
as <code>TimeUnitRange.HOUR</code>,
or is a custom time frame represented by a name in
<a href="../SqlIntervalQualifier.html#timeFrameName"><code>SqlIntervalQualifier.timeFrameName</code></a>. A custom time frame is
validated against <a href="SqlValidator.html#getTimeFrameSet()"><code>SqlValidator.getTimeFrameSet()</code></a>.
<p>Returns a time frame, or throws.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#validateTimeFrame(org.apache.calcite.sql.SqlIntervalQualifier)">validateTimeFrame</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></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="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</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>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="#unknownType"><code>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="validateTableFunction(org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.rel.type.RelDataType)">
<h3>validateTableFunction</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">validateTableFunction</span><wbr><span class="parameters">(<a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;node,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetRowType)</span></div>
</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="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</span></div>
</section>
</li>
<li>
<section class="detail" id="validateUnnest(org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.rel.type.RelDataType)">
<h3>validateUnnest</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">validateUnnest</span><wbr><span class="parameters">(<a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetRowType)</span></div>
</section>
</li>
<li>
<section class="detail" id="validateJoin(org.apache.calcite.sql.SqlJoin,org.apache.calcite.sql.validate.SqlValidatorScope)">
<h3>validateJoin</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">validateJoin</span><wbr><span class="parameters">(<a href="../SqlJoin.html" title="class in org.apache.calcite.sql">SqlJoin</a>&nbsp;join,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</span></div>
</section>
</li>
<li>
<section class="detail" id="validateSelect(org.apache.calcite.sql.SqlSelect,org.apache.calcite.rel.type.RelDataType)">
<h3>validateSelect</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">validateSelect</span><wbr><span class="parameters">(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetRowType)</span></div>
<div class="block">Validates a SELECT statement.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>select</code> - Select statement</dd>
<dd><code>targetRowType</code> - Desired row type, must not be null, may be the data
type 'unknown'.</dd>
</dl>
</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="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="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="SqlValidator.html#validateModality(org.apache.calcite.sql.SqlSelect,org.apache.calcite.sql.validate.SqlModality,boolean)">validateModality</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>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="validateWindowClause(org.apache.calcite.sql.SqlSelect)">
<h3>validateWindowClause</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">validateWindowClause</span><wbr><span class="parameters">(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</span></div>
</section>
</li>
<li>
<section class="detail" id="validateQualifyClause(org.apache.calcite.sql.SqlSelect)">
<h3>validateQualifyClause</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">validateQualifyClause</span><wbr><span class="parameters">(<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</span></div>
</section>
</li>
<li>
<section class="detail" id="validateWith(org.apache.calcite.sql.SqlWith,org.apache.calcite.sql.validate.SqlValidatorScope)">
<h3>validateWith</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">validateWith</span><wbr><span class="parameters">(<a href="../SqlWith.html" title="class in org.apache.calcite.sql">SqlWith</a>&nbsp;with,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</span></div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#validateWith(org.apache.calcite.sql.SqlWith,org.apache.calcite.sql.validate.SqlValidatorScope)">validateWith</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="validateWithItem(org.apache.calcite.sql.SqlWithItem)">
<h3>validateWithItem</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">validateWithItem</span><wbr><span class="parameters">(<a href="../SqlWithItem.html" title="class in org.apache.calcite.sql">SqlWithItem</a>&nbsp;withItem)</span></div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#validateWithItem(org.apache.calcite.sql.SqlWithItem)">validateWithItem</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="validateSequenceValue(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlIdentifier)">
<h3>validateSequenceValue</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">validateSequenceValue</span><wbr><span class="parameters">(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql">SqlIdentifier</a>&nbsp;id)</span></div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#validateSequenceValue(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlIdentifier)">validateSequenceValue</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getWithScope(org.apache.calcite.sql.SqlNode)">
<h3>getWithScope</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">@Nullable <a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a></span>&nbsp;<span class="element-name">getWithScope</span><wbr><span class="parameters">(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;withItem)</span></div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#getWithScope(org.apache.calcite.sql.SqlNode)">getWithScope</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getTypeCoercion()">
<h3>getTypeCoercion</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="implicit/TypeCoercion.html" title="interface in org.apache.calcite.sql.validate.implicit">TypeCoercion</a></span>&nbsp;<span class="element-name">getTypeCoercion</span>()</div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#getTypeCoercion()">SqlValidator</a></code></span></div>
<div class="block">Get the type coercion instance.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#getTypeCoercion()">getTypeCoercion</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="config()">
<h3>config</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="SqlValidator.Config.html" title="interface in org.apache.calcite.sql.validate">SqlValidator.Config</a></span>&nbsp;<span class="element-name">config</span>()</div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#config()">SqlValidator</a></code></span></div>
<div class="block">Returns the config of the validator.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#config()">config</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="transform(java.util.function.UnaryOperator)">
<h3>transform</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></span>&nbsp;<span class="element-name">transform</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/function/UnaryOperator.html" title="class or interface in java.util.function" class="external-link">UnaryOperator</a>&lt;<a href="SqlValidator.Config.html" title="interface in org.apache.calcite.sql.validate">SqlValidator.Config</a>&gt;&nbsp;transform)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#transform(java.util.function.UnaryOperator)">SqlValidator</a></code></span></div>
<div class="block">Returns this SqlValidator, with the same state, applying
a transform to the config.
<p>This is mainly used for tests, otherwise constructs a <a href="SqlValidator.Config.html" title="interface in org.apache.calcite.sql.validate"><code>SqlValidator.Config</code></a> directly
through the constructor.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#transform(java.util.function.UnaryOperator)">transform</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="validateOrderList(org.apache.calcite.sql.SqlSelect)">
<h3>validateOrderList</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">validateOrderList</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">Validates the ORDER BY clause of a SELECT statement.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>select</code> - Select statement</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="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="SqlValidator.html#expandOrderExpr(org.apache.calcite.sql.SqlSelect,org.apache.calcite.sql.SqlNode)">expandOrderExpr</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>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="validateGroupClause(org.apache.calcite.sql.SqlSelect)">
<h3>validateGroupClause</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">validateGroupClause</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">Validates the GROUP BY clause of a SELECT statement. This method is
called even if no GROUP BY clause is present.</div>
</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>
</section>
</li>
<li>
<section class="detail" id="validateWhereOrOn(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlNode,java.lang.String)">
<h3>validateWhereOrOn</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">validateWhereOrOn</span><wbr><span class="parameters">(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;condition,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;clause)</span></div>
</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>
</section>
</li>
<li>
<section class="detail" id="validateSelectList(org.apache.calcite.sql.SqlNodeList,org.apache.calcite.sql.SqlSelect,org.apache.calcite.rel.type.RelDataType)">
<h3>validateSelectList</h3>
<div class="member-signature"><span class="modifiers">protected</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">validateSelectList</span><wbr><span class="parameters">(<a href="../SqlNodeList.html" title="class in org.apache.calcite.sql">SqlNodeList</a>&nbsp;selectItems,
<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetRowType)</span></div>
</section>
</li>
<li>
<section class="detail" id="createTargetRowType(org.apache.calcite.sql.validate.SqlValidatorTable,org.apache.calcite.sql.SqlNodeList,boolean)">
<h3>createTargetRowType</h3>
<div class="member-signature"><span class="modifiers">protected</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">createTargetRowType</span><wbr><span class="parameters">(<a href="SqlValidatorTable.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorTable</a>&nbsp;table,
@Nullable <a href="../SqlNodeList.html" title="class in org.apache.calcite.sql">SqlNodeList</a>&nbsp;targetColumnList,
boolean&nbsp;append)</span></div>
<div class="block">Derives a row-type for INSERT and UPDATE operations.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>table</code> - Target table for INSERT/UPDATE</dd>
<dd><code>targetColumnList</code> - List of target columns, or null if not specified</dd>
<dd><code>append</code> - Whether to append fields to those in <code>
baseRowType</code></dd>
<dt>Returns:</dt>
<dd>Rowtype</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="validateInsert(org.apache.calcite.sql.SqlInsert)">
<h3>validateInsert</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">validateInsert</span><wbr><span class="parameters">(<a href="../SqlInsert.html" title="class in org.apache.calcite.sql">SqlInsert</a>&nbsp;insert)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#validateInsert(org.apache.calcite.sql.SqlInsert)">SqlValidator</a></code></span></div>
<div class="block">Validates an INSERT statement.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#validateInsert(org.apache.calcite.sql.SqlInsert)">validateInsert</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>insert</code> - INSERT statement</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getLogicalTargetRowType(org.apache.calcite.rel.type.RelDataType,org.apache.calcite.sql.SqlInsert)">
<h3>getLogicalTargetRowType</h3>
<div class="member-signature"><span class="modifiers">protected</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">getLogicalTargetRowType</span><wbr><span class="parameters">(<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetRowType,
<a href="../SqlInsert.html" title="class in org.apache.calcite.sql">SqlInsert</a>&nbsp;insert)</span></div>
</section>
</li>
<li>
<section class="detail" id="getLogicalSourceRowType(org.apache.calcite.rel.type.RelDataType,org.apache.calcite.sql.SqlInsert)">
<h3>getLogicalSourceRowType</h3>
<div class="member-signature"><span class="modifiers">protected</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">getLogicalSourceRowType</span><wbr><span class="parameters">(<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;sourceRowType,
<a href="../SqlInsert.html" title="class in org.apache.calcite.sql">SqlInsert</a>&nbsp;insert)</span></div>
</section>
</li>
<li>
<section class="detail" id="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)">
<h3>checkTypeAssignment</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">checkTypeAssignment</span><wbr><span class="parameters">(@Nullable <a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;sourceScope,
<a href="SqlValidatorTable.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorTable</a>&nbsp;table,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;sourceRowType,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetRowType,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;query)</span></div>
<div class="block">Checks the type assignment of an INSERT or UPDATE query.
<p>Skip the virtual columns(can not insert into) type assignment
check if the source fields count equals with
the real target table fields count, see how #checkFieldCount was used.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>sourceScope</code> - Scope of query source which is used to infer node type</dd>
<dd><code>table</code> - Target table</dd>
<dd><code>sourceRowType</code> - Source row type</dd>
<dd><code>targetRowType</code> - Target row type, it should either contain all the virtual columns
(can not insert into) or exclude all the virtual columns</dd>
<dd><code>query</code> - The query</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="validateDelete(org.apache.calcite.sql.SqlDelete)">
<h3>validateDelete</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">validateDelete</span><wbr><span class="parameters">(<a href="../SqlDelete.html" title="class in org.apache.calcite.sql">SqlDelete</a>&nbsp;call)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#validateDelete(org.apache.calcite.sql.SqlDelete)">SqlValidator</a></code></span></div>
<div class="block">Validates a DELETE statement.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#validateDelete(org.apache.calcite.sql.SqlDelete)">validateDelete</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>call</code> - DELETE statement</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="validateUpdate(org.apache.calcite.sql.SqlUpdate)">
<h3>validateUpdate</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">validateUpdate</span><wbr><span class="parameters">(<a href="../SqlUpdate.html" title="class in org.apache.calcite.sql">SqlUpdate</a>&nbsp;call)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#validateUpdate(org.apache.calcite.sql.SqlUpdate)">SqlValidator</a></code></span></div>
<div class="block">Validates an UPDATE statement.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#validateUpdate(org.apache.calcite.sql.SqlUpdate)">validateUpdate</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>call</code> - UPDATE statement</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="validateMerge(org.apache.calcite.sql.SqlMerge)">
<h3>validateMerge</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">validateMerge</span><wbr><span class="parameters">(<a href="../SqlMerge.html" title="class in org.apache.calcite.sql">SqlMerge</a>&nbsp;call)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#validateMerge(org.apache.calcite.sql.SqlMerge)">SqlValidator</a></code></span></div>
<div class="block">Validates a MERGE statement.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#validateMerge(org.apache.calcite.sql.SqlMerge)">validateMerge</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>call</code> - MERGE statement</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="validateValues(org.apache.calcite.sql.SqlCall,org.apache.calcite.rel.type.RelDataType,org.apache.calcite.sql.validate.SqlValidatorScope)">
<h3>validateValues</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">validateValues</span><wbr><span class="parameters">(<a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;node,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetRowType,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</span></div>
<div class="block">Validates a VALUES clause.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>node</code> - Values clause</dd>
<dd><code>targetRowType</code> - Row type which expression must conform to</dd>
<dd><code>scope</code> - Scope within which clause occurs</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="validateDataType(org.apache.calcite.sql.SqlDataTypeSpec)">
<h3>validateDataType</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">validateDataType</span><wbr><span class="parameters">(<a href="../SqlDataTypeSpec.html" title="class in org.apache.calcite.sql">SqlDataTypeSpec</a>&nbsp;dataType)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#validateDataType(org.apache.calcite.sql.SqlDataTypeSpec)">SqlValidator</a></code></span></div>
<div class="block">Validates a data type expression.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#validateDataType(org.apache.calcite.sql.SqlDataTypeSpec)">validateDataType</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>dataType</code> - Data type</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="validateDynamicParam(org.apache.calcite.sql.SqlDynamicParam)">
<h3>validateDynamicParam</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">validateDynamicParam</span><wbr><span class="parameters">(<a href="../SqlDynamicParam.html" title="class in org.apache.calcite.sql">SqlDynamicParam</a>&nbsp;dynamicParam)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#validateDynamicParam(org.apache.calcite.sql.SqlDynamicParam)">SqlValidator</a></code></span></div>
<div class="block">Validates a dynamic parameter.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#validateDynamicParam(org.apache.calcite.sql.SqlDynamicParam)">validateDynamicParam</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>dynamicParam</code> - Dynamic parameter</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getValidationErrorFunction()">
<h3>getValidationErrorFunction</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">org.apache.calcite.sql.validate.SqlValidatorImpl.ValidationErrorFunction</span>&nbsp;<span class="element-name">getValidationErrorFunction</span>()</div>
</section>
</li>
<li>
<section class="detail" id="newValidationError(org.apache.calcite.sql.SqlNode,org.apache.calcite.runtime.Resources.ExInst)">
<h3>newValidationError</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="../../runtime/CalciteContextException.html" title="class in org.apache.calcite.runtime">CalciteContextException</a></span>&nbsp;<span class="element-name">newValidationError</span><wbr><span class="parameters">(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
org.apache.calcite.runtime.Resources.ExInst&lt;<a href="SqlValidatorException.html" title="class in org.apache.calcite.sql.validate">SqlValidatorException</a>&gt;&nbsp;e)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#newValidationError(org.apache.calcite.sql.SqlNode,org.apache.calcite.runtime.Resources.ExInst)">SqlValidator</a></code></span></div>
<div class="block">Adds "line x, column y" context to a validator exception.
<p>Note that the input exception is checked (it derives from
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link"><code>Exception</code></a>) and the output exception is unchecked (it derives from
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/RuntimeException.html" title="class or interface in java.lang" class="external-link"><code>RuntimeException</code></a>). This is intentional -- it should remind code
authors to provide context for their validation errors.</p></div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#newValidationError(org.apache.calcite.sql.SqlNode,org.apache.calcite.runtime.Resources.ExInst)">newValidationError</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>node</code> - The place where the exception occurred, not null</dd>
<dd><code>e</code> - The validation error</dd>
<dt>Returns:</dt>
<dd>Exception containing positional information, never null</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getWindowByName(org.apache.calcite.sql.SqlIdentifier,org.apache.calcite.sql.validate.SqlValidatorScope)">
<h3>getWindowByName</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type"><a href="../SqlWindow.html" title="class in org.apache.calcite.sql">SqlWindow</a></span>&nbsp;<span class="element-name">getWindowByName</span><wbr><span class="parameters">(<a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql">SqlIdentifier</a>&nbsp;id,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</span></div>
</section>
</li>
<li>
<section class="detail" id="resolveWindow(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope)">
<h3>resolveWindow</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="../SqlWindow.html" title="class in org.apache.calcite.sql">SqlWindow</a></span>&nbsp;<span class="element-name">resolveWindow</span><wbr><span class="parameters">(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;windowOrRef,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#resolveWindow(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope)">SqlValidator</a></code></span></div>
<div class="block">Converts a window specification or window name into a fully-resolved
window specification. For example, in <code>SELECT sum(x) OVER (PARTITION
BY x ORDER BY y), sum(y) OVER w1, sum(z) OVER (w ORDER BY y) FROM t
WINDOW w AS (PARTITION BY x)</code> all aggregations have the same
resolved window specification <code>(PARTITION BY x ORDER BY y)</code>.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#resolveWindow(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope)">resolveWindow</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>windowOrRef</code> - Either the name of a window (a <a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql"><code>SqlIdentifier</code></a>)
or a window specification (a <a href="../SqlWindow.html" title="class in org.apache.calcite.sql"><code>SqlWindow</code></a>).</dd>
<dd><code>scope</code> - Scope in which to resolve window names</dd>
<dt>Returns:</dt>
<dd>A window</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getOriginal(org.apache.calcite.sql.SqlNode)">
<h3>getOriginal</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">getOriginal</span><wbr><span class="parameters">(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;expr)</span></div>
</section>
</li>
<li>
<section class="detail" id="setOriginal(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.SqlNode)">
<h3>setOriginal</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setOriginal</span><wbr><span class="parameters">(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;expr,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;original)</span></div>
</section>
</li>
<li>
<section class="detail" id="validateWindow(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlCall)">
<h3>validateWindow</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">validateWindow</span><wbr><span class="parameters">(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;windowOrId,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
@Nullable <a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#validateWindow(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlCall)">SqlValidator</a></code></span></div>
<div class="block">Validates the right-hand side of an OVER expression. It might be either
an <a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql"><code>identifier</code></a> referencing a window, or an
<a href="../SqlWindow.html" title="class in org.apache.calcite.sql"><code>inline window specification</code></a>.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#validateWindow(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlCall)">validateWindow</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>windowOrId</code> - SqlNode that can be either SqlWindow with all the
components of a window spec or a SqlIdentifier with the
name of a window spec.</dd>
<dd><code>scope</code> - Naming scope</dd>
<dd><code>call</code> - the SqlNode if a function call if the window is attached
to one.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="validateMatchRecognize(org.apache.calcite.sql.SqlCall)">
<h3>validateMatchRecognize</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">validateMatchRecognize</span><wbr><span class="parameters">(<a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#validateMatchRecognize(org.apache.calcite.sql.SqlCall)">SqlValidator</a></code></span></div>
<div class="block">Validates a MATCH_RECOGNIZE clause.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#validateMatchRecognize(org.apache.calcite.sql.SqlCall)">validateMatchRecognize</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>call</code> - MATCH_RECOGNIZE clause</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="validatePivot(org.apache.calcite.sql.SqlPivot)">
<h3>validatePivot</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">validatePivot</span><wbr><span class="parameters">(<a href="../SqlPivot.html" title="class in org.apache.calcite.sql">SqlPivot</a>&nbsp;pivot)</span></div>
</section>
</li>
<li>
<section class="detail" id="validateUnpivot(org.apache.calcite.sql.SqlUnpivot)">
<h3>validateUnpivot</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">validateUnpivot</span><wbr><span class="parameters">(<a href="../SqlUnpivot.html" title="class in org.apache.calcite.sql">SqlUnpivot</a>&nbsp;unpivot)</span></div>
</section>
</li>
<li>
<section class="detail" id="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)">
<h3>validateAggregateParams</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">validateAggregateParams</span><wbr><span class="parameters">(<a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;aggCall,
@Nullable <a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;filter,
@Nullable <a href="../SqlNodeList.html" title="class in org.apache.calcite.sql">SqlNodeList</a>&nbsp;distinctList,
@Nullable <a href="../SqlNodeList.html" title="class in org.apache.calcite.sql">SqlNodeList</a>&nbsp;orderList,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#validateAggregateParams(org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.SqlNodeList,org.apache.calcite.sql.SqlNodeList,org.apache.calcite.sql.validate.SqlValidatorScope)">SqlValidator</a></code></span></div>
<div class="block">Validates parameters for aggregate function.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#validateAggregateParams(org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.SqlNodeList,org.apache.calcite.sql.SqlNodeList,org.apache.calcite.sql.validate.SqlValidatorScope)">validateAggregateParams</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>aggCall</code> - Call to aggregate function</dd>
<dd><code>filter</code> - Filter (<code>FILTER (WHERE)</code> clause), or null</dd>
<dd><code>distinctList</code> - Distinct specification (<code>WITHIN DISTINCT</code>
clause), or null</dd>
<dd><code>orderList</code> - Ordering specification (<code>WITHIN GROUP</code> clause),
or null</dd>
<dd><code>scope</code> - Syntactic scope</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="validateCall(org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.validate.SqlValidatorScope)">
<h3>validateCall</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">validateCall</span><wbr><span class="parameters">(<a href="../SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#validateCall(org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.validate.SqlValidatorScope)">SqlValidator</a></code></span></div>
<div class="block">Validates a call to an operator.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#validateCall(org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.validate.SqlValidatorScope)">validateCall</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>call</code> - Operator call</dd>
<dd><code>scope</code> - Naming scope</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="validateFeature(org.apache.calcite.runtime.Feature,org.apache.calcite.sql.parser.SqlParserPos)">
<h3>validateFeature</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">validateFeature</span><wbr><span class="parameters">(<a href="../../runtime/Feature.html" title="class in org.apache.calcite.runtime">Feature</a>&nbsp;feature,
<a href="../parser/SqlParserPos.html" title="class in org.apache.calcite.sql.parser">SqlParserPos</a>&nbsp;context)</span></div>
<div class="block">Validates that a particular feature is enabled. By default, all features
are enabled; subclasses may override this method to be more
discriminating.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>feature</code> - feature being used, represented as a resource instance</dd>
<dd><code>context</code> - parser position context for error reporting, or null if</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="resolveLiteral(org.apache.calcite.sql.SqlLiteral)">
<h3>resolveLiteral</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="../SqlLiteral.html" title="class in org.apache.calcite.sql">SqlLiteral</a></span>&nbsp;<span class="element-name">resolveLiteral</span><wbr><span class="parameters">(<a href="../SqlLiteral.html" title="class in org.apache.calcite.sql">SqlLiteral</a>&nbsp;literal)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#resolveLiteral(org.apache.calcite.sql.SqlLiteral)">SqlValidator</a></code></span></div>
<div class="block">Resolves a literal.
<p>Usually returns the literal unchanged, but if the literal is of type
<a href="../type/SqlTypeName.html#UNKNOWN"><code>SqlTypeName.UNKNOWN</code></a> looks up its type
and converts to the appropriate literal subclass.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#resolveLiteral(org.apache.calcite.sql.SqlLiteral)">resolveLiteral</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></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="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>
</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="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="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="SqlValidator.html#expand(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope)">expand</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>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="extendedExpandGroupBy(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlSelect)">
<h3>extendedExpandGroupBy</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">extendedExpandGroupBy</span><wbr><span class="parameters">(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;expr,
<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="../SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</span></div>
</section>
</li>
<li>
<section class="detail" id="isSystemField(org.apache.calcite.rel.type.RelDataTypeField)">
<h3>isSystemField</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isSystemField</span><wbr><span class="parameters">(<a href="../../rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&nbsp;field)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#isSystemField(org.apache.calcite.rel.type.RelDataTypeField)">SqlValidator</a></code></span></div>
<div class="block">Returns whether a field is a system field. Such fields may have
particular properties such as sortedness and nullability.
<p>In the default implementation, always returns <code>false</code>.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#isSystemField(org.apache.calcite.rel.type.RelDataTypeField)">isSystemField</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>field</code> - Field</dd>
<dt>Returns:</dt>
<dd>whether field is a system field</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getFieldOrigins(org.apache.calcite.sql.SqlNode)">
<h3>getFieldOrigins</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&gt;&gt;</span>&nbsp;<span class="element-name">getFieldOrigins</span><wbr><span class="parameters">(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;sqlQuery)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#getFieldOrigins(org.apache.calcite.sql.SqlNode)">SqlValidator</a></code></span></div>
<div class="block">Returns a description of how each field in the row type maps to a
catalog, schema, table and column in the schema.
<p>The returned list is never null, and has one element for each field
in the row type. Each element is a list of four elements (catalog,
schema, table, column), or may be null if the column is an expression.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#getFieldOrigins(org.apache.calcite.sql.SqlNode)">getFieldOrigins</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>sqlQuery</code> - Query</dd>
<dt>Returns:</dt>
<dd>Description of how each field in the row type maps to a schema
object</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getParameterRowType(org.apache.calcite.sql.SqlNode)">
<h3>getParameterRowType</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">getParameterRowType</span><wbr><span class="parameters">(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;sqlQuery)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#getParameterRowType(org.apache.calcite.sql.SqlNode)">SqlValidator</a></code></span></div>
<div class="block">Returns a record type that contains the name and type of each parameter.
Returns a record type with no fields if there are no parameters.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#getParameterRowType(org.apache.calcite.sql.SqlNode)">getParameterRowType</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>sqlQuery</code> - Query</dd>
<dt>Returns:</dt>
<dd>Record type</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="validateColumnListParams(org.apache.calcite.sql.SqlFunction,java.util.List,java.util.List)">
<h3>validateColumnListParams</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">validateColumnListParams</span><wbr><span class="parameters">(<a href="../SqlFunction.html" title="class in org.apache.calcite.sql">SqlFunction</a>&nbsp;function,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&nbsp;argTypes,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;operands)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlValidator.html#validateColumnListParams(org.apache.calcite.sql.SqlFunction,java.util.List,java.util.List)">SqlValidator</a></code></span></div>
<div class="block">Validates a COLUMN_LIST parameter.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlValidator.html#validateColumnListParams(org.apache.calcite.sql.SqlFunction,java.util.List,java.util.List)">validateColumnListParams</a></code>&nbsp;in interface&nbsp;<code><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></dd>
<dt>Parameters:</dt>
<dd><code>function</code> - function containing COLUMN_LIST parameter</dd>
<dd><code>argTypes</code> - function arguments</dd>
<dd><code>operands</code> - operands passed into the function call</dd>
</dl>
</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>