blob: 3c749b3f609643cc9b6d5f4418535bcd75d7aa37 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>SqlConformance (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="SqlConformance (Apache Calcite API)";
}
}
catch(err) {
}
//-->
var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract 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/SqlConformance.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>Constr&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>Constr&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="Interface SqlConformance" class="title">Interface SqlConformance</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="SqlAbstractConformance.html" title="class in org.apache.calcite.sql.validate">SqlAbstractConformance</a></code>, <code><a href="SqlConformanceEnum.html" title="enum in org.apache.calcite.sql.validate">SqlConformanceEnum</a></code>, <code><a href="SqlDelegatingConformance.html" title="class in org.apache.calcite.sql.validate">SqlDelegatingConformance</a></code></dd>
</dl>
<hr>
<pre>public interface <span class="typeNameLabel">SqlConformance</span></pre>
<div class="block">Enumeration of valid SQL compatibility modes.
<p>For most purposes, one of the built-in compatibility modes in enum
<a href="SqlConformanceEnum.html" title="enum in org.apache.calcite.sql.validate"><code>SqlConformanceEnum</code></a> will suffice.
<p>If you wish to implement this interface to build your own conformance,
we strongly recommend that you extend <a href="SqlAbstractConformance.html" title="class in org.apache.calcite.sql.validate"><code>SqlAbstractConformance</code></a>,
or use a <a href="SqlDelegatingConformance.html" title="class in org.apache.calcite.sql.validate"><code>SqlDelegatingConformance</code></a>,
so that you won't be broken by future changes.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="SqlConformanceEnum.html" title="enum in org.apache.calcite.sql.validate"><code>SqlConformanceEnum</code></a>,
<a href="SqlAbstractConformance.html" title="class in org.apache.calcite.sql.validate"><code>SqlAbstractConformance</code></a>,
<a href="SqlDelegatingConformance.html" title="class in org.apache.calcite.sql.validate"><code>SqlDelegatingConformance</code></a></dd>
</dl>
</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>
<table class="memberSummary">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="SqlConformanceEnum.html" title="enum in org.apache.calcite.sql.validate">SqlConformanceEnum</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DEFAULT">DEFAULT</a></span></code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="SqlConformanceEnum.html" title="enum in org.apache.calcite.sql.validate">SqlConformanceEnum</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ORACLE_10">ORACLE_10</a></span></code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="SqlConformanceEnum.html" title="enum in org.apache.calcite.sql.validate">SqlConformanceEnum</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PRAGMATIC_2003">PRAGMATIC_2003</a></span></code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="SqlConformanceEnum.html" title="enum in org.apache.calcite.sql.validate">SqlConformanceEnum</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PRAGMATIC_99">PRAGMATIC_99</a></span></code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="SqlConformanceEnum.html" title="enum in org.apache.calcite.sql.validate">SqlConformanceEnum</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#STRICT_2003">STRICT_2003</a></span></code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="SqlConformanceEnum.html" title="enum in org.apache.calcite.sql.validate">SqlConformanceEnum</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#STRICT_92">STRICT_92</a></span></code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="SqlConformanceEnum.html" title="enum in org.apache.calcite.sql.validate">SqlConformanceEnum</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#STRICT_99">STRICT_99</a></span></code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</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="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract 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>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a id="DEFAULT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DEFAULT</h4>
<pre>@Deprecated
static final&nbsp;<a href="SqlConformanceEnum.html" title="enum in org.apache.calcite.sql.validate">SqlConformanceEnum</a> DEFAULT</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block">Short-cut for <a href="SqlConformanceEnum.html#DEFAULT"><code>SqlConformanceEnum.DEFAULT</code></a>.</div>
</li>
</ul>
<a id="STRICT_92">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>STRICT_92</h4>
<pre>@Deprecated
static final&nbsp;<a href="SqlConformanceEnum.html" title="enum in org.apache.calcite.sql.validate">SqlConformanceEnum</a> STRICT_92</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block">Short-cut for <a href="SqlConformanceEnum.html#STRICT_92"><code>SqlConformanceEnum.STRICT_92</code></a>.</div>
</li>
</ul>
<a id="STRICT_99">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>STRICT_99</h4>
<pre>@Deprecated
static final&nbsp;<a href="SqlConformanceEnum.html" title="enum in org.apache.calcite.sql.validate">SqlConformanceEnum</a> STRICT_99</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block">Short-cut for <a href="SqlConformanceEnum.html#STRICT_99"><code>SqlConformanceEnum.STRICT_99</code></a>.</div>
</li>
</ul>
<a id="PRAGMATIC_99">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>PRAGMATIC_99</h4>
<pre>@Deprecated
static final&nbsp;<a href="SqlConformanceEnum.html" title="enum in org.apache.calcite.sql.validate">SqlConformanceEnum</a> PRAGMATIC_99</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block">Short-cut for <a href="SqlConformanceEnum.html#PRAGMATIC_99"><code>SqlConformanceEnum.PRAGMATIC_99</code></a>.</div>
</li>
</ul>
<a id="ORACLE_10">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ORACLE_10</h4>
<pre>@Deprecated
static final&nbsp;<a href="SqlConformanceEnum.html" title="enum in org.apache.calcite.sql.validate">SqlConformanceEnum</a> ORACLE_10</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block">Short-cut for <a href="SqlConformanceEnum.html#ORACLE_10"><code>SqlConformanceEnum.ORACLE_10</code></a>.</div>
</li>
</ul>
<a id="STRICT_2003">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>STRICT_2003</h4>
<pre>@Deprecated
static final&nbsp;<a href="SqlConformanceEnum.html" title="enum in org.apache.calcite.sql.validate">SqlConformanceEnum</a> STRICT_2003</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block">Short-cut for <a href="SqlConformanceEnum.html#STRICT_2003"><code>SqlConformanceEnum.STRICT_2003</code></a>.</div>
</li>
</ul>
<a id="PRAGMATIC_2003">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>PRAGMATIC_2003</h4>
<pre>@Deprecated
static final&nbsp;<a href="SqlConformanceEnum.html" title="enum in org.apache.calcite.sql.validate">SqlConformanceEnum</a> PRAGMATIC_2003</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block">Short-cut for <a href="SqlConformanceEnum.html#PRAGMATIC_2003"><code>SqlConformanceEnum.PRAGMATIC_2003</code></a>.</div>
</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">boolean&nbsp;isLiberal()</pre>
<div class="block">Whether this dialect supports features from a wide variety of
dialects. This is enabled for the Babel parser, disabled otherwise.</div>
</li>
</ul>
<a id="isGroupByAlias()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isGroupByAlias</h4>
<pre class="methodSignature">boolean&nbsp;isGroupByAlias()</pre>
<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>
</li>
</ul>
<a id="isGroupByOrdinal()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isGroupByOrdinal</h4>
<pre class="methodSignature">boolean&nbsp;isGroupByOrdinal()</pre>
<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>
</li>
</ul>
<a id="isHavingAlias()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isHavingAlias</h4>
<pre class="methodSignature">boolean&nbsp;isHavingAlias()</pre>
<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>
</li>
</ul>
<a id="isSortByOrdinal()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isSortByOrdinal</h4>
<pre class="methodSignature">boolean&nbsp;isSortByOrdinal()</pre>
<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>
</li>
</ul>
<a id="isSortByAlias()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isSortByAlias</h4>
<pre class="methodSignature">boolean&nbsp;isSortByAlias()</pre>
<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>
</li>
</ul>
<a id="isSortByAliasObscures()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isSortByAliasObscures</h4>
<pre class="methodSignature">boolean&nbsp;isSortByAliasObscures()</pre>
<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>
</li>
</ul>
<a id="isFromRequired()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isFromRequired</h4>
<pre class="methodSignature">boolean&nbsp;isFromRequired()</pre>
<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>
</li>
</ul>
<a id="isBangEqualAllowed()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isBangEqualAllowed</h4>
<pre class="methodSignature">boolean&nbsp;isBangEqualAllowed()</pre>
<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>
</li>
</ul>
<a id="isPercentRemainderAllowed()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isPercentRemainderAllowed</h4>
<pre class="methodSignature">boolean&nbsp;isPercentRemainderAllowed()</pre>
<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>
</li>
</ul>
<a id="isMinusAllowed()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isMinusAllowed</h4>
<pre class="methodSignature">boolean&nbsp;isMinusAllowed()</pre>
<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>
</li>
</ul>
<a id="isApplyAllowed()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isApplyAllowed</h4>
<pre class="methodSignature">boolean&nbsp;isApplyAllowed()</pre>
<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>
</li>
</ul>
<a id="isInsertSubsetColumnsAllowed()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isInsertSubsetColumnsAllowed</h4>
<pre class="methodSignature">boolean&nbsp;isInsertSubsetColumnsAllowed()</pre>
<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>
</li>
</ul>
<a id="allowNiladicParentheses()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>allowNiladicParentheses</h4>
<pre class="methodSignature">boolean&nbsp;allowNiladicParentheses()</pre>
<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>
</li>
</ul>
<a id="allowExplicitRowValueConstructor()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>allowExplicitRowValueConstructor</h4>
<pre class="methodSignature">boolean&nbsp;allowExplicitRowValueConstructor()</pre>
<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>
</li>
</ul>
<a id="allowExtend()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>allowExtend</h4>
<pre class="methodSignature">boolean&nbsp;allowExtend()</pre>
<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>
</li>
</ul>
<a id="isLimitStartCountAllowed()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isLimitStartCountAllowed</h4>
<pre class="methodSignature">boolean&nbsp;isLimitStartCountAllowed()</pre>
<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>
</li>
</ul>
<a id="allowGeometry()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>allowGeometry</h4>
<pre class="methodSignature">boolean&nbsp;allowGeometry()</pre>
<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>
</li>
</ul>
<a id="shouldConvertRaggedUnionTypesToVarying()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>shouldConvertRaggedUnionTypesToVarying</h4>
<pre class="methodSignature">boolean&nbsp;shouldConvertRaggedUnionTypesToVarying()</pre>
<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>
</li>
</ul>
<a id="allowExtendedTrim()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>allowExtendedTrim</h4>
<pre class="methodSignature">boolean&nbsp;allowExtendedTrim()</pre>
<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>
</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/SqlConformance.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>Constr&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>Constr&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>