blob: 295ea55c9ba1efe06846f8c63460692b1c54925f [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>SqlDialect (Apache Calcite calcite API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.calcite.sql, class: SqlDialect">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../script-dir/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../script-dir/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../script-dir/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../script-dir/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../script-dir/jquery-3.4.1.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-ui.js"></script>
</head>
<body class="class-declaration">
<script type="text/javascript">var data = {"i0":10,"i1":10,"i2":42,"i3":9,"i4":41,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":42,"i13":10,"i14":41,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":42,"i43":10,"i44":10,"i45":10,"i46":9,"i47":9,"i48":9,"i49":9,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flexBox">
<header role="banner" class="flexHeader">
<nav role="navigation">
<!-- ========= 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="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 class="aboutLanguage"><b>Apache Calcite</b></div>
</div>
<div class="subNav">
<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>
<div class="navListSearch"><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="skipNav"><a id="skip.navbar.top">
<!-- -->
</a></div>
</nav>
</header>
<div class="flexContent">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.calcite.sql</a></div>
<h1 title="Class SqlDialect" class="title">Class SqlDialect</h1>
</div>
<div class="contentContainer">
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a>
<div class="inheritance">org.apache.calcite.sql.SqlDialect</div>
</div>
<section class="description">
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><code><a href="dialect/AccessSqlDialect.html" title="class in org.apache.calcite.sql.dialect">AccessSqlDialect</a></code>, <code><a href="dialect/AnsiSqlDialect.html" title="class in org.apache.calcite.sql.dialect">AnsiSqlDialect</a></code>, <code><a href="dialect/BigQuerySqlDialect.html" title="class in org.apache.calcite.sql.dialect">BigQuerySqlDialect</a></code>, <code><a href="dialect/CalciteSqlDialect.html" title="class in org.apache.calcite.sql.dialect">CalciteSqlDialect</a></code>, <code><a href="dialect/ClickHouseSqlDialect.html" title="class in org.apache.calcite.sql.dialect">ClickHouseSqlDialect</a></code>, <code><a href="dialect/Db2SqlDialect.html" title="class in org.apache.calcite.sql.dialect">Db2SqlDialect</a></code>, <code><a href="dialect/DerbySqlDialect.html" title="class in org.apache.calcite.sql.dialect">DerbySqlDialect</a></code>, <code><a href="dialect/FirebirdSqlDialect.html" title="class in org.apache.calcite.sql.dialect">FirebirdSqlDialect</a></code>, <code><a href="dialect/H2SqlDialect.html" title="class in org.apache.calcite.sql.dialect">H2SqlDialect</a></code>, <code><a href="dialect/HiveSqlDialect.html" title="class in org.apache.calcite.sql.dialect">HiveSqlDialect</a></code>, <code><a href="dialect/HsqldbSqlDialect.html" title="class in org.apache.calcite.sql.dialect">HsqldbSqlDialect</a></code>, <code><a href="dialect/InfobrightSqlDialect.html" title="class in org.apache.calcite.sql.dialect">InfobrightSqlDialect</a></code>, <code><a href="dialect/InformixSqlDialect.html" title="class in org.apache.calcite.sql.dialect">InformixSqlDialect</a></code>, <code><a href="dialect/IngresSqlDialect.html" title="class in org.apache.calcite.sql.dialect">IngresSqlDialect</a></code>, <code><a href="dialect/InterbaseSqlDialect.html" title="class in org.apache.calcite.sql.dialect">InterbaseSqlDialect</a></code>, <code><a href="dialect/JethroDataSqlDialect.html" title="class in org.apache.calcite.sql.dialect">JethroDataSqlDialect</a></code>, <code><a href="dialect/LucidDbSqlDialect.html" title="class in org.apache.calcite.sql.dialect">LucidDbSqlDialect</a></code>, <code><a href="dialect/MssqlSqlDialect.html" title="class in org.apache.calcite.sql.dialect">MssqlSqlDialect</a></code>, <code><a href="dialect/MysqlSqlDialect.html" title="class in org.apache.calcite.sql.dialect">MysqlSqlDialect</a></code>, <code><a href="dialect/NeoviewSqlDialect.html" title="class in org.apache.calcite.sql.dialect">NeoviewSqlDialect</a></code>, <code><a href="dialect/NetezzaSqlDialect.html" title="class in org.apache.calcite.sql.dialect">NetezzaSqlDialect</a></code>, <code><a href="dialect/OracleSqlDialect.html" title="class in org.apache.calcite.sql.dialect">OracleSqlDialect</a></code>, <code><a href="dialect/ParaccelSqlDialect.html" title="class in org.apache.calcite.sql.dialect">ParaccelSqlDialect</a></code>, <code><a href="dialect/PhoenixSqlDialect.html" title="class in org.apache.calcite.sql.dialect">PhoenixSqlDialect</a></code>, <code><a href="dialect/PostgresqlSqlDialect.html" title="class in org.apache.calcite.sql.dialect">PostgresqlSqlDialect</a></code>, <code><a href="dialect/PrestoSqlDialect.html" title="class in org.apache.calcite.sql.dialect">PrestoSqlDialect</a></code>, <code><a href="dialect/RedshiftSqlDialect.html" title="class in org.apache.calcite.sql.dialect">RedshiftSqlDialect</a></code>, <code><a href="dialect/SnowflakeSqlDialect.html" title="class in org.apache.calcite.sql.dialect">SnowflakeSqlDialect</a></code>, <code><a href="dialect/SparkSqlDialect.html" title="class in org.apache.calcite.sql.dialect">SparkSqlDialect</a></code>, <code><a href="dialect/SybaseSqlDialect.html" title="class in org.apache.calcite.sql.dialect">SybaseSqlDialect</a></code>, <code><a href="dialect/TeradataSqlDialect.html" title="class in org.apache.calcite.sql.dialect">TeradataSqlDialect</a></code>, <code><a href="dialect/VerticaSqlDialect.html" title="class in org.apache.calcite.sql.dialect">VerticaSqlDialect</a></code></dd>
</dl>
<hr>
<pre>public class <span class="typeNameLabel">SqlDialect</span>
extends <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
<div class="block"><code>SqlDialect</code> encapsulates the differences between dialects of SQL.
<p>It is used by classes such as <a href="SqlWriter.html" title="interface in org.apache.calcite.sql"><code>SqlWriter</code></a> and
<a href="util/SqlBuilder.html" title="class in org.apache.calcite.sql.util"><code>SqlBuilder</code></a>.
<p>To add a new <a href="SqlDialect.html" title="class in org.apache.calcite.sql"><code>SqlDialect</code></a> sub-class, extends this class to hold 2 public final
static member:
<ul>
<li>DEFAULT_CONTEXT: a default <a href="SqlDialect.Context.html" title="interface in org.apache.calcite.sql"><code>SqlDialect.Context</code></a> instance, which can be used to customize
or extending the dialect if the DEFAULT instance does not meet the requests</li>
<li>DEFAULT: the default <a href="SqlDialect.html" title="class in org.apache.calcite.sql"><code>SqlDialect</code></a> instance with context properties defined with
<code>DEFAULT_CONTEXT</code></li>
</ul></div>
</section>
<section class="summary">
<ul class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<li class="blockList">
<section class="nestedClassSummary"><a id="nested.class.summary">
<!-- -->
</a>
<h2>Nested Class Summary</h2>
<div class="memberSummary">
<table>
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<thead>
<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>
</thead>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="SqlDialect.CalendarPolicy.html" title="enum in org.apache.calcite.sql">SqlDialect.CalendarPolicy</a></span></code></th>
<td class="colLast">
<div class="block">Whether this JDBC driver needs you to pass a Calendar object to methods
such as <a href="https://docs.oracle.com/javase/9/docs/api/java/sql/ResultSet.html?is-external=true#getTimestamp(int,java.util.Calendar)" title="class or interface in java.sql" class="externalLink"><code>ResultSet.getTimestamp(int, java.util.Calendar)</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static interface&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="SqlDialect.Context.html" title="interface in org.apache.calcite.sql">SqlDialect.Context</a></span></code></th>
<td class="colLast">
<div class="block">Information for creating a dialect.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="SqlDialect.DatabaseProduct.html" title="enum in org.apache.calcite.sql">SqlDialect.DatabaseProduct</a></span></code></th>
<td class="colLast">
<div class="block">Rough list of flavors of database.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="SqlDialect.FakeUtil.html" title="class in org.apache.calcite.sql">SqlDialect.FakeUtil</a></span></code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
</tbody>
</table>
</div>
</section>
</li>
<!-- =========== FIELD SUMMARY =========== -->
<li class="blockList">
<section class="fieldSummary"><a id="field.summary">
<!-- -->
</a>
<h2>Field Summary</h2>
<div class="memberSummary">
<table>
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<thead>
<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>
</thead>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/9/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&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="#BUILT_IN_OPERATORS_LIST">BUILT_IN_OPERATORS_LIST</a></span></code></th>
<td class="colLast">
<div class="block">Built-in scalar functions and operators common for every dialect.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="SqlDialect.Context.html" title="interface in org.apache.calcite.sql">SqlDialect.Context</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EMPTY_CONTEXT">EMPTY_CONTEXT</a></span></code></th>
<td class="colLast">
<div class="block">Empty context.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected @Nullable <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#identifierEndQuoteString">identifierEndQuoteString</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected @Nullable <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#identifierEscapedQuote">identifierEscapedQuote</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected @Nullable <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#identifierQuoteString">identifierQuoteString</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#literalEndQuoteString">literalEndQuoteString</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#literalEscapedQuote">literalEscapedQuote</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#literalQuoteString">literalQuoteString</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected static org.slf4j.Logger</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#LOGGER">LOGGER</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="../config/NullCollation.html" title="enum in org.apache.calcite.config">NullCollation</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#nullCollation">nullCollation</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
</div>
</section>
</li>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li class="blockList">
<section class="constructorSummary"><a id="constructor.summary">
<!-- -->
</a>
<h2>Constructor Summary</h2>
<div class="memberSummary">
<table>
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<thead>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
</thead>
<tbody>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.apache.calcite.sql.SqlDialect.Context)">SqlDialect</a></span>&#8203;(<a href="SqlDialect.Context.html" title="interface in org.apache.calcite.sql">SqlDialect.Context</a>&nbsp;context)</code></th>
<td class="colLast">
<div class="block">Creates a SqlDialect.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.apache.calcite.sql.SqlDialect.DatabaseProduct,java.lang.String,java.lang.String)">SqlDialect</a></span>&#8203;(<a href="SqlDialect.DatabaseProduct.html" title="enum in org.apache.calcite.sql">SqlDialect.DatabaseProduct</a>&nbsp;databaseProduct,
<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;databaseProductName,
<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;identifierQuoteString)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.apache.calcite.sql.SqlDialect.DatabaseProduct,java.lang.String,java.lang.String,org.apache.calcite.config.NullCollation)">SqlDialect</a></span>&#8203;(<a href="SqlDialect.DatabaseProduct.html" title="enum in org.apache.calcite.sql">SqlDialect.DatabaseProduct</a>&nbsp;databaseProduct,
<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;databaseProductName,
<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;identifierQuoteString,
<a href="../config/NullCollation.html" title="enum in org.apache.calcite.config">NullCollation</a>&nbsp;nullCollation)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="#%3Cinit%3E(org.apache.calcite.sql.SqlDialect.Context)"><code>SqlDialect(Context)</code></a></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li class="blockList">
<section class="methodSummary"><a id="method.summary">
<!-- -->
</a>
<h2>Method Summary</h2>
<div class="memberSummary">
<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t1" class="tableTab" onclick="show(1);">Static Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t4" class="tableTab" onclick="show(8);">Concrete Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t6" class="tableTab" onclick="show(32);">Deprecated Methods</button></div>
<div id="memberSummary_tabpanel" role="tabpanel">
<table aria-labelledby="t0">
<thead>
<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>
</thead>
<tbody>
<tr class="altColor" id="i0">
<td class="colFirst"><code>protected boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#allowsAs()">allowsAs</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor" id="i1">
<td class="colFirst"><code><a href="parser/SqlParser.Config.html" title="interface in org.apache.calcite.sql.parser">SqlParser.Config</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#configureParser(org.apache.calcite.sql.parser.SqlParser.Config)">configureParser</a></span>&#8203;(<a href="parser/SqlParser.Config.html" title="interface in org.apache.calcite.sql.parser">SqlParser.Config</a>&nbsp;config)</code></th>
<td class="colLast">
<div class="block">Copies settings from this dialect into a parser configuration.</div>
</td>
</tr>
<tr class="altColor" id="i2">
<td class="colFirst"><code><a href="parser/SqlParser.ConfigBuilder.html" title="class in org.apache.calcite.sql.parser">SqlParser.ConfigBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#configureParser(org.apache.calcite.sql.parser.SqlParser.ConfigBuilder)">configureParser</a></span>&#8203;(<a href="parser/SqlParser.ConfigBuilder.html" title="class in org.apache.calcite.sql.parser">SqlParser.ConfigBuilder</a>&nbsp;configBuilder)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr class="rowColor" id="i3">
<td class="colFirst"><code>protected static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#containsNonAscii(java.lang.String)">containsNonAscii</a></span>&#8203;(<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;s)</code></th>
<td class="colLast">
<div class="block">Returns whether the string contains any characters outside the
comfortable 7-bit ASCII range (32 through 127, plus linefeed (10) and
carriage return (13)).</div>
</td>
</tr>
<tr class="altColor" id="i4">
<td class="colFirst"><code>static <a href="SqlDialect.html" title="class in org.apache.calcite.sql">SqlDialect</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#create(java.sql.DatabaseMetaData)">create</a></span>&#8203;(<a href="https://docs.oracle.com/javase/9/docs/api/java/sql/DatabaseMetaData.html?is-external=true" title="class or interface in java.sql" class="externalLink">DatabaseMetaData</a>&nbsp;databaseMetaData)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Replaced by <a href="SqlDialectFactory.html" title="interface in org.apache.calcite.sql"><code>SqlDialectFactory</code></a></div>
</div>
</td>
</tr>
<tr class="rowColor" id="i5">
<td class="colFirst"><code><a href="../rel/RelFieldCollation.NullDirection.html" title="enum in org.apache.calcite.rel">RelFieldCollation.NullDirection</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#defaultNullDirection(org.apache.calcite.rel.RelFieldCollation.Direction)">defaultNullDirection</a></span>&#8203;(<a href="../rel/RelFieldCollation.Direction.html" title="enum in org.apache.calcite.rel">RelFieldCollation.Direction</a>&nbsp;direction)</code></th>
<td class="colLast">
<div class="block">Returns whether NULL values are sorted first or last, in this dialect,
in an ORDER BY item of a given direction.</div>
</td>
</tr>
<tr class="altColor" id="i6">
<td class="colFirst"><code><a href="JoinType.html" title="enum in org.apache.calcite.sql">JoinType</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#emulateJoinTypeForCrossJoin()">emulateJoinTypeForCrossJoin</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor" id="i7">
<td class="colFirst"><code>@Nullable <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="#emulateNullDirection(org.apache.calcite.sql.SqlNode,boolean,boolean)">emulateNullDirection</a></span>&#8203;(<a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
boolean&nbsp;nullsFirst,
boolean&nbsp;desc)</code></th>
<td class="colLast">
<div class="block">Returns the SqlNode for emulating the null direction for the given field
or <code>null</code> if no emulation needs to be done.</div>
</td>
</tr>
<tr class="altColor" id="i8">
<td class="colFirst"><code>protected @Nullable <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="#emulateNullDirectionWithIsNull(org.apache.calcite.sql.SqlNode,boolean,boolean)">emulateNullDirectionWithIsNull</a></span>&#8203;(<a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
boolean&nbsp;nullsFirst,
boolean&nbsp;desc)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor" id="i9">
<td class="colFirst"><code><a href="SqlDialect.CalendarPolicy.html" title="enum in org.apache.calcite.sql">SqlDialect.CalendarPolicy</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCalendarPolicy()">getCalendarPolicy</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor" id="i10">
<td class="colFirst"><code>@Nullable <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="#getCastSpec(org.apache.calcite.rel.type.RelDataType)">getCastSpec</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">
<div class="block">Returns SqlNode for type in "cast(column as type)", which might be
different between databases by type name, precision etc.</div>
</td>
</tr>
<tr class="rowColor" id="i11">
<td class="colFirst"><code><a href="validate/SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getConformance()">getConformance</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the <a href="validate/SqlConformance.html" title="interface in org.apache.calcite.sql.validate"><code>SqlConformance</code></a> that matches this dialect.</div>
</td>
</tr>
<tr class="altColor" id="i12">
<td class="colFirst"><code><a href="SqlDialect.DatabaseProduct.html" title="enum in org.apache.calcite.sql">SqlDialect.DatabaseProduct</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDatabaseProduct()">getDatabaseProduct</a></span>()</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">To be removed without replacement</div>
</div>
</td>
</tr>
<tr class="rowColor" id="i13">
<td class="colFirst"><code><a href="../config/NullCollation.html" title="enum in org.apache.calcite.config">NullCollation</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNullCollation()">getNullCollation</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns how NULL values are sorted if an ORDER BY item does not contain
NULLS ASCENDING or NULLS DESCENDING.</div>
</td>
</tr>
<tr class="altColor" id="i14">
<td class="colFirst"><code>static <a href="SqlDialect.DatabaseProduct.html" title="enum in org.apache.calcite.sql">SqlDialect.DatabaseProduct</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getProduct(java.lang.String,java.lang.String)">getProduct</a></span>&#8203;(<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;productName,
<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;productVersion)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr class="rowColor" id="i15">
<td class="colFirst"><code>org.apache.calcite.avatica.util.Casing</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getQuotedCasing()">getQuotedCasing</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns how quoted identifiers are stored.</div>
</td>
</tr>
<tr class="altColor" id="i16">
<td class="colFirst"><code>protected @Nullable org.apache.calcite.avatica.util.Quoting</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getQuoting()">getQuoting</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the quoting scheme, or null if the combination of
<a href="#identifierQuoteString"><code>identifierQuoteString</code></a> and <a href="#identifierEndQuoteString"><code>identifierEndQuoteString</code></a>
does not correspond to any known quoting scheme.</div>
</td>
</tr>
<tr class="rowColor" id="i17">
<td class="colFirst"><code>@Nullable <a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSingleRowTableName()">getSingleRowTableName</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the name of the system table that has precisely one row.</div>
</td>
</tr>
<tr class="altColor" id="i18">
<td class="colFirst"><code><a href="../rel/type/RelDataTypeSystem.html" title="interface in org.apache.calcite.rel.type">RelDataTypeSystem</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTypeSystem()">getTypeSystem</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the type system implementation for this dialect.</div>
</td>
</tr>
<tr class="rowColor" id="i19">
<td class="colFirst"><code>org.apache.calcite.avatica.util.Casing</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getUnquotedCasing()">getUnquotedCasing</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns how unquoted identifiers are stored.</div>
</td>
</tr>
<tr class="altColor" id="i20">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hasImplicitTableAlias()">hasImplicitTableAlias</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns whether a qualified table in the FROM clause has an implicit alias
which consists of just the table name.</div>
</td>
</tr>
<tr class="rowColor" id="i21">
<td class="colFirst"><code>protected boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#identifierNeedsQuote(java.lang.String)">identifierNeedsQuote</a></span>&#8203;(<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;val)</code></th>
<td class="colLast">
<div class="block">Returns whether to quote an identifier.</div>
</td>
</tr>
<tr class="altColor" id="i22">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isCaseSensitive()">isCaseSensitive</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns whether matching of identifiers is case-sensitive.</div>
</td>
</tr>
<tr class="rowColor" id="i23">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#quoteIdentifier(java.lang.String)">quoteIdentifier</a></span>&#8203;(<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;val)</code></th>
<td class="colLast">
<div class="block">Encloses an identifier in quotation marks appropriate for the current SQL
dialect.</div>
</td>
</tr>
<tr class="altColor" id="i24">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang" class="externalLink">StringBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#quoteIdentifier(java.lang.StringBuilder,java.lang.String)">quoteIdentifier</a></span>&#8203;(<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang" class="externalLink">StringBuilder</a>&nbsp;buf,
<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;val)</code></th>
<td class="colLast">
<div class="block">Encloses an identifier in quotation marks appropriate for the current SQL
dialect, writing the result to a <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>StringBuilder</code></a>.</div>
</td>
</tr>
<tr class="rowColor" id="i25">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang" class="externalLink">StringBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#quoteIdentifier(java.lang.StringBuilder,java.util.List)">quoteIdentifier</a></span>&#8203;(<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang" class="externalLink">StringBuilder</a>&nbsp;buf,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;identifiers)</code></th>
<td class="colLast">
<div class="block">Quotes a multi-part identifier.</div>
</td>
</tr>
<tr class="altColor" id="i26">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#quoteStringLiteral(java.lang.String)">quoteStringLiteral</a></span>&#8203;(<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;val)</code></th>
<td class="colLast">
<div class="block">Converts a string into a string literal.</div>
</td>
</tr>
<tr class="rowColor" id="i27">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#quoteStringLiteral(java.lang.StringBuilder,java.lang.String,java.lang.String)">quoteStringLiteral</a></span>&#8203;(<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang" class="externalLink">StringBuilder</a>&nbsp;buf,
@Nullable <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;charsetName,
<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;val)</code></th>
<td class="colLast">
<div class="block">Appends a string literal to a buffer.</div>
</td>
</tr>
<tr class="altColor" id="i28">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#quoteStringLiteralUnicode(java.lang.StringBuilder,java.lang.String)">quoteStringLiteralUnicode</a></span>&#8203;(<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang" class="externalLink">StringBuilder</a>&nbsp;buf,
<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;val)</code></th>
<td class="colLast">
<div class="block">Converts a string into a unicode string literal.</div>
</td>
</tr>
<tr class="rowColor" id="i29">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#quoteTimestampLiteral(java.sql.Timestamp)">quoteTimestampLiteral</a></span>&#8203;(<a href="https://docs.oracle.com/javase/9/docs/api/java/sql/Timestamp.html?is-external=true" title="class or interface in java.sql" class="externalLink">Timestamp</a>&nbsp;timestamp)</code></th>
<td class="colLast">
<div class="block">Converts a timestamp to a SQL timestamp literal, e.g.</div>
</td>
</tr>
<tr class="altColor" id="i30">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#requiresAliasForFromItems()">requiresAliasForFromItems</a></span>()</code></th>
<td class="colLast">
<div class="block">Whether a sub-query in the FROM clause must have an alias.</div>
</td>
</tr>
<tr class="rowColor" id="i31">
<td class="colFirst"><code><a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#rewriteSingleValueExpr(org.apache.calcite.sql.SqlNode)">rewriteSingleValueExpr</a></span>&#8203;(<a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;aggCall)</code></th>
<td class="colLast">
<div class="block">Rewrite SINGLE_VALUE into expression based on database variants
E.g.</div>
</td>
</tr>
<tr class="altColor" id="i32">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#supportsAggregateFunction(org.apache.calcite.sql.SqlKind)">supportsAggregateFunction</a></span>&#8203;(<a href="SqlKind.html" title="enum in org.apache.calcite.sql">SqlKind</a>&nbsp;kind)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor" id="i33">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#supportsAggregateFunctionFilter()">supportsAggregateFunctionFilter</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns whether this dialect supports the use of FILTER clauses for
aggregate functions.</div>
</td>
</tr>
<tr class="altColor" id="i34">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#supportsAliasedValues()">supportsAliasedValues</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns whether the dialect supports VALUES in a sub-query with
and an "AS t(column, ...)" values to define column names.</div>
</td>
</tr>
<tr class="rowColor" id="i35">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#supportsCharSet()">supportsCharSet</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns whether the dialect supports character set names as part of a
data type, for instance <code>VARCHAR(30) CHARACTER SET `ISO-8859-1`</code>.</div>
</td>
</tr>
<tr class="altColor" id="i36">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#supportsDataType(org.apache.calcite.rel.type.RelDataType)">supportsDataType</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">
<div class="block">Returns whether this dialect supports a given type.</div>
</td>
</tr>
<tr class="rowColor" id="i37">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#supportsFunction(org.apache.calcite.sql.SqlOperator,org.apache.calcite.rel.type.RelDataType,java.util.List)">supportsFunction</a></span>&#8203;(<a href="SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&nbsp;operator,
<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&nbsp;paramTypes)</code></th>
<td class="colLast">
<div class="block">Returns whether this dialect supports a given function or operator.</div>
</td>
</tr>
<tr class="altColor" id="i38">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#supportsGroupByWithCube()">supportsGroupByWithCube</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns whether this dialect supports "WITH CUBE" in "GROUP BY" clause.</div>
</td>
</tr>
<tr class="rowColor" id="i39">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#supportsGroupByWithRollup()">supportsGroupByWithRollup</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns whether this dialect supports "WITH ROLLUP" in the "GROUP BY"
clause.</div>
</td>
</tr>
<tr class="altColor" id="i40">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#supportsImplicitTypeCoercion(org.apache.calcite.rex.RexCall)">supportsImplicitTypeCoercion</a></span>&#8203;(<a href="../rex/RexCall.html" title="class in org.apache.calcite.rex">RexCall</a>&nbsp;call)</code></th>
<td class="colLast">
<div class="block">Returns whether the dialect supports implicit type coercion.</div>
</td>
</tr>
<tr class="rowColor" id="i41">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#supportsNestedAggregations()">supportsNestedAggregations</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns whether the dialect supports nested aggregations, for instance
<code>SELECT SUM(SUM(1)) </code>.</div>
</td>
</tr>
<tr class="altColor" id="i42">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#supportsOffsetFetch()">supportsOffsetFetch</a></span>()</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">This method is no longer used.</div>
</div>
</td>
</tr>
<tr class="rowColor" id="i43">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#supportsWindowFunctions()">supportsWindowFunctions</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns whether this dialect supports window functions (OVER clause).</div>
</td>
</tr>
<tr class="altColor" id="i44">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#unparseCall(org.apache.calcite.sql.SqlWriter,org.apache.calcite.sql.SqlCall,int,int)">unparseCall</a></span>&#8203;(<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,
int&nbsp;leftPrec,
int&nbsp;rightPrec)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor" id="i45">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#unparseDateTimeLiteral(org.apache.calcite.sql.SqlWriter,org.apache.calcite.sql.SqlAbstractDateTimeLiteral,int,int)">unparseDateTimeLiteral</a></span>&#8203;(<a href="SqlWriter.html" title="interface in org.apache.calcite.sql">SqlWriter</a>&nbsp;writer,
<a href="SqlAbstractDateTimeLiteral.html" title="class in org.apache.calcite.sql">SqlAbstractDateTimeLiteral</a>&nbsp;literal,
int&nbsp;leftPrec,
int&nbsp;rightPrec)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor" id="i46">
<td class="colFirst"><code>protected static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#unparseFetchUsingAnsi(org.apache.calcite.sql.SqlWriter,org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.SqlNode)">unparseFetchUsingAnsi</a></span>&#8203;(<a href="SqlWriter.html" title="interface in org.apache.calcite.sql">SqlWriter</a>&nbsp;writer,
@Nullable <a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;offset,
@Nullable <a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;fetch)</code></th>
<td class="colLast">
<div class="block">Unparses offset/fetch using ANSI standard "OFFSET offset ROWS FETCH NEXT
fetch ROWS ONLY" syntax.</div>
</td>
</tr>
<tr class="rowColor" id="i47">
<td class="colFirst"><code>protected static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#unparseFetchUsingLimit(org.apache.calcite.sql.SqlWriter,org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.SqlNode)">unparseFetchUsingLimit</a></span>&#8203;(<a href="SqlWriter.html" title="interface in org.apache.calcite.sql">SqlWriter</a>&nbsp;writer,
@Nullable <a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;offset,
@Nullable <a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;fetch)</code></th>
<td class="colLast">
<div class="block">Unparses offset/fetch using "LIMIT fetch OFFSET offset" syntax.</div>
</td>
</tr>
<tr class="altColor" id="i48">
<td class="colFirst"><code>protected static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#unparseLimit(org.apache.calcite.sql.SqlWriter,org.apache.calcite.sql.SqlNode)">unparseLimit</a></span>&#8203;(<a href="SqlWriter.html" title="interface in org.apache.calcite.sql">SqlWriter</a>&nbsp;writer,
@Nullable <a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;fetch)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor" id="i49">
<td class="colFirst"><code>protected static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#unparseOffset(org.apache.calcite.sql.SqlWriter,org.apache.calcite.sql.SqlNode)">unparseOffset</a></span>&#8203;(<a href="SqlWriter.html" title="interface in org.apache.calcite.sql">SqlWriter</a>&nbsp;writer,
@Nullable <a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;offset)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor" id="i50">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#unparseOffsetFetch(org.apache.calcite.sql.SqlWriter,org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.SqlNode)">unparseOffsetFetch</a></span>&#8203;(<a href="SqlWriter.html" title="interface in org.apache.calcite.sql">SqlWriter</a>&nbsp;writer,
@Nullable <a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;offset,
@Nullable <a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;fetch)</code></th>
<td class="colLast">
<div class="block">Converts an offset and fetch into SQL.</div>
</td>
</tr>
<tr class="rowColor" id="i51">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#unparseSqlDatetimeArithmetic(org.apache.calcite.sql.SqlWriter,org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.SqlKind,int,int)">unparseSqlDatetimeArithmetic</a></span>&#8203;(<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,
<a href="SqlKind.html" title="enum in org.apache.calcite.sql">SqlKind</a>&nbsp;sqlKind,
int&nbsp;leftPrec,
int&nbsp;rightPrec)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor" id="i52">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#unparseSqlIntervalLiteral(org.apache.calcite.sql.SqlWriter,org.apache.calcite.sql.SqlIntervalLiteral,int,int)">unparseSqlIntervalLiteral</a></span>&#8203;(<a href="SqlWriter.html" title="interface in org.apache.calcite.sql">SqlWriter</a>&nbsp;writer,
<a href="SqlIntervalLiteral.html" title="class in org.apache.calcite.sql">SqlIntervalLiteral</a>&nbsp;literal,
int&nbsp;leftPrec,
int&nbsp;rightPrec)</code></th>
<td class="colLast">
<div class="block">Converts an interval literal to a SQL string.</div>
</td>
</tr>
<tr class="rowColor" id="i53">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#unparseSqlIntervalQualifier(org.apache.calcite.sql.SqlWriter,org.apache.calcite.sql.SqlIntervalQualifier,org.apache.calcite.rel.type.RelDataTypeSystem)">unparseSqlIntervalQualifier</a></span>&#8203;(<a href="SqlWriter.html" title="interface in org.apache.calcite.sql">SqlWriter</a>&nbsp;writer,
<a href="SqlIntervalQualifier.html" title="class in org.apache.calcite.sql">SqlIntervalQualifier</a>&nbsp;qualifier,
<a href="../rel/type/RelDataTypeSystem.html" title="interface in org.apache.calcite.rel.type">RelDataTypeSystem</a>&nbsp;typeSystem)</code></th>
<td class="colLast">
<div class="block">Converts an interval qualifier to a SQL string.</div>
</td>
</tr>
<tr class="altColor" id="i54">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#unparseTopN(org.apache.calcite.sql.SqlWriter,org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.SqlNode)">unparseTopN</a></span>&#8203;(<a href="SqlWriter.html" title="interface in org.apache.calcite.sql">SqlWriter</a>&nbsp;writer,
@Nullable <a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;offset,
@Nullable <a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;fetch)</code></th>
<td class="colLast">
<div class="block">Converts a fetch into a "SELECT TOP(fetch)".</div>
</td>
</tr>
<tr class="rowColor" id="i55">
<td class="colFirst"><code>@Nullable <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#unquoteStringLiteral(java.lang.String)">unquoteStringLiteral</a></span>&#8203;(@Nullable <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;val)</code></th>
<td class="colLast">
<div class="block">Converts a string literal back into a string.</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="inheritedList">
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
<a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a><code><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<li class="blockList">
<section class="fieldDetails"><a id="field.detail">
<!-- -->
</a>
<h2>Field Details</h2>
<ul class="blockList">
<li class="blockList">
<section class="detail">
<h3><a id="LOGGER">LOGGER</a></h3>
<div class="memberSignature"><span class="modifiers">protected static final</span>&nbsp;<span class="returnType">org.slf4j.Logger</span>&nbsp;<span class="memberName">LOGGER</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="EMPTY_CONTEXT">EMPTY_CONTEXT</a></h3>
<div class="memberSignature"><span class="modifiers">public static final</span>&nbsp;<span class="returnType"><a href="SqlDialect.Context.html" title="interface in org.apache.calcite.sql">SqlDialect.Context</a></span>&nbsp;<span class="memberName">EMPTY_CONTEXT</span></div>
<div class="block">Empty context.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="BUILT_IN_OPERATORS_LIST">BUILT_IN_OPERATORS_LIST</a></h3>
<div class="memberSignature"><span class="modifiers">protected static final</span>&nbsp;<span class="returnType"><a href="https://docs.oracle.com/javase/9/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&gt;</span>&nbsp;<span class="memberName">BUILT_IN_OPERATORS_LIST</span></div>
<div class="block">Built-in scalar functions and operators common for every dialect.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="identifierQuoteString">identifierQuoteString</a></h3>
<div class="memberSignature"><span class="modifiers">protected final</span>&nbsp;<span class="returnType">@Nullable <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></span>&nbsp;<span class="memberName">identifierQuoteString</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="identifierEndQuoteString">identifierEndQuoteString</a></h3>
<div class="memberSignature"><span class="modifiers">protected final</span>&nbsp;<span class="returnType">@Nullable <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></span>&nbsp;<span class="memberName">identifierEndQuoteString</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="identifierEscapedQuote">identifierEscapedQuote</a></h3>
<div class="memberSignature"><span class="modifiers">protected final</span>&nbsp;<span class="returnType">@Nullable <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></span>&nbsp;<span class="memberName">identifierEscapedQuote</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="literalQuoteString">literalQuoteString</a></h3>
<div class="memberSignature"><span class="modifiers">protected final</span>&nbsp;<span class="returnType"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></span>&nbsp;<span class="memberName">literalQuoteString</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="literalEndQuoteString">literalEndQuoteString</a></h3>
<div class="memberSignature"><span class="modifiers">protected final</span>&nbsp;<span class="returnType"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></span>&nbsp;<span class="memberName">literalEndQuoteString</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="literalEscapedQuote">literalEscapedQuote</a></h3>
<div class="memberSignature"><span class="modifiers">protected final</span>&nbsp;<span class="returnType"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></span>&nbsp;<span class="memberName">literalEscapedQuote</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="nullCollation">nullCollation</a></h3>
<div class="memberSignature"><span class="modifiers">protected final</span>&nbsp;<span class="returnType"><a href="../config/NullCollation.html" title="enum in org.apache.calcite.config">NullCollation</a></span>&nbsp;<span class="memberName">nullCollation</span></div>
</section>
</li>
</ul>
</section>
</li>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li class="blockList">
<section class="constructorDetails"><a id="constructor.detail">
<!-- -->
</a>
<h2>Constructor Details</h2>
<ul class="blockList">
<li class="blockList">
<section class="detail">
<h3><a id="&lt;init&gt;(org.apache.calcite.sql.SqlDialect.DatabaseProduct,java.lang.String,java.lang.String)">SqlDialect</a></h3>
<div class="memberSignature"><span class="annotations"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
</span><span class="modifiers">public</span>&nbsp;<span class="memberName">SqlDialect</span>&#8203;(<span class="arguments"><a href="SqlDialect.DatabaseProduct.html" title="enum in org.apache.calcite.sql">SqlDialect.DatabaseProduct</a>&nbsp;databaseProduct,
<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;databaseProductName,
<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;identifierQuoteString)</span></div>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="&lt;init&gt;(org.apache.calcite.sql.SqlDialect.DatabaseProduct,java.lang.String,java.lang.String,org.apache.calcite.config.NullCollation)">SqlDialect</a></h3>
<div class="memberSignature"><span class="annotations"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
</span><span class="modifiers">public</span>&nbsp;<span class="memberName">SqlDialect</span>&#8203;(<span class="arguments"><a href="SqlDialect.DatabaseProduct.html" title="enum in org.apache.calcite.sql">SqlDialect.DatabaseProduct</a>&nbsp;databaseProduct,
<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;databaseProductName,
<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;identifierQuoteString,
<a href="../config/NullCollation.html" title="enum in org.apache.calcite.config">NullCollation</a>&nbsp;nullCollation)</span></div>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="#%3Cinit%3E(org.apache.calcite.sql.SqlDialect.Context)"><code>SqlDialect(Context)</code></a></div>
</div>
<div class="block">Creates a SqlDialect.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>databaseProduct</code> - Database product; may be UNKNOWN, never null</dd>
<dd><code>databaseProductName</code> - Database product name from JDBC driver</dd>
<dd><code>identifierQuoteString</code> - String to quote identifiers. Null if quoting
is not supported. If "[", close quote is
deemed to be "]".</dd>
<dd><code>nullCollation</code> - Whether NULL values appear first or last</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="&lt;init&gt;(org.apache.calcite.sql.SqlDialect.Context)">SqlDialect</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="memberName">SqlDialect</span>&#8203;(<span class="arguments"><a href="SqlDialect.Context.html" title="interface in org.apache.calcite.sql">SqlDialect.Context</a>&nbsp;context)</span></div>
<div class="block">Creates a SqlDialect.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>context</code> - All the information necessary to create a dialect</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li class="blockList">
<section class="methodDetails"><a id="method.detail">
<!-- -->
</a>
<h2>Method Details</h2>
<ul class="blockList">
<li class="blockList">
<section class="detail">
<h3><a id="create(java.sql.DatabaseMetaData)">create</a></h3>
<div class="memberSignature"><span class="annotations"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
</span><span class="modifiers">public static</span>&nbsp;<span class="returnType"><a href="SqlDialect.html" title="class in org.apache.calcite.sql">SqlDialect</a></span>&nbsp;<span class="memberName">create</span>&#8203;(<span class="arguments"><a href="https://docs.oracle.com/javase/9/docs/api/java/sql/DatabaseMetaData.html?is-external=true" title="class or interface in java.sql" class="externalLink">DatabaseMetaData</a>&nbsp;databaseMetaData)</span></div>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Replaced by <a href="SqlDialectFactory.html" title="interface in org.apache.calcite.sql"><code>SqlDialectFactory</code></a></div>
</div>
<div class="block">Creates a <code>SqlDialect</code> from a DatabaseMetaData.
<p>Does not maintain a reference to the DatabaseMetaData -- or, more
importantly, to its <a href="https://docs.oracle.com/javase/9/docs/api/java/sql/Connection.html?is-external=true" title="class or interface in java.sql" class="externalLink"><code>Connection</code></a> -- after this call has
returned.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>databaseMetaData</code> - used to determine which dialect of SQL to generate</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getProduct(java.lang.String,java.lang.String)">getProduct</a></h3>
<div class="memberSignature"><span class="annotations"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
</span><span class="modifiers">public static</span>&nbsp;<span class="returnType"><a href="SqlDialect.DatabaseProduct.html" title="enum in org.apache.calcite.sql">SqlDialect.DatabaseProduct</a></span>&nbsp;<span class="memberName">getProduct</span>&#8203;(<span class="arguments"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;productName,
<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;productVersion)</span></div>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block">Converts a product name and version (per the JDBC driver) into a product
enumeration.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>productName</code> - Product name</dd>
<dd><code>productVersion</code> - Product version</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>database product</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getTypeSystem()">getTypeSystem</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="../rel/type/RelDataTypeSystem.html" title="interface in org.apache.calcite.rel.type">RelDataTypeSystem</a></span>&nbsp;<span class="memberName">getTypeSystem</span>()</div>
<div class="block">Returns the type system implementation for this dialect.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="quoteIdentifier(java.lang.String)">quoteIdentifier</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></span>&nbsp;<span class="memberName">quoteIdentifier</span>&#8203;(<span class="arguments"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;val)</span></div>
<div class="block">Encloses an identifier in quotation marks appropriate for the current SQL
dialect.
<p>For example, <code>quoteIdentifier("emp")</code> yields a string
containing <code>"emp"</code> in Oracle, and a string containing <code>
[emp]</code> in Access.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>val</code> - Identifier to quote</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Quoted identifier</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="quoteIdentifier(java.lang.StringBuilder,java.lang.String)">quoteIdentifier</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang" class="externalLink">StringBuilder</a></span>&nbsp;<span class="memberName">quoteIdentifier</span>&#8203;(<span class="arguments"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang" class="externalLink">StringBuilder</a>&nbsp;buf,
<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;val)</span></div>
<div class="block">Encloses an identifier in quotation marks appropriate for the current SQL
dialect, writing the result to a <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>StringBuilder</code></a>.
<p>For example, <code>quoteIdentifier("emp")</code> yields a string
containing <code>"emp"</code> in Oracle, and a string containing <code>
[emp]</code> in Access.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buf</code> - Buffer</dd>
<dd><code>val</code> - Identifier to quote</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The buffer</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="quoteIdentifier(java.lang.StringBuilder,java.util.List)">quoteIdentifier</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang" class="externalLink">StringBuilder</a></span>&nbsp;<span class="memberName">quoteIdentifier</span>&#8203;(<span class="arguments"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang" class="externalLink">StringBuilder</a>&nbsp;buf,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;identifiers)</span></div>
<div class="block">Quotes a multi-part identifier.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buf</code> - Buffer</dd>
<dd><code>identifiers</code> - List of parts of the identifier to quote</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The buffer</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="identifierNeedsQuote(java.lang.String)">identifierNeedsQuote</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType">boolean</span>&nbsp;<span class="memberName">identifierNeedsQuote</span>&#8203;(<span class="arguments"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;val)</span></div>
<div class="block">Returns whether to quote an identifier.
By default, all identifiers are quoted.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="quoteStringLiteral(java.lang.String)">quoteStringLiteral</a></h3>
<div class="memberSignature"><span class="modifiers">public final</span>&nbsp;<span class="returnType"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></span>&nbsp;<span class="memberName">quoteStringLiteral</span>&#8203;(<span class="arguments"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;val)</span></div>
<div class="block">Converts a string into a string literal.
<p>For example, <code>"can't run"</code> becomes <code>"'can''t run'"</code>.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="quoteStringLiteral(java.lang.StringBuilder,java.lang.String,java.lang.String)">quoteStringLiteral</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">quoteStringLiteral</span>&#8203;(<span class="arguments"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang" class="externalLink">StringBuilder</a>&nbsp;buf,
@Nullable <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;charsetName,
<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;val)</span></div>
<div class="block">Appends a string literal to a buffer.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buf</code> - Buffer</dd>
<dd><code>charsetName</code> - Character set name, e.g. "utf16", or null</dd>
<dd><code>val</code> - String value</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="unparseCall(org.apache.calcite.sql.SqlWriter,org.apache.calcite.sql.SqlCall,int,int)">unparseCall</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">unparseCall</span>&#8203;(<span class="arguments"><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,
int&nbsp;leftPrec,
int&nbsp;rightPrec)</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="unparseDateTimeLiteral(org.apache.calcite.sql.SqlWriter,org.apache.calcite.sql.SqlAbstractDateTimeLiteral,int,int)">unparseDateTimeLiteral</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">unparseDateTimeLiteral</span>&#8203;(<span class="arguments"><a href="SqlWriter.html" title="interface in org.apache.calcite.sql">SqlWriter</a>&nbsp;writer,
<a href="SqlAbstractDateTimeLiteral.html" title="class in org.apache.calcite.sql">SqlAbstractDateTimeLiteral</a>&nbsp;literal,
int&nbsp;leftPrec,
int&nbsp;rightPrec)</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="unparseSqlDatetimeArithmetic(org.apache.calcite.sql.SqlWriter,org.apache.calcite.sql.SqlCall,org.apache.calcite.sql.SqlKind,int,int)">unparseSqlDatetimeArithmetic</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">unparseSqlDatetimeArithmetic</span>&#8203;(<span class="arguments"><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,
<a href="SqlKind.html" title="enum in org.apache.calcite.sql">SqlKind</a>&nbsp;sqlKind,
int&nbsp;leftPrec,
int&nbsp;rightPrec)</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="unparseSqlIntervalQualifier(org.apache.calcite.sql.SqlWriter,org.apache.calcite.sql.SqlIntervalQualifier,org.apache.calcite.rel.type.RelDataTypeSystem)">unparseSqlIntervalQualifier</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">unparseSqlIntervalQualifier</span>&#8203;(<span class="arguments"><a href="SqlWriter.html" title="interface in org.apache.calcite.sql">SqlWriter</a>&nbsp;writer,
<a href="SqlIntervalQualifier.html" title="class in org.apache.calcite.sql">SqlIntervalQualifier</a>&nbsp;qualifier,
<a href="../rel/type/RelDataTypeSystem.html" title="interface in org.apache.calcite.rel.type">RelDataTypeSystem</a>&nbsp;typeSystem)</span></div>
<div class="block">Converts an interval qualifier to a SQL string. The default implementation
returns strings such as
<code>INTERVAL '1 2:3:4' DAY(4) TO SECOND(4)</code>.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="unparseSqlIntervalLiteral(org.apache.calcite.sql.SqlWriter,org.apache.calcite.sql.SqlIntervalLiteral,int,int)">unparseSqlIntervalLiteral</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">unparseSqlIntervalLiteral</span>&#8203;(<span class="arguments"><a href="SqlWriter.html" title="interface in org.apache.calcite.sql">SqlWriter</a>&nbsp;writer,
<a href="SqlIntervalLiteral.html" title="class in org.apache.calcite.sql">SqlIntervalLiteral</a>&nbsp;literal,
int&nbsp;leftPrec,
int&nbsp;rightPrec)</span></div>
<div class="block">Converts an interval literal to a SQL string. The default implementation
returns strings such as
<code>INTERVAL '1 2:3:4' DAY(4) TO SECOND(4)</code>.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="containsNonAscii(java.lang.String)">containsNonAscii</a></h3>
<div class="memberSignature"><span class="modifiers">protected static</span>&nbsp;<span class="returnType">boolean</span>&nbsp;<span class="memberName">containsNonAscii</span>&#8203;(<span class="arguments"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;s)</span></div>
<div class="block">Returns whether the string contains any characters outside the
comfortable 7-bit ASCII range (32 through 127, plus linefeed (10) and
carriage return (13)).
<p>Such characters can be used unquoted in SQL character literals.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>s</code> - String</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Whether string contains any non-7-bit-ASCII characters</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="quoteStringLiteralUnicode(java.lang.StringBuilder,java.lang.String)">quoteStringLiteralUnicode</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">quoteStringLiteralUnicode</span>&#8203;(<span class="arguments"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang" class="externalLink">StringBuilder</a>&nbsp;buf,
<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;val)</span></div>
<div class="block">Converts a string into a unicode string literal. For example,
<code>can't{tab}run\</code> becomes <code>u'can''t\0009run\\'</code>.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="unquoteStringLiteral(java.lang.String)">unquoteStringLiteral</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">@Nullable <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></span>&nbsp;<span class="memberName">unquoteStringLiteral</span>&#8203;(<span class="arguments">@Nullable <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;val)</span></div>
<div class="block">Converts a string literal back into a string. For example, <code>'can''t
run'</code> becomes <code>can't run</code>.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="allowsAs()">allowsAs</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType">boolean</span>&nbsp;<span class="memberName">allowsAs</span>()</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="requiresAliasForFromItems()">requiresAliasForFromItems</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">boolean</span>&nbsp;<span class="memberName">requiresAliasForFromItems</span>()</div>
<div class="block">Whether a sub-query in the FROM clause must have an alias.
<p>For example, in PostgreSQL, this query is legal:
<blockquote><code>SELECT * FROM (SELECT * FROM Emp) As e</code></blockquote>
<p>but remove the alias <code>e</code> and it is not:
<blockquote><code>SELECT * FROM (SELECT * FROM Emp)</code></blockquote>
<p>In Oracle, both queries are legal.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="hasImplicitTableAlias()">hasImplicitTableAlias</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">boolean</span>&nbsp;<span class="memberName">hasImplicitTableAlias</span>()</div>
<div class="block">Returns whether a qualified table in the FROM clause has an implicit alias
which consists of just the table name.
<p>For example, in <a href="SqlDialect.DatabaseProduct.html#ORACLE"><code>SqlDialect.DatabaseProduct.ORACLE</code></a>
<blockquote>SELECT * FROM sales.emp</blockquote>
<p>is equivalent to
<blockquote>SELECT * FROM sales.emp AS emp</blockquote>
<p>and therefore
<blockquote>SELECT emp.empno FROM sales.emp</blockquote>
<p>is valid. But <a href="SqlDialect.DatabaseProduct.html#DB2"><code>SqlDialect.DatabaseProduct.DB2</code></a> does not have an implicit
alias, so the previous query it not valid; you need to write
<blockquote>SELECT sales.emp.empno FROM sales.emp</blockquote>
<p>Returns true for all databases except DB2.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="quoteTimestampLiteral(java.sql.Timestamp)">quoteTimestampLiteral</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></span>&nbsp;<span class="memberName">quoteTimestampLiteral</span>&#8203;(<span class="arguments"><a href="https://docs.oracle.com/javase/9/docs/api/java/sql/Timestamp.html?is-external=true" title="class or interface in java.sql" class="externalLink">Timestamp</a>&nbsp;timestamp)</span></div>
<div class="block">Converts a timestamp to a SQL timestamp literal, e.g.
<code>TIMESTAMP '2009-12-17 12:34:56'</code>.
<p>Timestamp values do not have a time zone. We therefore interpret them
as the number of milliseconds after the UTC epoch, and the formatted
value is that time in UTC.
<p>In particular,
<blockquote><code>quoteTimestampLiteral(new Timestamp(0));</code>
</blockquote>
<p>returns <code>TIMESTAMP '1970-01-01 00:00:00'</code>, regardless of the JVM's
time zone.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>timestamp</code> - Timestamp</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>SQL timestamp literal</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getDatabaseProduct()">getDatabaseProduct</a></h3>
<div class="memberSignature"><span class="annotations"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
</span><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="SqlDialect.DatabaseProduct.html" title="enum in org.apache.calcite.sql">SqlDialect.DatabaseProduct</a></span>&nbsp;<span class="memberName">getDatabaseProduct</span>()</div>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">To be removed without replacement</div>
</div>
<div class="block">Returns the database this dialect belongs to,
<a href="SqlDialect.DatabaseProduct.html#UNKNOWN"><code>SqlDialect.DatabaseProduct.UNKNOWN</code></a> if not known, never null.
<p>Please be judicious in how you use this method. If you wish to determine
whether a dialect has a particular capability or behavior, it is usually
better to add a method to SqlDialect and override that method in particular
sub-classes of SqlDialect.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Database product</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="supportsCharSet()">supportsCharSet</a></h3>
<div class="memberSignature"><span class="annotations">@Pure
</span><span class="modifiers">public</span>&nbsp;<span class="returnType">boolean</span>&nbsp;<span class="memberName">supportsCharSet</span>()</div>
<div class="block">Returns whether the dialect supports character set names as part of a
data type, for instance <code>VARCHAR(30) CHARACTER SET `ISO-8859-1`</code>.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="supportsAggregateFunction(org.apache.calcite.sql.SqlKind)">supportsAggregateFunction</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">boolean</span>&nbsp;<span class="memberName">supportsAggregateFunction</span>&#8203;(<span class="arguments"><a href="SqlKind.html" title="enum in org.apache.calcite.sql">SqlKind</a>&nbsp;kind)</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="supportsAggregateFunctionFilter()">supportsAggregateFunctionFilter</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">boolean</span>&nbsp;<span class="memberName">supportsAggregateFunctionFilter</span>()</div>
<div class="block">Returns whether this dialect supports the use of FILTER clauses for
aggregate functions. e.g. <code>COUNT(*) FILTER (WHERE a = 2)</code>.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="supportsWindowFunctions()">supportsWindowFunctions</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">boolean</span>&nbsp;<span class="memberName">supportsWindowFunctions</span>()</div>
<div class="block">Returns whether this dialect supports window functions (OVER clause).</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="supportsFunction(org.apache.calcite.sql.SqlOperator,org.apache.calcite.rel.type.RelDataType,java.util.List)">supportsFunction</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">boolean</span>&nbsp;<span class="memberName">supportsFunction</span>&#8203;(<span class="arguments"><a href="SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&nbsp;operator,
<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;&nbsp;paramTypes)</span></div>
<div class="block">Returns whether this dialect supports a given function or operator.
It only applies to built-in scalar functions and operators, since
user-defined functions and procedures should be read by JdbcSchema.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getCalendarPolicy()">getCalendarPolicy</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="SqlDialect.CalendarPolicy.html" title="enum in org.apache.calcite.sql">SqlDialect.CalendarPolicy</a></span>&nbsp;<span class="memberName">getCalendarPolicy</span>()</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="supportsDataType(org.apache.calcite.rel.type.RelDataType)">supportsDataType</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">boolean</span>&nbsp;<span class="memberName">supportsDataType</span>&#8203;(<span class="arguments"><a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</span></div>
<div class="block">Returns whether this dialect supports a given type.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getCastSpec(org.apache.calcite.rel.type.RelDataType)">getCastSpec</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">@Nullable <a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a></span>&nbsp;<span class="memberName">getCastSpec</span>&#8203;(<span class="arguments"><a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</span></div>
<div class="block">Returns SqlNode for type in "cast(column as type)", which might be
different between databases by type name, precision etc.
<p>If this method returns null, the cast will be omitted. In the default
implementation, this is the case for the NULL type, and therefore
<code>CAST(NULL AS &lt;nulltype&gt;)</code> is rendered as <code>NULL</code>.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="rewriteSingleValueExpr(org.apache.calcite.sql.SqlNode)">rewriteSingleValueExpr</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a></span>&nbsp;<span class="memberName">rewriteSingleValueExpr</span>&#8203;(<span class="arguments"><a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;aggCall)</span></div>
<div class="block">Rewrite SINGLE_VALUE into expression based on database variants
E.g. HSQLDB, MYSQL, ORACLE, etc</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="emulateNullDirection(org.apache.calcite.sql.SqlNode,boolean,boolean)">emulateNullDirection</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">@Nullable <a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a></span>&nbsp;<span class="memberName">emulateNullDirection</span>&#8203;(<span class="arguments"><a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
boolean&nbsp;nullsFirst,
boolean&nbsp;desc)</span></div>
<div class="block">Returns the SqlNode for emulating the null direction for the given field
or <code>null</code> if no emulation needs to be done.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>node</code> - The SqlNode representing the expression</dd>
<dd><code>nullsFirst</code> - Whether nulls should come first</dd>
<dd><code>desc</code> - Whether the sort direction is
<a href="../rel/RelFieldCollation.Direction.html#DESCENDING"><code>RelFieldCollation.Direction.DESCENDING</code></a> or
<a href="../rel/RelFieldCollation.Direction.html#STRICTLY_DESCENDING"><code>RelFieldCollation.Direction.STRICTLY_DESCENDING</code></a></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A SqlNode for null direction emulation or <code>null</code> if not required</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="emulateJoinTypeForCrossJoin()">emulateJoinTypeForCrossJoin</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="JoinType.html" title="enum in org.apache.calcite.sql">JoinType</a></span>&nbsp;<span class="memberName">emulateJoinTypeForCrossJoin</span>()</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="emulateNullDirectionWithIsNull(org.apache.calcite.sql.SqlNode,boolean,boolean)">emulateNullDirectionWithIsNull</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType">@Nullable <a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a></span>&nbsp;<span class="memberName">emulateNullDirectionWithIsNull</span>&#8203;(<span class="arguments"><a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
boolean&nbsp;nullsFirst,
boolean&nbsp;desc)</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="supportsOffsetFetch()">supportsOffsetFetch</a></h3>
<div class="memberSignature"><span class="annotations"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
</span><span class="modifiers">public</span>&nbsp;<span class="returnType">boolean</span>&nbsp;<span class="memberName">supportsOffsetFetch</span>()</div>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">This method is no longer used. To change how the dialect
unparses offset/fetch, override the <a href="#unparseOffsetFetch(org.apache.calcite.sql.SqlWriter,org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.SqlNode)"><code>unparseOffsetFetch(org.apache.calcite.sql.SqlWriter, org.apache.calcite.sql.SqlNode, org.apache.calcite.sql.SqlNode)</code></a> method.</div>
</div>
<div class="block">Returns whether the dialect supports OFFSET/FETCH clauses
introduced by SQL:2008, for instance
<code>OFFSET 10 ROWS FETCH NEXT 20 ROWS ONLY</code>.
If false, we assume that the dialect supports the alternative syntax
<code>LIMIT 20 OFFSET 10</code>.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="unparseOffsetFetch(org.apache.calcite.sql.SqlWriter,org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.SqlNode)">unparseOffsetFetch</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">unparseOffsetFetch</span>&#8203;(<span class="arguments"><a href="SqlWriter.html" title="interface in org.apache.calcite.sql">SqlWriter</a>&nbsp;writer,
@Nullable <a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;offset,
@Nullable <a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;fetch)</span></div>
<div class="block">Converts an offset and fetch into SQL.
<p>At least one of <code>offset</code> and <code>fetch</code> must be provided.
<p>Common options:
<ul>
<li><code>OFFSET offset ROWS FETCH NEXT fetch ROWS ONLY</code>
(ANSI standard SQL, Oracle, PostgreSQL, and the default)
<li><code>LIMIT fetch OFFSET offset</code> (Apache Hive, MySQL, Redshift)
</ul></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>writer</code> - Writer</dd>
<dd><code>offset</code> - Number of rows to skip before emitting, or null</dd>
<dd><code>fetch</code> - Number of rows to fetch, or null</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#unparseFetchUsingAnsi(org.apache.calcite.sql.SqlWriter,org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.SqlNode)"><code>unparseFetchUsingAnsi(SqlWriter, SqlNode, SqlNode)</code></a>,
<a href="#unparseFetchUsingLimit(org.apache.calcite.sql.SqlWriter,org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.SqlNode)"><code>unparseFetchUsingLimit(SqlWriter, SqlNode, SqlNode)</code></a></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="unparseTopN(org.apache.calcite.sql.SqlWriter,org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.SqlNode)">unparseTopN</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">unparseTopN</span>&#8203;(<span class="arguments"><a href="SqlWriter.html" title="interface in org.apache.calcite.sql">SqlWriter</a>&nbsp;writer,
@Nullable <a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;offset,
@Nullable <a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;fetch)</span></div>
<div class="block">Converts a fetch into a "SELECT TOP(fetch)".
<p>A dialect that uses "TOP" syntax should override this method to print
"TOP(fetch)", and override <a href="#unparseOffsetFetch(org.apache.calcite.sql.SqlWriter,org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.SqlNode)"><code>unparseOffsetFetch(org.apache.calcite.sql.SqlWriter, org.apache.calcite.sql.SqlNode, org.apache.calcite.sql.SqlNode)</code></a> to no-op.
<p>The default implementation of this method is no-op.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>writer</code> - Writer</dd>
<dd><code>offset</code> - Number of rows to skip before emitting, or null</dd>
<dd><code>fetch</code> - Number of rows to fetch, or null</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="unparseFetchUsingAnsi(org.apache.calcite.sql.SqlWriter,org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.SqlNode)">unparseFetchUsingAnsi</a></h3>
<div class="memberSignature"><span class="modifiers">protected static</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">unparseFetchUsingAnsi</span>&#8203;(<span class="arguments"><a href="SqlWriter.html" title="interface in org.apache.calcite.sql">SqlWriter</a>&nbsp;writer,
@Nullable <a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;offset,
@Nullable <a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;fetch)</span></div>
<div class="block">Unparses offset/fetch using ANSI standard "OFFSET offset ROWS FETCH NEXT
fetch ROWS ONLY" syntax.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="unparseFetchUsingLimit(org.apache.calcite.sql.SqlWriter,org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.SqlNode)">unparseFetchUsingLimit</a></h3>
<div class="memberSignature"><span class="modifiers">protected static</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">unparseFetchUsingLimit</span>&#8203;(<span class="arguments"><a href="SqlWriter.html" title="interface in org.apache.calcite.sql">SqlWriter</a>&nbsp;writer,
@Nullable <a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;offset,
@Nullable <a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;fetch)</span></div>
<div class="block">Unparses offset/fetch using "LIMIT fetch OFFSET offset" syntax.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="unparseLimit(org.apache.calcite.sql.SqlWriter,org.apache.calcite.sql.SqlNode)">unparseLimit</a></h3>
<div class="memberSignature"><span class="modifiers">protected static</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">unparseLimit</span>&#8203;(<span class="arguments"><a href="SqlWriter.html" title="interface in org.apache.calcite.sql">SqlWriter</a>&nbsp;writer,
@Nullable <a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;fetch)</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="unparseOffset(org.apache.calcite.sql.SqlWriter,org.apache.calcite.sql.SqlNode)">unparseOffset</a></h3>
<div class="memberSignature"><span class="modifiers">protected static</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">unparseOffset</span>&#8203;(<span class="arguments"><a href="SqlWriter.html" title="interface in org.apache.calcite.sql">SqlWriter</a>&nbsp;writer,
@Nullable <a href="SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;offset)</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="supportsNestedAggregations()">supportsNestedAggregations</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">boolean</span>&nbsp;<span class="memberName">supportsNestedAggregations</span>()</div>
<div class="block">Returns whether the dialect supports nested aggregations, for instance
<code>SELECT SUM(SUM(1)) </code>.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="supportsGroupByWithRollup()">supportsGroupByWithRollup</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">boolean</span>&nbsp;<span class="memberName">supportsGroupByWithRollup</span>()</div>
<div class="block">Returns whether this dialect supports "WITH ROLLUP" in the "GROUP BY"
clause.
<p>For instance, in MySQL version 5,
<blockquote>
<code>
SELECT deptno, job, COUNT(*) AS c
FROM emp
GROUP BY deptno, job WITH ROLLUP
</code>
</blockquote>
<p>is equivalent to standard SQL
<blockquote>
<code>
SELECT deptno, job, COUNT(*) AS c
FROM emp
GROUP BY ROLLUP(deptno, job)
ORDER BY deptno, job
</code>
</blockquote>
<p>The "WITH ROLLUP" clause was introduced in MySQL and is not standard
SQL.
<p>See also <a href="#supportsAggregateFunction(org.apache.calcite.sql.SqlKind)"><code>supportsAggregateFunction(SqlKind)</code></a> applied to
<a href="SqlKind.html#ROLLUP"><code>SqlKind.ROLLUP</code></a>, which returns true in MySQL 8 and higher.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="supportsGroupByWithCube()">supportsGroupByWithCube</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">boolean</span>&nbsp;<span class="memberName">supportsGroupByWithCube</span>()</div>
<div class="block">Returns whether this dialect supports "WITH CUBE" in "GROUP BY" clause.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getNullCollation()">getNullCollation</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="../config/NullCollation.html" title="enum in org.apache.calcite.config">NullCollation</a></span>&nbsp;<span class="memberName">getNullCollation</span>()</div>
<div class="block">Returns how NULL values are sorted if an ORDER BY item does not contain
NULLS ASCENDING or NULLS DESCENDING.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="defaultNullDirection(org.apache.calcite.rel.RelFieldCollation.Direction)">defaultNullDirection</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="../rel/RelFieldCollation.NullDirection.html" title="enum in org.apache.calcite.rel">RelFieldCollation.NullDirection</a></span>&nbsp;<span class="memberName">defaultNullDirection</span>&#8203;(<span class="arguments"><a href="../rel/RelFieldCollation.Direction.html" title="enum in org.apache.calcite.rel">RelFieldCollation.Direction</a>&nbsp;direction)</span></div>
<div class="block">Returns whether NULL values are sorted first or last, in this dialect,
in an ORDER BY item of a given direction.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="supportsAliasedValues()">supportsAliasedValues</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">boolean</span>&nbsp;<span class="memberName">supportsAliasedValues</span>()</div>
<div class="block">Returns whether the dialect supports VALUES in a sub-query with
and an "AS t(column, ...)" values to define column names.
<p>Currently, only Oracle does not. For this, we generate "SELECT v0 AS c0,
v1 AS c1 ... UNION ALL ...". We may need to refactor this method when we
support VALUES for other dialects.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="supportsImplicitTypeCoercion(org.apache.calcite.rex.RexCall)">supportsImplicitTypeCoercion</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">boolean</span>&nbsp;<span class="memberName">supportsImplicitTypeCoercion</span>&#8203;(<span class="arguments"><a href="../rex/RexCall.html" title="class in org.apache.calcite.rex">RexCall</a>&nbsp;call)</span></div>
<div class="block">Returns whether the dialect supports implicit type coercion.
<p>Most of the sql dialects support implicit type coercion, so we make this method
default return true. For instance, "cast('10' as integer) &gt; 5"
can be simplified to "'10' &gt; 5" if the dialect supports implicit type coercion
for VARCHAR and INTEGER comparison.
<p>For sql dialect that does not support implicit type coercion, such as the BigQuery,
we can not convert '10' into INT64 implicitly.
<p>Now this method is used for some auxiliary decision when translating some <a href="../rex/RexCall.html" title="class in org.apache.calcite.rex"><code>RexCall</code></a>s,
see SqlImplementor#stripCastFromString for details.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>call</code> - the call to make decision</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getSingleRowTableName()">getSingleRowTableName</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">@Nullable <a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</span>&nbsp;<span class="memberName">getSingleRowTableName</span>()</div>
<div class="block">Returns the name of the system table that has precisely one row.
If there is no such table, returns null, and we will generate SELECT with
no FROM clause.
<p>For <code>VALUES 1</code>,
Oracle returns ["DUAL"] and we generate "SELECT 1 FROM DUAL";
MySQL returns null and we generate "SELECT 1".</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="configureParser(org.apache.calcite.sql.parser.SqlParser.Config)">configureParser</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="parser/SqlParser.Config.html" title="interface in org.apache.calcite.sql.parser">SqlParser.Config</a></span>&nbsp;<span class="memberName">configureParser</span>&#8203;(<span class="arguments"><a href="parser/SqlParser.Config.html" title="interface in org.apache.calcite.sql.parser">SqlParser.Config</a>&nbsp;config)</span></div>
<div class="block">Copies settings from this dialect into a parser configuration.
<p><code>SqlDialect</code>, <a href="parser/SqlParser.Config.html" title="interface in org.apache.calcite.sql.parser"><code>SqlParser.Config</code></a> and <a href="validate/SqlConformance.html" title="interface in org.apache.calcite.sql.validate"><code>SqlConformance</code></a>
cover different aspects of the same thing - the dialect of SQL spoken by a
database - and this method helps to bridge between them. (The aspects are,
respectively, generating SQL to send to a source database, parsing SQL
sent to Calcite, and validating queries sent to Calcite. It makes sense to
keep them as separate interfaces because they are used by different
modules.)
<p>The settings copied may differ among dialects, and may change over time,
but currently include the following:
<ul>
<li><a href="#getQuoting()"><code>getQuoting()</code></a>
<li><a href="#getQuotedCasing()"><code>getQuotedCasing()</code></a>
<li><a href="#getUnquotedCasing()"><code>getUnquotedCasing()</code></a>
<li><a href="#isCaseSensitive()"><code>isCaseSensitive()</code></a>
<li><a href="#getConformance()"><code>getConformance()</code></a>
</ul></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>config</code> - Parser configuration builder</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The configuration builder</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="configureParser(org.apache.calcite.sql.parser.SqlParser.ConfigBuilder)">configureParser</a></h3>
<div class="memberSignature"><span class="annotations"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
</span><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="parser/SqlParser.ConfigBuilder.html" title="class in org.apache.calcite.sql.parser">SqlParser.ConfigBuilder</a></span>&nbsp;<span class="memberName">configureParser</span>&#8203;(<span class="arguments"><a href="parser/SqlParser.ConfigBuilder.html" title="class in org.apache.calcite.sql.parser">SqlParser.ConfigBuilder</a>&nbsp;configBuilder)</span></div>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getConformance()">getConformance</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="validate/SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a></span>&nbsp;<span class="memberName">getConformance</span>()</div>
<div class="block">Returns the <a href="validate/SqlConformance.html" title="interface in org.apache.calcite.sql.validate"><code>SqlConformance</code></a> that matches this dialect.
<p>The base implementation returns its best guess, based upon
<code>databaseProduct</code>; sub-classes may override.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getQuoting()">getQuoting</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType">@Nullable org.apache.calcite.avatica.util.Quoting</span>&nbsp;<span class="memberName">getQuoting</span>()</div>
<div class="block">Returns the quoting scheme, or null if the combination of
<a href="#identifierQuoteString"><code>identifierQuoteString</code></a> and <a href="#identifierEndQuoteString"><code>identifierEndQuoteString</code></a>
does not correspond to any known quoting scheme.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getUnquotedCasing()">getUnquotedCasing</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">org.apache.calcite.avatica.util.Casing</span>&nbsp;<span class="memberName">getUnquotedCasing</span>()</div>
<div class="block">Returns how unquoted identifiers are stored.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getQuotedCasing()">getQuotedCasing</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">org.apache.calcite.avatica.util.Casing</span>&nbsp;<span class="memberName">getQuotedCasing</span>()</div>
<div class="block">Returns how quoted identifiers are stored.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="isCaseSensitive()">isCaseSensitive</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">boolean</span>&nbsp;<span class="memberName">isCaseSensitive</span>()</div>
<div class="block">Returns whether matching of identifiers is case-sensitive.</div>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
</div>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<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="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 class="aboutLanguage"><b>Apache Calcite</b></div>
</div>
<div class="subNav">
<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>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &copy; 2012-2021 Apache Software Foundation. All Rights Reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>