blob: 534308ffd47f59e57823d9a1d3b42c4f4b7e3f70 [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>SqlTester (Apache Calcite API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.calcite.sql.test, interface: SqlTester">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<div class="about-language"><b>Apache Calcite</b></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li><a href="#nested-class-summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.calcite.sql.test</a></div>
<h1 title="Interface SqlTester" class="title">Interface SqlTester</h1>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Superinterfaces:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/AutoCloseable.html" title="class or interface in java.lang" class="external-link">AutoCloseable</a></code></dd>
</dl>
<dl class="notes">
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="AbstractSqlTester.html" title="class in org.apache.calcite.sql.test">AbstractSqlTester</a></code>, <code><a href="../../test/SqlOperatorTest.TesterImpl.html" title="class in org.apache.calcite.test">SqlOperatorTest.TesterImpl</a></code>, <code><a href="SqlValidatorTester.html" title="class in org.apache.calcite.sql.test">SqlValidatorTester</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public interface </span><span class="element-name type-name-label">SqlTester</span><span class="extends-implements">
extends <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/AutoCloseable.html" title="class or interface in java.lang" class="external-link">AutoCloseable</a></span></div>
<div class="block">Callback for testing SQL queries and expressions.
<p>The idea is that when you define an operator (or another piece of SQL
functionality), you can define the logical behavior of that operator once, as
part of that operator. Later you can define one or more physical
implementations of that operator, and test them all using the same set of
tests.
<p>Specific implementations of <code>SqlTester</code> might evaluate the
queries in different ways, for example, using a C++ versus Java calculator.
An implementation might even ignore certain calls altogether.</div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<li>
<section class="nested-class-summary" id="nested-class-summary">
<h2>Nested Class Summary</h2>
<div class="caption"><span>Nested Classes</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Interface</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>static interface&nbsp;</code></div>
<div class="col-second even-row-color"><code><a href="SqlTester.ParameterChecker.html" class="type-name-link" title="interface in org.apache.calcite.sql.test">SqlTester.ParameterChecker</a></code></div>
<div class="col-last even-row-color">
<div class="block">Parameter checker.</div>
</div>
<div class="col-first odd-row-color"><code>static interface&nbsp;</code></div>
<div class="col-second odd-row-color"><code><a href="SqlTester.ResultChecker.html" class="type-name-link" title="interface in org.apache.calcite.sql.test">SqlTester.ResultChecker</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Result checker.</div>
</div>
<div class="col-first even-row-color"><code>static interface&nbsp;</code></div>
<div class="col-second even-row-color"><code><a href="SqlTester.TypeChecker.html" class="type-name-link" title="interface in org.apache.calcite.sql.test">SqlTester.TypeChecker</a></code></div>
<div class="col-last even-row-color">
<div class="block">Type checker.</div>
</div>
<div class="col-first odd-row-color"><code>static interface&nbsp;</code></div>
<div class="col-second odd-row-color"><code><a href="SqlTester.ValidatedNodeConsumer.html" class="type-name-link" title="interface in org.apache.calcite.sql.test">SqlTester.ValidatedNodeConsumer</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Action that is called after validation.</div>
</div>
<div class="col-first even-row-color"><code>static interface&nbsp;</code></div>
<div class="col-second even-row-color"><code><a href="SqlTester.ValidatedNodeFunction.html" class="type-name-link" title="interface in org.apache.calcite.sql.test">SqlTester.ValidatedNodeFunction</a>&lt;<a href="SqlTester.ValidatedNodeFunction.html" title="type parameter in SqlTester.ValidatedNodeFunction">R</a>&gt;</code></div>
<div class="col-last even-row-color">
<div class="block">A function to apply to the result of validation.</div>
</div>
<div class="col-first odd-row-color"><code>static enum&nbsp;</code></div>
<div class="col-second odd-row-color"><code><a href="SqlTester.VmName.html" class="type-name-link" title="enum in org.apache.calcite.sql.test">SqlTester.VmName</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Name of a virtual machine that can potentially implement an operator.</div>
</div>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab3" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab3', 3)" class="table-tab">Abstract Methods</button><button id="method-summary-table-tab5" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab5', 3)" class="table-tab">Default Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#assertConvertsTo(org.apache.calcite.sql.test.SqlTestFactory,org.apache.calcite.test.DiffRepository,java.lang.String,java.lang.String,boolean,boolean,boolean)" class="member-name-link">assertConvertsTo</a><wbr>(<a href="SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a>&nbsp;factory,
<a href="../../test/DiffRepository.html" title="class in org.apache.calcite.test">DiffRepository</a>&nbsp;diffRepos,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;sql,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;plan,
boolean&nbsp;trim,
boolean&nbsp;expression,
boolean&nbsp;decorrelate)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Checks that a SQL statement converts to a given plan, optionally
trimming columns that are not needed.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#assertExceptionIsThrown(org.apache.calcite.sql.test.SqlTestFactory,org.apache.calcite.sql.parser.StringAndPos,java.lang.String)" class="member-name-link">assertExceptionIsThrown</a><wbr>(<a href="SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a>&nbsp;factory,
<a href="../parser/StringAndPos.html" title="class in org.apache.calcite.sql.parser">StringAndPos</a>&nbsp;sap,
@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;expectedMsgPattern)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Checks that a query is valid, or, if invalid, throws the right
message at the right location.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#check(org.apache.calcite.sql.test.SqlTestFactory,java.lang.String,org.apache.calcite.sql.test.SqlTester.TypeChecker,org.apache.calcite.sql.test.SqlTester.ParameterChecker,org.apache.calcite.sql.test.SqlTester.ResultChecker)" class="member-name-link">check</a><wbr>(<a href="SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a>&nbsp;factory,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&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></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Tests that a SQL query returns a result of expected type and value.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#check(org.apache.calcite.sql.test.SqlTestFactory,java.lang.String,org.apache.calcite.sql.test.SqlTester.TypeChecker,org.apache.calcite.sql.test.SqlTester.ResultChecker)" class="member-name-link">check</a><wbr>(<a href="SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a>&nbsp;factory,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;query,
<a href="SqlTester.TypeChecker.html" title="interface in org.apache.calcite.sql.test">SqlTester.TypeChecker</a>&nbsp;typeChecker,
<a href="SqlTester.ResultChecker.html" title="interface in org.apache.calcite.sql.test">SqlTester.ResultChecker</a>&nbsp;resultChecker)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<div class="block">Tests that a SQL query returns a single column with the given type.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#checkAgg(org.apache.calcite.sql.test.SqlTestFactory,java.lang.String,java.lang.String%5B%5D,org.apache.calcite.sql.test.SqlTester.ResultChecker)" class="member-name-link">checkAgg</a><wbr>(<a href="SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a>&nbsp;factory,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;expr,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>[]&nbsp;inputValues,
<a href="SqlTester.ResultChecker.html" title="interface in org.apache.calcite.sql.test">SqlTester.ResultChecker</a>&nbsp;resultChecker)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Checks that an aggregate expression returns the expected result.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#checkAggFails(org.apache.calcite.sql.test.SqlTestFactory,java.lang.String,java.lang.String%5B%5D,java.lang.String,boolean)" class="member-name-link">checkAggFails</a><wbr>(<a href="SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a>&nbsp;factory,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;expr,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>[]&nbsp;inputValues,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;expectedError,
boolean&nbsp;runtime)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Tests that an aggregate expression fails at run time.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#checkColumnType(org.apache.calcite.sql.test.SqlTestFactory,java.lang.String,java.lang.String)" class="member-name-link">checkColumnType</a><wbr>(<a href="SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a>&nbsp;factory,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;sql,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;type)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Checks that a query returns one column of an expected type.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#checkFails(org.apache.calcite.sql.test.SqlTestFactory,java.lang.String,java.lang.String,boolean)" class="member-name-link">checkFails</a><wbr>(<a href="SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a>&nbsp;factory,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;expression,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;expectedError,
boolean&nbsp;runtime)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<div class="block">As <a href="#checkFails(org.apache.calcite.sql.test.SqlTestFactory,org.apache.calcite.sql.parser.StringAndPos,java.lang.String,boolean)"><code>checkFails(SqlTestFactory, StringAndPos, String, boolean)</code></a>,
but with a string that contains carets.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#checkFails(org.apache.calcite.sql.test.SqlTestFactory,org.apache.calcite.sql.parser.StringAndPos,java.lang.String,boolean)" class="member-name-link">checkFails</a><wbr>(<a href="SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a>&nbsp;factory,
<a href="../parser/StringAndPos.html" title="class in org.apache.calcite.sql.parser">StringAndPos</a>&nbsp;expression,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;expectedError,
boolean&nbsp;runtime)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Tests that a scalar SQL expression fails at run time.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#checkQueryFails(org.apache.calcite.sql.test.SqlTestFactory,org.apache.calcite.sql.parser.StringAndPos,java.lang.String)" class="member-name-link">checkQueryFails</a><wbr>(<a href="SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a>&nbsp;factory,
<a href="../parser/StringAndPos.html" title="class in org.apache.calcite.sql.parser">StringAndPos</a>&nbsp;sap,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;expectedError)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Tests that a SQL query fails at prepare time.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#checkWinAgg(org.apache.calcite.sql.test.SqlTestFactory,java.lang.String,java.lang.String%5B%5D,java.lang.String,java.lang.String,org.apache.calcite.sql.test.SqlTester.ResultChecker)" class="member-name-link">checkWinAgg</a><wbr>(<a href="SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a>&nbsp;factory,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;expr,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>[]&nbsp;inputValues,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;windowSpec,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;type,
<a href="SqlTester.ResultChecker.html" title="interface in org.apache.calcite.sql.test">SqlTester.ResultChecker</a>&nbsp;resultChecker)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Checks that a windowed aggregate expression returns the expected result.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code>default <a href="../../rel/RelRoot.html" title="class in org.apache.calcite.rel">RelRoot</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5"><code><a href="#convertSqlToRel(org.apache.calcite.sql.test.SqlTestFactory,java.lang.String,boolean,boolean)" class="member-name-link">convertSqlToRel</a><wbr>(<a href="SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a>&nbsp;factory,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;sql,
boolean&nbsp;decorrelate,
boolean&nbsp;trim)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab5">
<div class="block">Converts a SQL string to a <a href="../../rel/RelNode.html" title="interface in org.apache.calcite.rel"><code>RelNode</code></a> tree.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="../../util/Pair.html" title="class in org.apache.calcite.util">Pair</a>&lt;<a href="../validate/SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a>,<wbr><a href="../../rel/RelRoot.html" title="class in org.apache.calcite.rel">RelRoot</a>&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#convertSqlToRel2(org.apache.calcite.sql.test.SqlTestFactory,java.lang.String,boolean,boolean)" class="member-name-link">convertSqlToRel2</a><wbr>(<a href="SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a>&nbsp;factory,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;sql,
boolean&nbsp;decorrelate,
boolean&nbsp;trim)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Converts a SQL string to a (SqlValidator, RelNode) pair.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#forEachQuery(org.apache.calcite.sql.test.SqlTestFactory,java.lang.String,java.util.function.Consumer)" class="member-name-link">forEachQuery</a><wbr>(<a href="SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a>&nbsp;factory,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;expression,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/function/Consumer.html" title="class or interface in java.util.function" class="external-link">Consumer</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&gt;&nbsp;consumer)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Given a scalar expression, generates a sequence of SQL queries that
evaluate it, and calls a given action with each.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getColumnType(org.apache.calcite.sql.test.SqlTestFactory,java.lang.String)" class="member-name-link">getColumnType</a><wbr>(<a href="SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a>&nbsp;factory,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;sql)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Returns the data type of the sole column of a SQL query.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getResultType(org.apache.calcite.sql.test.SqlTestFactory,java.lang.String)" class="member-name-link">getResultType</a><wbr>(<a href="SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a>&nbsp;factory,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;sql)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Returns the data type of the row returned by a SQL query.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#parseExpression(org.apache.calcite.sql.test.SqlTestFactory,java.lang.String)" class="member-name-link">parseExpression</a><wbr>(<a href="SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a>&nbsp;factory,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;expr)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Parses an expression.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#parseQuery(org.apache.calcite.sql.test.SqlTestFactory,java.lang.String)" class="member-name-link">parseQuery</a><wbr>(<a href="SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a>&nbsp;factory,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;sql)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Parses a query.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#setFor(org.apache.calcite.sql.SqlOperator,org.apache.calcite.sql.test.SqlTester.VmName...)" class="member-name-link">setFor</a><wbr>(<a href="../SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&nbsp;operator,
<a href="SqlTester.VmName.html" title="enum in org.apache.calcite.sql.test">SqlTester.VmName</a>...&nbsp;unimplementedVmNames)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Declares that this test is for a given operator.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="../../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#trimRelNode(org.apache.calcite.sql.test.SqlTestFactory,org.apache.calcite.rel.RelNode)" class="member-name-link">trimRelNode</a><wbr>(<a href="SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a>&nbsp;factory,
<a href="../../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;relNode)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Trims a RelNode.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>&lt;R&gt;&nbsp;R</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#validateAndApply(org.apache.calcite.sql.test.SqlTestFactory,org.apache.calcite.sql.parser.StringAndPos,org.apache.calcite.sql.test.SqlTester.ValidatedNodeFunction)" class="member-name-link">validateAndApply</a><wbr>(<a href="SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a>&nbsp;factory,
<a href="../parser/StringAndPos.html" title="class in org.apache.calcite.sql.parser">StringAndPos</a>&nbsp;sap,
<a href="SqlTester.ValidatedNodeFunction.html" title="interface in org.apache.calcite.sql.test">SqlTester.ValidatedNodeFunction</a>&lt;R&gt;&nbsp;function)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Parses and validates a query, then calls a function on the result.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#validateAndThen(org.apache.calcite.sql.test.SqlTestFactory,org.apache.calcite.sql.parser.StringAndPos,org.apache.calcite.sql.test.SqlTester.ValidatedNodeConsumer)" class="member-name-link">validateAndThen</a><wbr>(<a href="SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a>&nbsp;factory,
<a href="../parser/StringAndPos.html" title="class in org.apache.calcite.sql.parser">StringAndPos</a>&nbsp;sap,
<a href="SqlTester.ValidatedNodeConsumer.html" title="interface in org.apache.calcite.sql.test">SqlTester.ValidatedNodeConsumer</a>&nbsp;consumer)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Parses and validates a query, then calls an action on the result.</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-java.lang.AutoCloseable">Methods inherited from interface&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/AutoCloseable.html" title="class or interface in java.lang" class="external-link">AutoCloseable</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/AutoCloseable.html#close()" title="class or interface in java.lang" class="external-link">close</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="forEachQuery(org.apache.calcite.sql.test.SqlTestFactory,java.lang.String,java.util.function.Consumer)">
<h3>forEachQuery</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">forEachQuery</span><wbr><span class="parameters">(<a href="SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a>&nbsp;factory,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;expression,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/function/Consumer.html" title="class or interface in java.util.function" class="external-link">Consumer</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&gt;&nbsp;consumer)</span></div>
<div class="block">Given a scalar expression, generates a sequence of SQL queries that
evaluate it, and calls a given action with each.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>factory</code> - Factory</dd>
<dd><code>expression</code> - Scalar expression</dd>
<dd><code>consumer</code> - Action to be called for each query</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="parseQuery(org.apache.calcite.sql.test.SqlTestFactory,java.lang.String)">
<h3>parseQuery</h3>
<div class="member-signature"><span class="return-type"><a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a></span>&nbsp;<span class="element-name">parseQuery</span><wbr><span class="parameters">(<a href="SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a>&nbsp;factory,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;sql)</span>
throws <span class="exceptions"><a href="../parser/SqlParseException.html" title="class in org.apache.calcite.sql.parser">SqlParseException</a></span></div>
<div class="block">Parses a query.</div>
<dl class="notes">
<dt>Throws:</dt>
<dd><code><a href="../parser/SqlParseException.html" title="class in org.apache.calcite.sql.parser">SqlParseException</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="parseExpression(org.apache.calcite.sql.test.SqlTestFactory,java.lang.String)">
<h3>parseExpression</h3>
<div class="member-signature"><span class="return-type"><a href="../SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a></span>&nbsp;<span class="element-name">parseExpression</span><wbr><span class="parameters">(<a href="SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a>&nbsp;factory,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;expr)</span>
throws <span class="exceptions"><a href="../parser/SqlParseException.html" title="class in org.apache.calcite.sql.parser">SqlParseException</a></span></div>
<div class="block">Parses an expression.</div>
<dl class="notes">
<dt>Throws:</dt>
<dd><code><a href="../parser/SqlParseException.html" title="class in org.apache.calcite.sql.parser">SqlParseException</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="validateAndThen(org.apache.calcite.sql.test.SqlTestFactory,org.apache.calcite.sql.parser.StringAndPos,org.apache.calcite.sql.test.SqlTester.ValidatedNodeConsumer)">
<h3>validateAndThen</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">validateAndThen</span><wbr><span class="parameters">(<a href="SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a>&nbsp;factory,
<a href="../parser/StringAndPos.html" title="class in org.apache.calcite.sql.parser">StringAndPos</a>&nbsp;sap,
<a href="SqlTester.ValidatedNodeConsumer.html" title="interface in org.apache.calcite.sql.test">SqlTester.ValidatedNodeConsumer</a>&nbsp;consumer)</span></div>
<div class="block">Parses and validates a query, then calls an action on the result.</div>
</section>
</li>
<li>
<section class="detail" id="validateAndApply(org.apache.calcite.sql.test.SqlTestFactory,org.apache.calcite.sql.parser.StringAndPos,org.apache.calcite.sql.test.SqlTester.ValidatedNodeFunction)">
<h3>validateAndApply</h3>
<div class="member-signature"><span class="type-parameters">&lt;R&gt;</span>&nbsp;<span class="return-type">R</span>&nbsp;<span class="element-name">validateAndApply</span><wbr><span class="parameters">(<a href="SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a>&nbsp;factory,
<a href="../parser/StringAndPos.html" title="class in org.apache.calcite.sql.parser">StringAndPos</a>&nbsp;sap,
<a href="SqlTester.ValidatedNodeFunction.html" title="interface in org.apache.calcite.sql.test">SqlTester.ValidatedNodeFunction</a>&lt;R&gt;&nbsp;function)</span></div>
<div class="block">Parses and validates a query, then calls a function on the result.</div>
</section>
</li>
<li>
<section class="detail" id="assertExceptionIsThrown(org.apache.calcite.sql.test.SqlTestFactory,org.apache.calcite.sql.parser.StringAndPos,java.lang.String)">
<h3>assertExceptionIsThrown</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">assertExceptionIsThrown</span><wbr><span class="parameters">(<a href="SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a>&nbsp;factory,
<a href="../parser/StringAndPos.html" title="class in org.apache.calcite.sql.parser">StringAndPos</a>&nbsp;sap,
@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;expectedMsgPattern)</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 class="notes">
<dt>Parameters:</dt>
<dd><code>factory</code> - Factory</dd>
<dd><code>sap</code> - SQL statement</dd>
<dd><code>expectedMsgPattern</code> - If this parameter is null the query must be</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getColumnType(org.apache.calcite.sql.test.SqlTestFactory,java.lang.String)">
<h3>getColumnType</h3>
<div class="member-signature"><span class="return-type"><a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a></span>&nbsp;<span class="element-name">getColumnType</span><wbr><span class="parameters">(<a href="SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a>&nbsp;factory,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;sql)</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 class="notes">
<dt>See Also:</dt>
<dd>
<ul class="see-list-long">
<li><a href="#getResultType(org.apache.calcite.sql.test.SqlTestFactory,java.lang.String)"><code>getResultType(SqlTestFactory, String)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getResultType(org.apache.calcite.sql.test.SqlTestFactory,java.lang.String)">
<h3>getResultType</h3>
<div class="member-signature"><span class="return-type"><a href="../../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a></span>&nbsp;<span class="element-name">getResultType</span><wbr><span class="parameters">(<a href="SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a>&nbsp;factory,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;sql)</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>
</section>
</li>
<li>
<section class="detail" id="checkColumnType(org.apache.calcite.sql.test.SqlTestFactory,java.lang.String,java.lang.String)">
<h3>checkColumnType</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">checkColumnType</span><wbr><span class="parameters">(<a href="SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a>&nbsp;factory,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;sql,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;type)</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 class="notes">
<dt>Parameters:</dt>
<dd><code>factory</code> - Factory</dd>
<dd><code>sql</code> - Query expression</dd>
<dd><code>type</code> - Type string</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="check(org.apache.calcite.sql.test.SqlTestFactory,java.lang.String,org.apache.calcite.sql.test.SqlTester.TypeChecker,org.apache.calcite.sql.test.SqlTester.ResultChecker)">
<h3>check</h3>
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">check</span><wbr><span class="parameters">(<a href="SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a>&nbsp;factory,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;query,
<a href="SqlTester.TypeChecker.html" title="interface in org.apache.calcite.sql.test">SqlTester.TypeChecker</a>&nbsp;typeChecker,
<a href="SqlTester.ResultChecker.html" title="interface in org.apache.calcite.sql.test">SqlTester.ResultChecker</a>&nbsp;resultChecker)</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 <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/regex/Pattern.html" title="class or interface in java.util.regex" class="external-link"><code>Pattern</code></a>, the
result must match that pattern.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>factory</code> - Factory</dd>
<dd><code>query</code> - SQL query</dd>
<dd><code>typeChecker</code> - Checks whether the result is the expected type</dd>
<dd><code>resultChecker</code> - Checks whether the result has the expected value</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="check(org.apache.calcite.sql.test.SqlTestFactory,java.lang.String,org.apache.calcite.sql.test.SqlTester.TypeChecker,org.apache.calcite.sql.test.SqlTester.ParameterChecker,org.apache.calcite.sql.test.SqlTester.ResultChecker)">
<h3>check</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">check</span><wbr><span class="parameters">(<a href="SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a>&nbsp;factory,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&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)</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 class="notes">
<dt>Parameters:</dt>
<dd><code>factory</code> - Factory</dd>
<dd><code>query</code> - SQL query</dd>
<dd><code>typeChecker</code> - Checks whether the result is the expected type</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</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setFor(org.apache.calcite.sql.SqlOperator,org.apache.calcite.sql.test.SqlTester.VmName...)">
<h3>setFor</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">setFor</span><wbr><span class="parameters">(<a href="../SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&nbsp;operator,
<a href="SqlTester.VmName.html" title="enum in org.apache.calcite.sql.test">SqlTester.VmName</a>...&nbsp;unimplementedVmNames)</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 class="notes">
<dt>Parameters:</dt>
<dd><code>operator</code> - Operator</dd>
<dd><code>unimplementedVmNames</code> - Names of virtual machines for which this</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="checkAgg(org.apache.calcite.sql.test.SqlTestFactory,java.lang.String,java.lang.String[],org.apache.calcite.sql.test.SqlTester.ResultChecker)">
<h3>checkAgg</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">checkAgg</span><wbr><span class="parameters">(<a href="SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a>&nbsp;factory,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;expr,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>[]&nbsp;inputValues,
<a href="SqlTester.ResultChecker.html" title="interface in org.apache.calcite.sql.test">SqlTester.ResultChecker</a>&nbsp;resultChecker)</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 class="notes">
<dt>Parameters:</dt>
<dd><code>factory</code> - Factory</dd>
<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>resultChecker</code> - Checks whether the result has the expected value</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="checkWinAgg(org.apache.calcite.sql.test.SqlTestFactory,java.lang.String,java.lang.String[],java.lang.String,java.lang.String,org.apache.calcite.sql.test.SqlTester.ResultChecker)">
<h3>checkWinAgg</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">checkWinAgg</span><wbr><span class="parameters">(<a href="SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a>&nbsp;factory,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;expr,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>[]&nbsp;inputValues,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;windowSpec,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;type,
<a href="SqlTester.ResultChecker.html" title="interface in org.apache.calcite.sql.test">SqlTester.ResultChecker</a>&nbsp;resultChecker)</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 class="notes">
<dt>Parameters:</dt>
<dd><code>factory</code> - Factory</dd>
<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>resultChecker</code> - Checks whether the result has the expected value</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="checkAggFails(org.apache.calcite.sql.test.SqlTestFactory,java.lang.String,java.lang.String[],java.lang.String,boolean)">
<h3>checkAggFails</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">checkAggFails</span><wbr><span class="parameters">(<a href="SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a>&nbsp;factory,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;expr,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>[]&nbsp;inputValues,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;expectedError,
boolean&nbsp;runtime)</span></div>
<div class="block">Tests that an aggregate expression fails at run time.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>factory</code> - Factory</dd>
<dd><code>expr</code> - An aggregate expression</dd>
<dd><code>inputValues</code> - Array of input values</dd>
<dd><code>expectedError</code> - Pattern for expected error</dd>
<dd><code>runtime</code> - If true, must fail at runtime; if false, must fail at
validate time</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="checkFails(org.apache.calcite.sql.test.SqlTestFactory,org.apache.calcite.sql.parser.StringAndPos,java.lang.String,boolean)">
<h3>checkFails</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">checkFails</span><wbr><span class="parameters">(<a href="SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a>&nbsp;factory,
<a href="../parser/StringAndPos.html" title="class in org.apache.calcite.sql.parser">StringAndPos</a>&nbsp;expression,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;expectedError,
boolean&nbsp;runtime)</span></div>
<div class="block">Tests that a scalar SQL expression fails at run time.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>factory</code> - Factory</dd>
<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>
</section>
</li>
<li>
<section class="detail" id="checkFails(org.apache.calcite.sql.test.SqlTestFactory,java.lang.String,java.lang.String,boolean)">
<h3>checkFails</h3>
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">checkFails</span><wbr><span class="parameters">(<a href="SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a>&nbsp;factory,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;expression,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;expectedError,
boolean&nbsp;runtime)</span></div>
<div class="block">As <a href="#checkFails(org.apache.calcite.sql.test.SqlTestFactory,org.apache.calcite.sql.parser.StringAndPos,java.lang.String,boolean)"><code>checkFails(SqlTestFactory, StringAndPos, String, boolean)</code></a>,
but with a string that contains carets.</div>
</section>
</li>
<li>
<section class="detail" id="checkQueryFails(org.apache.calcite.sql.test.SqlTestFactory,org.apache.calcite.sql.parser.StringAndPos,java.lang.String)">
<h3>checkQueryFails</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">checkQueryFails</span><wbr><span class="parameters">(<a href="SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a>&nbsp;factory,
<a href="../parser/StringAndPos.html" title="class in org.apache.calcite.sql.parser">StringAndPos</a>&nbsp;sap,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;expectedError)</span></div>
<div class="block">Tests that a SQL query fails at prepare time.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>factory</code> - Factory</dd>
<dd><code>sap</code> - SQL query and error position</dd>
<dd><code>expectedError</code> - Pattern for expected error. Must
include an error location.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="convertSqlToRel(org.apache.calcite.sql.test.SqlTestFactory,java.lang.String,boolean,boolean)">
<h3>convertSqlToRel</h3>
<div class="member-signature"><span class="modifiers">default</span>&nbsp;<span class="return-type"><a href="../../rel/RelRoot.html" title="class in org.apache.calcite.rel">RelRoot</a></span>&nbsp;<span class="element-name">convertSqlToRel</span><wbr><span class="parameters">(<a href="SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a>&nbsp;factory,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;sql,
boolean&nbsp;decorrelate,
boolean&nbsp;trim)</span></div>
<div class="block">Converts a SQL string to a <a href="../../rel/RelNode.html" title="interface in org.apache.calcite.rel"><code>RelNode</code></a> tree.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>factory</code> - Factory</dd>
<dd><code>sql</code> - SQL statement</dd>
<dd><code>decorrelate</code> - Whether to decorrelate</dd>
<dd><code>trim</code> - Whether to trim</dd>
<dt>Returns:</dt>
<dd>Relational expression, never null</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="convertSqlToRel2(org.apache.calcite.sql.test.SqlTestFactory,java.lang.String,boolean,boolean)">
<h3>convertSqlToRel2</h3>
<div class="member-signature"><span class="return-type"><a href="../../util/Pair.html" title="class in org.apache.calcite.util">Pair</a>&lt;<a href="../validate/SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a>,<wbr><a href="../../rel/RelRoot.html" title="class in org.apache.calcite.rel">RelRoot</a>&gt;</span>&nbsp;<span class="element-name">convertSqlToRel2</span><wbr><span class="parameters">(<a href="SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a>&nbsp;factory,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;sql,
boolean&nbsp;decorrelate,
boolean&nbsp;trim)</span></div>
<div class="block">Converts a SQL string to a (SqlValidator, RelNode) pair.</div>
</section>
</li>
<li>
<section class="detail" id="assertConvertsTo(org.apache.calcite.sql.test.SqlTestFactory,org.apache.calcite.test.DiffRepository,java.lang.String,java.lang.String,boolean,boolean,boolean)">
<h3>assertConvertsTo</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">assertConvertsTo</span><wbr><span class="parameters">(<a href="SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a>&nbsp;factory,
<a href="../../test/DiffRepository.html" title="class in org.apache.calcite.test">DiffRepository</a>&nbsp;diffRepos,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;sql,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;plan,
boolean&nbsp;trim,
boolean&nbsp;expression,
boolean&nbsp;decorrelate)</span></div>
<div class="block">Checks that a SQL statement converts to a given plan, optionally
trimming columns that are not needed.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>factory</code> - Factory</dd>
<dd><code>diffRepos</code> - Diff repository</dd>
<dd><code>sql</code> - SQL query or expression</dd>
<dd><code>plan</code> - Expected plan</dd>
<dd><code>trim</code> - Whether to trim columns that are not needed</dd>
<dd><code>expression</code> - True if <code>sql</code> is an expression, false if it is a query</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="trimRelNode(org.apache.calcite.sql.test.SqlTestFactory,org.apache.calcite.rel.RelNode)">
<h3>trimRelNode</h3>
<div class="member-signature"><span class="return-type"><a href="../../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></span>&nbsp;<span class="element-name">trimRelNode</span><wbr><span class="parameters">(<a href="SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a>&nbsp;factory,
<a href="../../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;relNode)</span></div>
<div class="block">Trims a RelNode.</div>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &copy; 2012-2023 Apache Software Foundation. All Rights Reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>