blob: f03080ccee7123313e30433d51c9c26ff278e3df [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>SqlAbstractConformance (Apache Calcite API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.calcite.sql.validate, class: SqlAbstractConformance">
<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.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<div class="about-language"><b>Apache Calcite</b></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">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#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<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="sub-nav-list">
<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>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.calcite.sql.validate</a></div>
<h1 title="Class SqlAbstractConformance" class="title">Class SqlAbstractConformance</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
<div class="inheritance">org.apache.calcite.sql.validate.SqlAbstractConformance</div>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<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 class="notes">
<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>
<div class="type-signature"><span class="modifiers">public abstract class </span><span class="element-name type-name-label">SqlAbstractConformance</span>
<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>
implements <a href="SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a></span></div>
<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>
</section>
<section class="summary">
<ul class="summary-list">
<!-- =========== FIELD SUMMARY =========== -->
<li>
<section class="field-summary" id="field-summary">
<h2>Field Summary</h2>
<div class="inherited-list">
<h3 id="fields-inherited-from-class-org.apache.calcite.sql.validate.SqlConformance">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></div>
</section>
</li>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li>
<section class="constructor-summary" id="constructor-summary">
<h2>Constructor Summary</h2>
<div class="caption"><span>Constructors</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E()" class="member-name-link">SqlAbstractConformance</a>()</code></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#allowAliasUnnestItems()" class="member-name-link">allowAliasUnnestItems</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Whether directly alias array items in UNNEST.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#allowCharLiteralAlias()" class="member-name-link">allowCharLiteralAlias</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Whether this dialect allows character literals as column aliases.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#allowCoercionStringToArray()" class="member-name-link">allowCoercionStringToArray</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Whether to allow coercion string literal to array literal</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#allowExplicitRowValueConstructor()" class="member-name-link">allowExplicitRowValueConstructor</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Whether to allow SQL syntax "<code>ROW(expr1, expr2, expr3)</code>".</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#allowExtend()" class="member-name-link">allowExtend</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Whether to allow mixing table columns with extended columns in
<code>INSERT</code> (or <code>UPSERT</code>).</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#allowExtendedTrim()" class="member-name-link">allowExtendedTrim</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Whether TRIM should support more than one trim character.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#allowGeometry()" class="member-name-link">allowGeometry</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Whether to allow geo-spatial extensions, including the GEOMETRY type.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#allowHyphenInUnquotedTableName()" class="member-name-link">allowHyphenInUnquotedTableName</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Whether to allow hyphens in an unquoted table name.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#allowNiladicParentheses()" class="member-name-link">allowNiladicParentheses</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<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>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#allowPluralTimeUnits()" class="member-name-link">allowPluralTimeUnits</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Whether interval literals should allow plural time units
such as "YEARS" and "DAYS" in interval literals.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#allowQualifyingCommonColumn()" class="member-name-link">allowQualifyingCommonColumn</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Whether to allow a qualified common column in a query that has a
NATURAL join or a join with a USING clause.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isApplyAllowed()" class="member-name-link">isApplyAllowed</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Whether <code>CROSS APPLY</code> and <code>OUTER APPLY</code> operators are allowed
in the parser.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isBangEqualAllowed()" class="member-name-link">isBangEqualAllowed</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Whether the bang-equal token != is allowed as an alternative to &lt;&gt; in
the parser.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isFromRequired()" class="member-name-link">isFromRequired</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Whether <code>FROM</code> clause is required in a <code>SELECT</code> statement.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isGroupByAlias()" class="member-name-link">isGroupByAlias</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<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>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isGroupByOrdinal()" class="member-name-link">isGroupByOrdinal</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Whether <code>GROUP BY 2</code> is interpreted to mean 'group by the 2nd column
in the select list'.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isHavingAlias()" class="member-name-link">isHavingAlias</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<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>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isInsertSubsetColumnsAllowed()" class="member-name-link">isInsertSubsetColumnsAllowed</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<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>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isLiberal()" class="member-name-link">isLiberal</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Whether this dialect supports features from a wide variety of
dialects.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isLimitStartCountAllowed()" class="member-name-link">isLimitStartCountAllowed</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Whether to allow the SQL syntax "<code>LIMIT start, count</code>".</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isMinusAllowed()" class="member-name-link">isMinusAllowed</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Whether <code>MINUS</code> is allowed as an alternative to <code>EXCEPT</code> in
the parser.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isOffsetLimitAllowed()" class="member-name-link">isOffsetLimitAllowed</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Whether to allow the SQL syntax "<code>OFFSET start LIMIT count</code>"
(that is, <code>OFFSET</code> before <code>LIMIT</code>,
in addition to <code>LIMIT</code> before <code>OFFSET</code>
and <code>OFFSET</code> before <code>FETCH</code>).</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isPercentRemainderAllowed()" class="member-name-link">isPercentRemainderAllowed</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Whether the "%" operator is allowed by the parser as an alternative to the
<code>mod</code> function.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isSortByAlias()" class="member-name-link">isSortByAlias</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<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>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isSortByAliasObscures()" class="member-name-link">isSortByAliasObscures</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Whether "empno" is invalid in "select empno as x from emp order by empno"
because the alias "x" obscures it.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isSortByOrdinal()" class="member-name-link">isSortByOrdinal</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Whether '<code>ORDER BY 2</code>' is interpreted to mean 'sort by the 2nd
column in the select list'.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isValueAllowed()" class="member-name-link">isValueAllowed</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Whether <code>VALUE</code> is allowed as an alternative to <code>VALUES</code> in
the parser.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="../fun/SqlLibrary.html" title="enum in org.apache.calcite.sql.fun">SqlLibrary</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#semantics()" class="member-name-link">semantics</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Controls the behavior of operators that are part of Standard SQL but
nevertheless have different behavior in different databases.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#shouldConvertRaggedUnionTypesToVarying()" class="member-name-link">shouldConvertRaggedUnionTypesToVarying</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Whether the least restrictive type of a number of CHAR types of different
lengths should be a VARCHAR type.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#splitQuotedTableName()" class="member-name-link">splitQuotedTableName</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Whether to split a quoted table name.</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="&lt;init&gt;()">
<h3>SqlAbstractConformance</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">SqlAbstractConformance</span>()</div>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="isLiberal()">
<h3>isLiberal</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isLiberal</span>()</div>
<div class="block"><span class="descfrm-type-label">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 class="notes">
<dt>Specified by:</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>
</section>
</li>
<li>
<section class="detail" id="allowCharLiteralAlias()">
<h3>allowCharLiteralAlias</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">allowCharLiteralAlias</span>()</div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlConformance.html#allowCharLiteralAlias()">SqlConformance</a></code></span></div>
<div class="block">Whether this dialect allows character literals as column aliases.
<p>For example,
<blockquote><pre>
SELECT empno, sal + comm AS 'remuneration'
FROM Emp</pre></blockquote>
<p>Among the built-in conformance levels, true in
<a href="SqlConformanceEnum.html#BABEL"><code>SqlConformanceEnum.BABEL</code></a>,
<a href="SqlConformanceEnum.html#BIG_QUERY"><code>SqlConformanceEnum.BIG_QUERY</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 class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlConformance.html#allowCharLiteralAlias()">allowCharLiteralAlias</a></code>&nbsp;in interface&nbsp;<code><a href="SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="isGroupByAlias()">
<h3>isGroupByAlias</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isGroupByAlias</span>()</div>
<div class="block"><span class="descfrm-type-label">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#BIG_QUERY"><code>SqlConformanceEnum.BIG_QUERY</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 class="notes">
<dt>Specified by:</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>
</section>
</li>
<li>
<section class="detail" id="isGroupByOrdinal()">
<h3>isGroupByOrdinal</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isGroupByOrdinal</span>()</div>
<div class="block"><span class="descfrm-type-label">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#BIG_QUERY"><code>SqlConformanceEnum.BIG_QUERY</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#PRESTO"><code>SqlConformanceEnum.PRESTO</code></a>;
false otherwise.</div>
<dl class="notes">
<dt>Specified by:</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>
</section>
</li>
<li>
<section class="detail" id="isHavingAlias()">
<h3>isHavingAlias</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isHavingAlias</span>()</div>
<div class="block"><span class="descfrm-type-label">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#BIG_QUERY"><code>SqlConformanceEnum.BIG_QUERY</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 class="notes">
<dt>Specified by:</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>
</section>
</li>
<li>
<section class="detail" id="isSortByOrdinal()">
<h3>isSortByOrdinal</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isSortByOrdinal</span>()</div>
<div class="block"><span class="descfrm-type-label">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#PRAGMATIC_99"><code>SqlConformanceEnum.PRAGMATIC_99</code></a>,
<a href="SqlConformanceEnum.html#PRAGMATIC_2003"><code>SqlConformanceEnum.PRAGMATIC_2003</code></a>,
<a href="SqlConformanceEnum.html#PRESTO"><code>SqlConformanceEnum.PRESTO</code></a>,
<a href="SqlConformanceEnum.html#SQL_SERVER_2008"><code>SqlConformanceEnum.SQL_SERVER_2008</code></a>,
<a href="SqlConformanceEnum.html#STRICT_92"><code>SqlConformanceEnum.STRICT_92</code></a>;
false otherwise.</div>
<dl class="notes">
<dt>Specified by:</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>
</section>
</li>
<li>
<section class="detail" id="isSortByAlias()">
<h3>isSortByAlias</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isSortByAlias</span>()</div>
<div class="block"><span class="descfrm-type-label">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#BIG_QUERY"><code>SqlConformanceEnum.BIG_QUERY</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#SQL_SERVER_2008"><code>SqlConformanceEnum.SQL_SERVER_2008</code></a>,
<a href="SqlConformanceEnum.html#STRICT_92"><code>SqlConformanceEnum.STRICT_92</code></a>;
false otherwise.</div>
<dl class="notes">
<dt>Specified by:</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>
</section>
</li>
<li>
<section class="detail" id="isSortByAliasObscures()">
<h3>isSortByAliasObscures</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isSortByAliasObscures</span>()</div>
<div class="block"><span class="descfrm-type-label">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 class="notes">
<dt>Specified by:</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>
</section>
</li>
<li>
<section class="detail" id="isFromRequired()">
<h3>isFromRequired</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isFromRequired</span>()</div>
<div class="block"><span class="descfrm-type-label">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 class="notes">
<dt>Specified by:</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>
</section>
</li>
<li>
<section class="detail" id="splitQuotedTableName()">
<h3>splitQuotedTableName</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">splitQuotedTableName</span>()</div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlConformance.html#splitQuotedTableName()">SqlConformance</a></code></span></div>
<div class="block">Whether to split a quoted table name. If true, <code>`x.y.z`</code> is parsed as
if the user had written <code>`x`.`y`.`z`</code>.
<p>Among the built-in conformance levels, true in
<a href="SqlConformanceEnum.html#BIG_QUERY"><code>SqlConformanceEnum.BIG_QUERY</code></a>;
false otherwise.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlConformance.html#splitQuotedTableName()">splitQuotedTableName</a></code>&nbsp;in interface&nbsp;<code><a href="SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="allowHyphenInUnquotedTableName()">
<h3>allowHyphenInUnquotedTableName</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">allowHyphenInUnquotedTableName</span>()</div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlConformance.html#allowHyphenInUnquotedTableName()">SqlConformance</a></code></span></div>
<div class="block">Whether to allow hyphens in an unquoted table name.
<p>If true, <code>SELECT * FROM foo-bar.baz-buzz</code> is valid, and is parsed
as if the user had written <code>SELECT * FROM `foo-bar`.`baz-buzz`</code>.
<p>Among the built-in conformance levels, true in
<a href="SqlConformanceEnum.html#BIG_QUERY"><code>SqlConformanceEnum.BIG_QUERY</code></a>;
false otherwise.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlConformance.html#allowHyphenInUnquotedTableName()">allowHyphenInUnquotedTableName</a></code>&nbsp;in interface&nbsp;<code><a href="SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="isBangEqualAllowed()">
<h3>isBangEqualAllowed</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isBangEqualAllowed</span>()</div>
<div class="block"><span class="descfrm-type-label">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>,
<a href="SqlConformanceEnum.html#PRESTO"><code>SqlConformanceEnum.PRESTO</code></a>;
false otherwise.</div>
<dl class="notes">
<dt>Specified by:</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>
</section>
</li>
<li>
<section class="detail" id="isMinusAllowed()">
<h3>isMinusAllowed</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isMinusAllowed</span>()</div>
<div class="block"><span class="descfrm-type-label">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 class="notes">
<dt>Specified by:</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>
</section>
</li>
<li>
<section class="detail" id="isApplyAllowed()">
<h3>isApplyAllowed</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isApplyAllowed</span>()</div>
<div class="block"><span class="descfrm-type-label">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#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 class="notes">
<dt>Specified by:</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>
</section>
</li>
<li>
<section class="detail" id="isInsertSubsetColumnsAllowed()">
<h3>isInsertSubsetColumnsAllowed</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isInsertSubsetColumnsAllowed</span>()</div>
<div class="block"><span class="descfrm-type-label">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 class="notes">
<dt>Specified by:</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>
</section>
</li>
<li>
<section class="detail" id="allowNiladicParentheses()">
<h3>allowNiladicParentheses</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">allowNiladicParentheses</span>()</div>
<div class="block"><span class="descfrm-type-label">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 class="notes">
<dt>Specified by:</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>
</section>
</li>
<li>
<section class="detail" id="allowExplicitRowValueConstructor()">
<h3>allowExplicitRowValueConstructor</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">allowExplicitRowValueConstructor</span>()</div>
<div class="block"><span class="descfrm-type-label">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>,
<a href="SqlConformanceEnum.html#PRESTO"><code>SqlConformanceEnum.PRESTO</code></a>;
false otherwise.</div>
<dl class="notes">
<dt>Specified by:</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>
</section>
</li>
<li>
<section class="detail" id="allowExtend()">
<h3>allowExtend</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">allowExtend</span>()</div>
<div class="block"><span class="descfrm-type-label">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 class="notes">
<dt>Specified by:</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>
</section>
</li>
<li>
<section class="detail" id="isLimitStartCountAllowed()">
<h3>isLimitStartCountAllowed</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isLimitStartCountAllowed</span>()</div>
<div class="block"><span class="descfrm-type-label">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 class="notes">
<dt>Specified by:</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>
</section>
</li>
<li>
<section class="detail" id="isOffsetLimitAllowed()">
<h3>isOffsetLimitAllowed</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isOffsetLimitAllowed</span>()</div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlConformance.html#isOffsetLimitAllowed()">SqlConformance</a></code></span></div>
<div class="block">Whether to allow the SQL syntax "<code>OFFSET start LIMIT count</code>"
(that is, <code>OFFSET</code> before <code>LIMIT</code>,
in addition to <code>LIMIT</code> before <code>OFFSET</code>
and <code>OFFSET</code> before <code>FETCH</code>).
<p>The equivalent syntax in standard SQL is
"<code>OFFSET start ROW FETCH FIRST count ROWS ONLY</code>".
<p>Trino allows 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>;
false otherwise.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlConformance.html#isOffsetLimitAllowed()">isOffsetLimitAllowed</a></code>&nbsp;in interface&nbsp;<code><a href="SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="isPercentRemainderAllowed()">
<h3>isPercentRemainderAllowed</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isPercentRemainderAllowed</span>()</div>
<div class="block"><span class="descfrm-type-label">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>,
<a href="SqlConformanceEnum.html#PRESTO"><code>SqlConformanceEnum.PRESTO</code></a>;
false otherwise.</div>
<dl class="notes">
<dt>Specified by:</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>
</section>
</li>
<li>
<section class="detail" id="allowGeometry()">
<h3>allowGeometry</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">allowGeometry</span>()</div>
<div class="block"><span class="descfrm-type-label">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#PRESTO"><code>SqlConformanceEnum.PRESTO</code></a>,
<a href="SqlConformanceEnum.html#SQL_SERVER_2008"><code>SqlConformanceEnum.SQL_SERVER_2008</code></a>;
false otherwise.</div>
<dl class="notes">
<dt>Specified by:</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>
</section>
</li>
<li>
<section class="detail" id="shouldConvertRaggedUnionTypesToVarying()">
<h3>shouldConvertRaggedUnionTypesToVarying</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">shouldConvertRaggedUnionTypesToVarying</span>()</div>
<div class="block"><span class="descfrm-type-label">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#PRESTO"><code>SqlConformanceEnum.PRESTO</code></a>,
<a href="SqlConformanceEnum.html#SQL_SERVER_2008"><code>SqlConformanceEnum.SQL_SERVER_2008</code></a>;
false otherwise.</div>
<dl class="notes">
<dt>Specified by:</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>
</section>
</li>
<li>
<section class="detail" id="allowExtendedTrim()">
<h3>allowExtendedTrim</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">allowExtendedTrim</span>()</div>
<div class="block"><span class="descfrm-type-label">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 class="notes">
<dt>Specified by:</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>
</section>
</li>
<li>
<section class="detail" id="allowPluralTimeUnits()">
<h3>allowPluralTimeUnits</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">allowPluralTimeUnits</span>()</div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlConformance.html#allowPluralTimeUnits()">SqlConformance</a></code></span></div>
<div class="block">Whether interval literals should allow plural time units
such as "YEARS" and "DAYS" in interval literals.
<p>Under strict behavior, <code>INTERVAL '2' DAY</code> is valid
and <code>INTERVAL '2' DAYS</code> is invalid;
PostgreSQL allows both; Oracle only allows singular time units.
<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 class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlConformance.html#allowPluralTimeUnits()">allowPluralTimeUnits</a></code>&nbsp;in interface&nbsp;<code><a href="SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="allowQualifyingCommonColumn()">
<h3>allowQualifyingCommonColumn</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">allowQualifyingCommonColumn</span>()</div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlConformance.html#allowQualifyingCommonColumn()">SqlConformance</a></code></span></div>
<div class="block">Whether to allow a qualified common column in a query that has a
NATURAL join or a join with a USING clause.
<p>For example, in the query
<blockquote><pre>SELECT emp.deptno
FROM emp
JOIN dept USING (deptno)</pre></blockquote>
<p><code>deptno</code> is the common column. A qualified common column
such as <code>emp.deptno</code> is not allowed in Oracle, but is allowed
in PostgreSQL.
<p>Among the built-in conformance levels, false 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#PRESTO"><code>SqlConformanceEnum.PRESTO</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>;
true otherwise.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlConformance.html#allowQualifyingCommonColumn()">allowQualifyingCommonColumn</a></code>&nbsp;in interface&nbsp;<code><a href="SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="allowAliasUnnestItems()">
<h3>allowAliasUnnestItems</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">allowAliasUnnestItems</span>()</div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlConformance.html#allowAliasUnnestItems()">SqlConformance</a></code></span></div>
<div class="block">Whether directly alias array items in UNNEST.
<p>E.g. in UNNEST(a_array, b_array) AS T(a, b),
a and b will be aliases of elements in a_array and b_array
respectively.
<p>Without this flag set, T will be the alias
of the element in a_array and a, b will be the top level
fields of T if T is a STRUCT type.
<p>Among the built-in conformance levels, true in
<a href="SqlConformanceEnum.html#PRESTO"><code>SqlConformanceEnum.PRESTO</code></a>;
false otherwise.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlConformance.html#allowAliasUnnestItems()">allowAliasUnnestItems</a></code>&nbsp;in interface&nbsp;<code><a href="SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="isValueAllowed()">
<h3>isValueAllowed</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isValueAllowed</span>()</div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlConformance.html#isValueAllowed()">SqlConformance</a></code></span></div>
<div class="block">Whether <code>VALUE</code> is allowed as an alternative to <code>VALUES</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#MYSQL_5"><code>SqlConformanceEnum.MYSQL_5</code></a>;
false otherwise.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlConformance.html#isValueAllowed()">isValueAllowed</a></code>&nbsp;in interface&nbsp;<code><a href="SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="semantics()">
<h3>semantics</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="../fun/SqlLibrary.html" title="enum in org.apache.calcite.sql.fun">SqlLibrary</a></span>&nbsp;<span class="element-name">semantics</span>()</div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlConformance.html#semantics()">SqlConformance</a></code></span></div>
<div class="block">Controls the behavior of operators that are part of Standard SQL but
nevertheless have different behavior in different databases.
<p>Consider the <code>SUBSTRING</code> operator. In ISO standard SQL, negative
start indexes are converted to 1; in Google BigQuery, negative start
indexes are treated as offsets from the end of the string. For example,
<code>SUBSTRING('abcde' FROM -3 FOR 2)</code> returns <code>'ab'</code> in standard
SQL and 'cd' in BigQuery.
<p>If you specify <code>conformance=BIG_QUERY</code> in your connection
parameters, <code>SUBSTRING</code> will give the BigQuery behavior. Similarly
MySQL and Oracle.
<p>Among the built-in conformance levels:
<ul>
<li><a href="SqlConformanceEnum.html#BIG_QUERY"><code>SqlConformanceEnum.BIG_QUERY</code></a> returns
<a href="../fun/SqlLibrary.html#BIG_QUERY"><code>SqlLibrary.BIG_QUERY</code></a>;
<li><a href="SqlConformanceEnum.html#MYSQL_5"><code>SqlConformanceEnum.MYSQL_5</code></a> returns <a href="../fun/SqlLibrary.html#MYSQL"><code>SqlLibrary.MYSQL</code></a>;
<li><a href="SqlConformanceEnum.html#ORACLE_10"><code>SqlConformanceEnum.ORACLE_10</code></a> and
<a href="SqlConformanceEnum.html#ORACLE_12"><code>SqlConformanceEnum.ORACLE_12</code></a> return <a href="../fun/SqlLibrary.html#ORACLE"><code>SqlLibrary.ORACLE</code></a>;
<li>otherwise returns <a href="../fun/SqlLibrary.html#STANDARD"><code>SqlLibrary.STANDARD</code></a>.
</ul></div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlConformance.html#semantics()">semantics</a></code>&nbsp;in interface&nbsp;<code><a href="SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="allowCoercionStringToArray()">
<h3>allowCoercionStringToArray</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">allowCoercionStringToArray</span>()</div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SqlConformance.html#allowCoercionStringToArray()">SqlConformance</a></code></span></div>
<div class="block">Whether to allow coercion string literal to array literal
<p>For example,
<blockquote><pre>SELECT ARRAY[0,1,2] == '{0,1,2}'
</pre></blockquote>
<p>Among the built-in conformance levels, true in
<a href="SqlConformanceEnum.html#BABEL"><code>SqlConformanceEnum.BABEL</code></a>,
false otherwise.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SqlConformance.html#allowCoercionStringToArray()">allowCoercionStringToArray</a></code>&nbsp;in interface&nbsp;<code><a href="SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a></code></dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &copy; 2012-2023 Apache Software Foundation. All Rights Reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>