blob: 9a5961f6b5a03d735421b66661f1e2d1901992fc [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>AbstractSqlTester (Calcite 1.21.0 Test API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="AbstractSqlTester (Calcite 1.21.0 Test API)";
}
}
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":9,"i3":10,"i4":9,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":6,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/AbstractSqlTester.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.calcite.sql.test</a></div>
<h2 title="Class AbstractSqlTester" class="title">Class AbstractSqlTester</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.calcite.sql.test.AbstractSqlTester</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code>java.lang.AutoCloseable</code>, <code><a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a></code>, <code><a href="../../test/SqlValidatorTestCase.Tester.html" title="interface in org.apache.calcite.test">SqlValidatorTestCase.Tester</a></code></dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><code><a href="SqlRuntimeTester.html" title="class in org.apache.calcite.sql.test">SqlRuntimeTester</a></code>, <code><a href="SqlValidatorTester.html" title="class in org.apache.calcite.sql.test">SqlValidatorTester</a></code></dd>
</dl>
<hr>
<pre>public abstract class <span class="typeNameLabel">AbstractSqlTester</span>
extends java.lang.Object
implements <a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a>, java.lang.AutoCloseable</pre>
<div class="block">Abstract implementation of
<a href="../../test/SqlValidatorTestCase.Tester.html" title="interface in org.apache.calcite.test"><code>SqlValidatorTestCase.Tester</code></a>
that talks to a mock catalog.
<p>This is to implement the default behavior: testing is only against the
<code>SqlValidator</code>.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<ul class="blockList">
<li class="blockList"><a id="nested.classes.inherited.from.class.org.apache.calcite.sql.test.SqlTester">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.calcite.sql.test.<a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a></h3>
<code><a href="SqlTester.ParameterChecker.html" title="interface in org.apache.calcite.sql.test">SqlTester.ParameterChecker</a>, <a href="SqlTester.ResultChecker.html" title="interface in org.apache.calcite.sql.test">SqlTester.ResultChecker</a>, <a href="SqlTester.TypeChecker.html" title="interface in org.apache.calcite.sql.test">SqlTester.TypeChecker</a>, <a href="SqlTester.VmName.html" title="enum in org.apache.calcite.sql.test">SqlTester.VmName</a></code></li>
</ul>
</li>
</ul>
</section>
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#factory">factory</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.apache.calcite.sql.test.SqlTestFactory)">AbstractSqlTester</a></span>&#8203;(<a href="SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a>&nbsp;factory)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#assertExceptionIsThrown(java.lang.String,java.lang.String)">assertExceptionIsThrown</a></span>&#8203;(java.lang.String&nbsp;sql,
java.lang.String&nbsp;expectedMsgPattern)</code></th>
<td class="colLast">
<div class="block">Checks that a query is valid, or, if invalid, throws the right
message at the right location.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>private java.lang.Iterable&lt;java.lang.String&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#buildQueries(java.lang.String)">buildQueries</a></span>&#8203;(java.lang.String&nbsp;expression)</code></th>
<td class="colLast">
<div class="block">Converts a scalar expression into a list of SQL queries that
evaluate it.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#buildQuery(java.lang.String)">buildQuery</a></span>&#8203;(java.lang.String&nbsp;expression)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>protected java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#buildQuery2(java.lang.String)">buildQuery2</a></span>&#8203;(java.lang.String&nbsp;expression)</code></th>
<td class="colLast">
<div class="block">Builds a query that extracts all literals as columns in an underlying
select.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#buildQueryAgg(java.lang.String)">buildQueryAgg</a></span>&#8203;(java.lang.String&nbsp;expression)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#check(java.lang.String,org.apache.calcite.sql.test.SqlTester.TypeChecker,java.lang.Object,double)">check</a></span>&#8203;(java.lang.String&nbsp;query,
<a href="SqlTester.TypeChecker.html" title="interface in org.apache.calcite.sql.test">SqlTester.TypeChecker</a>&nbsp;typeChecker,
java.lang.Object&nbsp;result,
double&nbsp;delta)</code></th>
<td class="colLast">
<div class="block">Tests that a SQL query returns a single column with the given type.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#check(java.lang.String,org.apache.calcite.sql.test.SqlTester.TypeChecker,org.apache.calcite.sql.test.SqlTester.ParameterChecker,org.apache.calcite.sql.test.SqlTester.ResultChecker)">check</a></span>&#8203;(java.lang.String&nbsp;query,
<a href="SqlTester.TypeChecker.html" title="interface in org.apache.calcite.sql.test">SqlTester.TypeChecker</a>&nbsp;typeChecker,
<a href="SqlTester.ParameterChecker.html" title="interface in org.apache.calcite.sql.test">SqlTester.ParameterChecker</a>&nbsp;parameterChecker,
<a href="SqlTester.ResultChecker.html" title="interface in org.apache.calcite.sql.test">SqlTester.ResultChecker</a>&nbsp;resultChecker)</code></th>
<td class="colLast">
<div class="block">Tests that a SQL query returns a result of expected type and value.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkAgg(java.lang.String,java.lang.String%5B%5D,java.lang.Object,double)">checkAgg</a></span>&#8203;(java.lang.String&nbsp;expr,
java.lang.String[]&nbsp;inputValues,
java.lang.Object&nbsp;result,
double&nbsp;delta)</code></th>
<td class="colLast">
<div class="block">Checks that an aggregate expression returns the expected result.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkAggWithMultipleArgs(java.lang.String,java.lang.String%5B%5D%5B%5D,java.lang.Object,double)">checkAggWithMultipleArgs</a></span>&#8203;(java.lang.String&nbsp;expr,
java.lang.String[][]&nbsp;inputValues,
java.lang.Object&nbsp;result,
double&nbsp;delta)</code></th>
<td class="colLast">
<div class="block">Checks that an aggregate expression with multiple args returns the expected
result.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkBoolean(java.lang.String,java.lang.Boolean)">checkBoolean</a></span>&#8203;(java.lang.String&nbsp;expression,
java.lang.Boolean&nbsp;result)</code></th>
<td class="colLast">
<div class="block">Tests that a scalar SQL expression returns the expected boolean result.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkCharset(java.lang.String,java.nio.charset.Charset)">checkCharset</a></span>&#8203;(java.lang.String&nbsp;expression,
java.nio.charset.Charset&nbsp;expectedCharset)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkCollation(java.lang.String,java.lang.String,org.apache.calcite.sql.SqlCollation.Coercibility)">checkCollation</a></span>&#8203;(java.lang.String&nbsp;expression,
java.lang.String&nbsp;expectedCollationName,
org.apache.calcite.sql.SqlCollation.Coercibility&nbsp;expectedCoercibility)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkColumnType(java.lang.String,java.lang.String)">checkColumnType</a></span>&#8203;(java.lang.String&nbsp;sql,
java.lang.String&nbsp;expected)</code></th>
<td class="colLast">
<div class="block">Checks that a query returns one column of an expected type.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkFails(java.lang.String,java.lang.String,boolean)">checkFails</a></span>&#8203;(java.lang.String&nbsp;expression,
java.lang.String&nbsp;expectedError,
boolean&nbsp;runtime)</code></th>
<td class="colLast">
<div class="block">Tests that a scalar SQL expression fails at run time.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkFieldOrigin(java.lang.String,java.lang.String)">checkFieldOrigin</a></span>&#8203;(java.lang.String&nbsp;sql,
java.lang.String&nbsp;fieldOriginList)</code></th>
<td class="colLast">
<div class="block">Given a SQL query, returns a list of the origins of each result
field.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkIntervalConv(java.lang.String,java.lang.String)">checkIntervalConv</a></span>&#8203;(java.lang.String&nbsp;sql,
java.lang.String&nbsp;expected)</code></th>
<td class="colLast">
<div class="block">Checks if the interval value conversion to milliseconds is valid.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkMonotonic(java.lang.String,org.apache.calcite.sql.validate.SqlMonotonicity)">checkMonotonic</a></span>&#8203;(java.lang.String&nbsp;query,
org.apache.calcite.sql.validate.SqlMonotonicity&nbsp;expectedMonotonicity)</code></th>
<td class="colLast">
<div class="block">Tests that the first column of a SQL query has a given monotonicity.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkNull(java.lang.String)">checkNull</a></span>&#8203;(java.lang.String&nbsp;expression)</code></th>
<td class="colLast">
<div class="block">Tests that a SQL expression returns the SQL NULL value.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkParseEx(java.lang.Throwable,java.lang.String,java.lang.String)">checkParseEx</a></span>&#8203;(java.lang.Throwable&nbsp;e,
java.lang.String&nbsp;expectedMsgPattern,
java.lang.String&nbsp;sql)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkQuery(java.lang.String)">checkQuery</a></span>&#8203;(java.lang.String&nbsp;sql)</code></th>
<td class="colLast">
<div class="block">Tests that a SQL query succeeds at prepare time.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkQueryFails(java.lang.String,java.lang.String)">checkQueryFails</a></span>&#8203;(java.lang.String&nbsp;sql,
java.lang.String&nbsp;expectedError)</code></th>
<td class="colLast">
<div class="block">Tests that a SQL query fails at prepare time.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkResultType(java.lang.String,java.lang.String)">checkResultType</a></span>&#8203;(java.lang.String&nbsp;sql,
java.lang.String&nbsp;expected)</code></th>
<td class="colLast">
<div class="block">Checks that a query returns one column of an expected type.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkRewrite(org.apache.calcite.sql.validate.SqlValidator,java.lang.String,java.lang.String)">checkRewrite</a></span>&#8203;(org.apache.calcite.sql.validate.SqlValidator&nbsp;validator,
java.lang.String&nbsp;query,
java.lang.String&nbsp;expectedRewrite)</code></th>
<td class="colLast">
<div class="block">Checks that a query gets rewritten to an expected form.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkScalar(java.lang.String,java.lang.Object,java.lang.String)">checkScalar</a></span>&#8203;(java.lang.String&nbsp;expression,
java.lang.Object&nbsp;result,
java.lang.String&nbsp;resultType)</code></th>
<td class="colLast">
<div class="block">Tests that a scalar SQL expression returns the expected result and the
expected type.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkScalarApprox(java.lang.String,java.lang.String,double,double)">checkScalarApprox</a></span>&#8203;(java.lang.String&nbsp;expression,
java.lang.String&nbsp;expectedType,
double&nbsp;expectedResult,
double&nbsp;delta)</code></th>
<td class="colLast">
<div class="block">Tests that a scalar SQL expression returns expected appoximate numeric
result.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkScalarExact(java.lang.String,java.lang.String)">checkScalarExact</a></span>&#8203;(java.lang.String&nbsp;expression,
java.lang.String&nbsp;result)</code></th>
<td class="colLast">
<div class="block">Tests that a scalar SQL expression returns the expected exact numeric
result as an integer.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkScalarExact(java.lang.String,java.lang.String,java.lang.String)">checkScalarExact</a></span>&#8203;(java.lang.String&nbsp;expression,
java.lang.String&nbsp;expectedType,
java.lang.String&nbsp;result)</code></th>
<td class="colLast">
<div class="block">Tests that a scalar SQL expression returns the expected exact numeric
result.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkString(java.lang.String,java.lang.String,java.lang.String)">checkString</a></span>&#8203;(java.lang.String&nbsp;expression,
java.lang.String&nbsp;result,
java.lang.String&nbsp;expectedType)</code></th>
<td class="colLast">
<div class="block">Tests that a scalar SQL expression returns the expected string result.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkType(java.lang.String,java.lang.String)">checkType</a></span>&#8203;(java.lang.String&nbsp;expression,
java.lang.String&nbsp;type)</code></th>
<td class="colLast">
<div class="block">Tests that a SQL expression has a given type.</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkWinAgg(java.lang.String,java.lang.String%5B%5D,java.lang.String,java.lang.String,java.lang.Object,double)">checkWinAgg</a></span>&#8203;(java.lang.String&nbsp;expr,
java.lang.String[]&nbsp;inputValues,
java.lang.String&nbsp;windowSpec,
java.lang.String&nbsp;type,
java.lang.Object&nbsp;result,
double&nbsp;delta)</code></th>
<td class="colLast">
<div class="block">Checks that a windowed aggregate expression returns the expected result.</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#close()">close</a></span>()</code></th>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code><a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#enableTypeCoercion(boolean)">enableTypeCoercion</a></span>&#8203;(boolean&nbsp;enabled)</code></th>
<td class="colLast">
<div class="block">Returns a tester that tests with implicit type coercion on/off.</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>org.apache.calcite.rel.type.RelDataType</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getColumnType(java.lang.String)">getColumnType</a></span>&#8203;(java.lang.String&nbsp;sql)</code></th>
<td class="colLast">
<div class="block">Returns the data type of the sole column of a SQL query.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>org.apache.calcite.sql.validate.SqlConformance</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getConformance()">getConformance</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code><a href="SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getFactory()">getFactory</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code>org.apache.calcite.sql.validate.SqlMonotonicity</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMonotonicity(java.lang.String)">getMonotonicity</a></span>&#8203;(java.lang.String&nbsp;sql)</code></th>
<td class="colLast">
<div class="block">Given a SQL query, returns the monotonicity of the first item in the
SELECT clause.</div>
</td>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><code>org.apache.calcite.rel.type.RelDataType</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getResultType(java.lang.String)">getResultType</a></span>&#8203;(java.lang.String&nbsp;sql)</code></th>
<td class="colLast">
<div class="block">Returns the data type of the row returned by a SQL query.</div>
</td>
</tr>
<tr id="i37" class="rowColor">
<td class="colFirst"><code>org.apache.calcite.sql.validate.SqlValidator</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getValidator()">getValidator</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i38" class="altColor">
<td class="colFirst"><code>org.apache.calcite.sql.SqlNode</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#parseAndValidate(org.apache.calcite.sql.validate.SqlValidator,java.lang.String)">parseAndValidate</a></span>&#8203;(org.apache.calcite.sql.validate.SqlValidator&nbsp;validator,
java.lang.String&nbsp;sql)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i39" class="rowColor">
<td class="colFirst"><code>org.apache.calcite.sql.SqlNode</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#parseQuery(java.lang.String)">parseQuery</a></span>&#8203;(java.lang.String&nbsp;sql)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i40" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setFor(org.apache.calcite.sql.SqlOperator,org.apache.calcite.sql.test.SqlTester.VmName...)">setFor</a></span>&#8203;(org.apache.calcite.sql.SqlOperator&nbsp;operator,
<a href="SqlTester.VmName.html" title="enum in org.apache.calcite.sql.test">SqlTester.VmName</a>...&nbsp;unimplementedVmNames)</code></th>
<td class="colLast">
<div class="block">Declares that this test is for a given operator.</div>
</td>
</tr>
<tr id="i41" class="rowColor">
<td class="colFirst"><code>protected <a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#with(java.lang.String,java.lang.Object)">with</a></span>&#8203;(java.lang.String&nbsp;name,
java.lang.Object&nbsp;value)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i42" class="altColor">
<td class="colFirst"><code>protected abstract <a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#with(org.apache.calcite.sql.test.SqlTestFactory)">with</a></span>&#8203;(<a href="SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a>&nbsp;factory)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i43" class="rowColor">
<td class="colFirst"><code><a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withCaseSensitive(boolean)">withCaseSensitive</a></span>&#8203;(boolean&nbsp;sensitive)</code></th>
<td class="colLast">
<div class="block">Returns a tester that matches identifiers by case-sensitive or
case-insensitive.</div>
</td>
</tr>
<tr id="i44" class="altColor">
<td class="colFirst"><code><a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withConformance(org.apache.calcite.sql.validate.SqlConformance)">withConformance</a></span>&#8203;(org.apache.calcite.sql.validate.SqlConformance&nbsp;conformance)</code></th>
<td class="colLast">
<div class="block">Returns a tester that tests conformance to a particular SQL language
version.</div>
</td>
</tr>
<tr id="i45" class="rowColor">
<td class="colFirst"><code><a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withConnectionFactory(org.apache.calcite.test.CalciteAssert.ConnectionFactory)">withConnectionFactory</a></span>&#8203;(<a href="../../test/CalciteAssert.ConnectionFactory.html" title="class in org.apache.calcite.test">CalciteAssert.ConnectionFactory</a>&nbsp;connectionFactory)</code></th>
<td class="colLast">
<div class="block">Returns a tester that gets connections from a given factory.</div>
</td>
</tr>
<tr id="i46" class="altColor">
<td class="colFirst"><code><a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withLex(org.apache.calcite.config.Lex)">withLex</a></span>&#8203;(org.apache.calcite.config.Lex&nbsp;lex)</code></th>
<td class="colLast">
<div class="block">Returns a tester that follows a lex policy.</div>
</td>
</tr>
<tr id="i47" class="rowColor">
<td class="colFirst"><code><a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withOperatorTable(org.apache.calcite.sql.SqlOperatorTable)">withOperatorTable</a></span>&#8203;(org.apache.calcite.sql.SqlOperatorTable&nbsp;operatorTable)</code></th>
<td class="colLast">
<div class="block">Returns a tester that uses a given operator table.</div>
</td>
</tr>
<tr id="i48" class="altColor">
<td class="colFirst"><code><a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withQuotedCasing(org.apache.calcite.avatica.util.Casing)">withQuotedCasing</a></span>&#8203;(org.apache.calcite.avatica.util.Casing&nbsp;casing)</code></th>
<td class="colLast">
<div class="block">Returns a tester that applies a given casing policy to quoted
identifiers.</div>
</td>
</tr>
<tr id="i49" class="rowColor">
<td class="colFirst"><code><a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withQuoting(org.apache.calcite.avatica.util.Quoting)">withQuoting</a></span>&#8203;(org.apache.calcite.avatica.util.Quoting&nbsp;quoting)</code></th>
<td class="colLast">
<div class="block">Returns a tester that tests a given SQL quoting style.</div>
</td>
</tr>
<tr id="i50" class="altColor">
<td class="colFirst"><code><a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withUnquotedCasing(org.apache.calcite.avatica.util.Casing)">withUnquotedCasing</a></span>&#8203;(org.apache.calcite.avatica.util.Casing&nbsp;casing)</code></th>
<td class="colLast">
<div class="block">Returns a tester that applies a given casing policy to unquoted
identifiers.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a id="factory">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>factory</h4>
<pre>protected final&nbsp;<a href="SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a> factory</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;(org.apache.calcite.sql.test.SqlTestFactory)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>AbstractSqlTester</h4>
<pre>public&nbsp;AbstractSqlTester&#8203;(<a href="SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a>&nbsp;factory)</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="getFactory()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFactory</h4>
<pre class="methodSignature">public final&nbsp;<a href="SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a>&nbsp;getFactory()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlTester.html#getFactory()">getFactory</a></code>&nbsp;in interface&nbsp;<code><a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a></code></dd>
</dl>
</li>
</ul>
<a id="close()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>close</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;close()</pre>
<div class="block">
<p>This default implementation does nothing.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>close</code>&nbsp;in interface&nbsp;<code>java.lang.AutoCloseable</code></dd>
</dl>
</li>
</ul>
<a id="getConformance()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getConformance</h4>
<pre class="methodSignature">public final&nbsp;org.apache.calcite.sql.validate.SqlConformance&nbsp;getConformance()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../test/SqlValidatorTestCase.Tester.html#getConformance()">getConformance</a></code>&nbsp;in interface&nbsp;<code><a href="../../test/SqlValidatorTestCase.Tester.html" title="interface in org.apache.calcite.test">SqlValidatorTestCase.Tester</a></code></dd>
</dl>
</li>
</ul>
<a id="getValidator()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getValidator</h4>
<pre class="methodSignature">public final&nbsp;org.apache.calcite.sql.validate.SqlValidator&nbsp;getValidator()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../test/SqlValidatorTestCase.Tester.html#getValidator()">getValidator</a></code>&nbsp;in interface&nbsp;<code><a href="../../test/SqlValidatorTestCase.Tester.html" title="interface in org.apache.calcite.test">SqlValidatorTestCase.Tester</a></code></dd>
</dl>
</li>
</ul>
<a id="assertExceptionIsThrown(java.lang.String,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>assertExceptionIsThrown</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;assertExceptionIsThrown&#8203;(java.lang.String&nbsp;sql,
java.lang.String&nbsp;expectedMsgPattern)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../test/SqlValidatorTestCase.Tester.html#assertExceptionIsThrown(java.lang.String,java.lang.String)">SqlValidatorTestCase.Tester</a></code></span></div>
<div class="block">Checks that a query is valid, or, if invalid, throws the right
message at the right location.
<p>If <code>expectedMsgPattern</code> is null, the query must
succeed.
<p>If <code>expectedMsgPattern</code> is not null, the query must
fail, and give an error location of (expectedLine, expectedColumn)
through (expectedEndLine, expectedEndColumn).</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../test/SqlValidatorTestCase.Tester.html#assertExceptionIsThrown(java.lang.String,java.lang.String)">assertExceptionIsThrown</a></code>&nbsp;in interface&nbsp;<code><a href="../../test/SqlValidatorTestCase.Tester.html" title="interface in org.apache.calcite.test">SqlValidatorTestCase.Tester</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sql</code> - SQL statement</dd>
<dd><code>expectedMsgPattern</code> - If this parameter is null the query must be
valid for the test to pass; If this parameter
is not null the query must be malformed and the
message given must match the pattern</dd>
</dl>
</li>
</ul>
<a id="checkParseEx(java.lang.Throwable,java.lang.String,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkParseEx</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;checkParseEx&#8203;(java.lang.Throwable&nbsp;e,
java.lang.String&nbsp;expectedMsgPattern,
java.lang.String&nbsp;sql)</pre>
</li>
</ul>
<a id="getColumnType(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getColumnType</h4>
<pre class="methodSignature">public&nbsp;org.apache.calcite.rel.type.RelDataType&nbsp;getColumnType&#8203;(java.lang.String&nbsp;sql)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../test/SqlValidatorTestCase.Tester.html#getColumnType(java.lang.String)">SqlValidatorTestCase.Tester</a></code></span></div>
<div class="block">Returns the data type of the sole column of a SQL query.
<p>For example, <code>getResultType("VALUES (1")</code> returns
<code>INTEGER</code>.
<p>Fails if query returns more than one column.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../test/SqlValidatorTestCase.Tester.html#getColumnType(java.lang.String)">getColumnType</a></code>&nbsp;in interface&nbsp;<code><a href="../../test/SqlValidatorTestCase.Tester.html" title="interface in org.apache.calcite.test">SqlValidatorTestCase.Tester</a></code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../test/SqlValidatorTestCase.Tester.html#getResultType(java.lang.String)"><code>SqlValidatorTestCase.Tester.getResultType(String)</code></a></dd>
</dl>
</li>
</ul>
<a id="getResultType(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getResultType</h4>
<pre class="methodSignature">public&nbsp;org.apache.calcite.rel.type.RelDataType&nbsp;getResultType&#8203;(java.lang.String&nbsp;sql)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../test/SqlValidatorTestCase.Tester.html#getResultType(java.lang.String)">SqlValidatorTestCase.Tester</a></code></span></div>
<div class="block">Returns the data type of the row returned by a SQL query.
<p>For example, <code>getResultType("VALUES (1, 'foo')")</code>
returns <code>RecordType(INTEGER EXPR$0, CHAR(3) EXPR#1)</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../test/SqlValidatorTestCase.Tester.html#getResultType(java.lang.String)">getResultType</a></code>&nbsp;in interface&nbsp;<code><a href="../../test/SqlValidatorTestCase.Tester.html" title="interface in org.apache.calcite.test">SqlValidatorTestCase.Tester</a></code></dd>
</dl>
</li>
</ul>
<a id="parseAndValidate(org.apache.calcite.sql.validate.SqlValidator,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>parseAndValidate</h4>
<pre class="methodSignature">public&nbsp;org.apache.calcite.sql.SqlNode&nbsp;parseAndValidate&#8203;(org.apache.calcite.sql.validate.SqlValidator&nbsp;validator,
java.lang.String&nbsp;sql)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../test/SqlValidatorTestCase.Tester.html#parseAndValidate(org.apache.calcite.sql.validate.SqlValidator,java.lang.String)">parseAndValidate</a></code>&nbsp;in interface&nbsp;<code><a href="../../test/SqlValidatorTestCase.Tester.html" title="interface in org.apache.calcite.test">SqlValidatorTestCase.Tester</a></code></dd>
</dl>
</li>
</ul>
<a id="parseQuery(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>parseQuery</h4>
<pre class="methodSignature">public&nbsp;org.apache.calcite.sql.SqlNode&nbsp;parseQuery&#8203;(java.lang.String&nbsp;sql)
throws org.apache.calcite.sql.parser.SqlParseException</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../test/SqlValidatorTestCase.Tester.html#parseQuery(java.lang.String)">parseQuery</a></code>&nbsp;in interface&nbsp;<code><a href="../../test/SqlValidatorTestCase.Tester.html" title="interface in org.apache.calcite.test">SqlValidatorTestCase.Tester</a></code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.calcite.sql.parser.SqlParseException</code></dd>
</dl>
</li>
</ul>
<a id="checkColumnType(java.lang.String,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkColumnType</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;checkColumnType&#8203;(java.lang.String&nbsp;sql,
java.lang.String&nbsp;expected)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlTester.html#checkColumnType(java.lang.String,java.lang.String)">SqlTester</a></code></span></div>
<div class="block">Checks that a query returns one column of an expected type. For example,
<code>checkType("VALUES (1 + 2)", "INTEGER NOT NULL")</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlTester.html#checkColumnType(java.lang.String,java.lang.String)">checkColumnType</a></code>&nbsp;in interface&nbsp;<code><a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../test/SqlValidatorTestCase.Tester.html#checkColumnType(java.lang.String,java.lang.String)">checkColumnType</a></code>&nbsp;in interface&nbsp;<code><a href="../../test/SqlValidatorTestCase.Tester.html" title="interface in org.apache.calcite.test">SqlValidatorTestCase.Tester</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sql</code> - Query expression</dd>
<dd><code>expected</code> - Type string</dd>
</dl>
</li>
</ul>
<a id="checkFieldOrigin(java.lang.String,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkFieldOrigin</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;checkFieldOrigin&#8203;(java.lang.String&nbsp;sql,
java.lang.String&nbsp;fieldOriginList)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../test/SqlValidatorTestCase.Tester.html#checkFieldOrigin(java.lang.String,java.lang.String)">SqlValidatorTestCase.Tester</a></code></span></div>
<div class="block">Given a SQL query, returns a list of the origins of each result
field.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../test/SqlValidatorTestCase.Tester.html#checkFieldOrigin(java.lang.String,java.lang.String)">checkFieldOrigin</a></code>&nbsp;in interface&nbsp;<code><a href="../../test/SqlValidatorTestCase.Tester.html" title="interface in org.apache.calcite.test">SqlValidatorTestCase.Tester</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sql</code> - SQL query</dd>
<dd><code>fieldOriginList</code> - Field origin list, e.g.
"{(CATALOG.SALES.EMP.EMPNO, null)}"</dd>
</dl>
</li>
</ul>
<a id="checkResultType(java.lang.String,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkResultType</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;checkResultType&#8203;(java.lang.String&nbsp;sql,
java.lang.String&nbsp;expected)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../test/SqlValidatorTestCase.Tester.html#checkResultType(java.lang.String,java.lang.String)">SqlValidatorTestCase.Tester</a></code></span></div>
<div class="block">Checks that a query returns one column of an expected type. For
example, <code>checkType("select empno, name from emp""{EMPNO INTEGER
NOT NULL, NAME VARCHAR(10) NOT NULL}")</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../test/SqlValidatorTestCase.Tester.html#checkResultType(java.lang.String,java.lang.String)">checkResultType</a></code>&nbsp;in interface&nbsp;<code><a href="../../test/SqlValidatorTestCase.Tester.html" title="interface in org.apache.calcite.test">SqlValidatorTestCase.Tester</a></code></dd>
</dl>
</li>
</ul>
<a id="checkIntervalConv(java.lang.String,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkIntervalConv</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;checkIntervalConv&#8203;(java.lang.String&nbsp;sql,
java.lang.String&nbsp;expected)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../test/SqlValidatorTestCase.Tester.html#checkIntervalConv(java.lang.String,java.lang.String)">SqlValidatorTestCase.Tester</a></code></span></div>
<div class="block">Checks if the interval value conversion to milliseconds is valid. For
example, <code>checkIntervalConv(VALUES (INTERVAL '1' Minute),
"60000")</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../test/SqlValidatorTestCase.Tester.html#checkIntervalConv(java.lang.String,java.lang.String)">checkIntervalConv</a></code>&nbsp;in interface&nbsp;<code><a href="../../test/SqlValidatorTestCase.Tester.html" title="interface in org.apache.calcite.test">SqlValidatorTestCase.Tester</a></code></dd>
</dl>
</li>
</ul>
<a id="checkType(java.lang.String,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkType</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;checkType&#8203;(java.lang.String&nbsp;expression,
java.lang.String&nbsp;type)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlTester.html#checkType(java.lang.String,java.lang.String)">SqlTester</a></code></span></div>
<div class="block">Tests that a SQL expression has a given type. For example,
<blockquote>
<code>checkType("SUBSTR('hello' FROM 1 FOR 3)",
"VARCHAR(3) NOT NULL");</code>
</blockquote>
<p>This method checks length/precision, scale, and whether the type allows
NULL values, so is more precise than the type-checking done by methods
such as <a href="SqlTester.html#checkScalarExact(java.lang.String,java.lang.String)"><code>SqlTester.checkScalarExact(java.lang.String, java.lang.String)</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlTester.html#checkType(java.lang.String,java.lang.String)">checkType</a></code>&nbsp;in interface&nbsp;<code><a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>expression</code> - Scalar expression</dd>
<dd><code>type</code> - Type string</dd>
</dl>
</li>
</ul>
<a id="checkCollation(java.lang.String,java.lang.String,org.apache.calcite.sql.SqlCollation.Coercibility)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkCollation</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;checkCollation&#8203;(java.lang.String&nbsp;expression,
java.lang.String&nbsp;expectedCollationName,
org.apache.calcite.sql.SqlCollation.Coercibility&nbsp;expectedCoercibility)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../test/SqlValidatorTestCase.Tester.html#checkCollation(java.lang.String,java.lang.String,org.apache.calcite.sql.SqlCollation.Coercibility)">checkCollation</a></code>&nbsp;in interface&nbsp;<code><a href="../../test/SqlValidatorTestCase.Tester.html" title="interface in org.apache.calcite.test">SqlValidatorTestCase.Tester</a></code></dd>
</dl>
</li>
</ul>
<a id="checkCharset(java.lang.String,java.nio.charset.Charset)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkCharset</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;checkCharset&#8203;(java.lang.String&nbsp;expression,
java.nio.charset.Charset&nbsp;expectedCharset)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../test/SqlValidatorTestCase.Tester.html#checkCharset(java.lang.String,java.nio.charset.Charset)">checkCharset</a></code>&nbsp;in interface&nbsp;<code><a href="../../test/SqlValidatorTestCase.Tester.html" title="interface in org.apache.calcite.test">SqlValidatorTestCase.Tester</a></code></dd>
</dl>
</li>
</ul>
<a id="withQuoting(org.apache.calcite.avatica.util.Quoting)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>withQuoting</h4>
<pre class="methodSignature">public&nbsp;<a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a>&nbsp;withQuoting&#8203;(org.apache.calcite.avatica.util.Quoting&nbsp;quoting)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlTester.html#withQuoting(org.apache.calcite.avatica.util.Quoting)">SqlTester</a></code></span></div>
<div class="block">Returns a tester that tests a given SQL quoting style.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlTester.html#withQuoting(org.apache.calcite.avatica.util.Quoting)">withQuoting</a></code>&nbsp;in interface&nbsp;<code><a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a></code></dd>
</dl>
</li>
</ul>
<a id="withQuotedCasing(org.apache.calcite.avatica.util.Casing)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>withQuotedCasing</h4>
<pre class="methodSignature">public&nbsp;<a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a>&nbsp;withQuotedCasing&#8203;(org.apache.calcite.avatica.util.Casing&nbsp;casing)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlTester.html#withQuotedCasing(org.apache.calcite.avatica.util.Casing)">SqlTester</a></code></span></div>
<div class="block">Returns a tester that applies a given casing policy to quoted
identifiers.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlTester.html#withQuotedCasing(org.apache.calcite.avatica.util.Casing)">withQuotedCasing</a></code>&nbsp;in interface&nbsp;<code><a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a></code></dd>
</dl>
</li>
</ul>
<a id="withUnquotedCasing(org.apache.calcite.avatica.util.Casing)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>withUnquotedCasing</h4>
<pre class="methodSignature">public&nbsp;<a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a>&nbsp;withUnquotedCasing&#8203;(org.apache.calcite.avatica.util.Casing&nbsp;casing)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlTester.html#withUnquotedCasing(org.apache.calcite.avatica.util.Casing)">SqlTester</a></code></span></div>
<div class="block">Returns a tester that applies a given casing policy to unquoted
identifiers.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlTester.html#withUnquotedCasing(org.apache.calcite.avatica.util.Casing)">withUnquotedCasing</a></code>&nbsp;in interface&nbsp;<code><a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a></code></dd>
</dl>
</li>
</ul>
<a id="withCaseSensitive(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>withCaseSensitive</h4>
<pre class="methodSignature">public&nbsp;<a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a>&nbsp;withCaseSensitive&#8203;(boolean&nbsp;sensitive)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlTester.html#withCaseSensitive(boolean)">SqlTester</a></code></span></div>
<div class="block">Returns a tester that matches identifiers by case-sensitive or
case-insensitive.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlTester.html#withCaseSensitive(boolean)">withCaseSensitive</a></code>&nbsp;in interface&nbsp;<code><a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a></code></dd>
</dl>
</li>
</ul>
<a id="withLex(org.apache.calcite.config.Lex)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>withLex</h4>
<pre class="methodSignature">public&nbsp;<a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a>&nbsp;withLex&#8203;(org.apache.calcite.config.Lex&nbsp;lex)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlTester.html#withLex(org.apache.calcite.config.Lex)">SqlTester</a></code></span></div>
<div class="block">Returns a tester that follows a lex policy.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlTester.html#withLex(org.apache.calcite.config.Lex)">withLex</a></code>&nbsp;in interface&nbsp;<code><a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a></code></dd>
</dl>
</li>
</ul>
<a id="withConformance(org.apache.calcite.sql.validate.SqlConformance)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>withConformance</h4>
<pre class="methodSignature">public&nbsp;<a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a>&nbsp;withConformance&#8203;(org.apache.calcite.sql.validate.SqlConformance&nbsp;conformance)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlTester.html#withConformance(org.apache.calcite.sql.validate.SqlConformance)">SqlTester</a></code></span></div>
<div class="block">Returns a tester that tests conformance to a particular SQL language
version.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlTester.html#withConformance(org.apache.calcite.sql.validate.SqlConformance)">withConformance</a></code>&nbsp;in interface&nbsp;<code><a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a></code></dd>
</dl>
</li>
</ul>
<a id="enableTypeCoercion(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>enableTypeCoercion</h4>
<pre class="methodSignature">public&nbsp;<a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a>&nbsp;enableTypeCoercion&#8203;(boolean&nbsp;enabled)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlTester.html#enableTypeCoercion(boolean)">SqlTester</a></code></span></div>
<div class="block">Returns a tester that tests with implicit type coercion on/off.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlTester.html#enableTypeCoercion(boolean)">enableTypeCoercion</a></code>&nbsp;in interface&nbsp;<code><a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a></code></dd>
</dl>
</li>
</ul>
<a id="withOperatorTable(org.apache.calcite.sql.SqlOperatorTable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>withOperatorTable</h4>
<pre class="methodSignature">public&nbsp;<a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a>&nbsp;withOperatorTable&#8203;(org.apache.calcite.sql.SqlOperatorTable&nbsp;operatorTable)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlTester.html#withOperatorTable(org.apache.calcite.sql.SqlOperatorTable)">SqlTester</a></code></span></div>
<div class="block">Returns a tester that uses a given operator table.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlTester.html#withOperatorTable(org.apache.calcite.sql.SqlOperatorTable)">withOperatorTable</a></code>&nbsp;in interface&nbsp;<code><a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a></code></dd>
</dl>
</li>
</ul>
<a id="withConnectionFactory(org.apache.calcite.test.CalciteAssert.ConnectionFactory)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>withConnectionFactory</h4>
<pre class="methodSignature">public&nbsp;<a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a>&nbsp;withConnectionFactory&#8203;(<a href="../../test/CalciteAssert.ConnectionFactory.html" title="class in org.apache.calcite.test">CalciteAssert.ConnectionFactory</a>&nbsp;connectionFactory)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlTester.html#withConnectionFactory(org.apache.calcite.test.CalciteAssert.ConnectionFactory)">SqlTester</a></code></span></div>
<div class="block">Returns a tester that gets connections from a given factory.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlTester.html#withConnectionFactory(org.apache.calcite.test.CalciteAssert.ConnectionFactory)">withConnectionFactory</a></code>&nbsp;in interface&nbsp;<code><a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a></code></dd>
</dl>
</li>
</ul>
<a id="with(java.lang.String,java.lang.Object)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>with</h4>
<pre class="methodSignature">protected final&nbsp;<a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a>&nbsp;with&#8203;(java.lang.String&nbsp;name,
java.lang.Object&nbsp;value)</pre>
</li>
</ul>
<a id="with(org.apache.calcite.sql.test.SqlTestFactory)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>with</h4>
<pre class="methodSignature">protected abstract&nbsp;<a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a>&nbsp;with&#8203;(<a href="SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a>&nbsp;factory)</pre>
</li>
</ul>
<a id="setFor(org.apache.calcite.sql.SqlOperator,org.apache.calcite.sql.test.SqlTester.VmName...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setFor</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setFor&#8203;(org.apache.calcite.sql.SqlOperator&nbsp;operator,
<a href="SqlTester.VmName.html" title="enum in org.apache.calcite.sql.test">SqlTester.VmName</a>...&nbsp;unimplementedVmNames)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlTester.html#setFor(org.apache.calcite.sql.SqlOperator,org.apache.calcite.sql.test.SqlTester.VmName...)">SqlTester</a></code></span></div>
<div class="block">Declares that this test is for a given operator. So we can check that all
operators are tested.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlTester.html#setFor(org.apache.calcite.sql.SqlOperator,org.apache.calcite.sql.test.SqlTester.VmName...)">setFor</a></code>&nbsp;in interface&nbsp;<code><a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>operator</code> - Operator</dd>
<dd><code>unimplementedVmNames</code> - Names of virtual machines for which this</dd>
</dl>
</li>
</ul>
<a id="checkAgg(java.lang.String,java.lang.String[],java.lang.Object,double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkAgg</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;checkAgg&#8203;(java.lang.String&nbsp;expr,
java.lang.String[]&nbsp;inputValues,
java.lang.Object&nbsp;result,
double&nbsp;delta)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlTester.html#checkAgg(java.lang.String,java.lang.String%5B%5D,java.lang.Object,double)">SqlTester</a></code></span></div>
<div class="block">Checks that an aggregate expression returns the expected result.
<p>For example, <code>checkAgg("AVG(DISTINCT x)", new String[] {"2", "3",
null, "3" }, new Double(2.5), 0);</code></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlTester.html#checkAgg(java.lang.String,java.lang.String%5B%5D,java.lang.Object,double)">checkAgg</a></code>&nbsp;in interface&nbsp;<code><a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>expr</code> - Aggregate expression, e.g. <code>SUM(DISTINCT x)</code></dd>
<dd><code>inputValues</code> - Array of input values, e.g. <code>["1", null,
"2"]</code>.</dd>
<dd><code>result</code> - Expected result</dd>
<dd><code>delta</code> - Allowable variance from expected result</dd>
</dl>
</li>
</ul>
<a id="checkAggWithMultipleArgs(java.lang.String,java.lang.String[][],java.lang.Object,double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkAggWithMultipleArgs</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;checkAggWithMultipleArgs&#8203;(java.lang.String&nbsp;expr,
java.lang.String[][]&nbsp;inputValues,
java.lang.Object&nbsp;result,
double&nbsp;delta)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlTester.html#checkAggWithMultipleArgs(java.lang.String,java.lang.String%5B%5D%5B%5D,java.lang.Object,double)">SqlTester</a></code></span></div>
<div class="block">Checks that an aggregate expression with multiple args returns the expected
result.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlTester.html#checkAggWithMultipleArgs(java.lang.String,java.lang.String%5B%5D%5B%5D,java.lang.Object,double)">checkAggWithMultipleArgs</a></code>&nbsp;in interface&nbsp;<code><a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>expr</code> - Aggregate expression, e.g. <code>AGG_FUNC(x, x2, x3)</code></dd>
<dd><code>inputValues</code> - Nested array of input values, e.g. <code>[
["1", null, "2"]
["3", "4", null]
]</code>.</dd>
<dd><code>result</code> - Expected result</dd>
<dd><code>delta</code> - Allowable variance from expected result</dd>
</dl>
</li>
</ul>
<a id="checkWinAgg(java.lang.String,java.lang.String[],java.lang.String,java.lang.String,java.lang.Object,double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkWinAgg</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;checkWinAgg&#8203;(java.lang.String&nbsp;expr,
java.lang.String[]&nbsp;inputValues,
java.lang.String&nbsp;windowSpec,
java.lang.String&nbsp;type,
java.lang.Object&nbsp;result,
double&nbsp;delta)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlTester.html#checkWinAgg(java.lang.String,java.lang.String%5B%5D,java.lang.String,java.lang.String,java.lang.Object,double)">SqlTester</a></code></span></div>
<div class="block">Checks that a windowed aggregate expression returns the expected result.
<p>For example, <code>checkWinAgg("FIRST_VALUE(x)", new String[] {"2",
"3", null, "3" }, "INTEGER NOT NULL", 2, 0d);</code></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlTester.html#checkWinAgg(java.lang.String,java.lang.String%5B%5D,java.lang.String,java.lang.String,java.lang.Object,double)">checkWinAgg</a></code>&nbsp;in interface&nbsp;<code><a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>expr</code> - Aggregate expression, e.g. <code>SUM(DISTINCT x)</code></dd>
<dd><code>inputValues</code> - Array of input values, e.g. <code>["1", null,
"2"]</code>.</dd>
<dd><code>type</code> - Expected result type</dd>
<dd><code>result</code> - Expected result</dd>
<dd><code>delta</code> - Allowable variance from expected result</dd>
</dl>
</li>
</ul>
<a id="checkScalar(java.lang.String,java.lang.Object,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkScalar</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;checkScalar&#8203;(java.lang.String&nbsp;expression,
java.lang.Object&nbsp;result,
java.lang.String&nbsp;resultType)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlTester.html#checkScalar(java.lang.String,java.lang.Object,java.lang.String)">SqlTester</a></code></span></div>
<div class="block">Tests that a scalar SQL expression returns the expected result and the
expected type. For example,
<blockquote>
<pre>checkScalar("1.1 + 2.9", "4.0", "DECIMAL(2, 1) NOT NULL");</pre>
</blockquote></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlTester.html#checkScalar(java.lang.String,java.lang.Object,java.lang.String)">checkScalar</a></code>&nbsp;in interface&nbsp;<code><a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>expression</code> - Scalar expression</dd>
<dd><code>result</code> - Expected result</dd>
<dd><code>resultType</code> - Expected result type</dd>
</dl>
</li>
</ul>
<a id="checkScalarExact(java.lang.String,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkScalarExact</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;checkScalarExact&#8203;(java.lang.String&nbsp;expression,
java.lang.String&nbsp;result)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlTester.html#checkScalarExact(java.lang.String,java.lang.String)">SqlTester</a></code></span></div>
<div class="block">Tests that a scalar SQL expression returns the expected exact numeric
result as an integer. For example,
<blockquote>
<pre>checkScalarExact("1 + 2", "3");</pre>
</blockquote></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlTester.html#checkScalarExact(java.lang.String,java.lang.String)">checkScalarExact</a></code>&nbsp;in interface&nbsp;<code><a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>expression</code> - Scalar expression</dd>
<dd><code>result</code> - Expected result</dd>
</dl>
</li>
</ul>
<a id="checkScalarExact(java.lang.String,java.lang.String,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkScalarExact</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;checkScalarExact&#8203;(java.lang.String&nbsp;expression,
java.lang.String&nbsp;expectedType,
java.lang.String&nbsp;result)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlTester.html#checkScalarExact(java.lang.String,java.lang.String,java.lang.String)">SqlTester</a></code></span></div>
<div class="block">Tests that a scalar SQL expression returns the expected exact numeric
result. For example,
<blockquote>
<pre>checkScalarExact("1 + 2", "3");</pre>
</blockquote></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlTester.html#checkScalarExact(java.lang.String,java.lang.String,java.lang.String)">checkScalarExact</a></code>&nbsp;in interface&nbsp;<code><a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>expression</code> - Scalar expression</dd>
<dd><code>expectedType</code> - Type we expect the result to have, including
nullability, precision and scale, for example
<code>DECIMAL(2, 1) NOT NULL</code>.</dd>
<dd><code>result</code> - Expected result</dd>
</dl>
</li>
</ul>
<a id="checkScalarApprox(java.lang.String,java.lang.String,double,double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkScalarApprox</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;checkScalarApprox&#8203;(java.lang.String&nbsp;expression,
java.lang.String&nbsp;expectedType,
double&nbsp;expectedResult,
double&nbsp;delta)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlTester.html#checkScalarApprox(java.lang.String,java.lang.String,double,double)">SqlTester</a></code></span></div>
<div class="block">Tests that a scalar SQL expression returns expected appoximate numeric
result. For example,
<blockquote>
<pre>checkScalarApprox("1.0 + 2.1", "3.1");</pre>
</blockquote></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlTester.html#checkScalarApprox(java.lang.String,java.lang.String,double,double)">checkScalarApprox</a></code>&nbsp;in interface&nbsp;<code><a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>expression</code> - Scalar expression</dd>
<dd><code>expectedType</code> - Type we expect the result to have, including
nullability, precision and scale, for example
<code>DECIMAL(2, 1) NOT NULL</code>.</dd>
<dd><code>expectedResult</code> - Expected result</dd>
<dd><code>delta</code> - Allowed margin of error between expected and actual
result</dd>
</dl>
</li>
</ul>
<a id="checkBoolean(java.lang.String,java.lang.Boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkBoolean</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;checkBoolean&#8203;(java.lang.String&nbsp;expression,
java.lang.Boolean&nbsp;result)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlTester.html#checkBoolean(java.lang.String,java.lang.Boolean)">SqlTester</a></code></span></div>
<div class="block">Tests that a scalar SQL expression returns the expected boolean result.
For example,
<blockquote>
<pre>checkScalarExact("TRUE AND FALSE", Boolean.TRUE);</pre>
</blockquote>
<p>The expected result can be null:
<blockquote>
<pre>checkScalarExact("NOT UNKNOWN", null);</pre>
</blockquote></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlTester.html#checkBoolean(java.lang.String,java.lang.Boolean)">checkBoolean</a></code>&nbsp;in interface&nbsp;<code><a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>expression</code> - Scalar expression</dd>
<dd><code>result</code> - Expected result (null signifies NULL).</dd>
</dl>
</li>
</ul>
<a id="checkString(java.lang.String,java.lang.String,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkString</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;checkString&#8203;(java.lang.String&nbsp;expression,
java.lang.String&nbsp;result,
java.lang.String&nbsp;expectedType)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlTester.html#checkString(java.lang.String,java.lang.String,java.lang.String)">SqlTester</a></code></span></div>
<div class="block">Tests that a scalar SQL expression returns the expected string result.
For example,
<blockquote>
<pre>checkScalarExact("'ab' || 'c'", "abc");</pre>
</blockquote></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlTester.html#checkString(java.lang.String,java.lang.String,java.lang.String)">checkString</a></code>&nbsp;in interface&nbsp;<code><a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>expression</code> - Scalar expression</dd>
<dd><code>result</code> - Expected result</dd>
<dd><code>expectedType</code> - Expected result type</dd>
</dl>
</li>
</ul>
<a id="checkNull(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkNull</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;checkNull&#8203;(java.lang.String&nbsp;expression)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlTester.html#checkNull(java.lang.String)">SqlTester</a></code></span></div>
<div class="block">Tests that a SQL expression returns the SQL NULL value. For example,
<blockquote>
<pre>checkNull("CHAR_LENGTH(CAST(NULL AS VARCHAR(3))");</pre>
</blockquote></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlTester.html#checkNull(java.lang.String)">checkNull</a></code>&nbsp;in interface&nbsp;<code><a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>expression</code> - Scalar expression</dd>
</dl>
</li>
</ul>
<a id="check(java.lang.String,org.apache.calcite.sql.test.SqlTester.TypeChecker,java.lang.Object,double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>check</h4>
<pre class="methodSignature">public final&nbsp;void&nbsp;check&#8203;(java.lang.String&nbsp;query,
<a href="SqlTester.TypeChecker.html" title="interface in org.apache.calcite.sql.test">SqlTester.TypeChecker</a>&nbsp;typeChecker,
java.lang.Object&nbsp;result,
double&nbsp;delta)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlTester.html#check(java.lang.String,org.apache.calcite.sql.test.SqlTester.TypeChecker,java.lang.Object,double)">SqlTester</a></code></span></div>
<div class="block">Tests that a SQL query returns a single column with the given type. For
example,
<blockquote>
<pre>check("VALUES (1 + 2)", "3", SqlTypeName.Integer);</pre>
</blockquote>
<p>If <code>result</code> is null, the expression must yield the SQL NULL
value. If <code>result</code> is a <code>Pattern</code>, the
result must match that pattern.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlTester.html#check(java.lang.String,org.apache.calcite.sql.test.SqlTester.TypeChecker,java.lang.Object,double)">check</a></code>&nbsp;in interface&nbsp;<code><a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>query</code> - SQL query</dd>
<dd><code>typeChecker</code> - Checks whether the result is the expected type; must
not be null</dd>
<dd><code>result</code> - Expected result</dd>
<dd><code>delta</code> - The acceptable tolerance between the expected and actual</dd>
</dl>
</li>
</ul>
<a id="check(java.lang.String,org.apache.calcite.sql.test.SqlTester.TypeChecker,org.apache.calcite.sql.test.SqlTester.ParameterChecker,org.apache.calcite.sql.test.SqlTester.ResultChecker)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>check</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;check&#8203;(java.lang.String&nbsp;query,
<a href="SqlTester.TypeChecker.html" title="interface in org.apache.calcite.sql.test">SqlTester.TypeChecker</a>&nbsp;typeChecker,
<a href="SqlTester.ParameterChecker.html" title="interface in org.apache.calcite.sql.test">SqlTester.ParameterChecker</a>&nbsp;parameterChecker,
<a href="SqlTester.ResultChecker.html" title="interface in org.apache.calcite.sql.test">SqlTester.ResultChecker</a>&nbsp;resultChecker)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlTester.html#check(java.lang.String,org.apache.calcite.sql.test.SqlTester.TypeChecker,org.apache.calcite.sql.test.SqlTester.ParameterChecker,org.apache.calcite.sql.test.SqlTester.ResultChecker)">SqlTester</a></code></span></div>
<div class="block">Tests that a SQL query returns a result of expected type and value.
Checking of type and value are abstracted using <a href="SqlTester.TypeChecker.html" title="interface in org.apache.calcite.sql.test"><code>SqlTester.TypeChecker</code></a>
and <a href="SqlTester.ResultChecker.html" title="interface in org.apache.calcite.sql.test"><code>SqlTester.ResultChecker</code></a> functors.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlTester.html#check(java.lang.String,org.apache.calcite.sql.test.SqlTester.TypeChecker,org.apache.calcite.sql.test.SqlTester.ParameterChecker,org.apache.calcite.sql.test.SqlTester.ResultChecker)">check</a></code>&nbsp;in interface&nbsp;<code><a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>query</code> - SQL query</dd>
<dd><code>typeChecker</code> - Checks whether the result is the expected type; must
not be null</dd>
<dd><code>parameterChecker</code> - Checks whether the parameters are of expected
types</dd>
<dd><code>resultChecker</code> - Checks whether the result has the expected value;
must not be null</dd>
</dl>
</li>
</ul>
<a id="checkMonotonic(java.lang.String,org.apache.calcite.sql.validate.SqlMonotonicity)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkMonotonic</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;checkMonotonic&#8203;(java.lang.String&nbsp;query,
org.apache.calcite.sql.validate.SqlMonotonicity&nbsp;expectedMonotonicity)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlTester.html#checkMonotonic(java.lang.String,org.apache.calcite.sql.validate.SqlMonotonicity)">SqlTester</a></code></span></div>
<div class="block">Tests that the first column of a SQL query has a given monotonicity.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlTester.html#checkMonotonic(java.lang.String,org.apache.calcite.sql.validate.SqlMonotonicity)">checkMonotonic</a></code>&nbsp;in interface&nbsp;<code><a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>query</code> - SQL query</dd>
<dd><code>expectedMonotonicity</code> - Expected monotonicity</dd>
</dl>
</li>
</ul>
<a id="checkRewrite(org.apache.calcite.sql.validate.SqlValidator,java.lang.String,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkRewrite</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;checkRewrite&#8203;(org.apache.calcite.sql.validate.SqlValidator&nbsp;validator,
java.lang.String&nbsp;query,
java.lang.String&nbsp;expectedRewrite)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../test/SqlValidatorTestCase.Tester.html#checkRewrite(org.apache.calcite.sql.validate.SqlValidator,java.lang.String,java.lang.String)">SqlValidatorTestCase.Tester</a></code></span></div>
<div class="block">Checks that a query gets rewritten to an expected form.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../test/SqlValidatorTestCase.Tester.html#checkRewrite(org.apache.calcite.sql.validate.SqlValidator,java.lang.String,java.lang.String)">checkRewrite</a></code>&nbsp;in interface&nbsp;<code><a href="../../test/SqlValidatorTestCase.Tester.html" title="interface in org.apache.calcite.test">SqlValidatorTestCase.Tester</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>validator</code> - validator to use; null for default</dd>
<dd><code>query</code> - query to test</dd>
<dd><code>expectedRewrite</code> - expected SQL text after rewrite and unparse</dd>
</dl>
</li>
</ul>
<a id="checkFails(java.lang.String,java.lang.String,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkFails</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;checkFails&#8203;(java.lang.String&nbsp;expression,
java.lang.String&nbsp;expectedError,
boolean&nbsp;runtime)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlTester.html#checkFails(java.lang.String,java.lang.String,boolean)">SqlTester</a></code></span></div>
<div class="block">Tests that a scalar SQL expression fails at run time.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlTester.html#checkFails(java.lang.String,java.lang.String,boolean)">checkFails</a></code>&nbsp;in interface&nbsp;<code><a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>expression</code> - SQL scalar expression</dd>
<dd><code>expectedError</code> - Pattern for expected error. If !runtime, must
include an error location.</dd>
<dd><code>runtime</code> - If true, must fail at runtime; if false, must fail at
validate time</dd>
</dl>
</li>
</ul>
<a id="checkQueryFails(java.lang.String,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkQueryFails</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;checkQueryFails&#8203;(java.lang.String&nbsp;sql,
java.lang.String&nbsp;expectedError)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlTester.html#checkQueryFails(java.lang.String,java.lang.String)">SqlTester</a></code></span></div>
<div class="block">Tests that a SQL query fails at prepare time.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlTester.html#checkQueryFails(java.lang.String,java.lang.String)">checkQueryFails</a></code>&nbsp;in interface&nbsp;<code><a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sql</code> - SQL query</dd>
<dd><code>expectedError</code> - Pattern for expected error. Must
include an error location.</dd>
</dl>
</li>
</ul>
<a id="checkQuery(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkQuery</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;checkQuery&#8203;(java.lang.String&nbsp;sql)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SqlTester.html#checkQuery(java.lang.String)">SqlTester</a></code></span></div>
<div class="block">Tests that a SQL query succeeds at prepare time.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SqlTester.html#checkQuery(java.lang.String)">checkQuery</a></code>&nbsp;in interface&nbsp;<code><a href="SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sql</code> - SQL query</dd>
</dl>
</li>
</ul>
<a id="getMonotonicity(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMonotonicity</h4>
<pre class="methodSignature">public&nbsp;org.apache.calcite.sql.validate.SqlMonotonicity&nbsp;getMonotonicity&#8203;(java.lang.String&nbsp;sql)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../test/SqlValidatorTestCase.Tester.html#getMonotonicity(java.lang.String)">SqlValidatorTestCase.Tester</a></code></span></div>
<div class="block">Given a SQL query, returns the monotonicity of the first item in the
SELECT clause.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../test/SqlValidatorTestCase.Tester.html#getMonotonicity(java.lang.String)">getMonotonicity</a></code>&nbsp;in interface&nbsp;<code><a href="../../test/SqlValidatorTestCase.Tester.html" title="interface in org.apache.calcite.test">SqlValidatorTestCase.Tester</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sql</code> - SQL query</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Monotonicity</dd>
</dl>
</li>
</ul>
<a id="buildQuery(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>buildQuery</h4>
<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;buildQuery&#8203;(java.lang.String&nbsp;expression)</pre>
</li>
</ul>
<a id="buildQueryAgg(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>buildQueryAgg</h4>
<pre class="methodSignature">public static&nbsp;java.lang.String&nbsp;buildQueryAgg&#8203;(java.lang.String&nbsp;expression)</pre>
</li>
</ul>
<a id="buildQuery2(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>buildQuery2</h4>
<pre class="methodSignature">protected&nbsp;java.lang.String&nbsp;buildQuery2&#8203;(java.lang.String&nbsp;expression)</pre>
<div class="block">Builds a query that extracts all literals as columns in an underlying
select.
<p>For example,</p>
<blockquote><code>1 &lt; 5</code></blockquote>
<p>becomes</p>
<blockquote><code>SELECT p0 &lt; p1
FROM (VALUES (1, 5)) AS t(p0, p1)</code></blockquote>
<p>Null literals don't have enough type information to be extracted.
We push down <code>CAST(NULL AS type)</code> but raw nulls such as
<code>CASE 1 WHEN 2 THEN 'a' ELSE NULL END</code> are left as is.</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>expression</code> - Scalar expression</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Query that evaluates a scalar expression</dd>
</dl>
</li>
</ul>
<a id="buildQueries(java.lang.String)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>buildQueries</h4>
<pre class="methodSignature">private&nbsp;java.lang.Iterable&lt;java.lang.String&gt;&nbsp;buildQueries&#8203;(java.lang.String&nbsp;expression)</pre>
<div class="block">Converts a scalar expression into a list of SQL queries that
evaluate it.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>expression</code> - Scalar expression</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>List of queries that evaluate an expression</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/AbstractSqlTester.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</body>
</html>