blob: ff49c4faa3cbffb4a0b5376057dcb3ec56008e6d [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>SqlToRelConverter (Apache Calcite calcite API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.calcite.sql2rel, class: SqlToRelConverter">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../script-dir/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../script-dir/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../script-dir/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../script-dir/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../script-dir/jquery-3.4.1.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-ui.js"></script>
</head>
<body class="class-declaration">
<script type="text/javascript">var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":9,"i5":41,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":42,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":42,"i43":10,"i44":10,"i45":10,"i46":10,"i47":9,"i48":42,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10};
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 = "../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flexBox">
<header role="banner" class="flexHeader">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><b>Apache Calcite</b></div>
</div>
<div class="subNav">
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><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>
<div class="navListSearch"><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="skipNav"><a id="skip.navbar.top">
<!-- -->
</a></div>
</nav>
</header>
<div class="flexContent">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.calcite.sql2rel</a></div>
<h1 title="Class SqlToRelConverter" class="title">Class SqlToRelConverter</h1>
</div>
<div class="contentContainer">
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a>
<div class="inheritance">org.apache.calcite.sql2rel.SqlToRelConverter</div>
</div>
<section class="description">
<hr>
<pre>public class <span class="typeNameLabel">SqlToRelConverter</span>
extends <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></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>
</section>
<section class="summary">
<ul class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<li class="blockList">
<section class="nestedClassSummary"><a id="nested.class.summary">
<!-- -->
</a>
<h2>Nested Class Summary</h2>
<div class="memberSummary">
<table>
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<thead>
<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>
</thead>
<tbody>
<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>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="altColor">
<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="rowColor">
<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"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
</tbody>
</table>
</div>
</section>
</li>
<!-- =========== FIELD SUMMARY =========== -->
<li class="blockList">
<section class="fieldSummary"><a id="field.summary">
<!-- -->
</a>
<h2>Field Summary</h2>
<div class="memberSummary">
<table>
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<thead>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
</thead>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>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>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="altColor">
<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="rowColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/9/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>,&#8203;<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink">Integer</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>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>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>
</tbody>
</table>
</div>
</section>
</li>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li class="blockList">
<section class="constructorSummary"><a id="constructor.summary">
<!-- -->
</a>
<h2>Constructor Summary</h2>
<div class="memberSummary">
<table>
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<thead>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
</thead>
<tbody>
<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>
</tbody>
</table>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li class="blockList">
<section class="methodSummary"><a id="method.summary">
<!-- -->
</a>
<h2>Method Summary</h2>
<div class="memberSummary">
<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t1" class="tableTab" onclick="show(1);">Static Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t4" class="tableTab" onclick="show(8);">Concrete Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t6" class="tableTab" onclick="show(32);">Deprecated Methods</button></div>
<div id="memberSummary_tabpanel" role="tabpanel">
<table aria-labelledby="t0">
<thead>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
</thead>
<tbody>
<tr class="altColor" id="i0">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addConvertedNonCorrSubqs(java.util.Map)">addConvertedNonCorrSubqs</a></span>&#8203;(<a href="https://docs.oracle.com/javase/9/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&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 class="rowColor" id="i1">
<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 class="altColor" id="i2">
<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 class="rowColor" id="i3">
<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,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;targetColumnNames,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&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 class="altColor" id="i4">
<td class="colFirst"><code>static <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">
<div class="block">Returns a default <a href="SqlToRelConverter.Config.html" title="interface in org.apache.calcite.sql2rel"><code>SqlToRelConverter.Config</code></a>.</div>
</td>
</tr>
<tr class="rowColor" id="i5">
<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"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr class="altColor" id="i6">
<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,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&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 class="rowColor" id="i7">
<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 class="altColor" id="i8">
<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 class="rowColor" id="i9">
<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 class="altColor" id="i10">
<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 class="rowColor" id="i11">
<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,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#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 class="altColor" id="i12">
<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 class="rowColor" id="i13">
<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">&nbsp;</td>
</tr>
<tr class="altColor" id="i14">
<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,java.util.List)">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,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;fieldNames)</code></th>
<td class="colLast">
<div class="block">Converts a FROM clause into a relational expression.</div>
</td>
</tr>
<tr class="rowColor" id="i15">
<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 class="altColor" id="i16">
<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.SqlMatchRecognize)">convertMatchRecognize</a></span>&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../sql/SqlMatchRecognize.html" title="class in org.apache.calcite.sql">SqlMatchRecognize</a>&nbsp;matchRecognize)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor" id="i17">
<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,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&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 class="altColor" id="i18">
<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,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&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 class="rowColor" id="i19">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convertPivot(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql.SqlPivot)">convertPivot</a></span>&#8203;(<a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../sql/SqlPivot.html" title="class in org.apache.calcite.sql">SqlPivot</a>&nbsp;pivot)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor" id="i20">
<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 class="rowColor" id="i21">
<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 class="altColor" id="i22">
<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 class="rowColor" id="i23">
<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 class="altColor" id="i24">
<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 class="rowColor" id="i25">
<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 class="altColor" id="i26">
<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 class="rowColor" id="i27">
<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 class="altColor" id="i28">
<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,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&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 class="rowColor" id="i29">
<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,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&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 class="altColor" id="i30">
<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,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#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 class="rowColor" id="i31">
<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 class="altColor" id="i32">
<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 class="rowColor" id="i33">
<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 class="altColor" id="i34">
<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 class="rowColor" id="i35">
<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,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;exprList,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;nameList,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;aliasList,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&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 class="altColor" id="i36">
<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 class="rowColor" id="i37">
<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,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;extraOrderExprs,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&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 class="altColor" id="i38">
<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">
<div class="block">Returns the RelOptCluster in use.</div>
</td>
</tr>
<tr class="rowColor" id="i39">
<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 class="altColor" id="i40">
<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 class="rowColor" id="i41">
<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 class="altColor" id="i42">
<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 class="rowColor" id="i43">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/9/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&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">
<div class="block">Returns the mapping of non-correlated sub-queries that have been converted
to the constants that they evaluate to.</div>
</td>
</tr>
<tr class="altColor" id="i44">
<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 class="rowColor" id="i45">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&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 class="altColor" id="i46">
<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 class="rowColor" id="i47">
<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 class="altColor" id="i48">
<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 class="rowColor" id="i49">
<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 class="altColor" id="i50">
<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 class="rowColor" id="i51">
<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 class="altColor" id="i52">
<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,java.util.List)">toRel</a></span>&#8203;(<a href="../plan/RelOptTable.html" title="interface in org.apache.calcite.plan">RelOptTable</a>&nbsp;table,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../rel/hint/RelHint.html" title="class in org.apache.calcite.rel.hint">RelHint</a>&gt;&nbsp;hints)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor" id="i53">
<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>
</tbody>
</table>
</div>
</div>
<div class="inheritedList">
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
<a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a><code><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<li class="blockList">
<section class="fieldDetails"><a id="field.detail">
<!-- -->
</a>
<h2>Field Details</h2>
<ul class="blockList">
<li class="blockList">
<section class="detail">
<h3><a id="SQL2REL_LOGGER">SQL2REL_LOGGER</a></h3>
<div class="memberSignature"><span class="modifiers">protected static final</span>&nbsp;<span class="returnType">org.slf4j.Logger</span>&nbsp;<span class="memberName">SQL2REL_LOGGER</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="DEFAULT_IN_SUB_QUERY_THRESHOLD">DEFAULT_IN_SUB_QUERY_THRESHOLD</a></h3>
<div class="memberSignature"><span class="modifiers">public static final</span>&nbsp;<span class="returnType">int</span>&nbsp;<span class="memberName">DEFAULT_IN_SUB_QUERY_THRESHOLD</span></div>
<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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="DEFAULT_IN_SUBQUERY_THRESHOLD">DEFAULT_IN_SUBQUERY_THRESHOLD</a></h3>
<div class="memberSignature"><span class="annotations"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
</span><span class="modifiers">public static final</span>&nbsp;<span class="returnType">int</span>&nbsp;<span class="memberName">DEFAULT_IN_SUBQUERY_THRESHOLD</span></div>
<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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="validator">validator</a></h3>
<div class="memberSignature"><span class="modifiers">protected final</span>&nbsp;<span class="returnType"><a href="../sql/validate/SqlValidator.html" title="interface in org.apache.calcite.sql.validate">SqlValidator</a></span>&nbsp;<span class="memberName">validator</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="rexBuilder">rexBuilder</a></h3>
<div class="memberSignature"><span class="modifiers">protected final</span>&nbsp;<span class="returnType"><a href="../rex/RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a></span>&nbsp;<span class="memberName">rexBuilder</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="catalogReader">catalogReader</a></h3>
<div class="memberSignature"><span class="modifiers">protected final</span>&nbsp;<span class="returnType"><a href="../prepare/Prepare.CatalogReader.html" title="interface in org.apache.calcite.prepare">Prepare.CatalogReader</a></span>&nbsp;<span class="memberName">catalogReader</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="cluster">cluster</a></h3>
<div class="memberSignature"><span class="modifiers">protected final</span>&nbsp;<span class="returnType"><a href="../plan/RelOptCluster.html" title="class in org.apache.calcite.plan">RelOptCluster</a></span>&nbsp;<span class="memberName">cluster</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="leaves">leaves</a></h3>
<div class="memberSignature"><span class="modifiers">protected final</span>&nbsp;<span class="returnType"><a href="https://docs.oracle.com/javase/9/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>,&#8203;<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink">Integer</a>&gt;</span>&nbsp;<span class="memberName">leaves</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="typeFactory">typeFactory</a></h3>
<div class="memberSignature"><span class="modifiers">protected final</span>&nbsp;<span class="returnType"><a href="../rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a></span>&nbsp;<span class="memberName">typeFactory</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="config">config</a></h3>
<div class="memberSignature"><span class="modifiers">public final</span>&nbsp;<span class="returnType"><a href="SqlToRelConverter.Config.html" title="interface in org.apache.calcite.sql2rel">SqlToRelConverter.Config</a></span>&nbsp;<span class="memberName">config</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="viewExpander">viewExpander</a></h3>
<div class="memberSignature"><span class="modifiers">public final</span>&nbsp;<span class="returnType"><a href="../plan/RelOptTable.ViewExpander.html" title="interface in org.apache.calcite.plan">RelOptTable.ViewExpander</a></span>&nbsp;<span class="memberName">viewExpander</span></div>
</section>
</li>
</ul>
</section>
</li>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li class="blockList">
<section class="constructorDetails"><a id="constructor.detail">
<!-- -->
</a>
<h2>Constructor Details</h2>
<ul class="blockList">
<li class="blockList">
<section class="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)">SqlToRelConverter</a></h3>
<div class="memberSignature"><span class="annotations"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
</span><span class="modifiers">public</span>&nbsp;<span class="memberName">SqlToRelConverter</span>&#8203;(<span class="arguments"><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)</span></div>
<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>
</section>
</li>
<li class="blockList">
<section class="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.RelOptCluster,org.apache.calcite.sql2rel.SqlRexConvertletTable)">SqlToRelConverter</a></h3>
<div class="memberSignature"><span class="annotations"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
</span><span class="modifiers">public</span>&nbsp;<span class="memberName">SqlToRelConverter</span>&#8203;(<span class="arguments"><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)</span></div>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
</section>
</li>
<li class="blockList">
<section class="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.RelOptCluster,org.apache.calcite.sql2rel.SqlRexConvertletTable,org.apache.calcite.sql2rel.SqlToRelConverter.Config)">SqlToRelConverter</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="memberName">SqlToRelConverter</span>&#8203;(<span class="arguments"><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)</span></div>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li class="blockList">
<section class="methodDetails"><a id="method.detail">
<!-- -->
</a>
<h2>Method Details</h2>
<ul class="blockList">
<li class="blockList">
<section class="detail">
<h3><a id="getCluster()">getCluster</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="../plan/RelOptCluster.html" title="class in org.apache.calcite.plan">RelOptCluster</a></span>&nbsp;<span class="memberName">getCluster</span>()</div>
<div class="block">Returns the RelOptCluster in use.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getRexBuilder()">getRexBuilder</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="../rex/RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a></span>&nbsp;<span class="memberName">getRexBuilder</span>()</div>
<div class="block">Returns the row-expression builder.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getDynamicParamCount()">getDynamicParamCount</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">int</span>&nbsp;<span class="memberName">getDynamicParamCount</span>()</div>
<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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getDynamicParamType(int)">getDynamicParamType</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a></span>&nbsp;<span class="memberName">getDynamicParamType</span>&#8203;(<span class="arguments">int&nbsp;index)</span></div>
<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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getDynamicParamCountInExplain(boolean)">getDynamicParamCountInExplain</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">int</span>&nbsp;<span class="memberName">getDynamicParamCountInExplain</span>&#8203;(<span class="arguments">boolean&nbsp;increment)</span></div>
<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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getMapConvertedNonCorrSubqs()">getMapConvertedNonCorrSubqs</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="https://docs.oracle.com/javase/9/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&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;</span>&nbsp;<span class="memberName">getMapConvertedNonCorrSubqs</span>()</div>
<div class="block">Returns the mapping of non-correlated sub-queries that have been converted
to the constants that they evaluate to.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="addConvertedNonCorrSubqs(java.util.Map)">addConvertedNonCorrSubqs</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">addConvertedNonCorrSubqs</span>&#8203;(<span class="arguments"><a href="https://docs.oracle.com/javase/9/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&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)</span></div>
<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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="setSubQueryConverter(org.apache.calcite.sql2rel.SubQueryConverter)">setSubQueryConverter</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">setSubQueryConverter</span>&#8203;(<span class="arguments"><a href="SubQueryConverter.html" title="interface in org.apache.calcite.sql2rel">SubQueryConverter</a>&nbsp;converter)</span></div>
<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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="setDynamicParamCountInExplain(int)">setDynamicParamCountInExplain</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">setDynamicParamCountInExplain</span>&#8203;(<span class="arguments">int&nbsp;explainParamCount)</span></div>
<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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="flattenTypes(org.apache.calcite.rel.RelNode,boolean)">flattenTypes</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></span>&nbsp;<span class="memberName">flattenTypes</span>&#8203;(<span class="arguments"><a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rootRel,
boolean&nbsp;restructure)</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="decorrelate(org.apache.calcite.sql.SqlNode,org.apache.calcite.rel.RelNode)">decorrelate</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></span>&nbsp;<span class="memberName">decorrelate</span>&#8203;(<span class="arguments"><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)</span></div>
<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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="trimUnusedFields(boolean,org.apache.calcite.rel.RelNode)">trimUnusedFields</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></span>&nbsp;<span class="memberName">trimUnusedFields</span>&#8203;(<span class="arguments">boolean&nbsp;ordered,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rootRel)</span></div>
<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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="newFieldTrimmer()">newFieldTrimmer</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType"><a href="RelFieldTrimmer.html" title="class in org.apache.calcite.sql2rel">RelFieldTrimmer</a></span>&nbsp;<span class="memberName">newFieldTrimmer</span>()</div>
<div class="block">Creates a RelFieldTrimmer.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Field trimmer</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="convertQuery(org.apache.calcite.sql.SqlNode,boolean,boolean)">convertQuery</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="../rel/RelRoot.html" title="class in org.apache.calcite.rel">RelRoot</a></span>&nbsp;<span class="memberName">convertQuery</span>&#8203;(<span class="arguments"><a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;query,
boolean&nbsp;needsValidation,
boolean&nbsp;top)</span></div>
<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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="isOrdered(org.apache.calcite.sql.SqlNode)">isOrdered</a></h3>
<div class="memberSignature"><span class="modifiers">public static</span>&nbsp;<span class="returnType">boolean</span>&nbsp;<span class="memberName">isOrdered</span>&#8203;(<span class="arguments"><a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;query)</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="convertSelect(org.apache.calcite.sql.SqlSelect,boolean)">convertSelect</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></span>&nbsp;<span class="memberName">convertSelect</span>&#8203;(<span class="arguments"><a href="../sql/SqlSelect.html" title="class in org.apache.calcite.sql">SqlSelect</a>&nbsp;select,
boolean&nbsp;top)</span></div>
<div class="block">Converts a SELECT statement's parse tree into a relational expression.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="createBlackboard(org.apache.calcite.sql.validate.SqlValidatorScope,java.util.Map,boolean)">createBlackboard</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType"><a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a></span>&nbsp;<span class="memberName">createBlackboard</span>&#8203;(<span class="arguments"><a href="../sql/validate/SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorScope</a>&nbsp;scope,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;nameToNodeMap,
boolean&nbsp;top)</span></div>
<div class="block">Factory method for creating translation workspace.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="convertSelectImpl(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql.SqlSelect)">convertSelectImpl</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">convertSelectImpl</span>&#8203;(<span class="arguments"><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)</span></div>
<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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><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)">convertOrder</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">convertOrder</span>&#8203;(<span class="arguments"><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,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&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)</span></div>
<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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="convertToSingleValueSubq(org.apache.calcite.sql.SqlNode,org.apache.calcite.rel.RelNode)">convertToSingleValueSubq</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></span>&nbsp;<span class="memberName">convertToSingleValueSubq</span>&#8203;(<span class="arguments"><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)</span></div>
<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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getInSubqueryThreshold()">getInSubqueryThreshold</a></h3>
<div class="memberSignature"><span class="annotations"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
</span><span class="modifiers">protected</span>&nbsp;<span class="returnType">int</span>&nbsp;<span class="memberName">getInSubqueryThreshold</span>()</div>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block">Gets the list size threshold under which <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> 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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="convertExpression(org.apache.calcite.sql.SqlNode)">convertExpression</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></span>&nbsp;<span class="memberName">convertExpression</span>&#8203;(<span class="arguments"><a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node)</span></div>
<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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="convertExpression(org.apache.calcite.sql.SqlNode,java.util.Map)">convertExpression</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></span>&nbsp;<span class="memberName">convertExpression</span>&#8203;(<span class="arguments"><a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;node,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;nameToNodeMap)</span></div>
<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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="convertExtendedExpression(org.apache.calcite.sql.SqlNode,org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard)">convertExtendedExpression</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType"><a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></span>&nbsp;<span class="memberName">convertExtendedExpression</span>&#8203;(<span class="arguments"><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)</span></div>
<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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="convertFrom(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql.SqlNode)">convertFrom</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">convertFrom</span>&#8203;(<span class="arguments"><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)</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="convertFrom(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql.SqlNode,java.util.List)">convertFrom</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">convertFrom</span>&#8203;(<span class="arguments"><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,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;fieldNames)</span></div>
<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>
<dd><code>fieldNames</code> - Field aliases, usually come from AS clause</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="convertMatchRecognize(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql.SqlMatchRecognize)">convertMatchRecognize</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">convertMatchRecognize</span>&#8203;(<span class="arguments"><a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../sql/SqlMatchRecognize.html" title="class in org.apache.calcite.sql">SqlMatchRecognize</a>&nbsp;matchRecognize)</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="convertPivot(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql.SqlPivot)">convertPivot</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">convertPivot</span>&#8203;(<span class="arguments"><a href="SqlToRelConverter.Blackboard.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.Blackboard</a>&nbsp;bb,
<a href="../sql/SqlPivot.html" title="class in org.apache.calcite.sql">SqlPivot</a>&nbsp;pivot)</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="convertCollectionTable(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql.SqlCall)">convertCollectionTable</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">convertCollectionTable</span>&#8203;(<span class="arguments"><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)</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="afterTableFunction(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql.SqlCall,org.apache.calcite.rel.logical.LogicalTableFunctionScan)">afterTableFunction</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">afterTableFunction</span>&#8203;(<span class="arguments"><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)</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><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)">createJoin</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType"><a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></span>&nbsp;<span class="memberName">createJoin</span>&#8203;(<span class="arguments"><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)</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getSystemFields()">getSystemFields</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType"><a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../rel/type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;</span>&nbsp;<span class="memberName">getSystemFields</span>()</div>
<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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="convertAgg(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.sql.SqlSelect,java.util.List)">convertAgg</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">convertAgg</span>&#8203;(<span class="arguments"><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="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;orderExprList)</span></div>
<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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><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)">createAggImpl</a></h3>
<div class="memberSignature"><span class="modifiers">protected final</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">createAggImpl</span>&#8203;(<span class="arguments"><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,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;orderExprList)</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="createAggregate(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.util.ImmutableBitSet,com.google.common.collect.ImmutableList,java.util.List)">createAggregate</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType"><a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></span>&nbsp;<span class="memberName">createAggregate</span>&#8203;(<span class="arguments"><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,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../rel/core/AggregateCall.html" title="class in org.apache.calcite.rel.core">AggregateCall</a>&gt;&nbsp;aggCalls)</span></div>
<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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="convertDynamicParam(org.apache.calcite.sql.SqlDynamicParam)">convertDynamicParam</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="../rex/RexDynamicParam.html" title="class in org.apache.calcite.rex">RexDynamicParam</a></span>&nbsp;<span class="memberName">convertDynamicParam</span>&#8203;(<span class="arguments"><a href="../sql/SqlDynamicParam.html" title="class in org.apache.calcite.sql">SqlDynamicParam</a>&nbsp;dynamicParam)</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><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)">gatherOrderExprs</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">gatherOrderExprs</span>&#8203;(<span class="arguments"><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,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&gt;&nbsp;extraOrderExprs,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../rel/RelFieldCollation.html" title="class in org.apache.calcite.rel">RelFieldCollation</a>&gt;&nbsp;collationList)</span></div>
<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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><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)">convertOrderItem</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType"><a href="../rel/RelFieldCollation.html" title="class in org.apache.calcite.rel">RelFieldCollation</a></span>&nbsp;<span class="memberName">convertOrderItem</span>&#8203;(<span class="arguments"><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,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&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)</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="enableDecorrelation()">enableDecorrelation</a></h3>
<div class="memberSignature"><span class="annotations"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
</span><span class="modifiers">protected</span>&nbsp;<span class="returnType">boolean</span>&nbsp;<span class="memberName">enableDecorrelation</span>()</div>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="decorrelateQuery(org.apache.calcite.rel.RelNode)">decorrelateQuery</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType"><a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></span>&nbsp;<span class="memberName">decorrelateQuery</span>&#8203;(<span class="arguments"><a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rootRel)</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="isTrimUnusedFields()">isTrimUnusedFields</a></h3>
<div class="memberSignature"><span class="annotations"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
</span><span class="modifiers">public</span>&nbsp;<span class="returnType">boolean</span>&nbsp;<span class="memberName">isTrimUnusedFields</span>()</div>
<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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="convertQueryRecursive(org.apache.calcite.sql.SqlNode,boolean,org.apache.calcite.rel.type.RelDataType)">convertQueryRecursive</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType"><a href="../rel/RelRoot.html" title="class in org.apache.calcite.rel">RelRoot</a></span>&nbsp;<span class="memberName">convertQueryRecursive</span>&#8203;(<span class="arguments"><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)</span></div>
<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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="convertSetOp(org.apache.calcite.sql.SqlCall)">convertSetOp</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType"><a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></span>&nbsp;<span class="memberName">convertSetOp</span>&#8203;(<span class="arguments"><a href="../sql/SqlCall.html" title="class in org.apache.calcite.sql">SqlCall</a>&nbsp;call)</span></div>
<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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="convertInsert(org.apache.calcite.sql.SqlInsert)">convertInsert</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType"><a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></span>&nbsp;<span class="memberName">convertInsert</span>&#8203;(<span class="arguments"><a href="../sql/SqlInsert.html" title="class in org.apache.calcite.sql">SqlInsert</a>&nbsp;call)</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="toRel(org.apache.calcite.plan.RelOptTable,java.util.List)">toRel</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></span>&nbsp;<span class="memberName">toRel</span>&#8203;(<span class="arguments"><a href="../plan/RelOptTable.html" title="interface in org.apache.calcite.plan">RelOptTable</a>&nbsp;table,
<a href="https://docs.oracle.com/javase/9/docs/api/javax/annotation/Nonnull.html?is-external=true" title="class or interface in javax.annotation" class="externalLink">@Nonnull</a>
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../rel/hint/RelHint.html" title="class in org.apache.calcite.rel.hint">RelHint</a>&gt;&nbsp;hints)</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getTargetTable(org.apache.calcite.sql.SqlNode)">getTargetTable</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType"><a href="../plan/RelOptTable.html" title="interface in org.apache.calcite.plan">RelOptTable</a></span>&nbsp;<span class="memberName">getTargetTable</span>&#8203;(<span class="arguments"><a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;call)</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="convertColumnList(org.apache.calcite.sql.SqlInsert,org.apache.calcite.rel.RelNode)">convertColumnList</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType"><a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></span>&nbsp;<span class="memberName">convertColumnList</span>&#8203;(<span class="arguments"><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)</span></div>
<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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="collectInsertTargets(org.apache.calcite.sql.SqlInsert,org.apache.calcite.rex.RexNode,java.util.List,java.util.List)">collectInsertTargets</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">collectInsertTargets</span>&#8203;(<span class="arguments"><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,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;targetColumnNames,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;columnExprs)</span></div>
<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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="adjustInputRef(org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard,org.apache.calcite.rex.RexInputRef)">adjustInputRef</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType"><a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></span>&nbsp;<span class="memberName">adjustInputRef</span>&#8203;(<span class="arguments"><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)</span></div>
<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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><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)">extraSelectItems</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">extraSelectItems</span>&#8203;(<span class="arguments"><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="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;exprList,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;nameList,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;aliasList,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../sql/validate/SqlMonotonicity.html" title="enum in org.apache.calcite.sql.validate">SqlMonotonicity</a>&gt;&nbsp;columnMonotonicityList)</span></div>
<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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="convertWith(org.apache.calcite.sql.SqlWith,boolean)">convertWith</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="../rel/RelRoot.html" title="class in org.apache.calcite.rel">RelRoot</a></span>&nbsp;<span class="memberName">convertWith</span>&#8203;(<span class="arguments"><a href="../sql/SqlWith.html" title="class in org.apache.calcite.sql">SqlWith</a>&nbsp;with,
boolean&nbsp;top)</span></div>
<div class="block">Converts a WITH sub-query into a relational expression.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="convertValues(org.apache.calcite.sql.SqlCall,org.apache.calcite.rel.type.RelDataType)">convertValues</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></span>&nbsp;<span class="memberName">convertValues</span>&#8203;(<span class="arguments"><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)</span></div>
<div class="block">Converts a SELECT statement's parse tree into a relational expression.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="configBuilder()">configBuilder</a></h3>
<div class="memberSignature"><span class="annotations"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
</span><span class="modifiers">public static</span>&nbsp;<span class="returnType"><a href="SqlToRelConverter.ConfigBuilder.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.ConfigBuilder</a></span>&nbsp;<span class="memberName">configBuilder</span>()</div>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<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>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="config()">config</a></h3>
<div class="memberSignature"><span class="modifiers">public static</span>&nbsp;<span class="returnType"><a href="SqlToRelConverter.Config.html" title="interface in org.apache.calcite.sql2rel">SqlToRelConverter.Config</a></span>&nbsp;<span class="memberName">config</span>()</div>
<div class="block">Returns a default <a href="SqlToRelConverter.Config.html" title="interface in org.apache.calcite.sql2rel"><code>SqlToRelConverter.Config</code></a>.</div>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
</div>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><b>Apache Calcite</b></div>
</div>
<div class="subNav">
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><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>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &copy; 2012-2020 Apache Software Foundation. All Rights Reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>