blob: fd9365059c88a1fded3b0520f6756fcc76e5968c [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>SqlUtil (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="SqlUtil (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":9,"i33":9,"i34":9,"i35":9,"i36":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/SqlUtil.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>Field&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>Field&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</a></div>
<h2 title="Class SqlUtil" class="title">Class SqlUtil</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.calcite.sql.SqlUtil</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<pre>public abstract class <span class="typeNameLabel">SqlUtil</span>
extends java.lang.Object</pre>
<div class="block">Contains utility functions related to SQL parsing, all static.</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="SqlUtil.DatabaseMetaDataInvocationHandler.html" title="class in org.apache.calcite.sql">SqlUtil.DatabaseMetaDataInvocationHandler</a></span></code></th>
<td class="colLast">
<div class="block">Handles particular <code>DatabaseMetaData</code> methods; invocations of other
methods will fall through to the base class,
<a href="../util/BarfingInvocationHandler.html" title="class in org.apache.calcite.util"><code>BarfingInvocationHandler</code></a>, which will throw
an error.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="SqlUtil.Genealogist.html" title="class in org.apache.calcite.sql">SqlUtil.Genealogist</a></span></code></th>
<td class="colLast">
<div class="block">Walks over a <a href="SqlNode.html" title="class in org.apache.calcite.sql"><code>SqlNode</code></a> tree and returns the
ancestry stack when it finds a given node.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">SqlUtil</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></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>(package private) static <a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#andExpressions(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.SqlNode)">andExpressions</a></span>&#8203;(<a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node1,
<a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node2)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>private 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="#bestMatch(java.util.List,int,org.apache.calcite.rel.type.RelDataTypePrecedenceList)">bestMatch</a></span>&#8203;(java.util.List&lt;<a href="SqlFunction.html" title="class in org.apache.calcite.sql">SqlFunction</a>&gt;&nbsp;sqlFunctions,
int&nbsp;i,
<a href="../rel/type/RelDataTypePrecedenceList.html" title="interface in org.apache.calcite.rel.type">RelDataTypePrecedenceList</a>&nbsp;precList)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static <a href="SqlLiteral.html" title="class in org.apache.calcite.sql">SqlLiteral</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#concatenateLiterals(java.util.List)">concatenateLiterals</a></span>&#8203;(java.util.List&lt;<a href="SqlLiteral.html" title="class in org.apache.calcite.sql">SqlLiteral</a>&gt;&nbsp;lits)</code></th>
<td class="colLast">
<div class="block">Concatenates string literals.</div>
</td>
</tr>
<tr id="i3" 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="#createNlsStringType(org.apache.calcite.rel.type.RelDataTypeFactory,org.apache.calcite.util.NlsString)">createNlsStringType</a></span>&#8203;(<a href="../rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;typeFactory,
<a href="../util/NlsString.html" title="class in org.apache.calcite.util">NlsString</a>&nbsp;str)</code></th>
<td class="colLast">
<div class="block">Creates the type of an <a href="../util/NlsString.html" title="class in org.apache.calcite.util"><code>NlsString</code></a>.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#deriveAliasFromOrdinal(int)">deriveAliasFromOrdinal</a></span>&#8203;(int&nbsp;ordinal)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>private static java.util.Iterator&lt;<a href="SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#filterOperatorRoutinesByKind(java.util.Iterator,org.apache.calcite.sql.SqlKind)">filterOperatorRoutinesByKind</a></span>&#8203;(java.util.Iterator&lt;<a href="SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&gt;&nbsp;routines,
<a href="SqlKind.html" title="enum in org.apache.calcite.sql">SqlKind</a>&nbsp;sqlKind)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>private static java.util.Iterator&lt;<a href="SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#filterRoutinesByParameterCount(java.util.Iterator,java.util.List)">filterRoutinesByParameterCount</a></span>&#8203;(java.util.Iterator&lt;<a href="SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&gt;&nbsp;routines,
java.util.List&lt;<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&nbsp;argTypes)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>private static java.util.Iterator&lt;<a href="SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#filterRoutinesByParameterType(org.apache.calcite.sql.SqlSyntax,java.util.Iterator,java.util.List,java.util.List,boolean)">filterRoutinesByParameterType</a></span>&#8203;(<a href="SqlSyntax.html" title="enum in org.apache.calcite.sql">SqlSyntax</a>&nbsp;syntax,
java.util.Iterator&lt;<a href="SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&gt;&nbsp;routines,
java.util.List&lt;<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&nbsp;argTypes,
java.util.List&lt;java.lang.String&gt;&nbsp;argNames,
boolean&nbsp;coerce)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>private static java.util.Iterator&lt;<a href="SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#filterRoutinesByTypePrecedence(org.apache.calcite.sql.SqlSyntax,java.util.Iterator,java.util.List)">filterRoutinesByTypePrecedence</a></span>&#8203;(<a href="SqlSyntax.html" title="enum in org.apache.calcite.sql">SqlSyntax</a>&nbsp;sqlSyntax,
java.util.Iterator&lt;<a href="SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&gt;&nbsp;routines,
java.util.List&lt;<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&nbsp;argTypes)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>(package private) static java.util.ArrayList&lt;<a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#flatten(org.apache.calcite.sql.SqlNode)">flatten</a></span>&#8203;(<a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>private static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#flatten(org.apache.calcite.sql.SqlNode,java.util.ArrayList)">flatten</a></span>&#8203;(<a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
java.util.ArrayList&lt;<a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;list)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAliasedSignature(org.apache.calcite.sql.SqlOperator,java.lang.String,java.util.List)">getAliasedSignature</a></span>&#8203;(<a href="SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&nbsp;op,
java.lang.String&nbsp;opName,
java.util.List&lt;?&gt;&nbsp;typeList)</code></th>
<td class="colLast">
<div class="block">Constructs an operator signature from a type list, substituting an alias
for the operator name.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>static com.google.common.collect.ImmutableList&lt;<a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAncestry(org.apache.calcite.sql.SqlNode,java.util.function.Predicate,java.util.function.Predicate)">getAncestry</a></span>&#8203;(<a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;root,
java.util.function.Predicate&lt;<a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;predicate,
java.util.function.Predicate&lt;<a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;postPredicate)</code></th>
<td class="colLast">
<div class="block">Returns a list of ancestors of <code>predicate</code> within a given
<code>SqlNode</code> tree.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>static java.nio.charset.Charset</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCharset(java.lang.String)">getCharset</a></span>&#8203;(java.lang.String&nbsp;charsetName)</code></th>
<td class="colLast">
<div class="block">Returns the Java-level <code>Charset</code> based on given SQL-level name.</div>
</td>
</tr>
<tr id="i14" 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="#getFromNode(org.apache.calcite.sql.SqlSelect,int)">getFromNode</a></span>&#8203;(<a href="SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;query,
int&nbsp;ordinal)</code></th>
<td class="colLast">
<div class="block">Returns the <code>n</code>th (0-based) input to a join expression.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOperatorSignature(org.apache.calcite.sql.SqlOperator,java.util.List)">getOperatorSignature</a></span>&#8203;(<a href="SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&nbsp;op,
java.util.List&lt;?&gt;&nbsp;typeList)</code></th>
<td class="colLast">
<div class="block">Constructs an operator signature from a type list.</div>
</td>
</tr>
<tr id="i16" 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="#getSelectListItem(org.apache.calcite.sql.SqlNode,int)">getSelectListItem</a></span>&#8203;(<a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;query,
int&nbsp;i)</code></th>
<td class="colLast">
<div class="block">Returns the <code>i</code>th select-list item of a query.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isCallTo(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.SqlOperator)">isCallTo</a></span>&#8203;(<a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
<a href="SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&nbsp;operator)</code></th>
<td class="colLast">
<div class="block">Returns whether a <a href="SqlNode.html" title="class in org.apache.calcite.sql"><code>node</code></a> is a <a href="SqlCall.html" title="class in org.apache.calcite.sql"><code>call</code></a> to a
given <a href="SqlOperator.html" title="class in org.apache.calcite.sql"><code>operator</code></a>.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isLiteral(org.apache.calcite.sql.SqlNode)">isLiteral</a></span>&#8203;(<a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</code></th>
<td class="colLast">
<div class="block">Returns whether a node is a literal.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isLiteral(org.apache.calcite.sql.SqlNode,boolean)">isLiteral</a></span>&#8203;(<a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
boolean&nbsp;allowCast)</code></th>
<td class="colLast">
<div class="block">Returns whether a node is a literal.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isLiteralChain(org.apache.calcite.sql.SqlNode)">isLiteralChain</a></span>&#8203;(<a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</code></th>
<td class="colLast">
<div class="block">Returns whether a node is a literal chain which is used to represent a
continued string literal.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isNull(org.apache.calcite.sql.SqlNode)">isNull</a></span>&#8203;(<a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</code></th>
<td class="colLast">
<div class="block">Returns whether a node represents the NULL value or a series of nested
<code>CAST(NULL AS type)</code> calls.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isNullLiteral(org.apache.calcite.sql.SqlNode,boolean)">isNullLiteral</a></span>&#8203;(<a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
boolean&nbsp;allowCast)</code></th>
<td class="colLast">
<div class="block">Returns whether a node represents the NULL value.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<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="#lookupRoutine(org.apache.calcite.sql.SqlOperatorTable,org.apache.calcite.sql.SqlIdentifier,java.util.List,java.util.List,org.apache.calcite.sql.SqlFunctionCategory,org.apache.calcite.sql.SqlSyntax,org.apache.calcite.sql.SqlKind,org.apache.calcite.sql.validate.SqlNameMatcher,boolean)">lookupRoutine</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;funcName,
java.util.List&lt;<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&nbsp;argTypes,
java.util.List&lt;java.lang.String&gt;&nbsp;argNames,
<a href="SqlFunctionCategory.html" title="enum in org.apache.calcite.sql">SqlFunctionCategory</a>&nbsp;category,
<a href="SqlSyntax.html" title="enum in org.apache.calcite.sql">SqlSyntax</a>&nbsp;syntax,
<a href="SqlKind.html" title="enum in org.apache.calcite.sql">SqlKind</a>&nbsp;sqlKind,
<a href="validate/SqlNameMatcher.html" title="interface in org.apache.calcite.sql.validate">SqlNameMatcher</a>&nbsp;nameMatcher,
boolean&nbsp;coerce)</code></th>
<td class="colLast">
<div class="block">Looks up a (possibly overloaded) routine based on name and argument
types.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>static java.util.Iterator&lt;<a href="SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#lookupSubjectRoutines(org.apache.calcite.sql.SqlOperatorTable,org.apache.calcite.sql.SqlIdentifier,java.util.List,java.util.List,org.apache.calcite.sql.SqlSyntax,org.apache.calcite.sql.SqlKind,org.apache.calcite.sql.SqlFunctionCategory,org.apache.calcite.sql.validate.SqlNameMatcher,boolean)">lookupSubjectRoutines</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;funcName,
java.util.List&lt;<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&nbsp;argTypes,
java.util.List&lt;java.lang.String&gt;&nbsp;argNames,
<a href="SqlSyntax.html" title="enum in org.apache.calcite.sql">SqlSyntax</a>&nbsp;sqlSyntax,
<a href="SqlKind.html" title="enum in org.apache.calcite.sql">SqlKind</a>&nbsp;sqlKind,
<a href="SqlFunctionCategory.html" title="enum in org.apache.calcite.sql">SqlFunctionCategory</a>&nbsp;category,
<a href="validate/SqlNameMatcher.html" title="interface in org.apache.calcite.sql.validate">SqlNameMatcher</a>&nbsp;nameMatcher,
boolean&nbsp;coerce)</code></th>
<td class="colLast">
<div class="block">Looks up all subject routines matching the given name and argument types.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>private static java.util.Iterator&lt;<a href="SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#lookupSubjectRoutinesByName(org.apache.calcite.sql.SqlOperatorTable,org.apache.calcite.sql.SqlIdentifier,org.apache.calcite.sql.SqlSyntax,org.apache.calcite.sql.SqlFunctionCategory,org.apache.calcite.sql.validate.SqlNameMatcher)">lookupSubjectRoutinesByName</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;funcName,
<a href="SqlSyntax.html" title="enum in org.apache.calcite.sql">SqlSyntax</a>&nbsp;syntax,
<a href="SqlFunctionCategory.html" title="enum in org.apache.calcite.sql">SqlFunctionCategory</a>&nbsp;category,
<a href="validate/SqlNameMatcher.html" title="interface in org.apache.calcite.sql.validate">SqlNameMatcher</a>&nbsp;nameMatcher)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#matchRoutinesByParameterCount(org.apache.calcite.sql.SqlOperatorTable,org.apache.calcite.sql.SqlIdentifier,java.util.List,org.apache.calcite.sql.SqlFunctionCategory,org.apache.calcite.sql.validate.SqlNameMatcher)">matchRoutinesByParameterCount</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;funcName,
java.util.List&lt;<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&nbsp;argTypes,
<a href="SqlFunctionCategory.html" title="enum in org.apache.calcite.sql">SqlFunctionCategory</a>&nbsp;category,
<a href="validate/SqlNameMatcher.html" title="interface in org.apache.calcite.sql.validate">SqlNameMatcher</a>&nbsp;nameMatcher)</code></th>
<td class="colLast">
<div class="block">Determines whether there is a routine matching the given name and number
of arguments.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>static <a href="../runtime/CalciteContextException.html" title="class in org.apache.calcite.runtime">CalciteContextException</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newContextException(int,int,int,int,org.apache.calcite.runtime.Resources.ExInst)">newContextException</a></span>&#8203;(int&nbsp;line,
int&nbsp;col,
int&nbsp;endLine,
int&nbsp;endCol,
<a href="../runtime/Resources.ExInst.html" title="class in org.apache.calcite.runtime">Resources.ExInst</a>&lt;?&gt;&nbsp;e)</code></th>
<td class="colLast">
<div class="block">Wraps an exception with context.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>static <a href="../runtime/CalciteContextException.html" title="class in org.apache.calcite.runtime">CalciteContextException</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newContextException(org.apache.calcite.sql.parser.SqlParserPos,org.apache.calcite.runtime.Resources.ExInst)">newContextException</a></span>&#8203;(<a href="parser/SqlParserPos.html" title="class in org.apache.calcite.sql.parser">SqlParserPos</a>&nbsp;pos,
<a href="../runtime/Resources.ExInst.html" title="class in org.apache.calcite.runtime">Resources.ExInst</a>&lt;?&gt;&nbsp;e)</code></th>
<td class="colLast">
<div class="block">Wraps an exception with context.</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>static <a href="../runtime/CalciteException.html" title="class in org.apache.calcite.runtime">CalciteException</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newContextException(org.apache.calcite.sql.parser.SqlParserPos,org.apache.calcite.runtime.Resources.ExInst,java.lang.String)">newContextException</a></span>&#8203;(<a href="parser/SqlParserPos.html" title="class in org.apache.calcite.sql.parser">SqlParserPos</a>&nbsp;pos,
<a href="../runtime/Resources.ExInst.html" title="class in org.apache.calcite.runtime">Resources.ExInst</a>&lt;?&gt;&nbsp;e,
java.lang.String&nbsp;inputText)</code></th>
<td class="colLast">
<div class="block">Wraps an exception with context.</div>
</td>
</tr>
<tr id="i30" 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="#stripAs(org.apache.calcite.sql.SqlNode)">stripAs</a></span>&#8203;(<a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</code></th>
<td class="colLast">
<div class="block">If a node is "AS", returns the underlying expression; otherwise returns
the node.</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>static <a href="SqlNodeList.html" title="class in org.apache.calcite.sql">SqlNodeList</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toNodeList(org.apache.calcite.sql.SqlNode%5B%5D)">toNodeList</a></span>&#8203;(<a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>[]&nbsp;operands)</code></th>
<td class="colLast">
<div class="block">Converts an SqlNode array to a SqlNodeList</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#translateCharacterSetName(java.lang.String)">translateCharacterSetName</a></span>&#8203;(java.lang.String&nbsp;name)</code></th>
<td class="colLast">
<div class="block">Translates a character set name from a SQL-level name into a Java-level
name.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#unparseBinarySyntax(org.apache.calcite.sql.SqlOperator,org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.SqlWriter,int,int)">unparseBinarySyntax</a></span>&#8203;(<a href="SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&nbsp;operator,
<a href="SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call,
<a href="SqlWriter.html" title="interface in org.apache.calcite.sql">SqlWriter</a>&nbsp;writer,
int&nbsp;leftPrec,
int&nbsp;rightPrec)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#unparseFunctionSyntax(org.apache.calcite.sql.SqlOperator,org.apache.calcite.sql.SqlWriter,org.apache.calcite.sql.SqlCall)">unparseFunctionSyntax</a></span>&#8203;(<a href="SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&nbsp;operator,
<a href="SqlWriter.html" title="interface in org.apache.calcite.sql">SqlWriter</a>&nbsp;writer,
<a href="SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call)</code></th>
<td class="colLast">
<div class="block">Unparses a call to an operator which has function syntax.</div>
</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#unparseSqlIdentifierSyntax(org.apache.calcite.sql.SqlWriter,org.apache.calcite.sql.SqlIdentifier,boolean)">unparseSqlIdentifierSyntax</a></span>&#8203;(<a href="SqlWriter.html" title="interface in org.apache.calcite.sql">SqlWriter</a>&nbsp;writer,
<a href="SqlIdentifier.html" title="class in org.apache.calcite.sql">SqlIdentifier</a>&nbsp;identifier,
boolean&nbsp;asFunctionID)</code></th>
<td class="colLast">
<div class="block">Unparse a SqlIdentifier syntax.</div>
</td>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateCharset(org.apache.calcite.avatica.util.ByteString,java.nio.charset.Charset)">validateCharset</a></span>&#8203;(org.apache.calcite.avatica.util.ByteString&nbsp;value,
java.nio.charset.Charset&nbsp;charset)</code></th>
<td class="colLast">
<div class="block">Validate if value can be decoded by given charset.</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">
<!-- ========= 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>SqlUtil</h4>
<pre>public&nbsp;SqlUtil()</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="andExpressions(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>andExpressions</h4>
<pre class="methodSignature">static&nbsp;<a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;andExpressions&#8203;(<a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node1,
<a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node2)</pre>
</li>
</ul>
<a id="flatten(org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>flatten</h4>
<pre class="methodSignature">static&nbsp;java.util.ArrayList&lt;<a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;flatten&#8203;(<a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</pre>
</li>
</ul>
<a id="getFromNode(org.apache.calcite.sql.SqlSelect,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFromNode</h4>
<pre class="methodSignature">public static&nbsp;<a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;getFromNode&#8203;(<a href="SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;query,
int&nbsp;ordinal)</pre>
<div class="block">Returns the <code>n</code>th (0-based) input to a join expression.</div>
</li>
</ul>
<a id="flatten(org.apache.calcite.sql.SqlNode,java.util.ArrayList)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>flatten</h4>
<pre class="methodSignature">private static&nbsp;void&nbsp;flatten&#8203;(<a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
java.util.ArrayList&lt;<a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;list)</pre>
</li>
</ul>
<a id="toNodeList(org.apache.calcite.sql.SqlNode[])">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toNodeList</h4>
<pre class="methodSignature">public static&nbsp;<a href="SqlNodeList.html" title="class in org.apache.calcite.sql">SqlNodeList</a>&nbsp;toNodeList&#8203;(<a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>[]&nbsp;operands)</pre>
<div class="block">Converts an SqlNode array to a SqlNodeList</div>
</li>
</ul>
<a id="isNullLiteral(org.apache.calcite.sql.SqlNode,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isNullLiteral</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;isNullLiteral&#8203;(<a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
boolean&nbsp;allowCast)</pre>
<div class="block">Returns whether a node represents the NULL value.
<p>Examples:
<ul>
<li>For <a href="SqlLiteral.html" title="class in org.apache.calcite.sql"><code>SqlLiteral</code></a> Unknown, returns false.
<li>For <code>CAST(NULL AS <i>type</i>)</code>, returns true if <code>
allowCast</code> is true, false otherwise.
<li>For <code>CAST(CAST(NULL AS <i>type</i>) AS <i>type</i>))</code>,
returns false.
</ul></div>
</li>
</ul>
<a id="isNull(org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isNull</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;isNull&#8203;(<a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</pre>
<div class="block">Returns whether a node represents the NULL value or a series of nested
<code>CAST(NULL AS type)</code> calls. For example:
<code>isNull(CAST(CAST(NULL as INTEGER) AS VARCHAR(1)))</code>
returns <code>true</code>.</div>
</li>
</ul>
<a id="isLiteral(org.apache.calcite.sql.SqlNode,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isLiteral</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;isLiteral&#8203;(<a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
boolean&nbsp;allowCast)</pre>
<div class="block">Returns whether a node is a literal.
<p>Examples:
<ul>
<li>For <code>CAST(literal AS <i>type</i>)</code>, returns true if <code>
allowCast</code> is true, false otherwise.
<li>For <code>CAST(CAST(literal AS <i>type</i>) AS <i>type</i>))</code>,
returns false.
</ul></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>node</code> - The node, never null.</dd>
<dd><code>allowCast</code> - whether to regard CAST(literal) as a literal</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Whether the node is a literal</dd>
</dl>
</li>
</ul>
<a id="isLiteral(org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isLiteral</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;isLiteral&#8203;(<a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</pre>
<div class="block">Returns whether a node is a literal.
<p>Many constructs which require literals also accept <code>CAST(NULL AS
<i>type</i>)</code>. This method does not accept casts, so you should
call <a href="#isNullLiteral(org.apache.calcite.sql.SqlNode,boolean)"><code>isNullLiteral(org.apache.calcite.sql.SqlNode, boolean)</code></a> first.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>node</code> - The node, never null.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Whether the node is a literal</dd>
</dl>
</li>
</ul>
<a id="isLiteralChain(org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isLiteralChain</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;isLiteralChain&#8203;(<a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</pre>
<div class="block">Returns whether a node is a literal chain which is used to represent a
continued string literal.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>node</code> - The node, never null.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Whether the node is a literal chain</dd>
</dl>
</li>
</ul>
<a id="unparseFunctionSyntax(org.apache.calcite.sql.SqlOperator,org.apache.calcite.sql.SqlWriter,org.apache.calcite.sql.SqlCall)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unparseFunctionSyntax</h4>
<pre class="methodSignature">public static&nbsp;void&nbsp;unparseFunctionSyntax&#8203;(<a href="SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&nbsp;operator,
<a href="SqlWriter.html" title="interface in org.apache.calcite.sql">SqlWriter</a>&nbsp;writer,
<a href="SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call)</pre>
<div class="block">Unparses a call to an operator which has function syntax.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>operator</code> - The operator</dd>
<dd><code>writer</code> - Writer</dd>
<dd><code>call</code> - List of 0 or more operands</dd>
</dl>
</li>
</ul>
<a id="unparseSqlIdentifierSyntax(org.apache.calcite.sql.SqlWriter,org.apache.calcite.sql.SqlIdentifier,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unparseSqlIdentifierSyntax</h4>
<pre class="methodSignature">public static&nbsp;void&nbsp;unparseSqlIdentifierSyntax&#8203;(<a href="SqlWriter.html" title="interface in org.apache.calcite.sql">SqlWriter</a>&nbsp;writer,
<a href="SqlIdentifier.html" title="class in org.apache.calcite.sql">SqlIdentifier</a>&nbsp;identifier,
boolean&nbsp;asFunctionID)</pre>
<div class="block">Unparse a SqlIdentifier syntax.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>writer</code> - Writer</dd>
<dd><code>identifier</code> - SqlIdentifier</dd>
<dd><code>asFunctionID</code> - Whether this identifier comes from a SqlFunction</dd>
</dl>
</li>
</ul>
<a id="unparseBinarySyntax(org.apache.calcite.sql.SqlOperator,org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.SqlWriter,int,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unparseBinarySyntax</h4>
<pre class="methodSignature">public static&nbsp;void&nbsp;unparseBinarySyntax&#8203;(<a href="SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&nbsp;operator,
<a href="SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call,
<a href="SqlWriter.html" title="interface in org.apache.calcite.sql">SqlWriter</a>&nbsp;writer,
int&nbsp;leftPrec,
int&nbsp;rightPrec)</pre>
</li>
</ul>
<a id="concatenateLiterals(java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>concatenateLiterals</h4>
<pre class="methodSignature">public static&nbsp;<a href="SqlLiteral.html" title="class in org.apache.calcite.sql">SqlLiteral</a>&nbsp;concatenateLiterals&#8203;(java.util.List&lt;<a href="SqlLiteral.html" title="class in org.apache.calcite.sql">SqlLiteral</a>&gt;&nbsp;lits)</pre>
<div class="block">Concatenates string literals.
<p>This method takes an array of arguments, since pairwise concatenation
means too much string copying.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>lits</code> - an array of <a href="SqlLiteral.html" title="class in org.apache.calcite.sql"><code>SqlLiteral</code></a>, not empty, all of the same
class</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new <a href="SqlLiteral.html" title="class in org.apache.calcite.sql"><code>SqlLiteral</code></a>, of that same class, whose value is the
string concatenation of the values of the literals</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.ClassCastException</code> - if the lits are not homogeneous.</dd>
<dd><code>java.lang.ArrayIndexOutOfBoundsException</code> - if lits is an empty array.</dd>
</dl>
</li>
</ul>
<a id="lookupRoutine(org.apache.calcite.sql.SqlOperatorTable,org.apache.calcite.sql.SqlIdentifier,java.util.List,java.util.List,org.apache.calcite.sql.SqlFunctionCategory,org.apache.calcite.sql.SqlSyntax,org.apache.calcite.sql.SqlKind,org.apache.calcite.sql.validate.SqlNameMatcher,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>lookupRoutine</h4>
<pre class="methodSignature">public static&nbsp;<a href="SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&nbsp;lookupRoutine&#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;funcName,
java.util.List&lt;<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&nbsp;argTypes,
java.util.List&lt;java.lang.String&gt;&nbsp;argNames,
<a href="SqlFunctionCategory.html" title="enum in org.apache.calcite.sql">SqlFunctionCategory</a>&nbsp;category,
<a href="SqlSyntax.html" title="enum in org.apache.calcite.sql">SqlSyntax</a>&nbsp;syntax,
<a href="SqlKind.html" title="enum in org.apache.calcite.sql">SqlKind</a>&nbsp;sqlKind,
<a href="validate/SqlNameMatcher.html" title="interface in org.apache.calcite.sql.validate">SqlNameMatcher</a>&nbsp;nameMatcher,
boolean&nbsp;coerce)</pre>
<div class="block">Looks up a (possibly overloaded) routine based on name and argument
types.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>opTab</code> - operator table to search</dd>
<dd><code>funcName</code> - name of function being invoked</dd>
<dd><code>argTypes</code> - argument types</dd>
<dd><code>argNames</code> - argument names, or null if call by position</dd>
<dd><code>category</code> - whether a function or a procedure. (If a procedure is
being invoked, the overload rules are simpler.)</dd>
<dd><code>nameMatcher</code> - Whether to look up the function case-sensitively</dd>
<dd><code>coerce</code> - Whether to allow type coercion when do filter routines
by parameter types</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>matching routine, or null if none found</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../util/Glossary.html#SQL99"><code>SQL:1999 Part 2 Section 10.4</code></a></dd>
</dl>
</li>
</ul>
<a id="filterOperatorRoutinesByKind(java.util.Iterator,org.apache.calcite.sql.SqlKind)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>filterOperatorRoutinesByKind</h4>
<pre class="methodSignature">private static&nbsp;java.util.Iterator&lt;<a href="SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&gt;&nbsp;filterOperatorRoutinesByKind&#8203;(java.util.Iterator&lt;<a href="SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&gt;&nbsp;routines,
<a href="SqlKind.html" title="enum in org.apache.calcite.sql">SqlKind</a>&nbsp;sqlKind)</pre>
</li>
</ul>
<a id="lookupSubjectRoutines(org.apache.calcite.sql.SqlOperatorTable,org.apache.calcite.sql.SqlIdentifier,java.util.List,java.util.List,org.apache.calcite.sql.SqlSyntax,org.apache.calcite.sql.SqlKind,org.apache.calcite.sql.SqlFunctionCategory,org.apache.calcite.sql.validate.SqlNameMatcher,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>lookupSubjectRoutines</h4>
<pre class="methodSignature">public static&nbsp;java.util.Iterator&lt;<a href="SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&gt;&nbsp;lookupSubjectRoutines&#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;funcName,
java.util.List&lt;<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&nbsp;argTypes,
java.util.List&lt;java.lang.String&gt;&nbsp;argNames,
<a href="SqlSyntax.html" title="enum in org.apache.calcite.sql">SqlSyntax</a>&nbsp;sqlSyntax,
<a href="SqlKind.html" title="enum in org.apache.calcite.sql">SqlKind</a>&nbsp;sqlKind,
<a href="SqlFunctionCategory.html" title="enum in org.apache.calcite.sql">SqlFunctionCategory</a>&nbsp;category,
<a href="validate/SqlNameMatcher.html" title="interface in org.apache.calcite.sql.validate">SqlNameMatcher</a>&nbsp;nameMatcher,
boolean&nbsp;coerce)</pre>
<div class="block">Looks up all subject routines matching the given name and argument types.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>opTab</code> - operator table to search</dd>
<dd><code>funcName</code> - name of function being invoked</dd>
<dd><code>argTypes</code> - argument types</dd>
<dd><code>argNames</code> - argument names, or null if call by position</dd>
<dd><code>sqlSyntax</code> - the SqlSyntax of the SqlOperator being looked up</dd>
<dd><code>sqlKind</code> - the SqlKind of the SqlOperator being looked up</dd>
<dd><code>category</code> - Category of routine to look up</dd>
<dd><code>nameMatcher</code> - Whether to look up the function case-sensitively</dd>
<dd><code>coerce</code> - Whether to allow type coercion when do filter routine
by parameter types</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>list of matching routines</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../util/Glossary.html#SQL99"><code>SQL:1999 Part 2 Section 10.4</code></a></dd>
</dl>
</li>
</ul>
<a id="matchRoutinesByParameterCount(org.apache.calcite.sql.SqlOperatorTable,org.apache.calcite.sql.SqlIdentifier,java.util.List,org.apache.calcite.sql.SqlFunctionCategory,org.apache.calcite.sql.validate.SqlNameMatcher)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>matchRoutinesByParameterCount</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;matchRoutinesByParameterCount&#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;funcName,
java.util.List&lt;<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&nbsp;argTypes,
<a href="SqlFunctionCategory.html" title="enum in org.apache.calcite.sql">SqlFunctionCategory</a>&nbsp;category,
<a href="validate/SqlNameMatcher.html" title="interface in org.apache.calcite.sql.validate">SqlNameMatcher</a>&nbsp;nameMatcher)</pre>
<div class="block">Determines whether there is a routine matching the given name and number
of arguments.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>opTab</code> - operator table to search</dd>
<dd><code>funcName</code> - name of function being invoked</dd>
<dd><code>argTypes</code> - argument types</dd>
<dd><code>category</code> - category of routine to look up</dd>
<dd><code>nameMatcher</code> - Whether to look up the function case-sensitively</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if match found</dd>
</dl>
</li>
</ul>
<a id="lookupSubjectRoutinesByName(org.apache.calcite.sql.SqlOperatorTable,org.apache.calcite.sql.SqlIdentifier,org.apache.calcite.sql.SqlSyntax,org.apache.calcite.sql.SqlFunctionCategory,org.apache.calcite.sql.validate.SqlNameMatcher)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>lookupSubjectRoutinesByName</h4>
<pre class="methodSignature">private static&nbsp;java.util.Iterator&lt;<a href="SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&gt;&nbsp;lookupSubjectRoutinesByName&#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;funcName,
<a href="SqlSyntax.html" title="enum in org.apache.calcite.sql">SqlSyntax</a>&nbsp;syntax,
<a href="SqlFunctionCategory.html" title="enum in org.apache.calcite.sql">SqlFunctionCategory</a>&nbsp;category,
<a href="validate/SqlNameMatcher.html" title="interface in org.apache.calcite.sql.validate">SqlNameMatcher</a>&nbsp;nameMatcher)</pre>
</li>
</ul>
<a id="filterRoutinesByParameterCount(java.util.Iterator,java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>filterRoutinesByParameterCount</h4>
<pre class="methodSignature">private static&nbsp;java.util.Iterator&lt;<a href="SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&gt;&nbsp;filterRoutinesByParameterCount&#8203;(java.util.Iterator&lt;<a href="SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&gt;&nbsp;routines,
java.util.List&lt;<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&nbsp;argTypes)</pre>
</li>
</ul>
<a id="filterRoutinesByParameterType(org.apache.calcite.sql.SqlSyntax,java.util.Iterator,java.util.List,java.util.List,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>filterRoutinesByParameterType</h4>
<pre class="methodSignature">private static&nbsp;java.util.Iterator&lt;<a href="SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&gt;&nbsp;filterRoutinesByParameterType&#8203;(<a href="SqlSyntax.html" title="enum in org.apache.calcite.sql">SqlSyntax</a>&nbsp;syntax,
java.util.Iterator&lt;<a href="SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&gt;&nbsp;routines,
java.util.List&lt;<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&nbsp;argTypes,
java.util.List&lt;java.lang.String&gt;&nbsp;argNames,
boolean&nbsp;coerce)</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../util/Glossary.html#SQL99"><code>SQL:1999 Part 2 Section 10.4 Syntax Rule 6.b.iii.2.B</code></a></dd>
</dl>
</li>
</ul>
<a id="filterRoutinesByTypePrecedence(org.apache.calcite.sql.SqlSyntax,java.util.Iterator,java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>filterRoutinesByTypePrecedence</h4>
<pre class="methodSignature">private static&nbsp;java.util.Iterator&lt;<a href="SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&gt;&nbsp;filterRoutinesByTypePrecedence&#8203;(<a href="SqlSyntax.html" title="enum in org.apache.calcite.sql">SqlSyntax</a>&nbsp;sqlSyntax,
java.util.Iterator&lt;<a href="SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&gt;&nbsp;routines,
java.util.List&lt;<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&nbsp;argTypes)</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../util/Glossary.html#SQL99"><code>SQL:1999 Part 2 Section 9.4</code></a></dd>
</dl>
</li>
</ul>
<a id="bestMatch(java.util.List,int,org.apache.calcite.rel.type.RelDataTypePrecedenceList)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>bestMatch</h4>
<pre class="methodSignature">private static&nbsp;<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;bestMatch&#8203;(java.util.List&lt;<a href="SqlFunction.html" title="class in org.apache.calcite.sql">SqlFunction</a>&gt;&nbsp;sqlFunctions,
int&nbsp;i,
<a href="../rel/type/RelDataTypePrecedenceList.html" title="interface in org.apache.calcite.rel.type">RelDataTypePrecedenceList</a>&nbsp;precList)</pre>
</li>
</ul>
<a id="getSelectListItem(org.apache.calcite.sql.SqlNode,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSelectListItem</h4>
<pre class="methodSignature">public static&nbsp;<a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;getSelectListItem&#8203;(<a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;query,
int&nbsp;i)</pre>
<div class="block">Returns the <code>i</code>th select-list item of a query.</div>
</li>
</ul>
<a id="deriveAliasFromOrdinal(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>deriveAliasFromOrdinal</h4>
<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;deriveAliasFromOrdinal&#8203;(int&nbsp;ordinal)</pre>
</li>
</ul>
<a id="getOperatorSignature(org.apache.calcite.sql.SqlOperator,java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOperatorSignature</h4>
<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;getOperatorSignature&#8203;(<a href="SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&nbsp;op,
java.util.List&lt;?&gt;&nbsp;typeList)</pre>
<div class="block">Constructs an operator signature from a type list.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>op</code> - operator</dd>
<dd><code>typeList</code> - list of types to use for operands. Types may be
represented as <code>String</code>, <a href="type/SqlTypeFamily.html" title="enum in org.apache.calcite.sql.type"><code>SqlTypeFamily</code></a>, or
any object with a valid <code>Object.toString()</code> method.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>constructed signature</dd>
</dl>
</li>
</ul>
<a id="getAliasedSignature(org.apache.calcite.sql.SqlOperator,java.lang.String,java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAliasedSignature</h4>
<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;getAliasedSignature&#8203;(<a href="SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&nbsp;op,
java.lang.String&nbsp;opName,
java.util.List&lt;?&gt;&nbsp;typeList)</pre>
<div class="block">Constructs an operator signature from a type list, substituting an alias
for the operator name.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>op</code> - operator</dd>
<dd><code>opName</code> - name to use for operator</dd>
<dd><code>typeList</code> - list of <a href="type/SqlTypeName.html" title="enum in org.apache.calcite.sql.type"><code>SqlTypeName</code></a> or <code>String</code> to use for
operands</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>constructed signature</dd>
</dl>
</li>
</ul>
<a id="newContextException(org.apache.calcite.sql.parser.SqlParserPos,org.apache.calcite.runtime.Resources.ExInst,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newContextException</h4>
<pre class="methodSignature">public static&nbsp;<a href="../runtime/CalciteException.html" title="class in org.apache.calcite.runtime">CalciteException</a>&nbsp;newContextException&#8203;(<a href="parser/SqlParserPos.html" title="class in org.apache.calcite.sql.parser">SqlParserPos</a>&nbsp;pos,
<a href="../runtime/Resources.ExInst.html" title="class in org.apache.calcite.runtime">Resources.ExInst</a>&lt;?&gt;&nbsp;e,
java.lang.String&nbsp;inputText)</pre>
<div class="block">Wraps an exception with context.</div>
</li>
</ul>
<a id="newContextException(org.apache.calcite.sql.parser.SqlParserPos,org.apache.calcite.runtime.Resources.ExInst)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newContextException</h4>
<pre class="methodSignature">public static&nbsp;<a href="../runtime/CalciteContextException.html" title="class in org.apache.calcite.runtime">CalciteContextException</a>&nbsp;newContextException&#8203;(<a href="parser/SqlParserPos.html" title="class in org.apache.calcite.sql.parser">SqlParserPos</a>&nbsp;pos,
<a href="../runtime/Resources.ExInst.html" title="class in org.apache.calcite.runtime">Resources.ExInst</a>&lt;?&gt;&nbsp;e)</pre>
<div class="block">Wraps an exception with context.</div>
</li>
</ul>
<a id="newContextException(int,int,int,int,org.apache.calcite.runtime.Resources.ExInst)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newContextException</h4>
<pre class="methodSignature">public static&nbsp;<a href="../runtime/CalciteContextException.html" title="class in org.apache.calcite.runtime">CalciteContextException</a>&nbsp;newContextException&#8203;(int&nbsp;line,
int&nbsp;col,
int&nbsp;endLine,
int&nbsp;endCol,
<a href="../runtime/Resources.ExInst.html" title="class in org.apache.calcite.runtime">Resources.ExInst</a>&lt;?&gt;&nbsp;e)</pre>
<div class="block">Wraps an exception with context.</div>
</li>
</ul>
<a id="isCallTo(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.SqlOperator)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isCallTo</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;isCallTo&#8203;(<a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
<a href="SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&nbsp;operator)</pre>
<div class="block">Returns whether a <a href="SqlNode.html" title="class in org.apache.calcite.sql"><code>node</code></a> is a <a href="SqlCall.html" title="class in org.apache.calcite.sql"><code>call</code></a> to a
given <a href="SqlOperator.html" title="class in org.apache.calcite.sql"><code>operator</code></a>.</div>
</li>
</ul>
<a id="createNlsStringType(org.apache.calcite.rel.type.RelDataTypeFactory,org.apache.calcite.util.NlsString)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createNlsStringType</h4>
<pre class="methodSignature">public static&nbsp;<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;createNlsStringType&#8203;(<a href="../rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a>&nbsp;typeFactory,
<a href="../util/NlsString.html" title="class in org.apache.calcite.util">NlsString</a>&nbsp;str)</pre>
<div class="block">Creates the type of an <a href="../util/NlsString.html" title="class in org.apache.calcite.util"><code>NlsString</code></a>.
<p>The type inherits the The NlsString's <code>Charset</code> and
<a href="SqlCollation.html" title="class in org.apache.calcite.sql"><code>SqlCollation</code></a>, if they are set, otherwise it gets the system
defaults.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>typeFactory</code> - Type factory</dd>
<dd><code>str</code> - String</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Type, including collation and charset</dd>
</dl>
</li>
</ul>
<a id="translateCharacterSetName(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>translateCharacterSetName</h4>
<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;translateCharacterSetName&#8203;(java.lang.String&nbsp;name)</pre>
<div class="block">Translates a character set name from a SQL-level name into a Java-level
name.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - SQL-level name</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Java-level name, or null if SQL-level name is unknown</dd>
</dl>
</li>
</ul>
<a id="getCharset(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCharset</h4>
<pre class="methodSignature">public static&nbsp;java.nio.charset.Charset&nbsp;getCharset&#8203;(java.lang.String&nbsp;charsetName)</pre>
<div class="block">Returns the Java-level <code>Charset</code> based on given SQL-level name.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>charsetName</code> - Sql charset name, must not be null.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>charset, or default charset if charsetName is null.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.nio.charset.UnsupportedCharsetException</code> - If no support for the named charset
is available in this instance of the Java virtual machine</dd>
</dl>
</li>
</ul>
<a id="validateCharset(org.apache.calcite.avatica.util.ByteString,java.nio.charset.Charset)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateCharset</h4>
<pre class="methodSignature">public static&nbsp;void&nbsp;validateCharset&#8203;(org.apache.calcite.avatica.util.ByteString&nbsp;value,
java.nio.charset.Charset&nbsp;charset)</pre>
<div class="block">Validate if value can be decoded by given charset.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>value</code> - nls string in byte array</dd>
<dd><code>charset</code> - charset</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.RuntimeException</code> - If the given value cannot be represented in the
given charset</dd>
</dl>
</li>
</ul>
<a id="stripAs(org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>stripAs</h4>
<pre class="methodSignature">public static&nbsp;<a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;stripAs&#8203;(<a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</pre>
<div class="block">If a node is "AS", returns the underlying expression; otherwise returns
the node.</div>
</li>
</ul>
<a id="getAncestry(org.apache.calcite.sql.SqlNode,java.util.function.Predicate,java.util.function.Predicate)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getAncestry</h4>
<pre class="methodSignature">public static&nbsp;com.google.common.collect.ImmutableList&lt;<a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;getAncestry&#8203;(<a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;root,
java.util.function.Predicate&lt;<a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;predicate,
java.util.function.Predicate&lt;<a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;postPredicate)</pre>
<div class="block">Returns a list of ancestors of <code>predicate</code> within a given
<code>SqlNode</code> tree.
<p>The first element of the list is <code>root</code>, and the last is
the node that matched <code>predicate</code>. Throws if no node matches.</div>
</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/SqlUtil.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>Field&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>Field&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>