blob: c3ea824b7fa74cc3933e4bcaa99dafe7782cc2c0 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>SqlValidatorUtil (Apache Calcite API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="SqlValidatorUtil (Apache Calcite API)";
}
}
catch(err) {
}
//-->
var data = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9,"i11":9,"i12":9,"i13":9,"i14":9,"i15":9,"i16":9,"i17":9,"i18":9,"i19":9,"i20":9,"i21":9,"i22":9,"i23":9,"i24":9,"i25":9,"i26":9,"i27":9,"i28":9,"i29":9,"i30":9,"i31":9,"i32":41,"i33":9,"i34":9,"i35":9,"i36":41,"i37":9,"i38":9,"i39":9,"i40":9,"i41":41,"i42":9,"i43":41,"i44":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/SqlValidatorUtil.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.calcite.sql.validate</a></div>
<h2 title="Class SqlValidatorUtil" class="title">Class SqlValidatorUtil</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.calcite.sql.validate.SqlValidatorUtil</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<pre>public class <span class="typeNameLabel">SqlValidatorUtil</span>
extends java.lang.Object</pre>
<div class="block">Utility methods related to validation.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="SqlValidatorUtil.DeepCopier.html" title="class in org.apache.calcite.sql.validate">SqlValidatorUtil.DeepCopier</a></span></code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>(package private) static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="SqlValidatorUtil.GroupAnalyzer.html" title="class in org.apache.calcite.sql.validate">SqlValidatorUtil.GroupAnalyzer</a></span></code></th>
<td class="colLast">
<div class="block">Builds a list of GROUP BY expressions.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static interface&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="SqlValidatorUtil.Suggester.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorUtil.Suggester</a></span></code></th>
<td class="colLast">
<div class="block">Suggests candidates for unique names, given the number of attempts so far
and the number of expressions in the project list.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="SqlValidatorUtil.Suggester.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorUtil.Suggester</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ATTEMPT_SUGGESTER">ATTEMPT_SUGGESTER</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="SqlValidatorUtil.Suggester.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorUtil.Suggester</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EXPR_SUGGESTER">EXPR_SUGGESTER</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="SqlValidatorUtil.Suggester.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorUtil.Suggester</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#F_SUGGESTER">F_SUGGESTER</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier</th>
<th class="colSecond" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private </code></td>
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">SqlValidatorUtil</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>static <a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addAlias(org.apache.calcite.sql.SqlNode,java.lang.String)">addAlias</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;expr,
java.lang.String&nbsp;alias)</code></th>
<td class="colLast">
<div class="block">Converts an expression "expr" into "expr AS alias".</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>private static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addFields(java.util.List,java.util.List,java.util.List,java.util.Set)">addFields</a></span>&#8203;(java.util.List&lt;<a href="../../rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;fieldList,
java.util.List&lt;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&nbsp;typeList,
java.util.List&lt;java.lang.String&gt;&nbsp;nameList,
java.util.Set&lt;java.lang.String&gt;&nbsp;uniqueNames)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>private static <a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#analyzeGroupExpr(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.validate.SqlValidatorUtil.GroupAnalyzer,org.apache.calcite.sql.SqlNode)">analyzeGroupExpr</a></span>&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="SqlValidatorUtil.GroupAnalyzer.html" title="class in org.apache.calcite.sql.validate">SqlValidatorUtil.GroupAnalyzer</a>&nbsp;groupAnalyzer,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;groupExpr)</code></th>
<td class="colLast">
<div class="block">Analyzes a component of a tuple in a GROUPING SETS clause.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#analyzeGroupItem(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.validate.SqlValidatorUtil.GroupAnalyzer,com.google.common.collect.ImmutableList.Builder,org.apache.calcite.sql.SqlNode)">analyzeGroupItem</a></span>&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="SqlValidatorUtil.GroupAnalyzer.html" title="class in org.apache.calcite.sql.validate">SqlValidatorUtil.GroupAnalyzer</a>&nbsp;groupAnalyzer,
com.google.common.collect.ImmutableList.Builder&lt;com.google.common.collect.ImmutableList&lt;<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&gt;&nbsp;topBuilder,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;groupExpr)</code></th>
<td class="colLast">
<div class="block">Analyzes an expression in a GROUP BY clause.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>private static java.util.List&lt;<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#analyzeGroupTuple(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.validate.SqlValidatorUtil.GroupAnalyzer,java.util.List)">analyzeGroupTuple</a></span>&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="SqlValidatorUtil.GroupAnalyzer.html" title="class in org.apache.calcite.sql.validate">SqlValidatorUtil.GroupAnalyzer</a>&nbsp;groupAnalyzer,
java.util.List&lt;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;operandList)</code></th>
<td class="colLast">
<div class="block">Analyzes a tuple in a GROUPING SETS clause.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkCharsetAndCollateConsistentIfCharType(org.apache.calcite.rel.type.RelDataType)">checkCharsetAndCollateConsistentIfCharType</a></span>&#8203;(<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>(package private) static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkIdentifierListForDuplicates(java.util.List,org.apache.calcite.sql.validate.SqlValidatorImpl.ValidationErrorFunction)">checkIdentifierListForDuplicates</a></span>&#8203;(java.util.List&lt;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;columnList,
<a href="SqlValidatorImpl.ValidationErrorFunction.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl.ValidationErrorFunction</a>&nbsp;validationErrorFunction)</code></th>
<td class="colLast">
<div class="block">Checks that there are no duplicates in a list of <a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql"><code>SqlIdentifier</code></a>.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>private static java.util.List&lt;<a href="SqlValidatorNamespace.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorNamespace</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#children(org.apache.calcite.sql.validate.SqlValidatorScope)">children</a></span>&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>(package private) static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#containsMonotonic(org.apache.calcite.sql.validate.SelectScope,org.apache.calcite.sql.SqlNodeList)">containsMonotonic</a></span>&#8203;(<a href="SelectScope.html" title="class in org.apache.calcite.sql.validate">SelectScope</a>&nbsp;scope,
<a href="../SqlNodeList.html" title="class in org.apache.calcite.sql">SqlNodeList</a>&nbsp;nodes)</code></th>
<td class="colLast">
<div class="block">Returns whether any of the given expressions are sorted.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#containsMonotonic(org.apache.calcite.sql.validate.SqlValidatorScope)">containsMonotonic</a></span>&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</code></th>
<td class="colLast">
<div class="block">Returns whether there are any input columns that are sorted.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>private static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convertGroupSet(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.validate.SqlValidatorUtil.GroupAnalyzer,com.google.common.collect.ImmutableList.Builder,org.apache.calcite.sql.SqlNode)">convertGroupSet</a></span>&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="SqlValidatorUtil.GroupAnalyzer.html" title="class in org.apache.calcite.sql.validate">SqlValidatorUtil.GroupAnalyzer</a>&nbsp;groupAnalyzer,
com.google.common.collect.ImmutableList.Builder&lt;<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&nbsp;builder,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;groupExpr)</code></th>
<td class="colLast">
<div class="block">Analyzes a GROUPING SETS item in a GROUP BY clause.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>static <a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createJoinType(org.apache.calcite.rel.type.RelDataTypeFactory,org.apache.calcite.rel.type.RelDataType,org.apache.calcite.rel.type.RelDataType,java.util.List,java.util.List)">createJoinType</a></span>&#8203;(<a href="../../rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;typeFactory,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;leftType,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;rightType,
java.util.List&lt;java.lang.String&gt;&nbsp;fieldNameList,
java.util.List&lt;<a href="../../rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;systemFieldList)</code></th>
<td class="colLast">
<div class="block">Returns the type the row which results when two relations are joined.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>static <a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createTypeFromProjection(org.apache.calcite.rel.type.RelDataType,java.util.List,org.apache.calcite.rel.type.RelDataTypeFactory,boolean)">createTypeFromProjection</a></span>&#8203;(<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type,
java.util.List&lt;java.lang.String&gt;&nbsp;columnNameList,
<a href="../../rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;typeFactory,
boolean&nbsp;caseSensitive)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>static com.google.common.collect.ImmutableList&lt;<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#cube(java.util.List)">cube</a></span>&#8203;(java.util.List&lt;<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&nbsp;bitSets)</code></th>
<td class="colLast">
<div class="block">Computes the cube of bit sets.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>static <a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#deriveJoinRowType(org.apache.calcite.rel.type.RelDataType,org.apache.calcite.rel.type.RelDataType,org.apache.calcite.rel.core.JoinRelType,org.apache.calcite.rel.type.RelDataTypeFactory,java.util.List,java.util.List)">deriveJoinRowType</a></span>&#8203;(<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;leftType,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;rightType,
<a href="../../rel/core/JoinRelType.html" title="enum in org.apache.calcite.rel.core">JoinRelType</a>&nbsp;joinType,
<a href="../../rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;typeFactory,
java.util.List&lt;java.lang.String&gt;&nbsp;fieldNameList,
java.util.List&lt;<a href="../../rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;systemFieldList)</code></th>
<td class="colLast">
<div class="block">Derives the type of a join relational expression.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>static java.util.List&lt;java.lang.String&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#deriveNaturalJoinColumnList(org.apache.calcite.sql.validate.SqlNameMatcher,org.apache.calcite.rel.type.RelDataType,org.apache.calcite.rel.type.RelDataType)">deriveNaturalJoinColumnList</a></span>&#8203;(<a href="SqlNameMatcher.html" title="interface in org.apache.calcite.sql.validate">SqlNameMatcher</a>&nbsp;nameMatcher,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;leftRowType,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;rightRowType)</code></th>
<td class="colLast">
<div class="block">Derives the list of column names suitable for NATURAL JOIN.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAlias(org.apache.calcite.sql.SqlNode,int)">getAlias</a></span>&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
int&nbsp;ordinal)</code></th>
<td class="colLast">
<div class="block">Derives an alias for a node, and invents a mangled identifier if it
cannot.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>static <a href="AggregatingSelectScope.html" title="class in org.apache.calcite.sql.validate">AggregatingSelectScope</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEnclosingAggregateSelectScope(org.apache.calcite.sql.validate.SqlValidatorScope)">getEnclosingAggregateSelectScope</a></span>&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>static <a href="SelectScope.html" title="class in org.apache.calcite.sql.validate">SelectScope</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEnclosingSelectScope(org.apache.calcite.sql.validate.SqlValidatorScope)">getEnclosingSelectScope</a></span>&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>static java.util.List&lt;<a href="../../rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getExtendedColumns(org.apache.calcite.rel.type.RelDataTypeFactory,org.apache.calcite.sql.validate.SqlValidatorTable,org.apache.calcite.sql.SqlNodeList)">getExtendedColumns</a></span>&#8203;(<a href="../../rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;typeFactory,
<a href="SqlValidatorTable.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorTable</a>&nbsp;table,
<a href="../SqlNodeList.html" title="class in org.apache.calcite.sql">SqlNodeList</a>&nbsp;extendedColumns)</code></th>
<td class="colLast">
<div class="block">Gets a list of extended columns with field indices to the underlying table.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>static com.google.common.collect.ImmutableMap&lt;java.lang.Integer,&#8203;<a href="../../rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getIndexToFieldMap(java.util.List,org.apache.calcite.rel.type.RelDataType)">getIndexToFieldMap</a></span>&#8203;(java.util.List&lt;<a href="../../rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;sourceFields,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetFields)</code></th>
<td class="colLast">
<div class="block">Gets a map of indexes from the source to fields in the target for the
intersecting set of source and target fields.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>static <a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOrdinalBitSet(org.apache.calcite.rel.type.RelDataType,java.util.Map)">getOrdinalBitSet</a></span>&#8203;(<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;sourceRowType,
java.util.Map&lt;java.lang.Integer,&#8203;<a href="../../rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;indexToField)</code></th>
<td class="colLast">
<div class="block">Gets the bit-set to the column ordinals in the source for columns that
intersect in the target.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>static <a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOrdinalBitSet(org.apache.calcite.rel.type.RelDataType,org.apache.calcite.rel.type.RelDataType)">getOrdinalBitSet</a></span>&#8203;(<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;sourceRowType,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetRowType)</code></th>
<td class="colLast">
<div class="block">Gets the bit-set to the column ordinals in the source for columns that intersect in the target.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>static <a href="../../plan/RelOptTable.html" title="interface in org.apache.calcite.plan">RelOptTable</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRelOptTable(org.apache.calcite.sql.validate.SqlValidatorNamespace,org.apache.calcite.prepare.Prepare.CatalogReader,java.lang.String,boolean%5B%5D)">getRelOptTable</a></span>&#8203;(<a href="SqlValidatorNamespace.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorNamespace</a>&nbsp;namespace,
<a href="../../prepare/Prepare.CatalogReader.html" title="interface in org.apache.calcite.prepare">Prepare.CatalogReader</a>&nbsp;catalogReader,
java.lang.String&nbsp;datasetName,
boolean[]&nbsp;usedDataset)</code></th>
<td class="colLast">
<div class="block">Converts a <a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate"><code>SqlValidatorScope</code></a> into a <a href="../../plan/RelOptTable.html" title="interface in org.apache.calcite.plan"><code>RelOptTable</code></a>.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>private static <a href="../../plan/RelOptTable.html" title="interface in org.apache.calcite.plan">RelOptTable</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRelOptTable(org.apache.calcite.sql.validate.TableNamespace,org.apache.calcite.prepare.Prepare.CatalogReader,java.lang.String,boolean%5B%5D,java.util.List)">getRelOptTable</a></span>&#8203;(<a href="TableNamespace.html" title="class in org.apache.calcite.sql.validate">TableNamespace</a>&nbsp;tableNamespace,
<a href="../../prepare/Prepare.CatalogReader.html" title="interface in org.apache.calcite.prepare">Prepare.CatalogReader</a>&nbsp;catalogReader,
java.lang.String&nbsp;datasetName,
boolean[]&nbsp;usedDataset,
java.util.List&lt;<a href="../../rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;extendedFields)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>static <a href="../../jdbc/CalciteSchema.html" title="class in org.apache.calcite.jdbc">CalciteSchema</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSchema(org.apache.calcite.jdbc.CalciteSchema,java.lang.Iterable,org.apache.calcite.sql.validate.SqlNameMatcher)">getSchema</a></span>&#8203;(<a href="../../jdbc/CalciteSchema.html" title="class in org.apache.calcite.jdbc">CalciteSchema</a>&nbsp;rootSchema,
java.lang.Iterable&lt;java.lang.String&gt;&nbsp;schemaPath,
<a href="SqlNameMatcher.html" title="interface in org.apache.calcite.sql.validate">SqlNameMatcher</a>&nbsp;nameMatcher)</code></th>
<td class="colLast">
<div class="block">Finds and returns <a href="../../jdbc/CalciteSchema.html" title="class in org.apache.calcite.jdbc"><code>CalciteSchema</code></a> nested to the given rootSchema
with specified schemaPath.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSchemaObjectMonikers(org.apache.calcite.sql.validate.SqlValidatorCatalogReader,java.util.List,java.util.List)">getSchemaObjectMonikers</a></span>&#8203;(<a href="SqlValidatorCatalogReader.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorCatalogReader</a>&nbsp;catalogReader,
java.util.List&lt;java.lang.String&gt;&nbsp;names,
java.util.List&lt;<a href="SqlMoniker.html" title="interface in org.apache.calcite.sql.validate">SqlMoniker</a>&gt;&nbsp;hints)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>static <a href="../../jdbc/CalciteSchema.TableEntry.html" title="class in org.apache.calcite.jdbc">CalciteSchema.TableEntry</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTableEntry(org.apache.calcite.sql.validate.SqlValidatorCatalogReader,java.util.List)">getTableEntry</a></span>&#8203;(<a href="SqlValidatorCatalogReader.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorCatalogReader</a>&nbsp;catalogReader,
java.util.List&lt;java.lang.String&gt;&nbsp;names)</code></th>
<td class="colLast">
<div class="block">Finds a <a href="../../jdbc/CalciteSchema.TableEntry.html" title="class in org.apache.calcite.jdbc"><code>CalciteSchema.TableEntry</code></a> in a
given catalog reader whose table has the given name, possibly qualified.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>private static <a href="../../jdbc/CalciteSchema.TableEntry.html" title="class in org.apache.calcite.jdbc">CalciteSchema.TableEntry</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTableEntryFrom(org.apache.calcite.jdbc.CalciteSchema,java.lang.String,boolean)">getTableEntryFrom</a></span>&#8203;(<a href="../../jdbc/CalciteSchema.html" title="class in org.apache.calcite.jdbc">CalciteSchema</a>&nbsp;schema,
java.lang.String&nbsp;name,
boolean&nbsp;caseSensitive)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>static <a href="../../rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTargetField(org.apache.calcite.rel.type.RelDataType,org.apache.calcite.rel.type.RelDataTypeFactory,org.apache.calcite.sql.SqlIdentifier,org.apache.calcite.sql.validate.SqlValidatorCatalogReader,org.apache.calcite.plan.RelOptTable)">getTargetField</a></span>&#8203;(<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;rowType,
<a href="../../rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;typeFactory,
<a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql">SqlIdentifier</a>&nbsp;id,
<a href="SqlValidatorCatalogReader.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorCatalogReader</a>&nbsp;catalogReader,
<a href="../../plan/RelOptTable.html" title="interface in org.apache.calcite.plan">RelOptTable</a>&nbsp;table)</code></th>
<td class="colLast">
<div class="block">Resolve a target column name in the target table.</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>static <a href="../../jdbc/CalciteSchema.TypeEntry.html" title="class in org.apache.calcite.jdbc">CalciteSchema.TypeEntry</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTypeEntry(org.apache.calcite.jdbc.CalciteSchema,org.apache.calcite.sql.SqlIdentifier)">getTypeEntry</a></span>&#8203;(<a href="../../jdbc/CalciteSchema.html" title="class in org.apache.calcite.jdbc">CalciteSchema</a>&nbsp;rootSchema,
<a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql">SqlIdentifier</a>&nbsp;typeName)</code></th>
<td class="colLast">
<div class="block">Finds a <a href="../../jdbc/CalciteSchema.TypeEntry.html" title="class in org.apache.calcite.jdbc"><code>CalciteSchema.TypeEntry</code></a> in a
given schema whose type has the given name, possibly qualified.</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>static <a href="SqlValidatorNamespace.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorNamespace</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#lookup(org.apache.calcite.sql.validate.SqlValidatorScope,java.util.List)">lookup</a></span>&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
java.util.List&lt;java.lang.String&gt;&nbsp;names)</code></th>
<td class="colLast">
<div class="block">Resolves a multi-part identifier such as "SCHEMA.EMP.EMPNO" to a
namespace.</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>static <a href="../../rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#lookupField(boolean,org.apache.calcite.rel.type.RelDataType,java.lang.String)">lookupField</a></span>&#8203;(boolean&nbsp;caseSensitive,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;rowType,
java.lang.String&nbsp;columnName)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>private static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#lookupGroupExpr(org.apache.calcite.sql.validate.SqlValidatorUtil.GroupAnalyzer,org.apache.calcite.sql.SqlNode)">lookupGroupExpr</a></span>&#8203;(<a href="SqlValidatorUtil.GroupAnalyzer.html" title="class in org.apache.calcite.sql.validate">SqlValidatorUtil.GroupAnalyzer</a>&nbsp;groupAnalyzer,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;expr)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code>static <a href="../SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#lookupSqlFunctionByID(org.apache.calcite.sql.SqlOperatorTable,org.apache.calcite.sql.SqlIdentifier,org.apache.calcite.sql.SqlFunctionCategory)">lookupSqlFunctionByID</a></span>&#8203;(<a href="../SqlOperatorTable.html" title="interface in org.apache.calcite.sql">SqlOperatorTable</a>&nbsp;opTab,
<a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql">SqlIdentifier</a>&nbsp;funName,
<a href="../SqlFunctionCategory.html" title="enum in org.apache.calcite.sql">SqlFunctionCategory</a>&nbsp;funcType)</code></th>
<td class="colLast">
<div class="block">Lookup sql function by sql identifier and function category.</div>
</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code>static java.util.Map&lt;java.lang.String,&#8203;java.lang.Integer&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#mapNameToIndex(java.util.List)">mapNameToIndex</a></span>&#8203;(java.util.List&lt;<a href="../../rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;fields)</code></th>
<td class="colLast">
<div class="block">Returns a map from field names to indexes.</div>
</td>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><code>static <a href="SqlValidatorWithHints.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorWithHints</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newValidator(org.apache.calcite.sql.SqlOperatorTable,org.apache.calcite.sql.validate.SqlValidatorCatalogReader,org.apache.calcite.rel.type.RelDataTypeFactory)">newValidator</a></span>&#8203;(<a href="../SqlOperatorTable.html" title="interface in org.apache.calcite.sql">SqlOperatorTable</a>&nbsp;opTab,
<a href="SqlValidatorCatalogReader.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorCatalogReader</a>&nbsp;catalogReader,
<a href="../../rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;typeFactory)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr id="i37" class="rowColor">
<td class="colFirst"><code>static <a href="SqlValidatorWithHints.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorWithHints</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newValidator(org.apache.calcite.sql.SqlOperatorTable,org.apache.calcite.sql.validate.SqlValidatorCatalogReader,org.apache.calcite.rel.type.RelDataTypeFactory,org.apache.calcite.sql.validate.SqlConformance)">newValidator</a></span>&#8203;(<a href="../SqlOperatorTable.html" title="interface in org.apache.calcite.sql">SqlOperatorTable</a>&nbsp;opTab,
<a href="SqlValidatorCatalogReader.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorCatalogReader</a>&nbsp;catalogReader,
<a href="../../rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;typeFactory,
<a href="SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a>&nbsp;conformance)</code></th>
<td class="colLast">
<div class="block">Factory method for <a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate"><code>SqlValidator</code></a>.</div>
</td>
</tr>
<tr id="i38" class="altColor">
<td class="colFirst"><code>private static java.util.List&lt;<a href="../../util/Pair.html" title="class in org.apache.calcite.util">Pair</a>&lt;<a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql">SqlIdentifier</a>,&#8203;<a href="../SqlDataTypeSpec.html" title="class in org.apache.calcite.sql">SqlDataTypeSpec</a>&gt;&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#pairs(org.apache.calcite.sql.SqlNodeList)">pairs</a></span>&#8203;(<a href="../SqlNodeList.html" title="class in org.apache.calcite.sql">SqlNodeList</a>&nbsp;extendedColumns)</code></th>
<td class="colLast">
<div class="block">Converts a list of extended columns
(of the form [name0, type0, name1, type1, ...])
into a list of (name, type) pairs.</div>
</td>
</tr>
<tr id="i39" class="rowColor">
<td class="colFirst"><code>static com.google.common.collect.ImmutableList&lt;<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#rollup(java.util.List)">rollup</a></span>&#8203;(java.util.List&lt;<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&nbsp;bitSets)</code></th>
<td class="colLast">
<div class="block">Computes the rollup of bit sets.</div>
</td>
</tr>
<tr id="i40" class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#uniquify(java.lang.String,java.util.Set,org.apache.calcite.sql.validate.SqlValidatorUtil.Suggester)">uniquify</a></span>&#8203;(java.lang.String&nbsp;name,
java.util.Set&lt;java.lang.String&gt;&nbsp;usedNames,
<a href="SqlValidatorUtil.Suggester.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorUtil.Suggester</a>&nbsp;suggester)</code></th>
<td class="colLast">
<div class="block">Makes a name distinct from other names which have already been used, adds
it to the list, and returns it.</div>
</td>
</tr>
<tr id="i41" class="rowColor">
<td class="colFirst"><code>static java.util.List&lt;java.lang.String&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#uniquify(java.util.List)">uniquify</a></span>&#8203;(java.util.List&lt;java.lang.String&gt;&nbsp;nameList)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr id="i42" class="altColor">
<td class="colFirst"><code>static java.util.List&lt;java.lang.String&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#uniquify(java.util.List,boolean)">uniquify</a></span>&#8203;(java.util.List&lt;java.lang.String&gt;&nbsp;nameList,
boolean&nbsp;caseSensitive)</code></th>
<td class="colLast">
<div class="block">Makes sure that the names in a list are unique.</div>
</td>
</tr>
<tr id="i43" class="rowColor">
<td class="colFirst"><code>static java.util.List&lt;java.lang.String&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#uniquify(java.util.List,org.apache.calcite.sql.validate.SqlValidatorUtil.Suggester)">uniquify</a></span>&#8203;(java.util.List&lt;java.lang.String&gt;&nbsp;nameList,
<a href="SqlValidatorUtil.Suggester.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorUtil.Suggester</a>&nbsp;suggester)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="#uniquify(java.util.List,org.apache.calcite.sql.validate.SqlValidatorUtil.Suggester,boolean)"><code>uniquify(List, Suggester, boolean)</code></a></div>
</div>
</td>
</tr>
<tr id="i44" class="altColor">
<td class="colFirst"><code>static java.util.List&lt;java.lang.String&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#uniquify(java.util.List,org.apache.calcite.sql.validate.SqlValidatorUtil.Suggester,boolean)">uniquify</a></span>&#8203;(java.util.List&lt;java.lang.String&gt;&nbsp;nameList,
<a href="SqlValidatorUtil.Suggester.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorUtil.Suggester</a>&nbsp;suggester,
boolean&nbsp;caseSensitive)</code></th>
<td class="colLast">
<div class="block">Makes sure that the names in a list are unique.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a id="EXPR_SUGGESTER">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EXPR_SUGGESTER</h4>
<pre>public static final&nbsp;<a href="SqlValidatorUtil.Suggester.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorUtil.Suggester</a> EXPR_SUGGESTER</pre>
</li>
</ul>
<a id="F_SUGGESTER">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>F_SUGGESTER</h4>
<pre>public static final&nbsp;<a href="SqlValidatorUtil.Suggester.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorUtil.Suggester</a> F_SUGGESTER</pre>
</li>
</ul>
<a id="ATTEMPT_SUGGESTER">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ATTEMPT_SUGGESTER</h4>
<pre>public static final&nbsp;<a href="SqlValidatorUtil.Suggester.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorUtil.Suggester</a> ATTEMPT_SUGGESTER</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>SqlValidatorUtil</h4>
<pre>private&nbsp;SqlValidatorUtil()</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="getRelOptTable(org.apache.calcite.sql.validate.SqlValidatorNamespace,org.apache.calcite.prepare.Prepare.CatalogReader,java.lang.String,boolean[])">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRelOptTable</h4>
<pre class="methodSignature">public static&nbsp;<a href="../../plan/RelOptTable.html" title="interface in org.apache.calcite.plan">RelOptTable</a>&nbsp;getRelOptTable&#8203;(<a href="SqlValidatorNamespace.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorNamespace</a>&nbsp;namespace,
<a href="../../prepare/Prepare.CatalogReader.html" title="interface in org.apache.calcite.prepare">Prepare.CatalogReader</a>&nbsp;catalogReader,
java.lang.String&nbsp;datasetName,
boolean[]&nbsp;usedDataset)</pre>
<div class="block">Converts a <a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate"><code>SqlValidatorScope</code></a> into a <a href="../../plan/RelOptTable.html" title="interface in org.apache.calcite.plan"><code>RelOptTable</code></a>. This is
only possible if the scope represents an identifier, such as "sales.emp".
Otherwise, returns null.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>namespace</code> - Namespace</dd>
<dd><code>catalogReader</code> - Schema</dd>
<dd><code>datasetName</code> - Name of sample dataset to substitute, or null to use
the regular table</dd>
<dd><code>usedDataset</code> - Output parameter which is set to true if a sample
dataset is found; may be null</dd>
</dl>
</li>
</ul>
<a id="getRelOptTable(org.apache.calcite.sql.validate.TableNamespace,org.apache.calcite.prepare.Prepare.CatalogReader,java.lang.String,boolean[],java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRelOptTable</h4>
<pre class="methodSignature">private static&nbsp;<a href="../../plan/RelOptTable.html" title="interface in org.apache.calcite.plan">RelOptTable</a>&nbsp;getRelOptTable&#8203;(<a href="TableNamespace.html" title="class in org.apache.calcite.sql.validate">TableNamespace</a>&nbsp;tableNamespace,
<a href="../../prepare/Prepare.CatalogReader.html" title="interface in org.apache.calcite.prepare">Prepare.CatalogReader</a>&nbsp;catalogReader,
java.lang.String&nbsp;datasetName,
boolean[]&nbsp;usedDataset,
java.util.List&lt;<a href="../../rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;extendedFields)</pre>
</li>
</ul>
<a id="getExtendedColumns(org.apache.calcite.rel.type.RelDataTypeFactory,org.apache.calcite.sql.validate.SqlValidatorTable,org.apache.calcite.sql.SqlNodeList)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getExtendedColumns</h4>
<pre class="methodSignature">public static&nbsp;java.util.List&lt;<a href="../../rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;getExtendedColumns&#8203;(<a href="../../rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;typeFactory,
<a href="SqlValidatorTable.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorTable</a>&nbsp;table,
<a href="../SqlNodeList.html" title="class in org.apache.calcite.sql">SqlNodeList</a>&nbsp;extendedColumns)</pre>
<div class="block">Gets a list of extended columns with field indices to the underlying table.</div>
</li>
</ul>
<a id="pairs(org.apache.calcite.sql.SqlNodeList)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>pairs</h4>
<pre class="methodSignature">private static&nbsp;java.util.List&lt;<a href="../../util/Pair.html" title="class in org.apache.calcite.util">Pair</a>&lt;<a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql">SqlIdentifier</a>,&#8203;<a href="../SqlDataTypeSpec.html" title="class in org.apache.calcite.sql">SqlDataTypeSpec</a>&gt;&gt;&nbsp;pairs&#8203;(<a href="../SqlNodeList.html" title="class in org.apache.calcite.sql">SqlNodeList</a>&nbsp;extendedColumns)</pre>
<div class="block">Converts a list of extended columns
(of the form [name0, type0, name1, type1, ...])
into a list of (name, type) pairs.</div>
</li>
</ul>
<a id="getIndexToFieldMap(java.util.List,org.apache.calcite.rel.type.RelDataType)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getIndexToFieldMap</h4>
<pre class="methodSignature">public static&nbsp;com.google.common.collect.ImmutableMap&lt;java.lang.Integer,&#8203;<a href="../../rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;getIndexToFieldMap&#8203;(java.util.List&lt;<a href="../../rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;sourceFields,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetFields)</pre>
<div class="block">Gets a map of indexes from the source to fields in the target for the
intersecting set of source and target fields.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sourceFields</code> - The source of column names that determine indexes</dd>
<dd><code>targetFields</code> - The target fields to be indexed</dd>
</dl>
</li>
</ul>
<a id="getOrdinalBitSet(org.apache.calcite.rel.type.RelDataType,org.apache.calcite.rel.type.RelDataType)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOrdinalBitSet</h4>
<pre class="methodSignature">public static&nbsp;<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;getOrdinalBitSet&#8203;(<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;sourceRowType,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetRowType)</pre>
<div class="block">Gets the bit-set to the column ordinals in the source for columns that intersect in the target.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sourceRowType</code> - The source upon which to ordinate the bit set.</dd>
<dd><code>targetRowType</code> - The target to overlay on the source to create the bit set.</dd>
</dl>
</li>
</ul>
<a id="getOrdinalBitSet(org.apache.calcite.rel.type.RelDataType,java.util.Map)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOrdinalBitSet</h4>
<pre class="methodSignature">public static&nbsp;<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;getOrdinalBitSet&#8203;(<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;sourceRowType,
java.util.Map&lt;java.lang.Integer,&#8203;<a href="../../rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;indexToField)</pre>
<div class="block">Gets the bit-set to the column ordinals in the source for columns that
intersect in the target.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sourceRowType</code> - The source upon which to ordinate the bit set.</dd>
<dd><code>indexToField</code> - The map of ordinals to target fields.</dd>
</dl>
</li>
</ul>
<a id="mapNameToIndex(java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>mapNameToIndex</h4>
<pre class="methodSignature">public static&nbsp;java.util.Map&lt;java.lang.String,&#8203;java.lang.Integer&gt;&nbsp;mapNameToIndex&#8203;(java.util.List&lt;<a href="../../rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;fields)</pre>
<div class="block">Returns a map from field names to indexes.</div>
</li>
</ul>
<a id="lookupField(boolean,org.apache.calcite.rel.type.RelDataType,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>lookupField</h4>
<pre class="methodSignature">@Deprecated
public static&nbsp;<a href="../../rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&nbsp;lookupField&#8203;(boolean&nbsp;caseSensitive,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;rowType,
java.lang.String&nbsp;columnName)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
</li>
</ul>
<a id="checkCharsetAndCollateConsistentIfCharType(org.apache.calcite.rel.type.RelDataType)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkCharsetAndCollateConsistentIfCharType</h4>
<pre class="methodSignature">public static&nbsp;void&nbsp;checkCharsetAndCollateConsistentIfCharType&#8203;(<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</pre>
</li>
</ul>
<a id="checkIdentifierListForDuplicates(java.util.List,org.apache.calcite.sql.validate.SqlValidatorImpl.ValidationErrorFunction)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkIdentifierListForDuplicates</h4>
<pre class="methodSignature">static&nbsp;void&nbsp;checkIdentifierListForDuplicates&#8203;(java.util.List&lt;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;columnList,
<a href="SqlValidatorImpl.ValidationErrorFunction.html" title="class in org.apache.calcite.sql.validate">SqlValidatorImpl.ValidationErrorFunction</a>&nbsp;validationErrorFunction)</pre>
<div class="block">Checks that there are no duplicates in a list of <a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql"><code>SqlIdentifier</code></a>.</div>
</li>
</ul>
<a id="addAlias(org.apache.calcite.sql.SqlNode,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addAlias</h4>
<pre class="methodSignature">public static&nbsp;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;addAlias&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;expr,
java.lang.String&nbsp;alias)</pre>
<div class="block">Converts an expression "expr" into "expr AS alias".</div>
</li>
</ul>
<a id="getAlias(org.apache.calcite.sql.SqlNode,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAlias</h4>
<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;getAlias&#8203;(<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
int&nbsp;ordinal)</pre>
<div class="block">Derives an alias for a node, and invents a mangled identifier if it
cannot.
<p>Examples:
<ul>
<li>Alias: "1 + 2 as foo" yields "foo"
<li>Identifier: "foo.bar.baz" yields "baz"
<li>Anything else yields "expr$<i>ordinal</i>"
</ul></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>An alias, if one can be derived; or a synthetic alias
"expr$<i>ordinal</i>" if ordinal &lt; 0; otherwise null</dd>
</dl>
</li>
</ul>
<a id="newValidator(org.apache.calcite.sql.SqlOperatorTable,org.apache.calcite.sql.validate.SqlValidatorCatalogReader,org.apache.calcite.rel.type.RelDataTypeFactory,org.apache.calcite.sql.validate.SqlConformance)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newValidator</h4>
<pre class="methodSignature">public static&nbsp;<a href="SqlValidatorWithHints.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorWithHints</a>&nbsp;newValidator&#8203;(<a href="../SqlOperatorTable.html" title="interface in org.apache.calcite.sql">SqlOperatorTable</a>&nbsp;opTab,
<a href="SqlValidatorCatalogReader.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorCatalogReader</a>&nbsp;catalogReader,
<a href="../../rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;typeFactory,
<a href="SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a>&nbsp;conformance)</pre>
<div class="block">Factory method for <a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate"><code>SqlValidator</code></a>.</div>
</li>
</ul>
<a id="newValidator(org.apache.calcite.sql.SqlOperatorTable,org.apache.calcite.sql.validate.SqlValidatorCatalogReader,org.apache.calcite.rel.type.RelDataTypeFactory)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newValidator</h4>
<pre class="methodSignature">@Deprecated
public static&nbsp;<a href="SqlValidatorWithHints.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorWithHints</a>&nbsp;newValidator&#8203;(<a href="../SqlOperatorTable.html" title="interface in org.apache.calcite.sql">SqlOperatorTable</a>&nbsp;opTab,
<a href="SqlValidatorCatalogReader.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorCatalogReader</a>&nbsp;catalogReader,
<a href="../../rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;typeFactory)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block">Factory method for <a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate"><code>SqlValidator</code></a>, with default conformance.</div>
</li>
</ul>
<a id="uniquify(java.lang.String,java.util.Set,org.apache.calcite.sql.validate.SqlValidatorUtil.Suggester)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>uniquify</h4>
<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;uniquify&#8203;(java.lang.String&nbsp;name,
java.util.Set&lt;java.lang.String&gt;&nbsp;usedNames,
<a href="SqlValidatorUtil.Suggester.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorUtil.Suggester</a>&nbsp;suggester)</pre>
<div class="block">Makes a name distinct from other names which have already been used, adds
it to the list, and returns it.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - Suggested name, may not be unique</dd>
<dd><code>usedNames</code> - Collection of names already used</dd>
<dd><code>suggester</code> - Base for name when input name is null</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Unique name</dd>
</dl>
</li>
</ul>
<a id="uniquify(java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>uniquify</h4>
<pre class="methodSignature">@Deprecated
public static&nbsp;java.util.List&lt;java.lang.String&gt;&nbsp;uniquify&#8203;(java.util.List&lt;java.lang.String&gt;&nbsp;nameList)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block">Makes sure that the names in a list are unique.
<p>Does not modify the input list. Returns the input list if the strings
are unique, otherwise allocates a new list. Deprecated in favor of caseSensitive
aware version.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>nameList</code> - List of strings</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>List of unique strings</dd>
</dl>
</li>
</ul>
<a id="uniquify(java.util.List,org.apache.calcite.sql.validate.SqlValidatorUtil.Suggester)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>uniquify</h4>
<pre class="methodSignature">@Deprecated
public static&nbsp;java.util.List&lt;java.lang.String&gt;&nbsp;uniquify&#8203;(java.util.List&lt;java.lang.String&gt;&nbsp;nameList,
<a href="SqlValidatorUtil.Suggester.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorUtil.Suggester</a>&nbsp;suggester)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="#uniquify(java.util.List,org.apache.calcite.sql.validate.SqlValidatorUtil.Suggester,boolean)"><code>uniquify(List, Suggester, boolean)</code></a></div>
</div>
<div class="block">Makes sure that the names in a list are unique.
<p>Does not modify the input list. Returns the input list if the strings
are unique, otherwise allocates a new list.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>nameList</code> - List of strings</dd>
<dd><code>suggester</code> - How to generate new names if duplicate names are found</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>List of unique strings</dd>
</dl>
</li>
</ul>
<a id="uniquify(java.util.List,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>uniquify</h4>
<pre class="methodSignature">public static&nbsp;java.util.List&lt;java.lang.String&gt;&nbsp;uniquify&#8203;(java.util.List&lt;java.lang.String&gt;&nbsp;nameList,
boolean&nbsp;caseSensitive)</pre>
<div class="block">Makes sure that the names in a list are unique.
<p>Does not modify the input list. Returns the input list if the strings
are unique, otherwise allocates a new list.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>nameList</code> - List of strings</dd>
<dd><code>caseSensitive</code> - Whether upper and lower case names are considered
distinct</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>List of unique strings</dd>
</dl>
</li>
</ul>
<a id="uniquify(java.util.List,org.apache.calcite.sql.validate.SqlValidatorUtil.Suggester,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>uniquify</h4>
<pre class="methodSignature">public static&nbsp;java.util.List&lt;java.lang.String&gt;&nbsp;uniquify&#8203;(java.util.List&lt;java.lang.String&gt;&nbsp;nameList,
<a href="SqlValidatorUtil.Suggester.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorUtil.Suggester</a>&nbsp;suggester,
boolean&nbsp;caseSensitive)</pre>
<div class="block">Makes sure that the names in a list are unique.
<p>Does not modify the input list. Returns the input list if the strings
are unique, otherwise allocates a new list.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>nameList</code> - List of strings</dd>
<dd><code>suggester</code> - How to generate new names if duplicate names are found</dd>
<dd><code>caseSensitive</code> - Whether upper and lower case names are considered
distinct</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>List of unique strings</dd>
</dl>
</li>
</ul>
<a id="deriveJoinRowType(org.apache.calcite.rel.type.RelDataType,org.apache.calcite.rel.type.RelDataType,org.apache.calcite.rel.core.JoinRelType,org.apache.calcite.rel.type.RelDataTypeFactory,java.util.List,java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>deriveJoinRowType</h4>
<pre class="methodSignature">public static&nbsp;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;deriveJoinRowType&#8203;(<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;leftType,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;rightType,
<a href="../../rel/core/JoinRelType.html" title="enum in org.apache.calcite.rel.core">JoinRelType</a>&nbsp;joinType,
<a href="../../rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;typeFactory,
java.util.List&lt;java.lang.String&gt;&nbsp;fieldNameList,
java.util.List&lt;<a href="../../rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;systemFieldList)</pre>
<div class="block">Derives the type of a join relational expression.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>leftType</code> - Row type of left input to join</dd>
<dd><code>rightType</code> - Row type of right input to join</dd>
<dd><code>joinType</code> - Type of join</dd>
<dd><code>typeFactory</code> - Type factory</dd>
<dd><code>fieldNameList</code> - List of names of fields; if null, field names are
inherited and made unique</dd>
<dd><code>systemFieldList</code> - List of system fields that will be prefixed to
output row type; typically empty but must not be
null</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>join type</dd>
</dl>
</li>
</ul>
<a id="createJoinType(org.apache.calcite.rel.type.RelDataTypeFactory,org.apache.calcite.rel.type.RelDataType,org.apache.calcite.rel.type.RelDataType,java.util.List,java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createJoinType</h4>
<pre class="methodSignature">public static&nbsp;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;createJoinType&#8203;(<a href="../../rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;typeFactory,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;leftType,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;rightType,
java.util.List&lt;java.lang.String&gt;&nbsp;fieldNameList,
java.util.List&lt;<a href="../../rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;systemFieldList)</pre>
<div class="block">Returns the type the row which results when two relations are joined.
<p>The resulting row type consists of
the system fields (if any), followed by
the fields of the left type, followed by
the fields of the right type. The field name list, if present, overrides
the original names of the fields.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>typeFactory</code> - Type factory</dd>
<dd><code>leftType</code> - Type of left input to join</dd>
<dd><code>rightType</code> - Type of right input to join, or null for semi-join</dd>
<dd><code>fieldNameList</code> - If not null, overrides the original names of the
fields</dd>
<dd><code>systemFieldList</code> - List of system fields that will be prefixed to
output row type; typically empty but must not be
null</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>type of row which results when two relations are joined</dd>
</dl>
</li>
</ul>
<a id="addFields(java.util.List,java.util.List,java.util.List,java.util.Set)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addFields</h4>
<pre class="methodSignature">private static&nbsp;void&nbsp;addFields&#8203;(java.util.List&lt;<a href="../../rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;fieldList,
java.util.List&lt;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&nbsp;typeList,
java.util.List&lt;java.lang.String&gt;&nbsp;nameList,
java.util.Set&lt;java.lang.String&gt;&nbsp;uniqueNames)</pre>
</li>
</ul>
<a id="getTargetField(org.apache.calcite.rel.type.RelDataType,org.apache.calcite.rel.type.RelDataTypeFactory,org.apache.calcite.sql.SqlIdentifier,org.apache.calcite.sql.validate.SqlValidatorCatalogReader,org.apache.calcite.plan.RelOptTable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTargetField</h4>
<pre class="methodSignature">public static&nbsp;<a href="../../rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&nbsp;getTargetField&#8203;(<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;rowType,
<a href="../../rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;typeFactory,
<a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql">SqlIdentifier</a>&nbsp;id,
<a href="SqlValidatorCatalogReader.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorCatalogReader</a>&nbsp;catalogReader,
<a href="../../plan/RelOptTable.html" title="interface in org.apache.calcite.plan">RelOptTable</a>&nbsp;table)</pre>
<div class="block">Resolve a target column name in the target table.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>rowType</code> - the target row type</dd>
<dd><code>id</code> - the target column identifier</dd>
<dd><code>table</code> - the target table or null if it is not a RelOptTable instance</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the target field or null if the name cannot be resolved</dd>
</dl>
</li>
</ul>
<a id="lookup(org.apache.calcite.sql.validate.SqlValidatorScope,java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>lookup</h4>
<pre class="methodSignature">public static&nbsp;<a href="SqlValidatorNamespace.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorNamespace</a>&nbsp;lookup&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
java.util.List&lt;java.lang.String&gt;&nbsp;names)</pre>
<div class="block">Resolves a multi-part identifier such as "SCHEMA.EMP.EMPNO" to a
namespace. The returned namespace, never null, may represent a
schema, table, column, etc.</div>
</li>
</ul>
<a id="getSchemaObjectMonikers(org.apache.calcite.sql.validate.SqlValidatorCatalogReader,java.util.List,java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSchemaObjectMonikers</h4>
<pre class="methodSignature">public static&nbsp;void&nbsp;getSchemaObjectMonikers&#8203;(<a href="SqlValidatorCatalogReader.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorCatalogReader</a>&nbsp;catalogReader,
java.util.List&lt;java.lang.String&gt;&nbsp;names,
java.util.List&lt;<a href="SqlMoniker.html" title="interface in org.apache.calcite.sql.validate">SqlMoniker</a>&gt;&nbsp;hints)</pre>
</li>
</ul>
<a id="getEnclosingSelectScope(org.apache.calcite.sql.validate.SqlValidatorScope)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getEnclosingSelectScope</h4>
<pre class="methodSignature">public static&nbsp;<a href="SelectScope.html" title="class in org.apache.calcite.sql.validate">SelectScope</a>&nbsp;getEnclosingSelectScope&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</pre>
</li>
</ul>
<a id="getEnclosingAggregateSelectScope(org.apache.calcite.sql.validate.SqlValidatorScope)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getEnclosingAggregateSelectScope</h4>
<pre class="methodSignature">public static&nbsp;<a href="AggregatingSelectScope.html" title="class in org.apache.calcite.sql.validate">AggregatingSelectScope</a>&nbsp;getEnclosingAggregateSelectScope&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</pre>
</li>
</ul>
<a id="deriveNaturalJoinColumnList(org.apache.calcite.sql.validate.SqlNameMatcher,org.apache.calcite.rel.type.RelDataType,org.apache.calcite.rel.type.RelDataType)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>deriveNaturalJoinColumnList</h4>
<pre class="methodSignature">public static&nbsp;java.util.List&lt;java.lang.String&gt;&nbsp;deriveNaturalJoinColumnList&#8203;(<a href="SqlNameMatcher.html" title="interface in org.apache.calcite.sql.validate">SqlNameMatcher</a>&nbsp;nameMatcher,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;leftRowType,
<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;rightRowType)</pre>
<div class="block">Derives the list of column names suitable for NATURAL JOIN. These are the
columns that occur exactly once on each side of the join.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>nameMatcher</code> - Whether matches are case-sensitive</dd>
<dd><code>leftRowType</code> - Row type of left input to the join</dd>
<dd><code>rightRowType</code> - Row type of right input to the join</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>List of columns that occur once on each side</dd>
</dl>
</li>
</ul>
<a id="createTypeFromProjection(org.apache.calcite.rel.type.RelDataType,java.util.List,org.apache.calcite.rel.type.RelDataTypeFactory,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createTypeFromProjection</h4>
<pre class="methodSignature">public static&nbsp;<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;createTypeFromProjection&#8203;(<a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type,
java.util.List&lt;java.lang.String&gt;&nbsp;columnNameList,
<a href="../../rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;typeFactory,
boolean&nbsp;caseSensitive)</pre>
</li>
</ul>
<a id="analyzeGroupItem(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.validate.SqlValidatorUtil.GroupAnalyzer,com.google.common.collect.ImmutableList.Builder,org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>analyzeGroupItem</h4>
<pre class="methodSignature">public static&nbsp;void&nbsp;analyzeGroupItem&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="SqlValidatorUtil.GroupAnalyzer.html" title="class in org.apache.calcite.sql.validate">SqlValidatorUtil.GroupAnalyzer</a>&nbsp;groupAnalyzer,
com.google.common.collect.ImmutableList.Builder&lt;com.google.common.collect.ImmutableList&lt;<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&gt;&nbsp;topBuilder,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;groupExpr)</pre>
<div class="block">Analyzes an expression in a GROUP BY clause.
<p>It may be an expression, an empty list (), or a call to
<code>GROUPING SETS</code>, <code>CUBE</code>, <code>ROLLUP</code>,
<code>TUMBLE</code>, <code>HOP</code> or <code>SESSION</code>.
<p>Each group item produces a list of group sets, which are written to
<code>topBuilder</code>. To find the grouping sets of the query, we will take
the cartesian product of the group sets.</div>
</li>
</ul>
<a id="convertGroupSet(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.validate.SqlValidatorUtil.GroupAnalyzer,com.google.common.collect.ImmutableList.Builder,org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertGroupSet</h4>
<pre class="methodSignature">private static&nbsp;void&nbsp;convertGroupSet&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="SqlValidatorUtil.GroupAnalyzer.html" title="class in org.apache.calcite.sql.validate">SqlValidatorUtil.GroupAnalyzer</a>&nbsp;groupAnalyzer,
com.google.common.collect.ImmutableList.Builder&lt;<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&nbsp;builder,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;groupExpr)</pre>
<div class="block">Analyzes a GROUPING SETS item in a GROUP BY clause.</div>
</li>
</ul>
<a id="analyzeGroupTuple(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.validate.SqlValidatorUtil.GroupAnalyzer,java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>analyzeGroupTuple</h4>
<pre class="methodSignature">private static&nbsp;java.util.List&lt;<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&nbsp;analyzeGroupTuple&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="SqlValidatorUtil.GroupAnalyzer.html" title="class in org.apache.calcite.sql.validate">SqlValidatorUtil.GroupAnalyzer</a>&nbsp;groupAnalyzer,
java.util.List&lt;<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;operandList)</pre>
<div class="block">Analyzes a tuple in a GROUPING SETS clause.
<p>For example, in <code>GROUP BY GROUPING SETS ((a, b), a, c)</code>,
<code>(a, b)</code> is a tuple.
<p>Gathers into <code>groupExprs</code> the set of distinct expressions being
grouped, and returns a bitmap indicating which expressions this tuple
is grouping.</div>
</li>
</ul>
<a id="analyzeGroupExpr(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.validate.SqlValidatorUtil.GroupAnalyzer,org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>analyzeGroupExpr</h4>
<pre class="methodSignature">private static&nbsp;<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;analyzeGroupExpr&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="SqlValidatorUtil.GroupAnalyzer.html" title="class in org.apache.calcite.sql.validate">SqlValidatorUtil.GroupAnalyzer</a>&nbsp;groupAnalyzer,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;groupExpr)</pre>
<div class="block">Analyzes a component of a tuple in a GROUPING SETS clause.</div>
</li>
</ul>
<a id="lookupGroupExpr(org.apache.calcite.sql.validate.SqlValidatorUtil.GroupAnalyzer,org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>lookupGroupExpr</h4>
<pre class="methodSignature">private static&nbsp;int&nbsp;lookupGroupExpr&#8203;(<a href="SqlValidatorUtil.GroupAnalyzer.html" title="class in org.apache.calcite.sql.validate">SqlValidatorUtil.GroupAnalyzer</a>&nbsp;groupAnalyzer,
<a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;expr)</pre>
</li>
</ul>
<a id="rollup(java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rollup</h4>
<pre class="methodSignature">public static&nbsp;com.google.common.collect.ImmutableList&lt;<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&nbsp;rollup&#8203;(java.util.List&lt;<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&nbsp;bitSets)</pre>
<div class="block">Computes the rollup of bit sets.
<p>For example, <code>rollup({0}, {1})</code>
returns <code>({0, 1}, {0}, {})</code>.
<p>Bit sets are not necessarily singletons:
<code>rollup({0, 2}, {3, 5})</code>
returns <code>({0, 2, 3, 5}, {0, 2}, {})</code>.</div>
</li>
</ul>
<a id="cube(java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>cube</h4>
<pre class="methodSignature">public static&nbsp;com.google.common.collect.ImmutableList&lt;<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&nbsp;cube&#8203;(java.util.List&lt;<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&nbsp;bitSets)</pre>
<div class="block">Computes the cube of bit sets.
<p>For example, <code>rollup({0}, {1})</code>
returns <code>({0, 1}, {0}, {})</code>.
<p>Bit sets are not necessarily singletons:
<code>rollup({0, 2}, {3, 5})</code>
returns <code>({0, 2, 3, 5}, {0, 2}, {})</code>.</div>
</li>
</ul>
<a id="getTypeEntry(org.apache.calcite.jdbc.CalciteSchema,org.apache.calcite.sql.SqlIdentifier)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTypeEntry</h4>
<pre class="methodSignature">public static&nbsp;<a href="../../jdbc/CalciteSchema.TypeEntry.html" title="class in org.apache.calcite.jdbc">CalciteSchema.TypeEntry</a>&nbsp;getTypeEntry&#8203;(<a href="../../jdbc/CalciteSchema.html" title="class in org.apache.calcite.jdbc">CalciteSchema</a>&nbsp;rootSchema,
<a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql">SqlIdentifier</a>&nbsp;typeName)</pre>
<div class="block">Finds a <a href="../../jdbc/CalciteSchema.TypeEntry.html" title="class in org.apache.calcite.jdbc"><code>CalciteSchema.TypeEntry</code></a> in a
given schema whose type has the given name, possibly qualified.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>rootSchema</code> - root schema</dd>
<dd><code>typeName</code> - name of the type, may be qualified or fully-qualified</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>TypeEntry with a table with the given name, or null</dd>
</dl>
</li>
</ul>
<a id="getTableEntry(org.apache.calcite.sql.validate.SqlValidatorCatalogReader,java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTableEntry</h4>
<pre class="methodSignature">public static&nbsp;<a href="../../jdbc/CalciteSchema.TableEntry.html" title="class in org.apache.calcite.jdbc">CalciteSchema.TableEntry</a>&nbsp;getTableEntry&#8203;(<a href="SqlValidatorCatalogReader.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorCatalogReader</a>&nbsp;catalogReader,
java.util.List&lt;java.lang.String&gt;&nbsp;names)</pre>
<div class="block">Finds a <a href="../../jdbc/CalciteSchema.TableEntry.html" title="class in org.apache.calcite.jdbc"><code>CalciteSchema.TableEntry</code></a> in a
given catalog reader whose table has the given name, possibly qualified.
<p>Uses the case-sensitivity policy of the specified catalog reader.
<p>If not found, returns null.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>catalogReader</code> - accessor to the table metadata</dd>
<dd><code>names</code> - Name of table, may be qualified or fully-qualified</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>TableEntry with a table with the given name, or null</dd>
</dl>
</li>
</ul>
<a id="getSchema(org.apache.calcite.jdbc.CalciteSchema,java.lang.Iterable,org.apache.calcite.sql.validate.SqlNameMatcher)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSchema</h4>
<pre class="methodSignature">public static&nbsp;<a href="../../jdbc/CalciteSchema.html" title="class in org.apache.calcite.jdbc">CalciteSchema</a>&nbsp;getSchema&#8203;(<a href="../../jdbc/CalciteSchema.html" title="class in org.apache.calcite.jdbc">CalciteSchema</a>&nbsp;rootSchema,
java.lang.Iterable&lt;java.lang.String&gt;&nbsp;schemaPath,
<a href="SqlNameMatcher.html" title="interface in org.apache.calcite.sql.validate">SqlNameMatcher</a>&nbsp;nameMatcher)</pre>
<div class="block">Finds and returns <a href="../../jdbc/CalciteSchema.html" title="class in org.apache.calcite.jdbc"><code>CalciteSchema</code></a> nested to the given rootSchema
with specified schemaPath.
<p>Uses the case-sensitivity policy of specified nameMatcher.
<p>If not found, returns null.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>rootSchema</code> - root schema</dd>
<dd><code>schemaPath</code> - full schema path of required schema</dd>
<dd><code>nameMatcher</code> - name matcher</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>CalciteSchema that corresponds specified schemaPath</dd>
</dl>
</li>
</ul>
<a id="getTableEntryFrom(org.apache.calcite.jdbc.CalciteSchema,java.lang.String,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTableEntryFrom</h4>
<pre class="methodSignature">private static&nbsp;<a href="../../jdbc/CalciteSchema.TableEntry.html" title="class in org.apache.calcite.jdbc">CalciteSchema.TableEntry</a>&nbsp;getTableEntryFrom&#8203;(<a href="../../jdbc/CalciteSchema.html" title="class in org.apache.calcite.jdbc">CalciteSchema</a>&nbsp;schema,
java.lang.String&nbsp;name,
boolean&nbsp;caseSensitive)</pre>
</li>
</ul>
<a id="containsMonotonic(org.apache.calcite.sql.validate.SqlValidatorScope)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>containsMonotonic</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;containsMonotonic&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</pre>
<div class="block">Returns whether there are any input columns that are sorted.
<p>If so, it can be the default ORDER BY clause for a WINDOW specification.
(This is an extension to the SQL standard for streaming.)</div>
</li>
</ul>
<a id="children(org.apache.calcite.sql.validate.SqlValidatorScope)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>children</h4>
<pre class="methodSignature">private static&nbsp;java.util.List&lt;<a href="SqlValidatorNamespace.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorNamespace</a>&gt;&nbsp;children&#8203;(<a href="SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope)</pre>
</li>
</ul>
<a id="containsMonotonic(org.apache.calcite.sql.validate.SelectScope,org.apache.calcite.sql.SqlNodeList)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>containsMonotonic</h4>
<pre class="methodSignature">static&nbsp;boolean&nbsp;containsMonotonic&#8203;(<a href="SelectScope.html" title="class in org.apache.calcite.sql.validate">SelectScope</a>&nbsp;scope,
<a href="../SqlNodeList.html" title="class in org.apache.calcite.sql">SqlNodeList</a>&nbsp;nodes)</pre>
<div class="block">Returns whether any of the given expressions are sorted.
<p>If so, it can be the default ORDER BY clause for a WINDOW specification.
(This is an extension to the SQL standard for streaming.)</div>
</li>
</ul>
<a id="lookupSqlFunctionByID(org.apache.calcite.sql.SqlOperatorTable,org.apache.calcite.sql.SqlIdentifier,org.apache.calcite.sql.SqlFunctionCategory)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>lookupSqlFunctionByID</h4>
<pre class="methodSignature">public static&nbsp;<a href="../SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&nbsp;lookupSqlFunctionByID&#8203;(<a href="../SqlOperatorTable.html" title="interface in org.apache.calcite.sql">SqlOperatorTable</a>&nbsp;opTab,
<a href="../SqlIdentifier.html" title="class in org.apache.calcite.sql">SqlIdentifier</a>&nbsp;funName,
<a href="../SqlFunctionCategory.html" title="enum in org.apache.calcite.sql">SqlFunctionCategory</a>&nbsp;funcType)</pre>
<div class="block">Lookup sql function by sql identifier and function category.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>opTab</code> - operator table to look up</dd>
<dd><code>funName</code> - function name</dd>
<dd><code>funcType</code> - function category</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A sql function if and only if there is one operator matches, else null.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/SqlValidatorUtil.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</body>
</html>