blob: 1ad19944856f6873bdfe1016517cbdeb270114ac [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>SqlValidator.Config (Apache Calcite calcite API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.calcite.sql.validate, interface: SqlValidator, interface: Config">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../script-dir/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../script-dir/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../script-dir/jquery-3.4.1.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-ui.js"></script>
</head>
<body class="class-declaration">
<script type="text/javascript">var data = {"i0":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};
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 = "../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flexBox">
<header role="banner" class="flexHeader">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><b>Apache Calcite</b></div>
</div>
<div class="subNav">
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>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>
<div class="navListSearch"><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="skipNav"><a id="skip.navbar.top">
<!-- -->
</a></div>
</nav>
</header>
<div class="flexContent">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.calcite.sql.validate</a></div>
<h1 title="Interface SqlValidator.Config" class="title">Interface SqlValidator.Config</h1>
</div>
<div class="contentContainer">
<section class="description">
<dl>
<dt>Enclosing interface:</dt>
<dd><a href="SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></dd>
</dl>
<hr>
<pre>public static interface <span class="typeNameLabel">SqlValidator.Config</span></pre>
<div class="block">Interface to define the configuration for a SqlValidator.
Provides methods to set each configuration option.</div>
</section>
<section class="summary">
<ul class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<li class="blockList">
<section class="fieldSummary"><a id="field.summary">
<!-- -->
</a>
<h2>Field Summary</h2>
<div class="memberSummary">
<table>
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<thead>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
</thead>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>static <a href="SqlValidator.Config.html" title="interface in org.apache.calcite.sql.validate">SqlValidator.Config</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">Default configuration.</div>
</td>
</tr>
</tbody>
</table>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li class="blockList">
<section class="methodSummary"><a id="method.summary">
<!-- -->
</a>
<h2>Method Summary</h2>
<div class="memberSummary">
<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
<div id="memberSummary_tabpanel" role="tabpanel">
<table aria-labelledby="t0">
<thead>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
</thead>
<tbody>
<tr class="altColor" id="i0">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#callRewrite()">callRewrite</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns whether to enable rewrite of "macro-like" calls such as COALESCE.</div>
</td>
</tr>
<tr class="rowColor" id="i1">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#columnReferenceExpansion()">columnReferenceExpansion</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns whether column reference expansion is enabled.</div>
</td>
</tr>
<tr class="altColor" id="i2">
<td class="colFirst"><code><a href="../../config/NullCollation.html" title="enum in org.apache.calcite.config">NullCollation</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#defaultNullCollation()">defaultNullCollation</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns how NULL values should be collated if an ORDER BY item does not
contain NULLS FIRST or NULLS LAST.</div>
</td>
</tr>
<tr class="rowColor" id="i3">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#identifierExpansion()">identifierExpansion</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns whether to expand identifiers other than column
references.</div>
</td>
</tr>
<tr class="altColor" id="i4">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#lenientOperatorLookup()">lenientOperatorLookup</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns whether this validator should be lenient upon encountering an
unknown function, default false.</div>
</td>
</tr>
<tr class="rowColor" id="i5">
<td class="colFirst"><code><a href="SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sqlConformance()">sqlConformance</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the dialect of SQL (SQL:2003, etc.) this validator recognizes.</div>
</td>
</tr>
<tr class="altColor" id="i6">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#typeCoercionEnabled()">typeCoercionEnabled</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns whether the validator supports implicit type coercion.</div>
</td>
</tr>
<tr class="rowColor" id="i7">
<td class="colFirst"><code><a href="implicit/TypeCoercionFactory.html" title="interface in org.apache.calcite.sql.validate.implicit">TypeCoercionFactory</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#typeCoercionFactory()">typeCoercionFactory</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the type coercion factory.</div>
</td>
</tr>
<tr class="altColor" id="i8">
<td class="colFirst"><code><a href="../type/SqlTypeCoercionRule.html" title="class in org.apache.calcite.sql.type">SqlTypeCoercionRule</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#typeCoercionRules()">typeCoercionRules</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the type coercion rules for explicit type coercion.</div>
</td>
</tr>
<tr class="rowColor" id="i9">
<td class="colFirst"><code><a href="SqlValidator.Config.html" title="interface in org.apache.calcite.sql.validate">SqlValidator.Config</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withCallRewrite(boolean)">withCallRewrite</a></span>&#8203;(boolean&nbsp;rewrite)</code></th>
<td class="colLast">
<div class="block">Sets whether to enable rewrite of "macro-like" calls such as COALESCE.</div>
</td>
</tr>
<tr class="altColor" id="i10">
<td class="colFirst"><code><a href="SqlValidator.Config.html" title="interface in org.apache.calcite.sql.validate">SqlValidator.Config</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withColumnReferenceExpansion(boolean)">withColumnReferenceExpansion</a></span>&#8203;(boolean&nbsp;expand)</code></th>
<td class="colLast">
<div class="block">Sets whether to enable expansion of column references.</div>
</td>
</tr>
<tr class="rowColor" id="i11">
<td class="colFirst"><code><a href="SqlValidator.Config.html" title="interface in org.apache.calcite.sql.validate">SqlValidator.Config</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withDefaultNullCollation(org.apache.calcite.config.NullCollation)">withDefaultNullCollation</a></span>&#8203;(<a href="../../config/NullCollation.html" title="enum in org.apache.calcite.config">NullCollation</a>&nbsp;nullCollation)</code></th>
<td class="colLast">
<div class="block">Sets how NULL values should be collated if an ORDER BY item does not
contain NULLS FIRST or NULLS LAST.</div>
</td>
</tr>
<tr class="altColor" id="i12">
<td class="colFirst"><code><a href="SqlValidator.Config.html" title="interface in org.apache.calcite.sql.validate">SqlValidator.Config</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withIdentifierExpansion(boolean)">withIdentifierExpansion</a></span>&#8203;(boolean&nbsp;expand)</code></th>
<td class="colLast">
<div class="block">Sets whether to enable expansion of identifiers other than column
references.</div>
</td>
</tr>
<tr class="rowColor" id="i13">
<td class="colFirst"><code><a href="SqlValidator.Config.html" title="interface in org.apache.calcite.sql.validate">SqlValidator.Config</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withLenientOperatorLookup(boolean)">withLenientOperatorLookup</a></span>&#8203;(boolean&nbsp;lenient)</code></th>
<td class="colLast">
<div class="block">Sets whether this validator should be lenient upon encountering an unknown
function.</div>
</td>
</tr>
<tr class="altColor" id="i14">
<td class="colFirst"><code><a href="SqlValidator.Config.html" title="interface in org.apache.calcite.sql.validate">SqlValidator.Config</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withSqlConformance(org.apache.calcite.sql.validate.SqlConformance)">withSqlConformance</a></span>&#8203;(<a href="SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a>&nbsp;conformance)</code></th>
<td class="colLast">
<div class="block">Sets up the sql conformance of the validator.</div>
</td>
</tr>
<tr class="rowColor" id="i15">
<td class="colFirst"><code><a href="SqlValidator.Config.html" title="interface in org.apache.calcite.sql.validate">SqlValidator.Config</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withTypeCoercionEnabled(boolean)">withTypeCoercionEnabled</a></span>&#8203;(boolean&nbsp;enabled)</code></th>
<td class="colLast">
<div class="block">Sets whether to enable implicit type coercion for validation, default true.</div>
</td>
</tr>
<tr class="altColor" id="i16">
<td class="colFirst"><code><a href="SqlValidator.Config.html" title="interface in org.apache.calcite.sql.validate">SqlValidator.Config</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withTypeCoercionFactory(org.apache.calcite.sql.validate.implicit.TypeCoercionFactory)">withTypeCoercionFactory</a></span>&#8203;(<a href="implicit/TypeCoercionFactory.html" title="interface in org.apache.calcite.sql.validate.implicit">TypeCoercionFactory</a>&nbsp;factory)</code></th>
<td class="colLast">
<div class="block">Sets a factory to create type coercion instance that overrides the
default coercion rules defined in
<a href="implicit/TypeCoercionImpl.html" title="class in org.apache.calcite.sql.validate.implicit"><code>TypeCoercionImpl</code></a>.</div>
</td>
</tr>
<tr class="rowColor" id="i17">
<td class="colFirst"><code><a href="SqlValidator.Config.html" title="interface in org.apache.calcite.sql.validate">SqlValidator.Config</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withTypeCoercionRules(org.apache.calcite.sql.type.SqlTypeCoercionRule)">withTypeCoercionRules</a></span>&#8203;(<a href="../type/SqlTypeCoercionRule.html" title="class in org.apache.calcite.sql.type">SqlTypeCoercionRule</a>&nbsp;rules)</code></th>
<td class="colLast">
<div class="block">Sets the <a href="../type/SqlTypeCoercionRule.html" title="class in org.apache.calcite.sql.type"><code>SqlTypeCoercionRule</code></a> instance which defines the type conversion matrix
for the explicit type coercion.</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<li class="blockList">
<section class="fieldDetails"><a id="field.detail">
<!-- -->
</a>
<h2>Field Details</h2>
<ul class="blockList">
<li class="blockList">
<section class="detail">
<h3><a id="DEFAULT">DEFAULT</a></h3>
<div class="memberSignature"><span class="modifiers">static final</span>&nbsp;<span class="returnType"><a href="SqlValidator.Config.html" title="interface in org.apache.calcite.sql.validate">SqlValidator.Config</a></span>&nbsp;<span class="memberName">DEFAULT</span></div>
<div class="block">Default configuration.</div>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li class="blockList">
<section class="methodDetails"><a id="method.detail">
<!-- -->
</a>
<h2>Method Details</h2>
<ul class="blockList">
<li class="blockList">
<section class="detail">
<h3><a id="callRewrite()">callRewrite</a></h3>
<div class="memberSignature"><span class="returnType">boolean</span>&nbsp;<span class="memberName">callRewrite</span>()</div>
<div class="block">Returns whether to enable rewrite of "macro-like" calls such as COALESCE.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="withCallRewrite(boolean)">withCallRewrite</a></h3>
<div class="memberSignature"><span class="returnType"><a href="SqlValidator.Config.html" title="interface in org.apache.calcite.sql.validate">SqlValidator.Config</a></span>&nbsp;<span class="memberName">withCallRewrite</span>&#8203;(<span class="arguments">boolean&nbsp;rewrite)</span></div>
<div class="block">Sets whether to enable rewrite of "macro-like" calls such as COALESCE.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="defaultNullCollation()">defaultNullCollation</a></h3>
<div class="memberSignature"><span class="returnType"><a href="../../config/NullCollation.html" title="enum in org.apache.calcite.config">NullCollation</a></span>&nbsp;<span class="memberName">defaultNullCollation</span>()</div>
<div class="block">Returns how NULL values should be collated if an ORDER BY item does not
contain NULLS FIRST or NULLS LAST.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="withDefaultNullCollation(org.apache.calcite.config.NullCollation)">withDefaultNullCollation</a></h3>
<div class="memberSignature"><span class="returnType"><a href="SqlValidator.Config.html" title="interface in org.apache.calcite.sql.validate">SqlValidator.Config</a></span>&nbsp;<span class="memberName">withDefaultNullCollation</span>&#8203;(<span class="arguments"><a href="../../config/NullCollation.html" title="enum in org.apache.calcite.config">NullCollation</a>&nbsp;nullCollation)</span></div>
<div class="block">Sets how NULL values should be collated if an ORDER BY item does not
contain NULLS FIRST or NULLS LAST.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="columnReferenceExpansion()">columnReferenceExpansion</a></h3>
<div class="memberSignature"><span class="returnType">boolean</span>&nbsp;<span class="memberName">columnReferenceExpansion</span>()</div>
<div class="block">Returns whether column reference expansion is enabled.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="withColumnReferenceExpansion(boolean)">withColumnReferenceExpansion</a></h3>
<div class="memberSignature"><span class="returnType"><a href="SqlValidator.Config.html" title="interface in org.apache.calcite.sql.validate">SqlValidator.Config</a></span>&nbsp;<span class="memberName">withColumnReferenceExpansion</span>&#8203;(<span class="arguments">boolean&nbsp;expand)</span></div>
<div class="block">Sets whether to enable expansion of column references. (Currently this does
not apply to the ORDER BY clause; may be fixed in the future.)</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="identifierExpansion()">identifierExpansion</a></h3>
<div class="memberSignature"><span class="returnType">boolean</span>&nbsp;<span class="memberName">identifierExpansion</span>()</div>
<div class="block">Returns whether to expand identifiers other than column
references.
<p>REVIEW jvs 30-June-2006: subclasses may override shouldExpandIdentifiers
in a way that ignores this; we should probably get rid of the protected
method and always use this variable (or better, move preferences like
this to a separate "parameter" class).</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="withIdentifierExpansion(boolean)">withIdentifierExpansion</a></h3>
<div class="memberSignature"><span class="returnType"><a href="SqlValidator.Config.html" title="interface in org.apache.calcite.sql.validate">SqlValidator.Config</a></span>&nbsp;<span class="memberName">withIdentifierExpansion</span>&#8203;(<span class="arguments">boolean&nbsp;expand)</span></div>
<div class="block">Sets whether to enable expansion of identifiers other than column
references.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="lenientOperatorLookup()">lenientOperatorLookup</a></h3>
<div class="memberSignature"><span class="returnType">boolean</span>&nbsp;<span class="memberName">lenientOperatorLookup</span>()</div>
<div class="block">Returns whether this validator should be lenient upon encountering an
unknown function, default false.
<p>If true, if a statement contains a call to a function that is not
present in the operator table, or if the call does not have the required
number or types of operands, the validator nevertheless regards the
statement as valid. The type of the function call will be
<a href="SqlValidator.html#getUnknownType()"><code>UNKNOWN</code></a>.
<p>If false (the default behavior), an unknown function call causes a
validation error to be thrown.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="withLenientOperatorLookup(boolean)">withLenientOperatorLookup</a></h3>
<div class="memberSignature"><span class="returnType"><a href="SqlValidator.Config.html" title="interface in org.apache.calcite.sql.validate">SqlValidator.Config</a></span>&nbsp;<span class="memberName">withLenientOperatorLookup</span>&#8203;(<span class="arguments">boolean&nbsp;lenient)</span></div>
<div class="block">Sets whether this validator should be lenient upon encountering an unknown
function.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>lenient</code> - Whether to be lenient when encountering an unknown function</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="typeCoercionEnabled()">typeCoercionEnabled</a></h3>
<div class="memberSignature"><span class="returnType">boolean</span>&nbsp;<span class="memberName">typeCoercionEnabled</span>()</div>
<div class="block">Returns whether the validator supports implicit type coercion.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="withTypeCoercionEnabled(boolean)">withTypeCoercionEnabled</a></h3>
<div class="memberSignature"><span class="returnType"><a href="SqlValidator.Config.html" title="interface in org.apache.calcite.sql.validate">SqlValidator.Config</a></span>&nbsp;<span class="memberName">withTypeCoercionEnabled</span>&#8203;(<span class="arguments">boolean&nbsp;enabled)</span></div>
<div class="block">Sets whether to enable implicit type coercion for validation, default true.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="implicit/TypeCoercionImpl.html" title="class in org.apache.calcite.sql.validate.implicit"><code>TypeCoercionImpl</code></a></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="typeCoercionFactory()">typeCoercionFactory</a></h3>
<div class="memberSignature"><span class="returnType"><a href="implicit/TypeCoercionFactory.html" title="interface in org.apache.calcite.sql.validate.implicit">TypeCoercionFactory</a></span>&nbsp;<span class="memberName">typeCoercionFactory</span>()</div>
<div class="block">Returns the type coercion factory.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="withTypeCoercionFactory(org.apache.calcite.sql.validate.implicit.TypeCoercionFactory)">withTypeCoercionFactory</a></h3>
<div class="memberSignature"><span class="returnType"><a href="SqlValidator.Config.html" title="interface in org.apache.calcite.sql.validate">SqlValidator.Config</a></span>&nbsp;<span class="memberName">withTypeCoercionFactory</span>&#8203;(<span class="arguments"><a href="implicit/TypeCoercionFactory.html" title="interface in org.apache.calcite.sql.validate.implicit">TypeCoercionFactory</a>&nbsp;factory)</span></div>
<div class="block">Sets a factory to create type coercion instance that overrides the
default coercion rules defined in
<a href="implicit/TypeCoercionImpl.html" title="class in org.apache.calcite.sql.validate.implicit"><code>TypeCoercionImpl</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>factory</code> - Factory to create <a href="implicit/TypeCoercion.html" title="interface in org.apache.calcite.sql.validate.implicit"><code>TypeCoercion</code></a> instance</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="typeCoercionRules()">typeCoercionRules</a></h3>
<div class="memberSignature"><span class="returnType"><a href="../type/SqlTypeCoercionRule.html" title="class in org.apache.calcite.sql.type">SqlTypeCoercionRule</a></span>&nbsp;<span class="memberName">typeCoercionRules</span>()</div>
<div class="block">Returns the type coercion rules for explicit type coercion.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="withTypeCoercionRules(org.apache.calcite.sql.type.SqlTypeCoercionRule)">withTypeCoercionRules</a></h3>
<div class="memberSignature"><span class="returnType"><a href="SqlValidator.Config.html" title="interface in org.apache.calcite.sql.validate">SqlValidator.Config</a></span>&nbsp;<span class="memberName">withTypeCoercionRules</span>&#8203;(<span class="arguments"><a href="../type/SqlTypeCoercionRule.html" title="class in org.apache.calcite.sql.type">SqlTypeCoercionRule</a>&nbsp;rules)</span></div>
<div class="block">Sets the <a href="../type/SqlTypeCoercionRule.html" title="class in org.apache.calcite.sql.type"><code>SqlTypeCoercionRule</code></a> instance which defines the type conversion matrix
for the explicit type coercion.
<p>The <code>rules</code> setting should be thread safe. In the default implementation,
it is set to a ThreadLocal variable.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>rules</code> - The <a href="../type/SqlTypeCoercionRule.html" title="class in org.apache.calcite.sql.type"><code>SqlTypeCoercionRule</code></a> instance,
see its documentation for how to customize the rules</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="sqlConformance()">sqlConformance</a></h3>
<div class="memberSignature"><span class="returnType"><a href="SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a></span>&nbsp;<span class="memberName">sqlConformance</span>()</div>
<div class="block">Returns the dialect of SQL (SQL:2003, etc.) this validator recognizes.
Default is <a href="SqlConformanceEnum.html#DEFAULT"><code>SqlConformanceEnum.DEFAULT</code></a>.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="withSqlConformance(org.apache.calcite.sql.validate.SqlConformance)">withSqlConformance</a></h3>
<div class="memberSignature"><span class="returnType"><a href="SqlValidator.Config.html" title="interface in org.apache.calcite.sql.validate">SqlValidator.Config</a></span>&nbsp;<span class="memberName">withSqlConformance</span>&#8203;(<span class="arguments"><a href="SqlConformance.html" title="interface in org.apache.calcite.sql.validate">SqlConformance</a>&nbsp;conformance)</span></div>
<div class="block">Sets up the sql conformance of the validator.</div>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
</div>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><b>Apache Calcite</b></div>
</div>
<div class="subNav">
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>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>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &copy; 2012-2020 Apache Software Foundation. All Rights Reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>