blob: 1377859fd32518b997d57f96dd86bdf411a9e98b [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>SqlToRelConverter (Apache Calcite API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="SqlToRelConverter (Apache Calcite API)";
}
}
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":9,"i8":9,"i9":9,"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":9,"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":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":9,"i63":10,"i64":42,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":10,"i75":10,"i76":10,"i77":42,"i78":10,"i79":10,"i80":10,"i81":10,"i82":9,"i83":10,"i84":9,"i85":10,"i86":42,"i87":10,"i88":10,"i89":9,"i90":9,"i91":10,"i92":10,"i93":10,"i94":10,"i95":10,"i96":10,"i97":10,"i98":10,"i99":10,"i100":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated 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/SqlToRelConverter.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.sql2rel</a></div>
<h2 title="Class SqlToRelConverter" class="title">Class SqlToRelConverter</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.calcite.sql2rel.SqlToRelConverter</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<pre>public class <span class="typeNameLabel">SqlToRelConverter</span>
extends java.lang.Object</pre>
<div class="block">Converts a SQL parse tree (consisting of
<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql"><code>SqlNode</code></a> objects) into a relational algebra
expression (consisting of <a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel"><code>RelNode</code></a> objects).
<p>The public entry points are: <a href="#convertQuery(org.apache.calcite.sql.SqlNode,boolean,boolean)"><code>convertQuery(org.apache.calcite.sql.SqlNode, boolean, boolean)</code></a>,
<a href="#convertExpression(org.apache.calcite.sql.SqlNode)"><code>convertExpression(SqlNode)</code></a>.</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>
<table class="memberSummary">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="SqlToRelConverter.AggConverter.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.AggConverter</a></span></code></th>
<td class="colLast">
<div class="block">Converts expressions to aggregates.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="SqlToRelConverter.AggregateFinder.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.AggregateFinder</a></span></code></th>
<td class="colLast">
<div class="block">Visitor that collects all aggregate functions in a <a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql"><code>SqlNode</code></a> tree.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a></span></code></th>
<td class="colLast">
<div class="block">Workspace for translating an individual SELECT statement (or sub-SELECT).</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static interface&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="SqlToRelConverter.Config.html" title="interface in org.apache.calcite.sql2rel">SqlToRelConverter.Config</a></span></code></th>
<td class="colLast">
<div class="block">Interface to define the configuration for a SqlToRelConverter.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="SqlToRelConverter.ConfigBuilder.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.ConfigBuilder</a></span></code></th>
<td class="colLast">
<div class="block">Builder for a <a href="SqlToRelConverter.Config.html" title="interface in org.apache.calcite.sql2rel"><code>SqlToRelConverter.Config</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="SqlToRelConverter.ConfigImpl.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.ConfigImpl</a></span></code></th>
<td class="colLast">
<div class="block">Implementation of <a href="SqlToRelConverter.Config.html" title="interface in org.apache.calcite.sql2rel"><code>SqlToRelConverter.Config</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="SqlToRelConverter.CorrelationUse.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.CorrelationUse</a></span></code></th>
<td class="colLast">
<div class="block">Use of a row as a correlating variable by a given relational
expression.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="SqlToRelConverter.DeferredLookup.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.DeferredLookup</a></span></code></th>
<td class="colLast">
<div class="block">Deferred lookup.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="SqlToRelConverter.HistogramShuttle.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.HistogramShuttle</a></span></code></th>
<td class="colLast">
<div class="block">Shuttle which walks over a tree of <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex"><code>RexNode</code></a>s and applies 'over' to
all agg functions.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="SqlToRelConverter.LookupContext.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.LookupContext</a></span></code></th>
<td class="colLast">
<div class="block">Context to find a relational expression to a field offset.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="SqlToRelConverter.NoOpSubQueryConverter.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.NoOpSubQueryConverter</a></span></code></th>
<td class="colLast">
<div class="block">A default implementation of SubQueryConverter that does no conversion.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="SqlToRelConverter.RexAccessShuttle.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.RexAccessShuttle</a></span></code></th>
<td class="colLast">
<div class="block">Shuttle that replace outer <a href="../rex/RexInputRef.html" title="class in org.apache.calcite.rex"><code>RexInputRef</code></a> with
<a href="../rex/RexFieldAccess.html" title="class in org.apache.calcite.rex"><code>RexFieldAccess</code></a>, and adjust <code>offset</code> to
each inner <a href="../rex/RexInputRef.html" title="class in org.apache.calcite.rex"><code>RexInputRef</code></a> in the lateral join
condition.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="SqlToRelConverter.SubQuery.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.SubQuery</a></span></code></th>
<td class="colLast">
<div class="block">A sub-query, whether it needs to be translated using 2- or 3-valued
logic.</div>
</td>
</tr>
</table>
</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="../prepare/Prepare.CatalogReader.html" title="interface in org.apache.calcite.prepare">Prepare.CatalogReader</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#catalogReader">catalogReader</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="../plan/RelOptCluster.html" title="class in org.apache.calcite.plan">RelOptCluster</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#cluster">cluster</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="SqlToRelConverter.Config.html" title="interface in org.apache.calcite.sql2rel">SqlToRelConverter.Config</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#config">config</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private java.util.Deque&lt;java.lang.String&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#datasetStack">datasetStack</a></span></code></th>
<td class="colLast">
<div class="block">Stack of names of datasets requested by the <code>
TABLE(SAMPLE(&lt;datasetName&gt;, &lt;query&gt;))</code> construct.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DEFAULT_IN_SUB_QUERY_THRESHOLD">DEFAULT_IN_SUB_QUERY_THRESHOLD</a></span></code></th>
<td class="colLast">
<div class="block">Size of the smallest IN list that will be converted to a semijoin to a
static table.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DEFAULT_IN_SUBQUERY_THRESHOLD">DEFAULT_IN_SUBQUERY_THRESHOLD</a></span></code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private java.util.List&lt;<a href="../sql/SqlDynamicParam.html" title="class in org.apache.calcite.sql">SqlDynamicParam</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#dynamicParamSqlNodes">dynamicParamSqlNodes</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#explainParamCount">explainParamCount</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="SqlNodeToRexConverter.html" title="interface in org.apache.calcite.sql2rel">SqlNodeToRexConverter</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#exprConverter">exprConverter</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected java.util.List&lt;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#leaves">leaves</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private java.util.Map&lt;<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>,&#8203;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#mapConvertedNonCorrSubqs">mapConvertedNonCorrSubqs</a></span></code></th>
<td class="colLast">
<div class="block">Mapping of non-correlated sub-queries that have been converted to their
equivalent constants.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private java.util.Map&lt;<a href="../rel/core/CorrelationId.html" title="class in org.apache.calcite.rel.core">CorrelationId</a>,&#8203;<a href="SqlToRelConverter.DeferredLookup.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.DeferredLookup</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#mapCorrelToDeferred">mapCorrelToDeferred</a></span></code></th>
<td class="colLast">
<div class="block">Fields used in name resolution for correlated sub-queries.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="../sql/SqlOperatorTable.html" title="interface in org.apache.calcite.sql">SqlOperatorTable</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#opTab">opTab</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="../tools/RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#relBuilder">relBuilder</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="../rex/RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#rexBuilder">rexBuilder</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected static org.slf4j.Logger</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#SQL2REL_LOGGER">SQL2REL_LOGGER</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="SubQueryConverter.html" title="interface in org.apache.calcite.sql2rel">SubQueryConverter</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#subQueryConverter">subQueryConverter</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static java.math.BigDecimal</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#TWO">TWO</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="../rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#typeFactory">typeFactory</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="../sql/validate/SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validator">validator</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../plan/RelOptTable.ViewExpander.html" title="interface in org.apache.calcite.plan">RelOptTable.ViewExpander</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#viewExpander">viewExpander</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.plan.RelOptTable.ViewExpander,org.apache.calcite.sql.validate.SqlValidator,org.apache.calcite.prepare.Prepare.CatalogReader,org.apache.calcite.plan.RelOptCluster,org.apache.calcite.sql2rel.SqlRexConvertletTable)">SqlToRelConverter</a></span>&#8203;(<a href="../plan/RelOptTable.ViewExpander.html" title="interface in org.apache.calcite.plan">RelOptTable.ViewExpander</a>&nbsp;viewExpander,
<a href="../sql/validate/SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a>&nbsp;validator,
<a href="../prepare/Prepare.CatalogReader.html" title="interface in org.apache.calcite.prepare">Prepare.CatalogReader</a>&nbsp;catalogReader,
<a href="../plan/RelOptCluster.html" title="class in org.apache.calcite.plan">RelOptCluster</a>&nbsp;cluster,
<a href="SqlRexConvertletTable.html" title="interface in org.apache.calcite.sql2rel">SqlRexConvertletTable</a>&nbsp;convertletTable)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr class="rowColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.apache.calcite.plan.RelOptTable.ViewExpander,org.apache.calcite.sql.validate.SqlValidator,org.apache.calcite.prepare.Prepare.CatalogReader,org.apache.calcite.plan.RelOptCluster,org.apache.calcite.sql2rel.SqlRexConvertletTable,org.apache.calcite.sql2rel.SqlToRelConverter.Config)">SqlToRelConverter</a></span>&#8203;(<a href="../plan/RelOptTable.ViewExpander.html" title="interface in org.apache.calcite.plan">RelOptTable.ViewExpander</a>&nbsp;viewExpander,
<a href="../sql/validate/SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a>&nbsp;validator,
<a href="../prepare/Prepare.CatalogReader.html" title="interface in org.apache.calcite.prepare">Prepare.CatalogReader</a>&nbsp;catalogReader,
<a href="../plan/RelOptCluster.html" title="class in org.apache.calcite.plan">RelOptCluster</a>&nbsp;cluster,
<a href="SqlRexConvertletTable.html" title="interface in org.apache.calcite.sql2rel">SqlRexConvertletTable</a>&nbsp;convertletTable,
<a href="SqlToRelConverter.Config.html" title="interface in org.apache.calcite.sql2rel">SqlToRelConverter.Config</a>&nbsp;config)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.apache.calcite.plan.RelOptTable.ViewExpander,org.apache.calcite.sql.validate.SqlValidator,org.apache.calcite.prepare.Prepare.CatalogReader,org.apache.calcite.plan.RelOptPlanner,org.apache.calcite.rex.RexBuilder,org.apache.calcite.sql2rel.SqlRexConvertletTable)">SqlToRelConverter</a></span>&#8203;(<a href="../plan/RelOptTable.ViewExpander.html" title="interface in org.apache.calcite.plan">RelOptTable.ViewExpander</a>&nbsp;viewExpander,
<a href="../sql/validate/SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a>&nbsp;validator,
<a href="../prepare/Prepare.CatalogReader.html" title="interface in org.apache.calcite.prepare">Prepare.CatalogReader</a>&nbsp;catalogReader,
<a href="../plan/RelOptPlanner.html" title="interface in org.apache.calcite.plan">RelOptPlanner</a>&nbsp;planner,
<a href="../rex/RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a>&nbsp;rexBuilder,
<a href="SqlRexConvertletTable.html" title="interface in org.apache.calcite.sql2rel">SqlRexConvertletTable</a>&nbsp;convertletTable)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="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="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated 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="#addConvertedNonCorrSubqs(java.util.Map)">addConvertedNonCorrSubqs</a></span>&#8203;(java.util.Map&lt;<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>,&#8203;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;alreadyConvertedNonCorrSubqs)</code></th>
<td class="colLast">
<div class="block">Adds to the current map of non-correlated converted sub-queries the
elements from another map that contains non-correlated sub-queries that
have been converted by another SqlToRelConverter.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>protected <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#adjustInputRef(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.rex.RexInputRef)">adjustInputRef</a></span>&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../rex/RexInputRef.html" title="class in org.apache.calcite.rex">RexInputRef</a>&nbsp;inputRef)</code></th>
<td class="colLast">
<div class="block">Adjusts the type of a reference to an input field to account for nulls
introduced by outer joins; and adjusts the offset to match the physical
implementation.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#afterTableFunction(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql.SqlCall,org.apache.calcite.rel.logical.LogicalTableFunctionScan)">afterTableFunction</a></span>&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../sql/SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call,
<a href="../rel/logical/LogicalTableFunctionScan.html" title="class in org.apache.calcite.rel.logical">LogicalTableFunctionScan</a>&nbsp;callRel)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>private boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#all(org.apache.calcite.sql.SqlCall)">all</a></span>&#8203;(<a href="../sql/SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>private <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#castNullLiteralIfNeeded(org.apache.calcite.rex.RexNode,org.apache.calcite.rel.type.RelDataType)">castNullLiteralIfNeeded</a></span>&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;node,
<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkConvertedType(org.apache.calcite.sql.SqlNode,org.apache.calcite.rel.RelNode)">checkConvertedType</a></span>&#8203;(<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;query,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;result)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#collectInsertTargets(org.apache.calcite.sql.SqlInsert,org.apache.calcite.rex.RexNode,java.util.List,java.util.List)">collectInsertTargets</a></span>&#8203;(<a href="../sql/SqlInsert.html" title="class in org.apache.calcite.sql">SqlInsert</a>&nbsp;call,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;sourceRef,
java.util.List&lt;java.lang.String&gt;&nbsp;targetColumnNames,
java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;columnExprs)</code></th>
<td class="colLast">
<div class="block">Given an INSERT statement, collects the list of names to be populated and
the expressions to put in them.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>static <a href="SqlToRelConverter.ConfigBuilder.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.ConfigBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#configBuilder()">configBuilder</a></span>()</code></th>
<td class="colLast">
<div class="block">Creates a builder for a <a href="SqlToRelConverter.Config.html" title="interface in org.apache.calcite.sql2rel"><code>SqlToRelConverter.Config</code></a>.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>private static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#containsInOperator(org.apache.calcite.sql.SqlNode)">containsInOperator</a></span>&#8203;(<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</code></th>
<td class="colLast">
<div class="block">Returns whether a given node contains a <a href="../sql/fun/SqlInOperator.html" title="class in org.apache.calcite.sql.fun"><code>SqlInOperator</code></a>.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>private static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#containsNullLiteral(org.apache.calcite.sql.SqlNodeList)">containsNullLiteral</a></span>&#8203;(<a href="../sql/SqlNodeList.html" title="class in org.apache.calcite.sql">SqlNodeList</a>&nbsp;valueList)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convertAgg(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql.SqlSelect,java.util.List)">convertAgg</a></span>&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../sql/SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select,
java.util.List&lt;<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;orderExprList)</code></th>
<td class="colLast">
<div class="block">Converts the SELECT, GROUP BY and HAVING clauses of an aggregate query.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convertCollectionTable(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql.SqlCall)">convertCollectionTable</a></span>&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../sql/SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>protected <a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convertColumnList(org.apache.calcite.sql.SqlInsert,org.apache.calcite.rel.RelNode)">convertColumnList</a></span>&#8203;(<a href="../sql/SqlInsert.html" title="class in org.apache.calcite.sql">SqlInsert</a>&nbsp;call,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;source)</code></th>
<td class="colLast">
<div class="block">Creates a source for an INSERT statement.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>private <a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convertCursor(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql2rel.SqlToRelConverter.SubQuery)">convertCursor</a></span>&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="SqlToRelConverter.SubQuery.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.SubQuery</a>&nbsp;subQuery)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>private <a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convertDelete(org.apache.calcite.sql.SqlDelete)">convertDelete</a></span>&#8203;(<a href="../sql/SqlDelete.html" title="class in org.apache.calcite.sql">SqlDelete</a>&nbsp;call)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code><a href="../rex/RexDynamicParam.html" title="class in org.apache.calcite.rex">RexDynamicParam</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convertDynamicParam(org.apache.calcite.sql.SqlDynamicParam)">convertDynamicParam</a></span>&#8203;(<a href="../sql/SqlDynamicParam.html" title="class in org.apache.calcite.sql">SqlDynamicParam</a>&nbsp;dynamicParam)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>private <a href="../plan/RelOptUtil.Exists.html" title="class in org.apache.calcite.plan">RelOptUtil.Exists</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convertExists(org.apache.calcite.sql.SqlNode,org.apache.calcite.plan.RelOptUtil.SubQueryType,org.apache.calcite.plan.RelOptUtil.Logic,boolean,org.apache.calcite.rel.type.RelDataType)">convertExists</a></span>&#8203;(<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;seek,
<a href="../plan/RelOptUtil.SubQueryType.html" title="enum in org.apache.calcite.plan">RelOptUtil.SubQueryType</a>&nbsp;subQueryType,
<a href="../plan/RelOptUtil.Logic.html" title="enum in org.apache.calcite.plan">RelOptUtil.Logic</a>&nbsp;logic,
boolean&nbsp;notIn,
<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetDataType)</code></th>
<td class="colLast">
<div class="block">Converts an EXISTS or IN predicate into a join.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code><a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convertExpression(org.apache.calcite.sql.SqlNode)">convertExpression</a></span>&#8203;(<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</code></th>
<td class="colLast">
<div class="block">Converts an expression from <a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql"><code>SqlNode</code></a> to <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex"><code>RexNode</code></a> format.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code><a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convertExpression(org.apache.calcite.sql.SqlNode,java.util.Map)">convertExpression</a></span>&#8203;(<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
java.util.Map&lt;java.lang.String,&#8203;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;nameToNodeMap)</code></th>
<td class="colLast">
<div class="block">Converts an expression from <a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql"><code>SqlNode</code></a> to <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex"><code>RexNode</code></a> format,
mapping identifier references to predefined expressions.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>protected <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convertExtendedExpression(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard)">convertExtendedExpression</a></span>&#8203;(<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb)</code></th>
<td class="colLast">
<div class="block">Converts a non-standard expression.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convertFrom(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql.SqlNode)">convertFrom</a></span>&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;from)</code></th>
<td class="colLast">
<div class="block">Converts a FROM clause into a relational expression.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>private <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convertIdentifier(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql.SqlIdentifier)">convertIdentifier</a></span>&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../sql/SqlIdentifier.html" title="class in org.apache.calcite.sql">SqlIdentifier</a>&nbsp;identifier)</code></th>
<td class="colLast">
<div class="block">Converts an identifier into an expression in a given scope.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convertIdentifier(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql.SqlIdentifier,org.apache.calcite.sql.SqlNodeList)">convertIdentifier</a></span>&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../sql/SqlIdentifier.html" title="class in org.apache.calcite.sql">SqlIdentifier</a>&nbsp;id,
<a href="../sql/SqlNodeList.html" title="class in org.apache.calcite.sql">SqlNodeList</a>&nbsp;extendedColumns)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>protected <a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convertInsert(org.apache.calcite.sql.SqlInsert)">convertInsert</a></span>&#8203;(<a href="../sql/SqlInsert.html" title="class in org.apache.calcite.sql">SqlInsert</a>&nbsp;call)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>private <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convertInToOr(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,java.util.List,org.apache.calcite.sql.SqlNodeList,org.apache.calcite.sql.fun.SqlInOperator)">convertInToOr</a></span>&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;leftKeys,
<a href="../sql/SqlNodeList.html" title="class in org.apache.calcite.sql">SqlNodeList</a>&nbsp;valuesList,
<a href="../sql/fun/SqlInOperator.html" title="class in org.apache.calcite.sql.fun">SqlInOperator</a>&nbsp;op)</code></th>
<td class="colLast">
<div class="block">Converts "x IN (1, 2, ...)" to "x=1 OR x=2 OR ...".</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>private <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convertJoinCondition(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql.validate.SqlValidatorNamespace,org.apache.calcite.sql.validate.SqlValidatorNamespace,org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.JoinConditionType,org.apache.calcite.rel.RelNode,org.apache.calcite.rel.RelNode)">convertJoinCondition</a></span>&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../sql/validate/SqlValidatorNamespace.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorNamespace</a>&nbsp;leftNamespace,
<a href="../sql/validate/SqlValidatorNamespace.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorNamespace</a>&nbsp;rightNamespace,
<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;condition,
<a href="../sql/JoinConditionType.html" title="enum in org.apache.calcite.sql">JoinConditionType</a>&nbsp;conditionType,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;leftRel,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rightRel)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>private static <a href="../rel/core/JoinRelType.html" title="enum in org.apache.calcite.rel.core">JoinRelType</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convertJoinType(org.apache.calcite.sql.JoinType)">convertJoinType</a></span>&#8203;(<a href="../sql/JoinType.html" title="enum in org.apache.calcite.sql">JoinType</a>&nbsp;joinType)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>private <a href="../rex/RexLiteral.html" title="class in org.apache.calcite.rex">RexLiteral</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convertLiteralInValuesList(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.rel.type.RelDataType,int)">convertLiteralInValuesList</a></span>&#8203;(<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;sqlNode,
<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;rowType,
int&nbsp;iField)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convertMatchRecognize(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql.SqlCall)">convertMatchRecognize</a></span>&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../sql/SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>private <a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convertMerge(org.apache.calcite.sql.SqlMerge)">convertMerge</a></span>&#8203;(<a href="../sql/SqlMerge.html" title="class in org.apache.calcite.sql">SqlMerge</a>&nbsp;call)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>private <a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convertMultisets(java.util.List,org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard)">convertMultisets</a></span>&#8203;(java.util.List&lt;<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;operands,
<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>private boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convertNonCorrelatedSubQuery(org.apache.calcite.sql2rel.SqlToRelConverter.SubQuery,org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.rel.RelNode,boolean)">convertNonCorrelatedSubQuery</a></span>&#8203;(<a href="SqlToRelConverter.SubQuery.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.SubQuery</a>&nbsp;subQuery,
<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;converted,
boolean&nbsp;isExists)</code></th>
<td class="colLast">
<div class="block">Determines if a sub-query is non-correlated and if so, converts it to a
constant.</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convertOrder(org.apache.calcite.sql.SqlSelect,org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.rel.RelCollation,java.util.List,org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.SqlNode)">convertOrder</a></span>&#8203;(<a href="../sql/SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select,
<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../rel/RelCollation.html" title="interface in org.apache.calcite.rel">RelCollation</a>&nbsp;collation,
java.util.List&lt;<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;orderExprList,
<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;offset,
<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;fetch)</code></th>
<td class="colLast">
<div class="block">Converts a query's ORDER BY clause, if any.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>protected <a href="../rel/RelFieldCollation.html" title="class in org.apache.calcite.rel">RelFieldCollation</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convertOrderItem(org.apache.calcite.sql.SqlSelect,org.apache.calcite.sql.SqlNode,java.util.List,org.apache.calcite.rel.RelFieldCollation.Direction,org.apache.calcite.rel.RelFieldCollation.NullDirection)">convertOrderItem</a></span>&#8203;(<a href="../sql/SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select,
<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;orderItem,
java.util.List&lt;<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;extraExprs,
<a href="../rel/RelFieldCollation.Direction.html" title="enum in org.apache.calcite.rel">RelFieldCollation.Direction</a>&nbsp;direction,
<a href="../rel/RelFieldCollation.NullDirection.html" title="enum in org.apache.calcite.rel">RelFieldCollation.NullDirection</a>&nbsp;nullDirection)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code>private <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convertOver(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql.SqlNode)">convertOver</a></span>&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code><a href="../rel/RelRoot.html" title="class in org.apache.calcite.rel">RelRoot</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convertQuery(org.apache.calcite.sql.SqlNode,boolean,boolean)">convertQuery</a></span>&#8203;(<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;query,
boolean&nbsp;needsValidation,
boolean&nbsp;top)</code></th>
<td class="colLast">
<div class="block">Converts an unvalidated query's parse tree into a relational expression.</div>
</td>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><code>private <a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convertQueryOrInList(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql.SqlNode,org.apache.calcite.rel.type.RelDataType)">convertQueryOrInList</a></span>&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;seek,
<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetRowType)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i37" class="rowColor">
<td class="colFirst"><code>protected <a href="../rel/RelRoot.html" title="class in org.apache.calcite.rel">RelRoot</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convertQueryRecursive(org.apache.calcite.sql.SqlNode,boolean,org.apache.calcite.rel.type.RelDataType)">convertQueryRecursive</a></span>&#8203;(<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;query,
boolean&nbsp;top,
<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetRowType)</code></th>
<td class="colLast">
<div class="block">Recursively converts a query to a relational expression.</div>
</td>
</tr>
<tr id="i38" class="altColor">
<td class="colFirst"><code>private <a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convertRowConstructor(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql.SqlCall)">convertRowConstructor</a></span>&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../sql/SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;rowConstructor)</code></th>
<td class="colLast">
<div class="block">Converts a row constructor into a relational expression.</div>
</td>
</tr>
<tr id="i39" class="rowColor">
<td class="colFirst"><code>private <a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convertRowValues(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql.SqlNode,java.util.Collection,boolean,org.apache.calcite.rel.type.RelDataType)">convertRowValues</a></span>&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;rowList,
java.util.Collection&lt;<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;rows,
boolean&nbsp;allowLiteralsOnly,
<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetRowType)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i40" class="altColor">
<td class="colFirst"><code><a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convertSelect(org.apache.calcite.sql.SqlSelect,boolean)">convertSelect</a></span>&#8203;(<a href="../sql/SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select,
boolean&nbsp;top)</code></th>
<td class="colLast">
<div class="block">Converts a SELECT statement's parse tree into a relational expression.</div>
</td>
</tr>
<tr id="i41" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convertSelectImpl(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql.SqlSelect)">convertSelectImpl</a></span>&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../sql/SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</code></th>
<td class="colLast">
<div class="block">Implementation of <a href="#convertSelect(org.apache.calcite.sql.SqlSelect,boolean)"><code>convertSelect(SqlSelect, boolean)</code></a>;
derived class may override.</div>
</td>
</tr>
<tr id="i42" class="altColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convertSelectList(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql.SqlSelect,java.util.List)">convertSelectList</a></span>&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../sql/SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select,
java.util.List&lt;<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;orderList)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i43" class="rowColor">
<td class="colFirst"><code>protected <a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convertSetOp(org.apache.calcite.sql.SqlCall)">convertSetOp</a></span>&#8203;(<a href="../sql/SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call)</code></th>
<td class="colLast">
<div class="block">Converts a set operation (UNION, INTERSECT, MINUS) into relational
expressions.</div>
</td>
</tr>
<tr id="i44" class="altColor">
<td class="colFirst"><code><a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convertToSingleValueSubq(org.apache.calcite.sql.SqlNode,org.apache.calcite.rel.RelNode)">convertToSingleValueSubq</a></span>&#8203;(<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;query,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;plan)</code></th>
<td class="colLast">
<div class="block">Converts the RelNode tree for a select statement to a select that
produces a single value.</div>
</td>
</tr>
<tr id="i45" class="rowColor">
<td class="colFirst"><code>private <a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convertUpdate(org.apache.calcite.sql.SqlUpdate)">convertUpdate</a></span>&#8203;(<a href="../sql/SqlUpdate.html" title="class in org.apache.calcite.sql">SqlUpdate</a>&nbsp;call)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i46" class="altColor">
<td class="colFirst"><code>private <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convertUsing(org.apache.calcite.sql.validate.SqlValidatorNamespace,org.apache.calcite.sql.validate.SqlValidatorNamespace,java.util.List)">convertUsing</a></span>&#8203;(<a href="../sql/validate/SqlValidatorNamespace.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorNamespace</a>&nbsp;leftNamespace,
<a href="../sql/validate/SqlValidatorNamespace.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorNamespace</a>&nbsp;rightNamespace,
java.util.List&lt;java.lang.String&gt;&nbsp;nameList)</code></th>
<td class="colLast">
<div class="block">Returns an expression for matching columns of a USING clause or inferred
from NATURAL JOIN.</div>
</td>
</tr>
<tr id="i47" class="rowColor">
<td class="colFirst"><code><a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convertValues(org.apache.calcite.sql.SqlCall,org.apache.calcite.rel.type.RelDataType)">convertValues</a></span>&#8203;(<a href="../sql/SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;values,
<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetRowType)</code></th>
<td class="colLast">
<div class="block">Converts a SELECT statement's parse tree into a relational expression.</div>
</td>
</tr>
<tr id="i48" class="altColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convertValuesImpl(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql.SqlCall,org.apache.calcite.rel.type.RelDataType)">convertValuesImpl</a></span>&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../sql/SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;values,
<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetRowType)</code></th>
<td class="colLast">
<div class="block">Converts a values clause (as in "INSERT INTO T(x,y) VALUES (1,2)") into a
relational expression.</div>
</td>
</tr>
<tr id="i49" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convertWhere(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql.SqlNode)">convertWhere</a></span>&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;where)</code></th>
<td class="colLast">
<div class="block">Converts a WHERE clause.</div>
</td>
</tr>
<tr id="i50" class="altColor">
<td class="colFirst"><code><a href="../rel/RelRoot.html" title="class in org.apache.calcite.rel">RelRoot</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convertWith(org.apache.calcite.sql.SqlWith,boolean)">convertWith</a></span>&#8203;(<a href="../sql/SqlWith.html" title="class in org.apache.calcite.sql">SqlWith</a>&nbsp;with,
boolean&nbsp;top)</code></th>
<td class="colLast">
<div class="block">Converts a WITH sub-query into a relational expression.</div>
</td>
</tr>
<tr id="i51" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createAggImpl(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql2rel.SqlToRelConverter.AggConverter,org.apache.calcite.sql.SqlNodeList,org.apache.calcite.sql.SqlNodeList,org.apache.calcite.sql.SqlNode,java.util.List)">createAggImpl</a></span>&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="SqlToRelConverter.AggConverter.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.AggConverter</a>&nbsp;aggConverter,
<a href="../sql/SqlNodeList.html" title="class in org.apache.calcite.sql">SqlNodeList</a>&nbsp;selectList,
<a href="../sql/SqlNodeList.html" title="class in org.apache.calcite.sql">SqlNodeList</a>&nbsp;groupList,
<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;having,
java.util.List&lt;<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;orderExprList)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i52" class="altColor">
<td class="colFirst"><code>protected <a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createAggregate(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.util.ImmutableBitSet,com.google.common.collect.ImmutableList,java.util.List)">createAggregate</a></span>&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;groupSet,
com.google.common.collect.ImmutableList&lt;<a href="../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&nbsp;groupSets,
java.util.List&lt;<a href="../rel/core/AggregateCall.html" title="class in org.apache.calcite.rel.core">AggregateCall</a>&gt;&nbsp;aggCalls)</code></th>
<td class="colLast">
<div class="block">Creates an Aggregate.</div>
</td>
</tr>
<tr id="i53" class="rowColor">
<td class="colFirst"><code>protected <a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createBlackboard(org.apache.calcite.sql.validate.SqlValidatorScope,java.util.Map,boolean)">createBlackboard</a></span>&#8203;(<a href="../sql/validate/SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
java.util.Map&lt;java.lang.String,&#8203;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;nameToNodeMap,
boolean&nbsp;top)</code></th>
<td class="colLast">
<div class="block">Factory method for creating translation workspace.</div>
</td>
</tr>
<tr id="i54" class="altColor">
<td class="colFirst"><code>private <a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createInsertBlackboard(org.apache.calcite.plan.RelOptTable,org.apache.calcite.rex.RexNode,java.util.List)">createInsertBlackboard</a></span>&#8203;(<a href="../plan/RelOptTable.html" title="interface in org.apache.calcite.plan">RelOptTable</a>&nbsp;targetTable,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;sourceRef,
java.util.List&lt;java.lang.String&gt;&nbsp;targetColumnNames)</code></th>
<td class="colLast">
<div class="block">Creates a blackboard for translating the expressions of generated columns
in an INSERT statement.</div>
</td>
</tr>
<tr id="i55" class="rowColor">
<td class="colFirst"><code>protected <a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createJoin(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.rel.RelNode,org.apache.calcite.rel.RelNode,org.apache.calcite.rex.RexNode,org.apache.calcite.rel.core.JoinRelType)">createJoin</a></span>&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;leftRel,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rightRel,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;joinCond,
<a href="../rel/core/JoinRelType.html" title="enum in org.apache.calcite.rel.core">JoinRelType</a>&nbsp;joinType)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i56" class="altColor">
<td class="colFirst"><code>private <a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createModify(org.apache.calcite.plan.RelOptTable,org.apache.calcite.rel.RelNode)">createModify</a></span>&#8203;(<a href="../plan/RelOptTable.html" title="interface in org.apache.calcite.plan">RelOptTable</a>&nbsp;targetTable,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;source)</code></th>
<td class="colLast">
<div class="block">Creates a relational expression to modify a table or modifiable view.</div>
</td>
</tr>
<tr id="i57" class="rowColor">
<td class="colFirst"><code>private <a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createSource(org.apache.calcite.plan.RelOptTable,org.apache.calcite.rel.RelNode,org.apache.calcite.schema.ModifiableView,org.apache.calcite.rel.type.RelDataType)">createSource</a></span>&#8203;(<a href="../plan/RelOptTable.html" title="interface in org.apache.calcite.plan">RelOptTable</a>&nbsp;targetTable,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;source,
<a href="../schema/ModifiableView.html" title="interface in org.apache.calcite.schema">ModifiableView</a>&nbsp;modifiableView,
<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;delegateRowType)</code></th>
<td class="colLast">
<div class="block">Wraps a relational expression in the projects and filters implied by
a <a href="../schema/ModifiableView.html" title="interface in org.apache.calcite.schema"><code>ModifiableView</code></a>.</div>
</td>
</tr>
<tr id="i58" class="altColor">
<td class="colFirst"><code>private <a href="../plan/RelOptTable.ToRelContext.html" title="interface in org.apache.calcite.plan">RelOptTable.ToRelContext</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createToRelContext()">createToRelContext</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i59" class="rowColor">
<td class="colFirst"><code><a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#decorrelate(org.apache.calcite.sql.SqlNode,org.apache.calcite.rel.RelNode)">decorrelate</a></span>&#8203;(<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;query,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rootRel)</code></th>
<td class="colLast">
<div class="block">If sub-query is correlated and decorrelation is enabled, performs
decorrelation.</div>
</td>
</tr>
<tr id="i60" class="altColor">
<td class="colFirst"><code>protected <a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#decorrelateQuery(org.apache.calcite.rel.RelNode)">decorrelateQuery</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rootRel)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i61" class="rowColor">
<td class="colFirst"><code>private java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#deriveAlias(org.apache.calcite.sql.SqlNode,java.util.Collection,int)">deriveAlias</a></span>&#8203;(<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
java.util.Collection&lt;java.lang.String&gt;&nbsp;aliases,
int&nbsp;ordinal)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i62" class="altColor">
<td class="colFirst"><code>private static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#desc(org.apache.calcite.rel.RelFieldCollation.Direction)">desc</a></span>&#8203;(<a href="../rel/RelFieldCollation.Direction.html" title="enum in org.apache.calcite.rel">RelFieldCollation.Direction</a>&nbsp;direction)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i63" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#distinctify(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,boolean)">distinctify</a></span>&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
boolean&nbsp;checkForDupExprs)</code></th>
<td class="colLast">
<div class="block">Having translated 'SELECT ...</div>
</td>
</tr>
<tr id="i64" class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#enableDecorrelation()">enableDecorrelation</a></span>()</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr id="i65" class="rowColor">
<td class="colFirst"><code>private <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ensureSqlType(org.apache.calcite.rel.type.RelDataType,org.apache.calcite.rex.RexNode)">ensureSqlType</a></span>&#8203;(<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;node)</code></th>
<td class="colLast">
<div class="block">Ensures that an expression has a given <a href="../sql/type/SqlTypeName.html" title="enum in org.apache.calcite.sql.type"><code>SqlTypeName</code></a>, applying a
cast if necessary.</div>
</td>
</tr>
<tr id="i66" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#extraSelectItems(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql.SqlSelect,java.util.List,java.util.List,java.util.Collection,java.util.List)">extraSelectItems</a></span>&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../sql/SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select,
java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;exprList,
java.util.List&lt;java.lang.String&gt;&nbsp;nameList,
java.util.Collection&lt;java.lang.String&gt;&nbsp;aliasList,
java.util.List&lt;<a href="../sql/validate/SqlMonotonicity.html" title="enum in org.apache.calcite.sql.validate">SqlMonotonicity</a>&gt;&nbsp;columnMonotonicityList)</code></th>
<td class="colLast">
<div class="block">Adds extra select items.</div>
</td>
</tr>
<tr id="i67" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#findSubQueries(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql.SqlNode,org.apache.calcite.plan.RelOptUtil.Logic,boolean)">findSubQueries</a></span>&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
<a href="../plan/RelOptUtil.Logic.html" title="enum in org.apache.calcite.plan">RelOptUtil.Logic</a>&nbsp;logic,
boolean&nbsp;registerOnlyScalarSubQueries)</code></th>
<td class="colLast">
<div class="block">Builds a list of all <code>IN</code> or <code>EXISTS</code> operators
inside SQL parse tree.</div>
</td>
</tr>
<tr id="i68" class="altColor">
<td class="colFirst"><code><a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#flattenTypes(org.apache.calcite.rel.RelNode,boolean)">flattenTypes</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rootRel,
boolean&nbsp;restructure)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i69" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#gatherOrderExprs(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql.SqlSelect,org.apache.calcite.sql.SqlNodeList,java.util.List,java.util.List)">gatherOrderExprs</a></span>&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../sql/SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select,
<a href="../sql/SqlNodeList.html" title="class in org.apache.calcite.sql">SqlNodeList</a>&nbsp;orderList,
java.util.List&lt;<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;extraOrderExprs,
java.util.List&lt;<a href="../rel/RelFieldCollation.html" title="class in org.apache.calcite.rel">RelFieldCollation</a>&gt;&nbsp;collationList)</code></th>
<td class="colLast">
<div class="block">Creates a list of collations required to implement the ORDER BY clause,
if there is one.</div>
</td>
</tr>
<tr id="i70" class="altColor">
<td class="colFirst"><code><a href="../plan/RelOptCluster.html" title="class in org.apache.calcite.plan">RelOptCluster</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCluster()">getCluster</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i71" class="rowColor">
<td class="colFirst"><code>private java.util.Set&lt;<a href="../rel/metadata/RelColumnMapping.html" title="class in org.apache.calcite.rel.metadata">RelColumnMapping</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getColumnMappings(org.apache.calcite.sql.SqlOperator)">getColumnMappings</a></span>&#8203;(<a href="../sql/SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&nbsp;op)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i72" class="altColor">
<td class="colFirst"><code>private <a href="SqlToRelConverter.CorrelationUse.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.CorrelationUse</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCorrelationUse(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.rel.RelNode)">getCorrelationUse</a></span>&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;r0)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i73" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDynamicParamCount()">getDynamicParamCount</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the number of dynamic parameters encountered during translation;
this must only be called after <a href="#convertQuery(org.apache.calcite.sql.SqlNode,boolean,boolean)"><code>convertQuery(org.apache.calcite.sql.SqlNode, boolean, boolean)</code></a>.</div>
</td>
</tr>
<tr id="i74" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDynamicParamCountInExplain(boolean)">getDynamicParamCountInExplain</a></span>&#8203;(boolean&nbsp;increment)</code></th>
<td class="colLast">
<div class="block">Returns the current count of the number of dynamic parameters in an
EXPLAIN PLAN statement.</div>
</td>
</tr>
<tr id="i75" class="rowColor">
<td class="colFirst"><code><a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDynamicParamType(int)">getDynamicParamType</a></span>&#8203;(int&nbsp;index)</code></th>
<td class="colLast">
<div class="block">Returns the type inferred for a dynamic parameter.</div>
</td>
</tr>
<tr id="i76" class="altColor">
<td class="colFirst"><code>private <a href="InitializerExpressionFactory.html" title="interface in org.apache.calcite.sql2rel">InitializerExpressionFactory</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getInitializerFactory(org.apache.calcite.sql.validate.SqlValidatorTable)">getInitializerFactory</a></span>&#8203;(<a href="../sql/validate/SqlValidatorTable.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorTable</a>&nbsp;validatorTable)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i77" class="rowColor">
<td class="colFirst"><code>protected int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getInSubqueryThreshold()">getInSubqueryThreshold</a></span>()</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr id="i78" class="altColor">
<td class="colFirst"><code>java.util.Map&lt;<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>,&#8203;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMapConvertedNonCorrSubqs()">getMapConvertedNonCorrSubqs</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i79" class="rowColor">
<td class="colFirst"><code><a href="../rex/RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRexBuilder()">getRexBuilder</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the row-expression builder.</div>
</td>
</tr>
<tr id="i80" class="altColor">
<td class="colFirst"><code>protected java.util.List&lt;<a href="../rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSystemFields()">getSystemFields</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a list of fields to be prefixed to each relational expression.</div>
</td>
</tr>
<tr id="i81" class="rowColor">
<td class="colFirst"><code>protected <a href="../plan/RelOptTable.html" title="interface in org.apache.calcite.plan">RelOptTable</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTargetTable(org.apache.calcite.sql.SqlNode)">getTargetTable</a></span>&#8203;(<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;call)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i82" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isOrdered(org.apache.calcite.sql.SqlNode)">isOrdered</a></span>&#8203;(<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;query)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i83" class="rowColor">
<td class="colFirst"><code>private boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isRowConstructor(org.apache.calcite.sql.SqlNode)">isRowConstructor</a></span>&#8203;(<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i84" class="altColor">
<td class="colFirst"><code>private static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isStream(org.apache.calcite.sql.SqlNode)">isStream</a></span>&#8203;(<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;query)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i85" class="rowColor">
<td class="colFirst"><code>private boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isSubQueryNonCorrelated(org.apache.calcite.rel.RelNode,org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard)">isSubQueryNonCorrelated</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;subq,
<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb)</code></th>
<td class="colLast">
<div class="block">Determines whether a sub-query is non-correlated.</div>
</td>
</tr>
<tr id="i86" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isTrimUnusedFields()">isTrimUnusedFields</a></span>()</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr id="i87" class="rowColor">
<td class="colFirst"><code>private <a href="../sql/fun/SqlQuantifyOperator.html" title="class in org.apache.calcite.sql.fun">SqlQuantifyOperator</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#negate(org.apache.calcite.sql.fun.SqlQuantifyOperator)">negate</a></span>&#8203;(<a href="../sql/fun/SqlQuantifyOperator.html" title="class in org.apache.calcite.sql.fun">SqlQuantifyOperator</a>&nbsp;operator)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i88" class="altColor">
<td class="colFirst"><code>protected <a href="RelFieldTrimmer.html" title="class in org.apache.calcite.sql2rel">RelFieldTrimmer</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newFieldTrimmer()">newFieldTrimmer</a></span>()</code></th>
<td class="colLast">
<div class="block">Creates a RelFieldTrimmer.</div>
</td>
</tr>
<tr id="i89" class="rowColor">
<td class="colFirst"><code>private static <a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#pushDownNotForIn(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlNode)">pushDownNotForIn</a></span>&#8203;(<a href="../sql/validate/SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;sqlNode)</code></th>
<td class="colLast">
<div class="block">Push down all the NOT logical operators into any IN/NOT IN operators.</div>
</td>
</tr>
<tr id="i90" class="altColor">
<td class="colFirst"><code>private static <a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#reg(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlNode)">reg</a></span>&#8203;(<a href="../sql/validate/SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;e)</code></th>
<td class="colLast">
<div class="block">Registers with the validator a <a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql"><code>SqlNode</code></a> that has been created
during the Sql-to-Rel process.</div>
</td>
</tr>
<tr id="i91" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#replaceSubQueries(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql.SqlNode,org.apache.calcite.plan.RelOptUtil.Logic)">replaceSubQueries</a></span>&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;expr,
<a href="../plan/RelOptUtil.Logic.html" title="enum in org.apache.calcite.plan">RelOptUtil.Logic</a>&nbsp;logic)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i92" class="altColor">
<td class="colFirst"><code>private <a href="../rel/RelCollation.html" title="interface in org.apache.calcite.rel">RelCollation</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#requiredCollation(org.apache.calcite.rel.RelNode)">requiredCollation</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;r)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i93" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setDynamicParamCountInExplain(int)">setDynamicParamCountInExplain</a></span>&#8203;(int&nbsp;explainParamCount)</code></th>
<td class="colLast">
<div class="block">Sets the number of dynamic parameters in the current EXPLAIN PLAN
statement.</div>
</td>
</tr>
<tr id="i94" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setSubQueryConverter(org.apache.calcite.sql2rel.SubQueryConverter)">setSubQueryConverter</a></span>&#8203;(<a href="SubQueryConverter.html" title="interface in org.apache.calcite.sql2rel">SubQueryConverter</a>&nbsp;converter)</code></th>
<td class="colLast">
<div class="block">Sets a new SubQueryConverter.</div>
</td>
</tr>
<tr id="i95" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#snapshotTemporalTable(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql.SqlCall)">snapshotTemporalTable</a></span>&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../sql/SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i96" class="altColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#substituteSubQuery(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql2rel.SqlToRelConverter.SubQuery)">substituteSubQuery</a></span>&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="SqlToRelConverter.SubQuery.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.SubQuery</a>&nbsp;subQuery)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i97" class="rowColor">
<td class="colFirst"><code><a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toRel(org.apache.calcite.plan.RelOptTable)">toRel</a></span>&#8203;(<a href="../plan/RelOptTable.html" title="interface in org.apache.calcite.plan">RelOptTable</a>&nbsp;table)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i98" class="altColor">
<td class="colFirst"><code>private <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#translateIn(org.apache.calcite.plan.RelOptUtil.Logic,org.apache.calcite.rel.RelNode,org.apache.calcite.rex.RexNode)">translateIn</a></span>&#8203;(<a href="../plan/RelOptUtil.Logic.html" title="enum in org.apache.calcite.plan">RelOptUtil.Logic</a>&nbsp;logic,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;root,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;rex)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i99" class="rowColor">
<td class="colFirst"><code><a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#trimUnusedFields(boolean,org.apache.calcite.rel.RelNode)">trimUnusedFields</a></span>&#8203;(boolean&nbsp;ordered,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rootRel)</code></th>
<td class="colLast">
<div class="block">Walks over a tree of relational expressions, replacing each
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel"><code>RelNode</code></a> with a 'slimmed down' relational expression that projects
only the fields required by its consumer.</div>
</td>
</tr>
<tr id="i100" class="altColor">
<td class="colFirst"><code>private static &lt;T&gt;&nbsp;T</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#unwrap(java.lang.Object,java.lang.Class)">unwrap</a></span>&#8203;(java.lang.Object&nbsp;o,
java.lang.Class&lt;T&gt;&nbsp;clazz)</code></th>
<td class="colLast">&nbsp;</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="SQL2REL_LOGGER">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SQL2REL_LOGGER</h4>
<pre>protected static final&nbsp;org.slf4j.Logger SQL2REL_LOGGER</pre>
</li>
</ul>
<a id="TWO">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TWO</h4>
<pre>private static final&nbsp;java.math.BigDecimal TWO</pre>
</li>
</ul>
<a id="DEFAULT_IN_SUB_QUERY_THRESHOLD">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DEFAULT_IN_SUB_QUERY_THRESHOLD</h4>
<pre>public static final&nbsp;int DEFAULT_IN_SUB_QUERY_THRESHOLD</pre>
<div class="block">Size of the smallest IN list that will be converted to a semijoin to a
static table.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.calcite.sql2rel.SqlToRelConverter.DEFAULT_IN_SUB_QUERY_THRESHOLD">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="DEFAULT_IN_SUBQUERY_THRESHOLD">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DEFAULT_IN_SUBQUERY_THRESHOLD</h4>
<pre>@Deprecated
public static final&nbsp;int DEFAULT_IN_SUBQUERY_THRESHOLD</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.calcite.sql2rel.SqlToRelConverter.DEFAULT_IN_SUBQUERY_THRESHOLD">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="validator">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validator</h4>
<pre>protected final&nbsp;<a href="../sql/validate/SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a> validator</pre>
</li>
</ul>
<a id="rexBuilder">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rexBuilder</h4>
<pre>protected final&nbsp;<a href="../rex/RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder</pre>
</li>
</ul>
<a id="catalogReader">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>catalogReader</h4>
<pre>protected final&nbsp;<a href="../prepare/Prepare.CatalogReader.html" title="interface in org.apache.calcite.prepare">Prepare.CatalogReader</a> catalogReader</pre>
</li>
</ul>
<a id="cluster">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>cluster</h4>
<pre>protected final&nbsp;<a href="../plan/RelOptCluster.html" title="class in org.apache.calcite.plan">RelOptCluster</a> cluster</pre>
</li>
</ul>
<a id="subQueryConverter">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>subQueryConverter</h4>
<pre>private&nbsp;<a href="SubQueryConverter.html" title="interface in org.apache.calcite.sql2rel">SubQueryConverter</a> subQueryConverter</pre>
</li>
</ul>
<a id="leaves">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>leaves</h4>
<pre>protected final&nbsp;java.util.List&lt;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&gt; leaves</pre>
</li>
</ul>
<a id="dynamicParamSqlNodes">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>dynamicParamSqlNodes</h4>
<pre>private final&nbsp;java.util.List&lt;<a href="../sql/SqlDynamicParam.html" title="class in org.apache.calcite.sql">SqlDynamicParam</a>&gt; dynamicParamSqlNodes</pre>
</li>
</ul>
<a id="opTab">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>opTab</h4>
<pre>private final&nbsp;<a href="../sql/SqlOperatorTable.html" title="interface in org.apache.calcite.sql">SqlOperatorTable</a> opTab</pre>
</li>
</ul>
<a id="typeFactory">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>typeFactory</h4>
<pre>protected final&nbsp;<a href="../rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a> typeFactory</pre>
</li>
</ul>
<a id="exprConverter">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>exprConverter</h4>
<pre>private final&nbsp;<a href="SqlNodeToRexConverter.html" title="interface in org.apache.calcite.sql2rel">SqlNodeToRexConverter</a> exprConverter</pre>
</li>
</ul>
<a id="explainParamCount">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>explainParamCount</h4>
<pre>private&nbsp;int explainParamCount</pre>
</li>
</ul>
<a id="config">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>config</h4>
<pre>public final&nbsp;<a href="SqlToRelConverter.Config.html" title="interface in org.apache.calcite.sql2rel">SqlToRelConverter.Config</a> config</pre>
</li>
</ul>
<a id="relBuilder">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>relBuilder</h4>
<pre>private final&nbsp;<a href="../tools/RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a> relBuilder</pre>
</li>
</ul>
<a id="mapCorrelToDeferred">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>mapCorrelToDeferred</h4>
<pre>private final&nbsp;java.util.Map&lt;<a href="../rel/core/CorrelationId.html" title="class in org.apache.calcite.rel.core">CorrelationId</a>,&#8203;<a href="SqlToRelConverter.DeferredLookup.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.DeferredLookup</a>&gt; mapCorrelToDeferred</pre>
<div class="block">Fields used in name resolution for correlated sub-queries.</div>
</li>
</ul>
<a id="datasetStack">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>datasetStack</h4>
<pre>private final&nbsp;java.util.Deque&lt;java.lang.String&gt; datasetStack</pre>
<div class="block">Stack of names of datasets requested by the <code>
TABLE(SAMPLE(&lt;datasetName&gt;, &lt;query&gt;))</code> construct.</div>
</li>
</ul>
<a id="mapConvertedNonCorrSubqs">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>mapConvertedNonCorrSubqs</h4>
<pre>private final&nbsp;java.util.Map&lt;<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>,&#8203;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt; mapConvertedNonCorrSubqs</pre>
<div class="block">Mapping of non-correlated sub-queries that have been converted to their
equivalent constants. Used to avoid re-evaluating the sub-query if it's
already been evaluated.</div>
</li>
</ul>
<a id="viewExpander">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>viewExpander</h4>
<pre>public final&nbsp;<a href="../plan/RelOptTable.ViewExpander.html" title="interface in org.apache.calcite.plan">RelOptTable.ViewExpander</a> viewExpander</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.plan.RelOptTable.ViewExpander,org.apache.calcite.sql.validate.SqlValidator,org.apache.calcite.prepare.Prepare.CatalogReader,org.apache.calcite.plan.RelOptPlanner,org.apache.calcite.rex.RexBuilder,org.apache.calcite.sql2rel.SqlRexConvertletTable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SqlToRelConverter</h4>
<pre>@Deprecated
public&nbsp;SqlToRelConverter&#8203;(<a href="../plan/RelOptTable.ViewExpander.html" title="interface in org.apache.calcite.plan">RelOptTable.ViewExpander</a>&nbsp;viewExpander,
<a href="../sql/validate/SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a>&nbsp;validator,
<a href="../prepare/Prepare.CatalogReader.html" title="interface in org.apache.calcite.prepare">Prepare.CatalogReader</a>&nbsp;catalogReader,
<a href="../plan/RelOptPlanner.html" title="interface in org.apache.calcite.plan">RelOptPlanner</a>&nbsp;planner,
<a href="../rex/RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a>&nbsp;rexBuilder,
<a href="SqlRexConvertletTable.html" title="interface in org.apache.calcite.sql2rel">SqlRexConvertletTable</a>&nbsp;convertletTable)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block">Creates a converter.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>viewExpander</code> - Preparing statement</dd>
<dd><code>validator</code> - Validator</dd>
<dd><code>catalogReader</code> - Schema</dd>
<dd><code>planner</code> - Planner</dd>
<dd><code>rexBuilder</code> - Rex builder</dd>
<dd><code>convertletTable</code> - Expression converter</dd>
</dl>
</li>
</ul>
<a id="&lt;init&gt;(org.apache.calcite.plan.RelOptTable.ViewExpander,org.apache.calcite.sql.validate.SqlValidator,org.apache.calcite.prepare.Prepare.CatalogReader,org.apache.calcite.plan.RelOptCluster,org.apache.calcite.sql2rel.SqlRexConvertletTable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SqlToRelConverter</h4>
<pre>@Deprecated
public&nbsp;SqlToRelConverter&#8203;(<a href="../plan/RelOptTable.ViewExpander.html" title="interface in org.apache.calcite.plan">RelOptTable.ViewExpander</a>&nbsp;viewExpander,
<a href="../sql/validate/SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a>&nbsp;validator,
<a href="../prepare/Prepare.CatalogReader.html" title="interface in org.apache.calcite.prepare">Prepare.CatalogReader</a>&nbsp;catalogReader,
<a href="../plan/RelOptCluster.html" title="class in org.apache.calcite.plan">RelOptCluster</a>&nbsp;cluster,
<a href="SqlRexConvertletTable.html" title="interface in org.apache.calcite.sql2rel">SqlRexConvertletTable</a>&nbsp;convertletTable)</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
</li>
</ul>
<a id="&lt;init&gt;(org.apache.calcite.plan.RelOptTable.ViewExpander,org.apache.calcite.sql.validate.SqlValidator,org.apache.calcite.prepare.Prepare.CatalogReader,org.apache.calcite.plan.RelOptCluster,org.apache.calcite.sql2rel.SqlRexConvertletTable,org.apache.calcite.sql2rel.SqlToRelConverter.Config)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>SqlToRelConverter</h4>
<pre>public&nbsp;SqlToRelConverter&#8203;(<a href="../plan/RelOptTable.ViewExpander.html" title="interface in org.apache.calcite.plan">RelOptTable.ViewExpander</a>&nbsp;viewExpander,
<a href="../sql/validate/SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a>&nbsp;validator,
<a href="../prepare/Prepare.CatalogReader.html" title="interface in org.apache.calcite.prepare">Prepare.CatalogReader</a>&nbsp;catalogReader,
<a href="../plan/RelOptCluster.html" title="class in org.apache.calcite.plan">RelOptCluster</a>&nbsp;cluster,
<a href="SqlRexConvertletTable.html" title="interface in org.apache.calcite.sql2rel">SqlRexConvertletTable</a>&nbsp;convertletTable,
<a href="SqlToRelConverter.Config.html" title="interface in org.apache.calcite.sql2rel">SqlToRelConverter.Config</a>&nbsp;config)</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="getCluster()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCluster</h4>
<pre class="methodSignature">public&nbsp;<a href="../plan/RelOptCluster.html" title="class in org.apache.calcite.plan">RelOptCluster</a>&nbsp;getCluster()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the RelOptCluster in use.</dd>
</dl>
</li>
</ul>
<a id="getRexBuilder()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRexBuilder</h4>
<pre class="methodSignature">public&nbsp;<a href="../rex/RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a>&nbsp;getRexBuilder()</pre>
<div class="block">Returns the row-expression builder.</div>
</li>
</ul>
<a id="getDynamicParamCount()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDynamicParamCount</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;getDynamicParamCount()</pre>
<div class="block">Returns the number of dynamic parameters encountered during translation;
this must only be called after <a href="#convertQuery(org.apache.calcite.sql.SqlNode,boolean,boolean)"><code>convertQuery(org.apache.calcite.sql.SqlNode, boolean, boolean)</code></a>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>number of dynamic parameters</dd>
</dl>
</li>
</ul>
<a id="getDynamicParamType(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDynamicParamType</h4>
<pre class="methodSignature">public&nbsp;<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;getDynamicParamType&#8203;(int&nbsp;index)</pre>
<div class="block">Returns the type inferred for a dynamic parameter.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>index</code> - 0-based index of dynamic parameter</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>inferred type, never null</dd>
</dl>
</li>
</ul>
<a id="getDynamicParamCountInExplain(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDynamicParamCountInExplain</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;getDynamicParamCountInExplain&#8203;(boolean&nbsp;increment)</pre>
<div class="block">Returns the current count of the number of dynamic parameters in an
EXPLAIN PLAN statement.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>increment</code> - if true, increment the count</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the current count before the optional increment</dd>
</dl>
</li>
</ul>
<a id="getMapConvertedNonCorrSubqs()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMapConvertedNonCorrSubqs</h4>
<pre class="methodSignature">public&nbsp;java.util.Map&lt;<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>,&#8203;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;getMapConvertedNonCorrSubqs()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>mapping of non-correlated sub-queries that have been converted to
the constants that they evaluate to</dd>
</dl>
</li>
</ul>
<a id="addConvertedNonCorrSubqs(java.util.Map)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addConvertedNonCorrSubqs</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;addConvertedNonCorrSubqs&#8203;(java.util.Map&lt;<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>,&#8203;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;alreadyConvertedNonCorrSubqs)</pre>
<div class="block">Adds to the current map of non-correlated converted sub-queries the
elements from another map that contains non-correlated sub-queries that
have been converted by another SqlToRelConverter.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>alreadyConvertedNonCorrSubqs</code> - the other map</dd>
</dl>
</li>
</ul>
<a id="setSubQueryConverter(org.apache.calcite.sql2rel.SubQueryConverter)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setSubQueryConverter</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setSubQueryConverter&#8203;(<a href="SubQueryConverter.html" title="interface in org.apache.calcite.sql2rel">SubQueryConverter</a>&nbsp;converter)</pre>
<div class="block">Sets a new SubQueryConverter. To have any effect, this must be called
before any convert method.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>converter</code> - new SubQueryConverter</dd>
</dl>
</li>
</ul>
<a id="setDynamicParamCountInExplain(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setDynamicParamCountInExplain</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setDynamicParamCountInExplain&#8203;(int&nbsp;explainParamCount)</pre>
<div class="block">Sets the number of dynamic parameters in the current EXPLAIN PLAN
statement.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>explainParamCount</code> - number of dynamic parameters in the statement</dd>
</dl>
</li>
</ul>
<a id="checkConvertedType(org.apache.calcite.sql.SqlNode,org.apache.calcite.rel.RelNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkConvertedType</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;checkConvertedType&#8203;(<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;query,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;result)</pre>
</li>
</ul>
<a id="flattenTypes(org.apache.calcite.rel.RelNode,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>flattenTypes</h4>
<pre class="methodSignature">public&nbsp;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;flattenTypes&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rootRel,
boolean&nbsp;restructure)</pre>
</li>
</ul>
<a id="decorrelate(org.apache.calcite.sql.SqlNode,org.apache.calcite.rel.RelNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>decorrelate</h4>
<pre class="methodSignature">public&nbsp;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;decorrelate&#8203;(<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;query,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rootRel)</pre>
<div class="block">If sub-query is correlated and decorrelation is enabled, performs
decorrelation.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>query</code> - Query</dd>
<dd><code>rootRel</code> - Root relational expression</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>New root relational expression after decorrelation</dd>
</dl>
</li>
</ul>
<a id="trimUnusedFields(boolean,org.apache.calcite.rel.RelNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>trimUnusedFields</h4>
<pre class="methodSignature">public&nbsp;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;trimUnusedFields&#8203;(boolean&nbsp;ordered,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rootRel)</pre>
<div class="block">Walks over a tree of relational expressions, replacing each
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel"><code>RelNode</code></a> with a 'slimmed down' relational expression that projects
only the fields required by its consumer.
<p>This may make things easier for the optimizer, by removing crud that
would expand the search space, but is difficult for the optimizer itself
to do it, because optimizer rules must preserve the number and type of
fields. Hence, this transform that operates on the entire tree, similar
to the <a href="RelStructuredTypeFlattener.html" title="class in org.apache.calcite.sql2rel"><code>type-flattening transform</code></a>.
<p>Currently this functionality is disabled in farrago/luciddb; the
default implementation of this method does nothing.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>ordered</code> - Whether the relational expression must produce results in
a particular order (typically because it has an ORDER BY at top level)</dd>
<dd><code>rootRel</code> - Relational expression that is at the root of the tree</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Trimmed relational expression</dd>
</dl>
</li>
</ul>
<a id="newFieldTrimmer()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newFieldTrimmer</h4>
<pre class="methodSignature">protected&nbsp;<a href="RelFieldTrimmer.html" title="class in org.apache.calcite.sql2rel">RelFieldTrimmer</a>&nbsp;newFieldTrimmer()</pre>
<div class="block">Creates a RelFieldTrimmer.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Field trimmer</dd>
</dl>
</li>
</ul>
<a id="convertQuery(org.apache.calcite.sql.SqlNode,boolean,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertQuery</h4>
<pre class="methodSignature">public&nbsp;<a href="../rel/RelRoot.html" title="class in org.apache.calcite.rel">RelRoot</a>&nbsp;convertQuery&#8203;(<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;query,
boolean&nbsp;needsValidation,
boolean&nbsp;top)</pre>
<div class="block">Converts an unvalidated query's parse tree into a relational expression.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>query</code> - Query to convert</dd>
<dd><code>needsValidation</code> - Whether to validate the query before converting;
<code>false</code> if the query has already been
validated.</dd>
<dd><code>top</code> - Whether the query is top-level, say if its result
will become a JDBC result set; <code>false</code> if
the query will be part of a view.</dd>
</dl>
</li>
</ul>
<a id="isStream(org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isStream</h4>
<pre class="methodSignature">private static&nbsp;boolean&nbsp;isStream&#8203;(<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;query)</pre>
</li>
</ul>
<a id="isOrdered(org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isOrdered</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;isOrdered&#8203;(<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;query)</pre>
</li>
</ul>
<a id="requiredCollation(org.apache.calcite.rel.RelNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>requiredCollation</h4>
<pre class="methodSignature">private&nbsp;<a href="../rel/RelCollation.html" title="interface in org.apache.calcite.rel">RelCollation</a>&nbsp;requiredCollation&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;r)</pre>
</li>
</ul>
<a id="convertSelect(org.apache.calcite.sql.SqlSelect,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertSelect</h4>
<pre class="methodSignature">public&nbsp;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;convertSelect&#8203;(<a href="../sql/SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select,
boolean&nbsp;top)</pre>
<div class="block">Converts a SELECT statement's parse tree into a relational expression.</div>
</li>
</ul>
<a id="createBlackboard(org.apache.calcite.sql.validate.SqlValidatorScope,java.util.Map,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createBlackboard</h4>
<pre class="methodSignature">protected&nbsp;<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;createBlackboard&#8203;(<a href="../sql/validate/SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
java.util.Map&lt;java.lang.String,&#8203;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;nameToNodeMap,
boolean&nbsp;top)</pre>
<div class="block">Factory method for creating translation workspace.</div>
</li>
</ul>
<a id="convertSelectImpl(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql.SqlSelect)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertSelectImpl</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;convertSelectImpl&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../sql/SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select)</pre>
<div class="block">Implementation of <a href="#convertSelect(org.apache.calcite.sql.SqlSelect,boolean)"><code>convertSelect(SqlSelect, boolean)</code></a>;
derived class may override.</div>
</li>
</ul>
<a id="distinctify(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>distinctify</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;distinctify&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
boolean&nbsp;checkForDupExprs)</pre>
<div class="block">Having translated 'SELECT ... FROM ... [GROUP BY ...] [HAVING ...]', adds
a relational expression to make the results unique.
<p>If the SELECT clause contains duplicate expressions, adds
<a href="../rel/logical/LogicalProject.html" title="class in org.apache.calcite.rel.logical"><code>LogicalProject</code></a>s so that we are
grouping on the minimal set of keys. The performance gain isn't huge, but
it is difficult to detect these duplicate expressions later.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>bb</code> - Blackboard</dd>
<dd><code>checkForDupExprs</code> - Check for duplicate expressions</dd>
</dl>
</li>
</ul>
<a id="convertOrder(org.apache.calcite.sql.SqlSelect,org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.rel.RelCollation,java.util.List,org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertOrder</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;convertOrder&#8203;(<a href="../sql/SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select,
<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../rel/RelCollation.html" title="interface in org.apache.calcite.rel">RelCollation</a>&nbsp;collation,
java.util.List&lt;<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;orderExprList,
<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;offset,
<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;fetch)</pre>
<div class="block">Converts a query's ORDER BY clause, if any.
<p>Ignores the ORDER BY clause if the query is not top-level and FETCH or
OFFSET are not present.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>select</code> - Query</dd>
<dd><code>bb</code> - Blackboard</dd>
<dd><code>collation</code> - Collation list</dd>
<dd><code>orderExprList</code> - Method populates this list with orderBy expressions
not present in selectList</dd>
<dd><code>offset</code> - Expression for number of rows to discard before
returning first row</dd>
<dd><code>fetch</code> - Expression for number of rows to fetch</dd>
</dl>
</li>
</ul>
<a id="containsInOperator(org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>containsInOperator</h4>
<pre class="methodSignature">private static&nbsp;boolean&nbsp;containsInOperator&#8203;(<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</pre>
<div class="block">Returns whether a given node contains a <a href="../sql/fun/SqlInOperator.html" title="class in org.apache.calcite.sql.fun"><code>SqlInOperator</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>node</code> - a RexNode tree</dd>
</dl>
</li>
</ul>
<a id="pushDownNotForIn(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>pushDownNotForIn</h4>
<pre class="methodSignature">private static&nbsp;<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;pushDownNotForIn&#8203;(<a href="../sql/validate/SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;sqlNode)</pre>
<div class="block">Push down all the NOT logical operators into any IN/NOT IN operators.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>scope</code> - Scope where <code>sqlNode</code> occurs</dd>
<dd><code>sqlNode</code> - the root node from which to look for NOT operators</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the transformed SqlNode representation with NOT pushed down.</dd>
</dl>
</li>
</ul>
<a id="reg(org.apache.calcite.sql.validate.SqlValidatorScope,org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>reg</h4>
<pre class="methodSignature">private static&nbsp;<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;reg&#8203;(<a href="../sql/validate/SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;e)</pre>
<div class="block">Registers with the validator a <a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql"><code>SqlNode</code></a> that has been created
during the Sql-to-Rel process.</div>
</li>
</ul>
<a id="convertWhere(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertWhere</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;convertWhere&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;where)</pre>
<div class="block">Converts a WHERE clause.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>bb</code> - Blackboard</dd>
<dd><code>where</code> - WHERE clause, may be null</dd>
</dl>
</li>
</ul>
<a id="replaceSubQueries(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql.SqlNode,org.apache.calcite.plan.RelOptUtil.Logic)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>replaceSubQueries</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;replaceSubQueries&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;expr,
<a href="../plan/RelOptUtil.Logic.html" title="enum in org.apache.calcite.plan">RelOptUtil.Logic</a>&nbsp;logic)</pre>
</li>
</ul>
<a id="substituteSubQuery(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql2rel.SqlToRelConverter.SubQuery)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>substituteSubQuery</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;substituteSubQuery&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="SqlToRelConverter.SubQuery.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.SubQuery</a>&nbsp;subQuery)</pre>
</li>
</ul>
<a id="translateIn(org.apache.calcite.plan.RelOptUtil.Logic,org.apache.calcite.rel.RelNode,org.apache.calcite.rex.RexNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>translateIn</h4>
<pre class="methodSignature">private&nbsp;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;translateIn&#8203;(<a href="../plan/RelOptUtil.Logic.html" title="enum in org.apache.calcite.plan">RelOptUtil.Logic</a>&nbsp;logic,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;root,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;rex)</pre>
</li>
</ul>
<a id="containsNullLiteral(org.apache.calcite.sql.SqlNodeList)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>containsNullLiteral</h4>
<pre class="methodSignature">private static&nbsp;boolean&nbsp;containsNullLiteral&#8203;(<a href="../sql/SqlNodeList.html" title="class in org.apache.calcite.sql">SqlNodeList</a>&nbsp;valueList)</pre>
</li>
</ul>
<a id="convertNonCorrelatedSubQuery(org.apache.calcite.sql2rel.SqlToRelConverter.SubQuery,org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.rel.RelNode,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertNonCorrelatedSubQuery</h4>
<pre class="methodSignature">private&nbsp;boolean&nbsp;convertNonCorrelatedSubQuery&#8203;(<a href="SqlToRelConverter.SubQuery.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.SubQuery</a>&nbsp;subQuery,
<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;converted,
boolean&nbsp;isExists)</pre>
<div class="block">Determines if a sub-query is non-correlated and if so, converts it to a
constant.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>subQuery</code> - the call that references the sub-query</dd>
<dd><code>bb</code> - blackboard used to convert the sub-query</dd>
<dd><code>converted</code> - RelNode tree corresponding to the sub-query</dd>
<dd><code>isExists</code> - true if the sub-query is part of an EXISTS expression</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Whether the sub-query can be converted to a constant</dd>
</dl>
</li>
</ul>
<a id="convertToSingleValueSubq(org.apache.calcite.sql.SqlNode,org.apache.calcite.rel.RelNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertToSingleValueSubq</h4>
<pre class="methodSignature">public&nbsp;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;convertToSingleValueSubq&#8203;(<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;query,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;plan)</pre>
<div class="block">Converts the RelNode tree for a select statement to a select that
produces a single value.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>query</code> - the query</dd>
<dd><code>plan</code> - the original RelNode tree corresponding to the statement</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the converted RelNode tree</dd>
</dl>
</li>
</ul>
<a id="convertInToOr(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,java.util.List,org.apache.calcite.sql.SqlNodeList,org.apache.calcite.sql.fun.SqlInOperator)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertInToOr</h4>
<pre class="methodSignature">private&nbsp;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;convertInToOr&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;leftKeys,
<a href="../sql/SqlNodeList.html" title="class in org.apache.calcite.sql">SqlNodeList</a>&nbsp;valuesList,
<a href="../sql/fun/SqlInOperator.html" title="class in org.apache.calcite.sql.fun">SqlInOperator</a>&nbsp;op)</pre>
<div class="block">Converts "x IN (1, 2, ...)" to "x=1 OR x=2 OR ...".</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>leftKeys</code> - LHS</dd>
<dd><code>valuesList</code> - RHS</dd>
<dd><code>op</code> - The operator (IN, NOT IN, &gt; SOME, ...)</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>converted expression</dd>
</dl>
</li>
</ul>
<a id="ensureSqlType(org.apache.calcite.rel.type.RelDataType,org.apache.calcite.rex.RexNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ensureSqlType</h4>
<pre class="methodSignature">private&nbsp;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;ensureSqlType&#8203;(<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;node)</pre>
<div class="block">Ensures that an expression has a given <a href="../sql/type/SqlTypeName.html" title="enum in org.apache.calcite.sql.type"><code>SqlTypeName</code></a>, applying a
cast if necessary. If the expression already has the right type family,
returns the expression unchanged.</div>
</li>
</ul>
<a id="getInSubqueryThreshold()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getInSubqueryThreshold</h4>
<pre class="methodSignature">@Deprecated
protected&nbsp;int&nbsp;getInSubqueryThreshold()</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block">Gets the list size threshold under which <a href="#convertInToOr(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,java.util.List,org.apache.calcite.sql.SqlNodeList,org.apache.calcite.sql.fun.SqlInOperator)"><code>convertInToOr(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard, java.util.List&lt;org.apache.calcite.rex.RexNode&gt;, org.apache.calcite.sql.SqlNodeList, org.apache.calcite.sql.fun.SqlInOperator)</code></a> is used.
Lists of this size or greater will instead be converted to use a join
against an inline table
(<a href="../rel/logical/LogicalValues.html" title="class in org.apache.calcite.rel.logical"><code>LogicalValues</code></a>) rather than a
predicate. A threshold of 0 forces usage of an inline table in all cases; a
threshold of Integer.MAX_VALUE forces usage of OR in all cases</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>threshold, default <a href="#DEFAULT_IN_SUB_QUERY_THRESHOLD"><code>DEFAULT_IN_SUB_QUERY_THRESHOLD</code></a></dd>
</dl>
</li>
</ul>
<a id="convertExists(org.apache.calcite.sql.SqlNode,org.apache.calcite.plan.RelOptUtil.SubQueryType,org.apache.calcite.plan.RelOptUtil.Logic,boolean,org.apache.calcite.rel.type.RelDataType)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertExists</h4>
<pre class="methodSignature">private&nbsp;<a href="../plan/RelOptUtil.Exists.html" title="class in org.apache.calcite.plan">RelOptUtil.Exists</a>&nbsp;convertExists&#8203;(<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;seek,
<a href="../plan/RelOptUtil.SubQueryType.html" title="enum in org.apache.calcite.plan">RelOptUtil.SubQueryType</a>&nbsp;subQueryType,
<a href="../plan/RelOptUtil.Logic.html" title="enum in org.apache.calcite.plan">RelOptUtil.Logic</a>&nbsp;logic,
boolean&nbsp;notIn,
<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetDataType)</pre>
<div class="block">Converts an EXISTS or IN predicate into a join. For EXISTS, the sub-query
produces an indicator variable, and the result is a relational expression
which outer joins that indicator to the original query. After performing
the outer join, the condition will be TRUE if the EXISTS condition holds,
NULL otherwise.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>seek</code> - A query, for example 'select * from emp' or
'values (1,2,3)' or '('Foo', 34)'.</dd>
<dd><code>subQueryType</code> - Whether sub-query is IN, EXISTS or scalar</dd>
<dd><code>logic</code> - Whether the answer needs to be in full 3-valued logic (TRUE,
FALSE, UNKNOWN) will be required, or whether we can accept an
approximation (say representing UNKNOWN as FALSE)</dd>
<dd><code>notIn</code> - Whether the operation is NOT IN</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>join expression</dd>
</dl>
</li>
</ul>
<a id="convertQueryOrInList(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql.SqlNode,org.apache.calcite.rel.type.RelDataType)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertQueryOrInList</h4>
<pre class="methodSignature">private&nbsp;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;convertQueryOrInList&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;seek,
<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetRowType)</pre>
</li>
</ul>
<a id="convertRowValues(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql.SqlNode,java.util.Collection,boolean,org.apache.calcite.rel.type.RelDataType)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertRowValues</h4>
<pre class="methodSignature">private&nbsp;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;convertRowValues&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;rowList,
java.util.Collection&lt;<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;rows,
boolean&nbsp;allowLiteralsOnly,
<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetRowType)</pre>
</li>
</ul>
<a id="convertLiteralInValuesList(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.rel.type.RelDataType,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertLiteralInValuesList</h4>
<pre class="methodSignature">private&nbsp;<a href="../rex/RexLiteral.html" title="class in org.apache.calcite.rex">RexLiteral</a>&nbsp;convertLiteralInValuesList&#8203;(<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;sqlNode,
<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;rowType,
int&nbsp;iField)</pre>
</li>
</ul>
<a id="isRowConstructor(org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isRowConstructor</h4>
<pre class="methodSignature">private&nbsp;boolean&nbsp;isRowConstructor&#8203;(<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</pre>
</li>
</ul>
<a id="findSubQueries(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql.SqlNode,org.apache.calcite.plan.RelOptUtil.Logic,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>findSubQueries</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;findSubQueries&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
<a href="../plan/RelOptUtil.Logic.html" title="enum in org.apache.calcite.plan">RelOptUtil.Logic</a>&nbsp;logic,
boolean&nbsp;registerOnlyScalarSubQueries)</pre>
<div class="block">Builds a list of all <code>IN</code> or <code>EXISTS</code> operators
inside SQL parse tree. Does not traverse inside queries.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>bb</code> - blackboard</dd>
<dd><code>node</code> - the SQL parse tree</dd>
<dd><code>logic</code> - Whether the answer needs to be in full 3-valued logic (TRUE,
FALSE, UNKNOWN) will be required, or whether we can accept
an approximation (say representing UNKNOWN as FALSE)</dd>
<dd><code>registerOnlyScalarSubQueries</code> - if set to true and the parse tree
corresponds to a variation of a select
node, only register it if it's a scalar
sub-query</dd>
</dl>
</li>
</ul>
<a id="convertExpression(org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertExpression</h4>
<pre class="methodSignature">public&nbsp;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;convertExpression&#8203;(<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</pre>
<div class="block">Converts an expression from <a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql"><code>SqlNode</code></a> to <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex"><code>RexNode</code></a> format.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>node</code> - Expression to translate</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Converted expression</dd>
</dl>
</li>
</ul>
<a id="convertExpression(org.apache.calcite.sql.SqlNode,java.util.Map)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertExpression</h4>
<pre class="methodSignature">public&nbsp;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;convertExpression&#8203;(<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
java.util.Map&lt;java.lang.String,&#8203;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;nameToNodeMap)</pre>
<div class="block">Converts an expression from <a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql"><code>SqlNode</code></a> to <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex"><code>RexNode</code></a> format,
mapping identifier references to predefined expressions.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>node</code> - Expression to translate</dd>
<dd><code>nameToNodeMap</code> - map from String to <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex"><code>RexNode</code></a>; when an
<a href="../sql/SqlIdentifier.html" title="class in org.apache.calcite.sql"><code>SqlIdentifier</code></a> is encountered, it is used as a
key and translated to the corresponding value from
this map</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Converted expression</dd>
</dl>
</li>
</ul>
<a id="convertExtendedExpression(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertExtendedExpression</h4>
<pre class="methodSignature">protected&nbsp;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;convertExtendedExpression&#8203;(<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb)</pre>
<div class="block">Converts a non-standard expression.
<p>This method is an extension-point that derived classes can override. If
this method returns a null result, the normal expression translation
process will proceed. The default implementation always returns null.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>node</code> - Expression</dd>
<dd><code>bb</code> - Blackboard</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>null to proceed with the usual expression translation process</dd>
</dl>
</li>
</ul>
<a id="convertOver(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertOver</h4>
<pre class="methodSignature">private&nbsp;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;convertOver&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</pre>
</li>
</ul>
<a id="convertFrom(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertFrom</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;convertFrom&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;from)</pre>
<div class="block">Converts a FROM clause into a relational expression.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>bb</code> - Scope within which to resolve identifiers</dd>
<dd><code>from</code> - FROM clause of a query. Examples include:
<ul>
<li>a single table ("SALES.EMP"),
<li>an aliased table ("EMP AS E"),
<li>a list of tables ("EMP, DEPT"),
<li>an ANSI Join expression ("EMP JOIN DEPT ON EMP.DEPTNO =
DEPT.DEPTNO"),
<li>a VALUES clause ("VALUES ('Fred', 20)"),
<li>a query ("(SELECT * FROM EMP WHERE GENDER = 'F')"),
<li>or any combination of the above.
</ul></dd>
</dl>
</li>
</ul>
<a id="convertMatchRecognize(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql.SqlCall)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertMatchRecognize</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;convertMatchRecognize&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../sql/SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call)</pre>
</li>
</ul>
<a id="convertIdentifier(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql.SqlIdentifier,org.apache.calcite.sql.SqlNodeList)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertIdentifier</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;convertIdentifier&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../sql/SqlIdentifier.html" title="class in org.apache.calcite.sql">SqlIdentifier</a>&nbsp;id,
<a href="../sql/SqlNodeList.html" title="class in org.apache.calcite.sql">SqlNodeList</a>&nbsp;extendedColumns)</pre>
</li>
</ul>
<a id="convertCollectionTable(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql.SqlCall)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertCollectionTable</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;convertCollectionTable&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../sql/SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call)</pre>
</li>
</ul>
<a id="afterTableFunction(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql.SqlCall,org.apache.calcite.rel.logical.LogicalTableFunctionScan)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>afterTableFunction</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;afterTableFunction&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../sql/SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call,
<a href="../rel/logical/LogicalTableFunctionScan.html" title="class in org.apache.calcite.rel.logical">LogicalTableFunctionScan</a>&nbsp;callRel)</pre>
</li>
</ul>
<a id="snapshotTemporalTable(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql.SqlCall)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>snapshotTemporalTable</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;snapshotTemporalTable&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../sql/SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call)</pre>
</li>
</ul>
<a id="getColumnMappings(org.apache.calcite.sql.SqlOperator)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getColumnMappings</h4>
<pre class="methodSignature">private&nbsp;java.util.Set&lt;<a href="../rel/metadata/RelColumnMapping.html" title="class in org.apache.calcite.rel.metadata">RelColumnMapping</a>&gt;&nbsp;getColumnMappings&#8203;(<a href="../sql/SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a>&nbsp;op)</pre>
</li>
</ul>
<a id="createJoin(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.rel.RelNode,org.apache.calcite.rel.RelNode,org.apache.calcite.rex.RexNode,org.apache.calcite.rel.core.JoinRelType)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createJoin</h4>
<pre class="methodSignature">protected&nbsp;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;createJoin&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;leftRel,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rightRel,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;joinCond,
<a href="../rel/core/JoinRelType.html" title="enum in org.apache.calcite.rel.core">JoinRelType</a>&nbsp;joinType)</pre>
</li>
</ul>
<a id="getCorrelationUse(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.rel.RelNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCorrelationUse</h4>
<pre class="methodSignature">private&nbsp;<a href="SqlToRelConverter.CorrelationUse.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.CorrelationUse</a>&nbsp;getCorrelationUse&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;r0)</pre>
</li>
</ul>
<a id="isSubQueryNonCorrelated(org.apache.calcite.rel.RelNode,org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isSubQueryNonCorrelated</h4>
<pre class="methodSignature">private&nbsp;boolean&nbsp;isSubQueryNonCorrelated&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;subq,
<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb)</pre>
<div class="block">Determines whether a sub-query is non-correlated. Note that a
non-correlated sub-query can contain correlated references, provided those
references do not reference select statements that are parents of the
sub-query.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>subq</code> - the sub-query</dd>
<dd><code>bb</code> - blackboard used while converting the sub-query, i.e., the
blackboard of the parent query of this sub-query</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the sub-query is non-correlated</dd>
</dl>
</li>
</ul>
<a id="getSystemFields()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSystemFields</h4>
<pre class="methodSignature">protected&nbsp;java.util.List&lt;<a href="../rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;getSystemFields()</pre>
<div class="block">Returns a list of fields to be prefixed to each relational expression.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>List of system fields</dd>
</dl>
</li>
</ul>
<a id="convertJoinCondition(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql.validate.SqlValidatorNamespace,org.apache.calcite.sql.validate.SqlValidatorNamespace,org.apache.calcite.sql.SqlNode,org.apache.calcite.sql.JoinConditionType,org.apache.calcite.rel.RelNode,org.apache.calcite.rel.RelNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertJoinCondition</h4>
<pre class="methodSignature">private&nbsp;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;convertJoinCondition&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../sql/validate/SqlValidatorNamespace.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorNamespace</a>&nbsp;leftNamespace,
<a href="../sql/validate/SqlValidatorNamespace.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorNamespace</a>&nbsp;rightNamespace,
<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;condition,
<a href="../sql/JoinConditionType.html" title="enum in org.apache.calcite.sql">JoinConditionType</a>&nbsp;conditionType,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;leftRel,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rightRel)</pre>
</li>
</ul>
<a id="convertUsing(org.apache.calcite.sql.validate.SqlValidatorNamespace,org.apache.calcite.sql.validate.SqlValidatorNamespace,java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertUsing</h4>
<pre class="methodSignature">@Nonnull
private&nbsp;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;convertUsing&#8203;(<a href="../sql/validate/SqlValidatorNamespace.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorNamespace</a>&nbsp;leftNamespace,
<a href="../sql/validate/SqlValidatorNamespace.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorNamespace</a>&nbsp;rightNamespace,
java.util.List&lt;java.lang.String&gt;&nbsp;nameList)</pre>
<div class="block">Returns an expression for matching columns of a USING clause or inferred
from NATURAL JOIN. "a JOIN b USING (x, y)" becomes "a.x = b.x AND a.y =
b.y". Returns null if the column list is empty.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>leftNamespace</code> - Namespace of left input to join</dd>
<dd><code>rightNamespace</code> - Namespace of right input to join</dd>
<dd><code>nameList</code> - List of column names to join on</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Expression to match columns from name list, or true if name list
is empty</dd>
</dl>
</li>
</ul>
<a id="convertJoinType(org.apache.calcite.sql.JoinType)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertJoinType</h4>
<pre class="methodSignature">private static&nbsp;<a href="../rel/core/JoinRelType.html" title="enum in org.apache.calcite.rel.core">JoinRelType</a>&nbsp;convertJoinType&#8203;(<a href="../sql/JoinType.html" title="enum in org.apache.calcite.sql">JoinType</a>&nbsp;joinType)</pre>
</li>
</ul>
<a id="convertAgg(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql.SqlSelect,java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertAgg</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;convertAgg&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../sql/SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select,
java.util.List&lt;<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;orderExprList)</pre>
<div class="block">Converts the SELECT, GROUP BY and HAVING clauses of an aggregate query.
<p>This method extracts SELECT, GROUP BY and HAVING clauses, and creates
an <a href="SqlToRelConverter.AggConverter.html" title="class in org.apache.calcite.sql2rel"><code>SqlToRelConverter.AggConverter</code></a>, then delegates to <a href="#createAggImpl(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql2rel.SqlToRelConverter.AggConverter,org.apache.calcite.sql.SqlNodeList,org.apache.calcite.sql.SqlNodeList,org.apache.calcite.sql.SqlNode,java.util.List)"><code>createAggImpl(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard, org.apache.calcite.sql2rel.SqlToRelConverter.AggConverter, org.apache.calcite.sql.SqlNodeList, org.apache.calcite.sql.SqlNodeList, org.apache.calcite.sql.SqlNode, java.util.List&lt;org.apache.calcite.sql.SqlNode&gt;)</code></a>.
Derived class may override this method to change any of those clauses or
specify a different <a href="SqlToRelConverter.AggConverter.html" title="class in org.apache.calcite.sql2rel"><code>SqlToRelConverter.AggConverter</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>bb</code> - Scope within which to resolve identifiers</dd>
<dd><code>select</code> - Query</dd>
<dd><code>orderExprList</code> - Additional expressions needed to implement ORDER BY</dd>
</dl>
</li>
</ul>
<a id="createAggImpl(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql2rel.SqlToRelConverter.AggConverter,org.apache.calcite.sql.SqlNodeList,org.apache.calcite.sql.SqlNodeList,org.apache.calcite.sql.SqlNode,java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createAggImpl</h4>
<pre class="methodSignature">protected final&nbsp;void&nbsp;createAggImpl&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="SqlToRelConverter.AggConverter.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.AggConverter</a>&nbsp;aggConverter,
<a href="../sql/SqlNodeList.html" title="class in org.apache.calcite.sql">SqlNodeList</a>&nbsp;selectList,
<a href="../sql/SqlNodeList.html" title="class in org.apache.calcite.sql">SqlNodeList</a>&nbsp;groupList,
<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;having,
java.util.List&lt;<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;orderExprList)</pre>
</li>
</ul>
<a id="createAggregate(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.util.ImmutableBitSet,com.google.common.collect.ImmutableList,java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createAggregate</h4>
<pre class="methodSignature">protected&nbsp;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;createAggregate&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;groupSet,
com.google.common.collect.ImmutableList&lt;<a href="../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&nbsp;groupSets,
java.util.List&lt;<a href="../rel/core/AggregateCall.html" title="class in org.apache.calcite.rel.core">AggregateCall</a>&gt;&nbsp;aggCalls)</pre>
<div class="block">Creates an Aggregate.
<p>In case the aggregate rel changes the order in which it projects
fields, the <code>groupExprProjection</code> parameter is provided, and
the implementation of this method may modify it.
<p>The <code>sortedCount</code> parameter is the number of expressions
known to be monotonic. These expressions must be on the leading edge of
the grouping keys. The default implementation of this method ignores this
parameter.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>bb</code> - Blackboard</dd>
<dd><code>groupSet</code> - Bit set of ordinals of grouping columns</dd>
<dd><code>groupSets</code> - Grouping sets</dd>
<dd><code>aggCalls</code> - Array of calls to aggregate functions</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>LogicalAggregate</dd>
</dl>
</li>
</ul>
<a id="convertDynamicParam(org.apache.calcite.sql.SqlDynamicParam)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertDynamicParam</h4>
<pre class="methodSignature">public&nbsp;<a href="../rex/RexDynamicParam.html" title="class in org.apache.calcite.rex">RexDynamicParam</a>&nbsp;convertDynamicParam&#8203;(<a href="../sql/SqlDynamicParam.html" title="class in org.apache.calcite.sql">SqlDynamicParam</a>&nbsp;dynamicParam)</pre>
</li>
</ul>
<a id="gatherOrderExprs(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql.SqlSelect,org.apache.calcite.sql.SqlNodeList,java.util.List,java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>gatherOrderExprs</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;gatherOrderExprs&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../sql/SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select,
<a href="../sql/SqlNodeList.html" title="class in org.apache.calcite.sql">SqlNodeList</a>&nbsp;orderList,
java.util.List&lt;<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;extraOrderExprs,
java.util.List&lt;<a href="../rel/RelFieldCollation.html" title="class in org.apache.calcite.rel">RelFieldCollation</a>&gt;&nbsp;collationList)</pre>
<div class="block">Creates a list of collations required to implement the ORDER BY clause,
if there is one. Populates <code>extraOrderExprs</code> with any sort
expressions which are not in the select clause.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>bb</code> - Scope within which to resolve identifiers</dd>
<dd><code>select</code> - Select clause. Never null, because we invent a
dummy SELECT if ORDER BY is applied to a set
operation (UNION etc.)</dd>
<dd><code>orderList</code> - Order by clause, may be null</dd>
<dd><code>extraOrderExprs</code> - Sort expressions which are not in the select
clause (output)</dd>
<dd><code>collationList</code> - List of collations (output)</dd>
</dl>
</li>
</ul>
<a id="convertOrderItem(org.apache.calcite.sql.SqlSelect,org.apache.calcite.sql.SqlNode,java.util.List,org.apache.calcite.rel.RelFieldCollation.Direction,org.apache.calcite.rel.RelFieldCollation.NullDirection)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertOrderItem</h4>
<pre class="methodSignature">protected&nbsp;<a href="../rel/RelFieldCollation.html" title="class in org.apache.calcite.rel">RelFieldCollation</a>&nbsp;convertOrderItem&#8203;(<a href="../sql/SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select,
<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;orderItem,
java.util.List&lt;<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;extraExprs,
<a href="../rel/RelFieldCollation.Direction.html" title="enum in org.apache.calcite.rel">RelFieldCollation.Direction</a>&nbsp;direction,
<a href="../rel/RelFieldCollation.NullDirection.html" title="enum in org.apache.calcite.rel">RelFieldCollation.NullDirection</a>&nbsp;nullDirection)</pre>
</li>
</ul>
<a id="desc(org.apache.calcite.rel.RelFieldCollation.Direction)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>desc</h4>
<pre class="methodSignature">private static&nbsp;boolean&nbsp;desc&#8203;(<a href="../rel/RelFieldCollation.Direction.html" title="enum in org.apache.calcite.rel">RelFieldCollation.Direction</a>&nbsp;direction)</pre>
</li>
</ul>
<a id="enableDecorrelation()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>enableDecorrelation</h4>
<pre class="methodSignature">@Deprecated
protected&nbsp;boolean&nbsp;enableDecorrelation()</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
</li>
</ul>
<a id="decorrelateQuery(org.apache.calcite.rel.RelNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>decorrelateQuery</h4>
<pre class="methodSignature">protected&nbsp;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;decorrelateQuery&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rootRel)</pre>
</li>
</ul>
<a id="isTrimUnusedFields()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isTrimUnusedFields</h4>
<pre class="methodSignature">@Deprecated
public&nbsp;boolean&nbsp;isTrimUnusedFields()</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block">Returns whether to trim unused fields as part of the conversion process.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Whether to trim unused fields</dd>
</dl>
</li>
</ul>
<a id="convertQueryRecursive(org.apache.calcite.sql.SqlNode,boolean,org.apache.calcite.rel.type.RelDataType)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertQueryRecursive</h4>
<pre class="methodSignature">protected&nbsp;<a href="../rel/RelRoot.html" title="class in org.apache.calcite.rel">RelRoot</a>&nbsp;convertQueryRecursive&#8203;(<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;query,
boolean&nbsp;top,
<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetRowType)</pre>
<div class="block">Recursively converts a query to a relational expression.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>query</code> - Query</dd>
<dd><code>top</code> - Whether this query is the top-level query of the
statement</dd>
<dd><code>targetRowType</code> - Target row type, or null</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Relational expression</dd>
</dl>
</li>
</ul>
<a id="convertSetOp(org.apache.calcite.sql.SqlCall)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertSetOp</h4>
<pre class="methodSignature">protected&nbsp;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;convertSetOp&#8203;(<a href="../sql/SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call)</pre>
<div class="block">Converts a set operation (UNION, INTERSECT, MINUS) into relational
expressions.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>call</code> - Call to set operator</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Relational expression</dd>
</dl>
</li>
</ul>
<a id="all(org.apache.calcite.sql.SqlCall)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>all</h4>
<pre class="methodSignature">private&nbsp;boolean&nbsp;all&#8203;(<a href="../sql/SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call)</pre>
</li>
</ul>
<a id="convertInsert(org.apache.calcite.sql.SqlInsert)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertInsert</h4>
<pre class="methodSignature">protected&nbsp;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;convertInsert&#8203;(<a href="../sql/SqlInsert.html" title="class in org.apache.calcite.sql">SqlInsert</a>&nbsp;call)</pre>
</li>
</ul>
<a id="createModify(org.apache.calcite.plan.RelOptTable,org.apache.calcite.rel.RelNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createModify</h4>
<pre class="methodSignature">private&nbsp;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;createModify&#8203;(<a href="../plan/RelOptTable.html" title="interface in org.apache.calcite.plan">RelOptTable</a>&nbsp;targetTable,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;source)</pre>
<div class="block">Creates a relational expression to modify a table or modifiable view.</div>
</li>
</ul>
<a id="createSource(org.apache.calcite.plan.RelOptTable,org.apache.calcite.rel.RelNode,org.apache.calcite.schema.ModifiableView,org.apache.calcite.rel.type.RelDataType)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createSource</h4>
<pre class="methodSignature">private&nbsp;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;createSource&#8203;(<a href="../plan/RelOptTable.html" title="interface in org.apache.calcite.plan">RelOptTable</a>&nbsp;targetTable,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;source,
<a href="../schema/ModifiableView.html" title="interface in org.apache.calcite.schema">ModifiableView</a>&nbsp;modifiableView,
<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;delegateRowType)</pre>
<div class="block">Wraps a relational expression in the projects and filters implied by
a <a href="../schema/ModifiableView.html" title="interface in org.apache.calcite.schema"><code>ModifiableView</code></a>.
<p>The input relational expression is suitable for inserting into the view,
and the returned relational expression is suitable for inserting into its
delegate table.
<p>In principle, the delegate table of a view might be another modifiable
view, and if so, the process can be repeated.</div>
</li>
</ul>
<a id="createToRelContext()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createToRelContext</h4>
<pre class="methodSignature">private&nbsp;<a href="../plan/RelOptTable.ToRelContext.html" title="interface in org.apache.calcite.plan">RelOptTable.ToRelContext</a>&nbsp;createToRelContext()</pre>
</li>
</ul>
<a id="toRel(org.apache.calcite.plan.RelOptTable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toRel</h4>
<pre class="methodSignature">public&nbsp;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;toRel&#8203;(<a href="../plan/RelOptTable.html" title="interface in org.apache.calcite.plan">RelOptTable</a>&nbsp;table)</pre>
</li>
</ul>
<a id="getTargetTable(org.apache.calcite.sql.SqlNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTargetTable</h4>
<pre class="methodSignature">protected&nbsp;<a href="../plan/RelOptTable.html" title="interface in org.apache.calcite.plan">RelOptTable</a>&nbsp;getTargetTable&#8203;(<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;call)</pre>
</li>
</ul>
<a id="convertColumnList(org.apache.calcite.sql.SqlInsert,org.apache.calcite.rel.RelNode)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertColumnList</h4>
<pre class="methodSignature">protected&nbsp;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;convertColumnList&#8203;(<a href="../sql/SqlInsert.html" title="class in org.apache.calcite.sql">SqlInsert</a>&nbsp;call,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;source)</pre>
<div class="block">Creates a source for an INSERT statement.
<p>If the column list is not specified, source expressions match target
columns in order.
<p>If the column list is specified, Source expressions are mapped to
target columns by name via targetColumnList, and may not cover the entire
target table. So, we'll make up a full row, using a combination of
default values and the source expressions provided.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>call</code> - Insert expression</dd>
<dd><code>source</code> - Source relational expression</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Converted INSERT statement</dd>
</dl>
</li>
</ul>
<a id="createInsertBlackboard(org.apache.calcite.plan.RelOptTable,org.apache.calcite.rex.RexNode,java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createInsertBlackboard</h4>
<pre class="methodSignature">private&nbsp;<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;createInsertBlackboard&#8203;(<a href="../plan/RelOptTable.html" title="interface in org.apache.calcite.plan">RelOptTable</a>&nbsp;targetTable,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;sourceRef,
java.util.List&lt;java.lang.String&gt;&nbsp;targetColumnNames)</pre>
<div class="block">Creates a blackboard for translating the expressions of generated columns
in an INSERT statement.</div>
</li>
</ul>
<a id="getInitializerFactory(org.apache.calcite.sql.validate.SqlValidatorTable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getInitializerFactory</h4>
<pre class="methodSignature">private&nbsp;<a href="InitializerExpressionFactory.html" title="interface in org.apache.calcite.sql2rel">InitializerExpressionFactory</a>&nbsp;getInitializerFactory&#8203;(<a href="../sql/validate/SqlValidatorTable.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorTable</a>&nbsp;validatorTable)</pre>
</li>
</ul>
<a id="unwrap(java.lang.Object,java.lang.Class)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unwrap</h4>
<pre class="methodSignature">private static&nbsp;&lt;T&gt;&nbsp;T&nbsp;unwrap&#8203;(java.lang.Object&nbsp;o,
java.lang.Class&lt;T&gt;&nbsp;clazz)</pre>
</li>
</ul>
<a id="castNullLiteralIfNeeded(org.apache.calcite.rex.RexNode,org.apache.calcite.rel.type.RelDataType)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>castNullLiteralIfNeeded</h4>
<pre class="methodSignature">private&nbsp;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;castNullLiteralIfNeeded&#8203;(<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;node,
<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;type)</pre>
</li>
</ul>
<a id="collectInsertTargets(org.apache.calcite.sql.SqlInsert,org.apache.calcite.rex.RexNode,java.util.List,java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>collectInsertTargets</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;collectInsertTargets&#8203;(<a href="../sql/SqlInsert.html" title="class in org.apache.calcite.sql">SqlInsert</a>&nbsp;call,
<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;sourceRef,
java.util.List&lt;java.lang.String&gt;&nbsp;targetColumnNames,
java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;columnExprs)</pre>
<div class="block">Given an INSERT statement, collects the list of names to be populated and
the expressions to put in them.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>call</code> - Insert statement</dd>
<dd><code>sourceRef</code> - Expression representing a row from the source
relational expression</dd>
<dd><code>targetColumnNames</code> - List of target column names, to be populated</dd>
<dd><code>columnExprs</code> - List of expressions, to be populated</dd>
</dl>
</li>
</ul>
<a id="convertDelete(org.apache.calcite.sql.SqlDelete)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertDelete</h4>
<pre class="methodSignature">private&nbsp;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;convertDelete&#8203;(<a href="../sql/SqlDelete.html" title="class in org.apache.calcite.sql">SqlDelete</a>&nbsp;call)</pre>
</li>
</ul>
<a id="convertUpdate(org.apache.calcite.sql.SqlUpdate)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertUpdate</h4>
<pre class="methodSignature">private&nbsp;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;convertUpdate&#8203;(<a href="../sql/SqlUpdate.html" title="class in org.apache.calcite.sql">SqlUpdate</a>&nbsp;call)</pre>
</li>
</ul>
<a id="convertMerge(org.apache.calcite.sql.SqlMerge)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertMerge</h4>
<pre class="methodSignature">private&nbsp;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;convertMerge&#8203;(<a href="../sql/SqlMerge.html" title="class in org.apache.calcite.sql">SqlMerge</a>&nbsp;call)</pre>
</li>
</ul>
<a id="convertIdentifier(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql.SqlIdentifier)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertIdentifier</h4>
<pre class="methodSignature">private&nbsp;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;convertIdentifier&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../sql/SqlIdentifier.html" title="class in org.apache.calcite.sql">SqlIdentifier</a>&nbsp;identifier)</pre>
<div class="block">Converts an identifier into an expression in a given scope. For example,
the "empno" in "select empno from emp join dept" becomes "emp.empno".</div>
</li>
</ul>
<a id="adjustInputRef(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.rex.RexInputRef)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>adjustInputRef</h4>
<pre class="methodSignature">protected&nbsp;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;adjustInputRef&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../rex/RexInputRef.html" title="class in org.apache.calcite.rex">RexInputRef</a>&nbsp;inputRef)</pre>
<div class="block">Adjusts the type of a reference to an input field to account for nulls
introduced by outer joins; and adjusts the offset to match the physical
implementation.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>bb</code> - Blackboard</dd>
<dd><code>inputRef</code> - Input ref</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Adjusted input ref</dd>
</dl>
</li>
</ul>
<a id="convertRowConstructor(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql.SqlCall)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertRowConstructor</h4>
<pre class="methodSignature">private&nbsp;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;convertRowConstructor&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../sql/SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;rowConstructor)</pre>
<div class="block">Converts a row constructor into a relational expression.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>bb</code> - Blackboard</dd>
<dd><code>rowConstructor</code> - Row constructor expression</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Relational expression which returns a single row.</dd>
</dl>
</li>
</ul>
<a id="convertCursor(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql2rel.SqlToRelConverter.SubQuery)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertCursor</h4>
<pre class="methodSignature">private&nbsp;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;convertCursor&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="SqlToRelConverter.SubQuery.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.SubQuery</a>&nbsp;subQuery)</pre>
</li>
</ul>
<a id="convertMultisets(java.util.List,org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertMultisets</h4>
<pre class="methodSignature">private&nbsp;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;convertMultisets&#8203;(java.util.List&lt;<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;operands,
<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb)</pre>
</li>
</ul>
<a id="convertSelectList(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql.SqlSelect,java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertSelectList</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;convertSelectList&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../sql/SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select,
java.util.List&lt;<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;orderList)</pre>
</li>
</ul>
<a id="extraSelectItems(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql.SqlSelect,java.util.List,java.util.List,java.util.Collection,java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>extraSelectItems</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;extraSelectItems&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../sql/SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select,
java.util.List&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;exprList,
java.util.List&lt;java.lang.String&gt;&nbsp;nameList,
java.util.Collection&lt;java.lang.String&gt;&nbsp;aliasList,
java.util.List&lt;<a href="../sql/validate/SqlMonotonicity.html" title="enum in org.apache.calcite.sql.validate">SqlMonotonicity</a>&gt;&nbsp;columnMonotonicityList)</pre>
<div class="block">Adds extra select items. The default implementation adds nothing; derived
classes may add columns to exprList, nameList, aliasList and
columnMonotonicityList.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>bb</code> - Blackboard</dd>
<dd><code>select</code> - Select statement being translated</dd>
<dd><code>exprList</code> - List of expressions in select clause</dd>
<dd><code>nameList</code> - List of names, one per column</dd>
<dd><code>aliasList</code> - Collection of aliases that have been used
already</dd>
<dd><code>columnMonotonicityList</code> - List of monotonicity, one per column</dd>
</dl>
</li>
</ul>
<a id="deriveAlias(org.apache.calcite.sql.SqlNode,java.util.Collection,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>deriveAlias</h4>
<pre class="methodSignature">private&nbsp;java.lang.String&nbsp;deriveAlias&#8203;(<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
java.util.Collection&lt;java.lang.String&gt;&nbsp;aliases,
int&nbsp;ordinal)</pre>
</li>
</ul>
<a id="convertWith(org.apache.calcite.sql.SqlWith,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertWith</h4>
<pre class="methodSignature">public&nbsp;<a href="../rel/RelRoot.html" title="class in org.apache.calcite.rel">RelRoot</a>&nbsp;convertWith&#8203;(<a href="../sql/SqlWith.html" title="class in org.apache.calcite.sql">SqlWith</a>&nbsp;with,
boolean&nbsp;top)</pre>
<div class="block">Converts a WITH sub-query into a relational expression.</div>
</li>
</ul>
<a id="convertValues(org.apache.calcite.sql.SqlCall,org.apache.calcite.rel.type.RelDataType)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertValues</h4>
<pre class="methodSignature">public&nbsp;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;convertValues&#8203;(<a href="../sql/SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;values,
<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetRowType)</pre>
<div class="block">Converts a SELECT statement's parse tree into a relational expression.</div>
</li>
</ul>
<a id="convertValuesImpl(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql.SqlCall,org.apache.calcite.rel.type.RelDataType)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertValuesImpl</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;convertValuesImpl&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../sql/SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;values,
<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;targetRowType)</pre>
<div class="block">Converts a values clause (as in "INSERT INTO T(x,y) VALUES (1,2)") into a
relational expression.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>bb</code> - Blackboard</dd>
<dd><code>values</code> - Call to SQL VALUES operator</dd>
<dd><code>targetRowType</code> - Target row type</dd>
</dl>
</li>
</ul>
<a id="negate(org.apache.calcite.sql.fun.SqlQuantifyOperator)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>negate</h4>
<pre class="methodSignature">private&nbsp;<a href="../sql/fun/SqlQuantifyOperator.html" title="class in org.apache.calcite.sql.fun">SqlQuantifyOperator</a>&nbsp;negate&#8203;(<a href="../sql/fun/SqlQuantifyOperator.html" title="class in org.apache.calcite.sql.fun">SqlQuantifyOperator</a>&nbsp;operator)</pre>
</li>
</ul>
<a id="configBuilder()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>configBuilder</h4>
<pre class="methodSignature">public static&nbsp;<a href="SqlToRelConverter.ConfigBuilder.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.ConfigBuilder</a>&nbsp;configBuilder()</pre>
<div class="block">Creates a builder for a <a href="SqlToRelConverter.Config.html" title="interface in org.apache.calcite.sql2rel"><code>SqlToRelConverter.Config</code></a>.</div>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/SqlToRelConverter.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>