blob: 7897dda6a2a1d32ca875ab5eb2e901fac40945ce [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>SqlAbstractConformance (Apache Calcite API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="SqlAbstractConformance (Apache Calcite API)";
}
}
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/SqlAbstractConformance.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&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>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.calcite.sql.validate</a></div>
<h2 title="Class SqlAbstractConformance" class="title">Class SqlAbstractConformance</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.calcite.sql.validate.SqlAbstractConformance</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a></code></dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><code><a href="SqlDelegatingConformance.html" title="class in org.apache.calcite.sql.validate">SqlDelegatingConformance</a></code></dd>
</dl>
<hr>
<pre>public abstract class <span class="typeNameLabel">SqlAbstractConformance</span>
extends java.lang.Object
implements <a href="SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a></pre>
<div class="block">Abstract base class for implementing <a href="SqlConformance.html" title="interface in org.apache.calcite.sql.validate"><code>SqlConformance</code></a>.
<p>Every method in <code>SqlConformance</code> is implemented,
and behaves the same as in <a href="SqlConformanceEnum.html#DEFAULT"><code>SqlConformanceEnum.DEFAULT</code></a>.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.org.apache.calcite.sql.validate.SqlConformance">
<!-- -->
</a>
<h3>Fields inherited from interface&nbsp;org.apache.calcite.sql.validate.<a href="SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a></h3>
<code><a href="SqlConformance.html#DEFAULT">DEFAULT</a>, <a href="SqlConformance.html#ORACLE_10">ORACLE_10</a>, <a href="SqlConformance.html#PRAGMATIC_2003">PRAGMATIC_2003</a>, <a href="SqlConformance.html#PRAGMATIC_99">PRAGMATIC_99</a>, <a href="SqlConformance.html#STRICT_2003">STRICT_2003</a>, <a href="SqlConformance.html#STRICT_92">STRICT_92</a>, <a href="SqlConformance.html#STRICT_99">STRICT_99</a></code></li>
</ul>
</li>
</ul>
</section>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">SqlAbstractConformance</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#allowExplicitRowValueConstructor()">allowExplicitRowValueConstructor</a></span>()</code></th>
<td class="colLast">
<div class="block">Whether to allow SQL syntax "<code>ROW(expr1, expr2, expr3)</code>".</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#allowExtend()">allowExtend</a></span>()</code></th>
<td class="colLast">
<div class="block">Whether to allow mixing table columns with extended columns in
<code>INSERT</code> (or <code>UPSERT</code>).</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#allowExtendedTrim()">allowExtendedTrim</a></span>()</code></th>
<td class="colLast">
<div class="block">Whether TRIM should support more than one trim character.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#allowGeometry()">allowGeometry</a></span>()</code></th>
<td class="colLast">
<div class="block">Whether to allow geo-spatial extensions, including the GEOMETRY type.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#allowNiladicParentheses()">allowNiladicParentheses</a></span>()</code></th>
<td class="colLast">
<div class="block">Whether to allow parentheses to be specified in calls to niladic functions
and procedures (that is, functions and procedures with no parameters).</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isApplyAllowed()">isApplyAllowed</a></span>()</code></th>
<td class="colLast">
<div class="block">Whether <code>CROSS APPLY</code> and <code>OUTER APPLY</code> operators are allowed
in the parser.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isBangEqualAllowed()">isBangEqualAllowed</a></span>()</code></th>
<td class="colLast">
<div class="block">Whether the bang-equal token != is allowed as an alternative to &lt;&gt; in
the parser.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isFromRequired()">isFromRequired</a></span>()</code></th>
<td class="colLast">
<div class="block">Whether <code>FROM</code> clause is required in a <code>SELECT</code> statement.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isGroupByAlias()">isGroupByAlias</a></span>()</code></th>
<td class="colLast">
<div class="block">Whether to allow aliases from the <code>SELECT</code> clause to be used as
column names in the <code>GROUP BY</code> clause.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isGroupByOrdinal()">isGroupByOrdinal</a></span>()</code></th>
<td class="colLast">
<div class="block">Whether <code>GROUP BY 2</code> is interpreted to mean 'group by the 2nd column
in the select list'.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isHavingAlias()">isHavingAlias</a></span>()</code></th>
<td class="colLast">
<div class="block">Whether to allow aliases from the <code>SELECT</code> clause to be used as
column names in the <code>HAVING</code> clause.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isInsertSubsetColumnsAllowed()">isInsertSubsetColumnsAllowed</a></span>()</code></th>
<td class="colLast">
<div class="block">Whether to allow <code>INSERT</code> (or <code>UPSERT</code>) with no column list
but fewer values than the target table.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isLiberal()">isLiberal</a></span>()</code></th>
<td class="colLast">
<div class="block">Whether this dialect supports features from a wide variety of
dialects.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isLimitStartCountAllowed()">isLimitStartCountAllowed</a></span>()</code></th>
<td class="colLast">
<div class="block">Whether to allow the SQL syntax "<code>LIMIT start, count</code>".</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isMinusAllowed()">isMinusAllowed</a></span>()</code></th>
<td class="colLast">
<div class="block">Whether <code>MINUS</code> is allowed as an alternative to <code>EXCEPT</code> in
the parser.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isPercentRemainderAllowed()">isPercentRemainderAllowed</a></span>()</code></th>
<td class="colLast">
<div class="block">Whether the "%" operator is allowed by the parser as an alternative to the
<code>mod</code> function.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isSortByAlias()">isSortByAlias</a></span>()</code></th>
<td class="colLast">
<div class="block">Whether '<code>ORDER BY x</code>' is interpreted to mean 'sort by the select
list item whose alias is x' even if there is a column called x.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isSortByAliasObscures()">isSortByAliasObscures</a></span>()</code></th>
<td class="colLast">
<div class="block">Whether "empno" is invalid in "select empno as x from emp order by empno"
because the alias "x" obscures it.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isSortByOrdinal()">isSortByOrdinal</a></span>()</code></th>
<td class="colLast">
<div class="block">Whether '<code>ORDER BY 2</code>' is interpreted to mean 'sort by the 2nd
column in the select list'.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#shouldConvertRaggedUnionTypesToVarying()">shouldConvertRaggedUnionTypesToVarying</a></span>()</code></th>
<td class="colLast">
<div class="block">Whether the least restrictive type of a number of CHAR types of different
lengths should be a VARCHAR type.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>SqlAbstractConformance</h4>
<pre>public&nbsp;SqlAbstractConformance()</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="isLiberal()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isLiberal</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isLiberal()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlConformance.html#isLiberal()">SqlConformance</a></code></span></div>
<div class="block">Whether this dialect supports features from a wide variety of
dialects. This is enabled for the Babel parser, disabled otherwise.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlConformance.html#isLiberal()">isLiberal</a></code>&nbsp;in interface&nbsp;<code><a href="SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a></code></dd>
</dl>
</li>
</ul>
<a id="isGroupByAlias()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isGroupByAlias</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isGroupByAlias()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlConformance.html#isGroupByAlias()">SqlConformance</a></code></span></div>
<div class="block">Whether to allow aliases from the <code>SELECT</code> clause to be used as
column names in the <code>GROUP BY</code> clause.
<p>Among the built-in conformance levels, true in
<a href="SqlConformanceEnum.html#BABEL"><code>SqlConformanceEnum.BABEL</code></a>,
<a href="SqlConformanceEnum.html#LENIENT"><code>SqlConformanceEnum.LENIENT</code></a>,
<a href="SqlConformanceEnum.html#MYSQL_5"><code>SqlConformanceEnum.MYSQL_5</code></a>;
false otherwise.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlConformance.html#isGroupByAlias()">isGroupByAlias</a></code>&nbsp;in interface&nbsp;<code><a href="SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a></code></dd>
</dl>
</li>
</ul>
<a id="isGroupByOrdinal()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isGroupByOrdinal</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isGroupByOrdinal()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlConformance.html#isGroupByOrdinal()">SqlConformance</a></code></span></div>
<div class="block">Whether <code>GROUP BY 2</code> is interpreted to mean 'group by the 2nd column
in the select list'.
<p>Among the built-in conformance levels, true in
<a href="SqlConformanceEnum.html#BABEL"><code>SqlConformanceEnum.BABEL</code></a>,
<a href="SqlConformanceEnum.html#LENIENT"><code>SqlConformanceEnum.LENIENT</code></a>,
<a href="SqlConformanceEnum.html#MYSQL_5"><code>SqlConformanceEnum.MYSQL_5</code></a>;
false otherwise.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlConformance.html#isGroupByOrdinal()">isGroupByOrdinal</a></code>&nbsp;in interface&nbsp;<code><a href="SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a></code></dd>
</dl>
</li>
</ul>
<a id="isHavingAlias()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isHavingAlias</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isHavingAlias()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlConformance.html#isHavingAlias()">SqlConformance</a></code></span></div>
<div class="block">Whether to allow aliases from the <code>SELECT</code> clause to be used as
column names in the <code>HAVING</code> clause.
<p>Among the built-in conformance levels, true in
<a href="SqlConformanceEnum.html#BABEL"><code>SqlConformanceEnum.BABEL</code></a>,
<a href="SqlConformanceEnum.html#LENIENT"><code>SqlConformanceEnum.LENIENT</code></a>,
<a href="SqlConformanceEnum.html#MYSQL_5"><code>SqlConformanceEnum.MYSQL_5</code></a>;
false otherwise.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlConformance.html#isHavingAlias()">isHavingAlias</a></code>&nbsp;in interface&nbsp;<code><a href="SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a></code></dd>
</dl>
</li>
</ul>
<a id="isSortByOrdinal()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isSortByOrdinal</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isSortByOrdinal()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlConformance.html#isSortByOrdinal()">SqlConformance</a></code></span></div>
<div class="block">Whether '<code>ORDER BY 2</code>' is interpreted to mean 'sort by the 2nd
column in the select list'.
<p>Among the built-in conformance levels, true in
<a href="SqlConformanceEnum.html#DEFAULT"><code>SqlConformanceEnum.DEFAULT</code></a>,
<a href="SqlConformanceEnum.html#BABEL"><code>SqlConformanceEnum.BABEL</code></a>,
<a href="SqlConformanceEnum.html#LENIENT"><code>SqlConformanceEnum.LENIENT</code></a>,
<a href="SqlConformanceEnum.html#MYSQL_5"><code>SqlConformanceEnum.MYSQL_5</code></a>,
<a href="SqlConformanceEnum.html#ORACLE_10"><code>SqlConformanceEnum.ORACLE_10</code></a>,
<a href="SqlConformanceEnum.html#ORACLE_12"><code>SqlConformanceEnum.ORACLE_12</code></a>,
<a href="SqlConformanceEnum.html#STRICT_92"><code>SqlConformanceEnum.STRICT_92</code></a>,
<a href="SqlConformanceEnum.html#PRAGMATIC_99"><code>SqlConformanceEnum.PRAGMATIC_99</code></a>,
<a href="SqlConformanceEnum.html#PRAGMATIC_2003"><code>SqlConformanceEnum.PRAGMATIC_2003</code></a>;
<a href="SqlConformanceEnum.html#SQL_SERVER_2008"><code>SqlConformanceEnum.SQL_SERVER_2008</code></a>;
false otherwise.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlConformance.html#isSortByOrdinal()">isSortByOrdinal</a></code>&nbsp;in interface&nbsp;<code><a href="SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a></code></dd>
</dl>
</li>
</ul>
<a id="isSortByAlias()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isSortByAlias</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isSortByAlias()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlConformance.html#isSortByAlias()">SqlConformance</a></code></span></div>
<div class="block">Whether '<code>ORDER BY x</code>' is interpreted to mean 'sort by the select
list item whose alias is x' even if there is a column called x.
<p>Among the built-in conformance levels, true in
<a href="SqlConformanceEnum.html#DEFAULT"><code>SqlConformanceEnum.DEFAULT</code></a>,
<a href="SqlConformanceEnum.html#BABEL"><code>SqlConformanceEnum.BABEL</code></a>,
<a href="SqlConformanceEnum.html#LENIENT"><code>SqlConformanceEnum.LENIENT</code></a>,
<a href="SqlConformanceEnum.html#MYSQL_5"><code>SqlConformanceEnum.MYSQL_5</code></a>,
<a href="SqlConformanceEnum.html#ORACLE_10"><code>SqlConformanceEnum.ORACLE_10</code></a>,
<a href="SqlConformanceEnum.html#ORACLE_12"><code>SqlConformanceEnum.ORACLE_12</code></a>,
<a href="SqlConformanceEnum.html#STRICT_92"><code>SqlConformanceEnum.STRICT_92</code></a>;
<a href="SqlConformanceEnum.html#SQL_SERVER_2008"><code>SqlConformanceEnum.SQL_SERVER_2008</code></a>;
false otherwise.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlConformance.html#isSortByAlias()">isSortByAlias</a></code>&nbsp;in interface&nbsp;<code><a href="SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a></code></dd>
</dl>
</li>
</ul>
<a id="isSortByAliasObscures()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isSortByAliasObscures</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isSortByAliasObscures()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlConformance.html#isSortByAliasObscures()">SqlConformance</a></code></span></div>
<div class="block">Whether "empno" is invalid in "select empno as x from emp order by empno"
because the alias "x" obscures it.
<p>Among the built-in conformance levels, true in
<a href="SqlConformanceEnum.html#STRICT_92"><code>SqlConformanceEnum.STRICT_92</code></a>;
false otherwise.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlConformance.html#isSortByAliasObscures()">isSortByAliasObscures</a></code>&nbsp;in interface&nbsp;<code><a href="SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a></code></dd>
</dl>
</li>
</ul>
<a id="isFromRequired()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isFromRequired</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isFromRequired()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlConformance.html#isFromRequired()">SqlConformance</a></code></span></div>
<div class="block">Whether <code>FROM</code> clause is required in a <code>SELECT</code> statement.
<p>Among the built-in conformance levels, true in
<a href="SqlConformanceEnum.html#ORACLE_10"><code>SqlConformanceEnum.ORACLE_10</code></a>,
<a href="SqlConformanceEnum.html#ORACLE_12"><code>SqlConformanceEnum.ORACLE_12</code></a>,
<a href="SqlConformanceEnum.html#STRICT_92"><code>SqlConformanceEnum.STRICT_92</code></a>,
<a href="SqlConformanceEnum.html#STRICT_99"><code>SqlConformanceEnum.STRICT_99</code></a>,
<a href="SqlConformanceEnum.html#STRICT_2003"><code>SqlConformanceEnum.STRICT_2003</code></a>;
false otherwise.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlConformance.html#isFromRequired()">isFromRequired</a></code>&nbsp;in interface&nbsp;<code><a href="SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a></code></dd>
</dl>
</li>
</ul>
<a id="isBangEqualAllowed()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isBangEqualAllowed</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isBangEqualAllowed()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlConformance.html#isBangEqualAllowed()">SqlConformance</a></code></span></div>
<div class="block">Whether the bang-equal token != is allowed as an alternative to &lt;&gt; in
the parser.
<p>Among the built-in conformance levels, true in
<a href="SqlConformanceEnum.html#BABEL"><code>SqlConformanceEnum.BABEL</code></a>,
<a href="SqlConformanceEnum.html#LENIENT"><code>SqlConformanceEnum.LENIENT</code></a>,
<a href="SqlConformanceEnum.html#MYSQL_5"><code>SqlConformanceEnum.MYSQL_5</code></a>,
<a href="SqlConformanceEnum.html#ORACLE_10"><code>SqlConformanceEnum.ORACLE_10</code></a>;
<a href="SqlConformanceEnum.html#ORACLE_12"><code>SqlConformanceEnum.ORACLE_12</code></a>;
false otherwise.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlConformance.html#isBangEqualAllowed()">isBangEqualAllowed</a></code>&nbsp;in interface&nbsp;<code><a href="SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a></code></dd>
</dl>
</li>
</ul>
<a id="isMinusAllowed()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isMinusAllowed</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isMinusAllowed()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlConformance.html#isMinusAllowed()">SqlConformance</a></code></span></div>
<div class="block">Whether <code>MINUS</code> is allowed as an alternative to <code>EXCEPT</code> in
the parser.
<p>Among the built-in conformance levels, true in
<a href="SqlConformanceEnum.html#BABEL"><code>SqlConformanceEnum.BABEL</code></a>,
<a href="SqlConformanceEnum.html#LENIENT"><code>SqlConformanceEnum.LENIENT</code></a>,
<a href="SqlConformanceEnum.html#ORACLE_10"><code>SqlConformanceEnum.ORACLE_10</code></a>;
<a href="SqlConformanceEnum.html#ORACLE_12"><code>SqlConformanceEnum.ORACLE_12</code></a>;
false otherwise.
<p>Note: MySQL does not support <code>MINUS</code> or <code>EXCEPT</code> (as of
version 5.5).</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlConformance.html#isMinusAllowed()">isMinusAllowed</a></code>&nbsp;in interface&nbsp;<code><a href="SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a></code></dd>
</dl>
</li>
</ul>
<a id="isApplyAllowed()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isApplyAllowed</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isApplyAllowed()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlConformance.html#isApplyAllowed()">SqlConformance</a></code></span></div>
<div class="block">Whether <code>CROSS APPLY</code> and <code>OUTER APPLY</code> operators are allowed
in the parser.
<p><code>APPLY</code> invokes a table-valued function for each row returned
by a table expression. It is syntactic sugar:<ul>
<li><code>SELECT * FROM emp CROSS APPLY TABLE(promote(empno)</code><br>
is equivalent to<br>
<code>SELECT * FROM emp CROSS JOIN LATERAL TABLE(promote(empno)</code>
<li><code>SELECT * FROM emp OUTER APPLY TABLE(promote(empno)</code><br>
is equivalent to<br>
<code>SELECT * FROM emp LEFT JOIN LATERAL TABLE(promote(empno)</code> ON true
</ul>
<p>Among the built-in conformance levels, true in
<a href="SqlConformanceEnum.html#BABEL"><code>SqlConformanceEnum.BABEL</code></a>,
<a href="SqlConformanceEnum.html#LENIENT"><code>SqlConformanceEnum.LENIENT</code></a>,
<a href="SqlConformanceEnum.html#SQL_SERVER_2008"><code>SqlConformanceEnum.SQL_SERVER_2008</code></a>;
<a href="SqlConformanceEnum.html#ORACLE_12"><code>SqlConformanceEnum.ORACLE_12</code></a>;
false otherwise.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlConformance.html#isApplyAllowed()">isApplyAllowed</a></code>&nbsp;in interface&nbsp;<code><a href="SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a></code></dd>
</dl>
</li>
</ul>
<a id="isInsertSubsetColumnsAllowed()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isInsertSubsetColumnsAllowed</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isInsertSubsetColumnsAllowed()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlConformance.html#isInsertSubsetColumnsAllowed()">SqlConformance</a></code></span></div>
<div class="block">Whether to allow <code>INSERT</code> (or <code>UPSERT</code>) with no column list
but fewer values than the target table.
<p>The N values provided are assumed to match the first N columns of the
table, and for each of the remaining columns, the default value of the
column is used. It is an error if any of these columns has no default
value.
<p>The default value of a column is specified by the <code>DEFAULT</code>
clause in the <code>CREATE TABLE</code> statement, or is <code>NULL</code> if the
column is not declared <code>NOT NULL</code>.
<p>Among the built-in conformance levels, true in
<a href="SqlConformanceEnum.html#BABEL"><code>SqlConformanceEnum.BABEL</code></a>,
<a href="SqlConformanceEnum.html#LENIENT"><code>SqlConformanceEnum.LENIENT</code></a>,
<a href="SqlConformanceEnum.html#PRAGMATIC_99"><code>SqlConformanceEnum.PRAGMATIC_99</code></a>,
<a href="SqlConformanceEnum.html#PRAGMATIC_2003"><code>SqlConformanceEnum.PRAGMATIC_2003</code></a>;
false otherwise.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlConformance.html#isInsertSubsetColumnsAllowed()">isInsertSubsetColumnsAllowed</a></code>&nbsp;in interface&nbsp;<code><a href="SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a></code></dd>
</dl>
</li>
</ul>
<a id="allowNiladicParentheses()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>allowNiladicParentheses</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;allowNiladicParentheses()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlConformance.html#allowNiladicParentheses()">SqlConformance</a></code></span></div>
<div class="block">Whether to allow parentheses to be specified in calls to niladic functions
and procedures (that is, functions and procedures with no parameters).
<p>For example, <code>CURRENT_DATE</code> is a niladic system function. In
standard SQL it must be invoked without parentheses:
<blockquote><code>VALUES CURRENT_DATE</code></blockquote>
<p>If <code>allowNiladicParentheses</code>, the following syntax is also valid:
<blockquote><code>VALUES CURRENT_DATE()</code></blockquote>
<p>Of the popular databases, MySQL, Apache Phoenix and VoltDB allow this
behavior;
Apache Hive, HSQLDB, IBM DB2, Microsoft SQL Server, Oracle, PostgreSQL do
not.
<p>Among the built-in conformance levels, true in
<a href="SqlConformanceEnum.html#BABEL"><code>SqlConformanceEnum.BABEL</code></a>,
<a href="SqlConformanceEnum.html#LENIENT"><code>SqlConformanceEnum.LENIENT</code></a>,
<a href="SqlConformanceEnum.html#MYSQL_5"><code>SqlConformanceEnum.MYSQL_5</code></a>;
false otherwise.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlConformance.html#allowNiladicParentheses()">allowNiladicParentheses</a></code>&nbsp;in interface&nbsp;<code><a href="SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a></code></dd>
</dl>
</li>
</ul>
<a id="allowExplicitRowValueConstructor()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>allowExplicitRowValueConstructor</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;allowExplicitRowValueConstructor()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlConformance.html#allowExplicitRowValueConstructor()">SqlConformance</a></code></span></div>
<div class="block">Whether to allow SQL syntax "<code>ROW(expr1, expr2, expr3)</code>".
<p>The equivalent syntax in standard SQL is
"<code>(expr1, expr2, expr3)</code>".
<p>Standard SQL does not allow this because the type is not
well-defined. However, PostgreSQL allows this behavior.
<p>Standard SQL allows row expressions in other contexts, for instance
inside <code>VALUES</code> clause.
<p>Among the built-in conformance levels, true in
<a href="SqlConformanceEnum.html#DEFAULT"><code>SqlConformanceEnum.DEFAULT</code></a>,
<a href="SqlConformanceEnum.html#LENIENT"><code>SqlConformanceEnum.LENIENT</code></a>;
false otherwise.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlConformance.html#allowExplicitRowValueConstructor()">allowExplicitRowValueConstructor</a></code>&nbsp;in interface&nbsp;<code><a href="SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a></code></dd>
</dl>
</li>
</ul>
<a id="allowExtend()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>allowExtend</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;allowExtend()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlConformance.html#allowExtend()">SqlConformance</a></code></span></div>
<div class="block">Whether to allow mixing table columns with extended columns in
<code>INSERT</code> (or <code>UPSERT</code>).
<p>For example, suppose that the declaration of table <code>T</code> has columns
<code>A</code> and <code>B</code>, and you want to insert data of column
<code>C INTEGER</code> not present in the table declaration as an extended
column. You can specify the columns in an <code>INSERT</code> statement as
follows:
<blockquote>
<code>INSERT INTO T (A, B, C INTEGER) VALUES (1, 2, 3)</code>
</blockquote>
<p>Among the built-in conformance levels, true in
<a href="SqlConformanceEnum.html#BABEL"><code>SqlConformanceEnum.BABEL</code></a>,
<a href="SqlConformanceEnum.html#LENIENT"><code>SqlConformanceEnum.LENIENT</code></a>;
false otherwise.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlConformance.html#allowExtend()">allowExtend</a></code>&nbsp;in interface&nbsp;<code><a href="SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a></code></dd>
</dl>
</li>
</ul>
<a id="isLimitStartCountAllowed()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isLimitStartCountAllowed</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isLimitStartCountAllowed()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlConformance.html#isLimitStartCountAllowed()">SqlConformance</a></code></span></div>
<div class="block">Whether to allow the SQL syntax "<code>LIMIT start, count</code>".
<p>The equivalent syntax in standard SQL is
"<code>OFFSET start ROW FETCH FIRST count ROWS ONLY</code>",
and in PostgreSQL "<code>LIMIT count OFFSET start</code>".
<p>MySQL and CUBRID allow this behavior.
<p>Among the built-in conformance levels, true in
<a href="SqlConformanceEnum.html#BABEL"><code>SqlConformanceEnum.BABEL</code></a>,
<a href="SqlConformanceEnum.html#LENIENT"><code>SqlConformanceEnum.LENIENT</code></a>,
<a href="SqlConformanceEnum.html#MYSQL_5"><code>SqlConformanceEnum.MYSQL_5</code></a>;
false otherwise.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlConformance.html#isLimitStartCountAllowed()">isLimitStartCountAllowed</a></code>&nbsp;in interface&nbsp;<code><a href="SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a></code></dd>
</dl>
</li>
</ul>
<a id="isPercentRemainderAllowed()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isPercentRemainderAllowed</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isPercentRemainderAllowed()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlConformance.html#isPercentRemainderAllowed()">SqlConformance</a></code></span></div>
<div class="block">Whether the "%" operator is allowed by the parser as an alternative to the
<code>mod</code> function.
<p>Among the built-in conformance levels, true in
<a href="SqlConformanceEnum.html#BABEL"><code>SqlConformanceEnum.BABEL</code></a>,
<a href="SqlConformanceEnum.html#LENIENT"><code>SqlConformanceEnum.LENIENT</code></a>,
<a href="SqlConformanceEnum.html#MYSQL_5"><code>SqlConformanceEnum.MYSQL_5</code></a>;
false otherwise.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlConformance.html#isPercentRemainderAllowed()">isPercentRemainderAllowed</a></code>&nbsp;in interface&nbsp;<code><a href="SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a></code></dd>
</dl>
</li>
</ul>
<a id="allowGeometry()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>allowGeometry</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;allowGeometry()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlConformance.html#allowGeometry()">SqlConformance</a></code></span></div>
<div class="block">Whether to allow geo-spatial extensions, including the GEOMETRY type.
<p>Among the built-in conformance levels, true in
<a href="SqlConformanceEnum.html#BABEL"><code>SqlConformanceEnum.BABEL</code></a>,
<a href="SqlConformanceEnum.html#LENIENT"><code>SqlConformanceEnum.LENIENT</code></a>,
<a href="SqlConformanceEnum.html#MYSQL_5"><code>SqlConformanceEnum.MYSQL_5</code></a>,
<a href="SqlConformanceEnum.html#SQL_SERVER_2008"><code>SqlConformanceEnum.SQL_SERVER_2008</code></a>;
false otherwise.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlConformance.html#allowGeometry()">allowGeometry</a></code>&nbsp;in interface&nbsp;<code><a href="SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a></code></dd>
</dl>
</li>
</ul>
<a id="shouldConvertRaggedUnionTypesToVarying()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>shouldConvertRaggedUnionTypesToVarying</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;shouldConvertRaggedUnionTypesToVarying()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlConformance.html#shouldConvertRaggedUnionTypesToVarying()">SqlConformance</a></code></span></div>
<div class="block">Whether the least restrictive type of a number of CHAR types of different
lengths should be a VARCHAR type. And similarly BINARY to VARBINARY.
<p>For example, consider the query
<blockquote><pre>SELECT 'abcde' UNION SELECT 'xyz'</pre></blockquote>
<p>The input columns have types <code>CHAR(5)</code> and <code>CHAR(3)</code>, and
we need a result type that is large enough for both:
<ul>
<li>Under strict SQL:2003 behavior, its column has type <code>CHAR(5)</code>,
and the value in the second row will have trailing spaces.
<li>With lenient behavior, its column has type <code>VARCHAR(5)</code>, and the
values have no trailing spaces.
</ul>
<p>Among the built-in conformance levels, true in
<a href="SqlConformanceEnum.html#PRAGMATIC_99"><code>SqlConformanceEnum.PRAGMATIC_99</code></a>,
<a href="SqlConformanceEnum.html#PRAGMATIC_2003"><code>SqlConformanceEnum.PRAGMATIC_2003</code></a>,
<a href="SqlConformanceEnum.html#MYSQL_5"><code>SqlConformanceEnum.MYSQL_5</code></a>;
<a href="SqlConformanceEnum.html#ORACLE_10"><code>SqlConformanceEnum.ORACLE_10</code></a>;
<a href="SqlConformanceEnum.html#ORACLE_12"><code>SqlConformanceEnum.ORACLE_12</code></a>;
<a href="SqlConformanceEnum.html#SQL_SERVER_2008"><code>SqlConformanceEnum.SQL_SERVER_2008</code></a>;
false otherwise.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlConformance.html#shouldConvertRaggedUnionTypesToVarying()">shouldConvertRaggedUnionTypesToVarying</a></code>&nbsp;in interface&nbsp;<code><a href="SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a></code></dd>
</dl>
</li>
</ul>
<a id="allowExtendedTrim()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>allowExtendedTrim</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;allowExtendedTrim()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlConformance.html#allowExtendedTrim()">SqlConformance</a></code></span></div>
<div class="block">Whether TRIM should support more than one trim character.
<p>For example, consider the query
<blockquote><pre>SELECT TRIM('eh' FROM 'hehe__hehe')</pre></blockquote>
<p>Under strict behavior, if the length of trim character is not 1,
TRIM throws an exception, and the query fails.
However many implementations (in databases such as MySQL and SQL Server)
trim all the characters, resulting in a return value of '__'.
<p>Among the built-in conformance levels, true in
<a href="SqlConformanceEnum.html#BABEL"><code>SqlConformanceEnum.BABEL</code></a>,
<a href="SqlConformanceEnum.html#LENIENT"><code>SqlConformanceEnum.LENIENT</code></a>,
<a href="SqlConformanceEnum.html#MYSQL_5"><code>SqlConformanceEnum.MYSQL_5</code></a>,
<a href="SqlConformanceEnum.html#SQL_SERVER_2008"><code>SqlConformanceEnum.SQL_SERVER_2008</code></a>;
false otherwise.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlConformance.html#allowExtendedTrim()">allowExtendedTrim</a></code>&nbsp;in interface&nbsp;<code><a href="SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a></code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/SqlAbstractConformance.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&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>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</body>
</html>