<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>org.apache.calcite.sql2rel (Apache Calcite API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="org.apache.calcite.sql2rel (Apache Calcite API)";
        }
    }
    catch(err) {
    }
//-->
var pathtoroot = "../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li class="navBarCell1Rev">Package</li>
<li>Class</li>
<li><a href="package-use.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<main role="main">
<div class="header">
<h1 title="Package" class="title">Package&nbsp;org.apache.calcite.sql2rel</h1>
</div>
<div class="contentContainer">
<section role="region"><a id="package.description">
<!--   -->
</a>
<div class="block">Translates a SQL parse tree to relational expression.</div>
</section>
<ul class="blockList">
<li class="blockList">
<table class="typeSummary">
<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Interface</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="AuxiliaryConverter.html" title="interface in org.apache.calcite.sql2rel">AuxiliaryConverter</a></th>
<td class="colLast">
<div class="block">Converts an expression for a group window function (e.g.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="InitializerContext.html" title="interface in org.apache.calcite.sql2rel">InitializerContext</a></th>
<td class="colLast">
<div class="block">Provides context for <a href="InitializerExpressionFactory.html" title="interface in org.apache.calcite.sql2rel"><code>InitializerExpressionFactory</code></a> methods.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="InitializerExpressionFactory.html" title="interface in org.apache.calcite.sql2rel">InitializerExpressionFactory</a></th>
<td class="colLast">
<div class="block">InitializerExpressionFactory supplies default values for INSERT, UPDATE, and NEW.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RelStructuredTypeFlattener.SelfFlatteningRel.html" title="interface in org.apache.calcite.sql2rel">RelStructuredTypeFlattener.SelfFlatteningRel</a></th>
<td class="colLast">
<div class="block">Mix-in interface for relational expressions that know how to
 flatten themselves.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="SqlNodeToRexConverter.html" title="interface in org.apache.calcite.sql2rel">SqlNodeToRexConverter</a></th>
<td class="colLast">
<div class="block">Converts expressions 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>.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="SqlRexContext.html" title="interface in org.apache.calcite.sql2rel">SqlRexContext</a></th>
<td class="colLast">
<div class="block">Contains the context necessary for a <a href="SqlRexConvertlet.html" title="interface in org.apache.calcite.sql2rel"><code>SqlRexConvertlet</code></a> to convert a
 <a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql"><code>SqlNode</code></a> expression into a <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex"><code>RexNode</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="SqlRexConvertlet.html" title="interface in org.apache.calcite.sql2rel">SqlRexConvertlet</a></th>
<td class="colLast">
<div class="block">Thunk which converts a <a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql"><code>SqlNode</code></a> expression into a <a href="../rex/RexNode.html" title="class in org.apache.calcite.rex"><code>RexNode</code></a>
 expression.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="SqlRexConvertletTable.html" title="interface in org.apache.calcite.sql2rel">SqlRexConvertletTable</a></th>
<td class="colLast">
<div class="block">Collection of <a href="SqlRexConvertlet.html" title="interface in org.apache.calcite.sql2rel"><code>SqlRexConvertlet</code></a>s.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="SqlToRelConverter.Config.html" title="interface in org.apache.calcite.sql2rel">SqlToRelConverter.Config</a></th>
<td class="colLast">
<div class="block">Interface to define the configuration for a SqlToRelConverter.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="SubQueryConverter.html" title="interface in org.apache.calcite.sql2rel">SubQueryConverter</a></th>
<td class="colLast">
<div class="block">SubQueryConverter provides the interface for classes that convert sub-queries
 into equivalent expressions.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList">
<table class="typeSummary">
<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="AuxiliaryConverter.Impl.html" title="class in org.apache.calcite.sql2rel">AuxiliaryConverter.Impl</a></th>
<td class="colLast">
<div class="block">Simple implementation of <a href="AuxiliaryConverter.html" title="interface in org.apache.calcite.sql2rel"><code>AuxiliaryConverter</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="CorrelationReferenceFinder.html" title="class in org.apache.calcite.sql2rel">CorrelationReferenceFinder</a></th>
<td class="colLast">
<div class="block">Shuttle that finds references to a given <a href="../rel/core/CorrelationId.html" title="class in org.apache.calcite.rel.core"><code>CorrelationId</code></a> within a tree
 of <a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel"><code>RelNode</code></a>s.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="CorrelationReferenceFinder.MyRexVisitor.html" title="class in org.apache.calcite.sql2rel">CorrelationReferenceFinder.MyRexVisitor</a></th>
<td class="colLast">
<div class="block">Replaces alternative names of correlation variable to its canonical name.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="DeduplicateCorrelateVariables.html" title="class in org.apache.calcite.sql2rel">DeduplicateCorrelateVariables</a></th>
<td class="colLast">
<div class="block">Rewrites relations to ensure the same correlation is referenced by the same
 correlation variable.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="DeduplicateCorrelateVariables.DeduplicateCorrelateVariablesShuttle.html" title="class in org.apache.calcite.sql2rel">DeduplicateCorrelateVariables.DeduplicateCorrelateVariablesShuttle</a></th>
<td class="colLast">
<div class="block">Replaces alternative names of correlation variable to its canonical name.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="NullInitializerExpressionFactory.html" title="class in org.apache.calcite.sql2rel">NullInitializerExpressionFactory</a></th>
<td class="colLast">
<div class="block">An implementation of <a href="InitializerExpressionFactory.html" title="interface in org.apache.calcite.sql2rel"><code>InitializerExpressionFactory</code></a> that always supplies NULL.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="ReflectiveConvertletTable.html" title="class in org.apache.calcite.sql2rel">ReflectiveConvertletTable</a></th>
<td class="colLast">
<div class="block">Implementation of <a href="SqlRexConvertletTable.html" title="interface in org.apache.calcite.sql2rel"><code>SqlRexConvertletTable</code></a> which uses reflection to call
 any method of the form <code>public RexNode convertXxx(ConvertletContext,
 SqlNode)</code> or <code>public RexNode convertXxx(ConvertletContext,
 SqlOperator, SqlCall)</code>.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RelDecorrelator.html" title="class in org.apache.calcite.sql2rel">RelDecorrelator</a></th>
<td class="colLast">
<div class="block">RelDecorrelator replaces all correlated expressions (corExp) in a relational
 expression (RelNode) tree with non-correlated expressions that are produced
 from joining the RelNode that produces the corExp with the RelNode that
 references it.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RelDecorrelator.CorDef.html" title="class in org.apache.calcite.sql2rel">RelDecorrelator.CorDef</a></th>
<td class="colLast">
<div class="block">A correlation and a field.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RelDecorrelator.CorelMap.html" title="class in org.apache.calcite.sql2rel">RelDecorrelator.CorelMap</a></th>
<td class="colLast">
<div class="block">A map of the locations of
 <a href="../rel/core/Correlate.html" title="class in org.apache.calcite.rel.core"><code>Correlate</code></a>
 in a tree of <a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel"><code>RelNode</code></a>s.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RelDecorrelator.CorelMapBuilder.html" title="class in org.apache.calcite.sql2rel">RelDecorrelator.CorelMapBuilder</a></th>
<td class="colLast">
<div class="block">Builds a <a href="RelDecorrelator.CorelMap.html" title="class in org.apache.calcite.sql2rel"><code>RelDecorrelator.CorelMap</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RelDecorrelator.CorRef.html" title="class in org.apache.calcite.sql2rel">RelDecorrelator.CorRef</a></th>
<td class="colLast">
<div class="block">A unique reference to a correlation field.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RelDecorrelator.DecorrelateRexShuttle.html" title="class in org.apache.calcite.sql2rel">RelDecorrelator.DecorrelateRexShuttle</a></th>
<td class="colLast">
<div class="block">Shuttle that decorrelates.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RelDecorrelator.Frame.html" title="class in org.apache.calcite.sql2rel">RelDecorrelator.Frame</a></th>
<td class="colLast">
<div class="block">Frame describing the relational expression after decorrelation
 and where to find the output fields and correlation variables
 among its output fields.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RelFieldTrimmer.html" title="class in org.apache.calcite.sql2rel">RelFieldTrimmer</a></th>
<td class="colLast">
<div class="block">Transformer that 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 columns required by its consumer.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RelFieldTrimmer.TrimResult.html" title="class in org.apache.calcite.sql2rel">RelFieldTrimmer.TrimResult</a></th>
<td class="colLast">
<div class="block">Result of an attempt to trim columns from a relational expression.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RelStructuredTypeFlattener.html" title="class in org.apache.calcite.sql2rel">RelStructuredTypeFlattener</a></th>
<td class="colLast">
<div class="block">RelStructuredTypeFlattener removes all structured types from a tree of
 relational expressions.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="SqlNodeToRexConverterImpl.html" title="class in org.apache.calcite.sql2rel">SqlNodeToRexConverterImpl</a></th>
<td class="colLast">
<div class="block">Standard implementation of <a href="SqlNodeToRexConverter.html" title="interface in org.apache.calcite.sql2rel"><code>SqlNodeToRexConverter</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="SqlToRelConverter.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter</a></th>
<td class="colLast">
<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).</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="SqlToRelConverter.AggregateFinder.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.AggregateFinder</a></th>
<td class="colLast">
<div class="block">Visitor that collects all aggregate functions in a <a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql"><code>SqlNode</code></a> tree.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="SqlToRelConverter.ConfigBuilder.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.ConfigBuilder</a></th>
<td class="colLast">
<div class="block">Builder for a <a href="SqlToRelConverter.Config.html" title="interface in org.apache.calcite.sql2rel"><code>SqlToRelConverter.Config</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="SqlToRelConverter.ConfigImpl.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.ConfigImpl</a></th>
<td class="colLast">
<div class="block">Implementation of <a href="SqlToRelConverter.Config.html" title="interface in org.apache.calcite.sql2rel"><code>SqlToRelConverter.Config</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="SqlToRelConverter.CorrelationUse.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.CorrelationUse</a></th>
<td class="colLast">
<div class="block">Use of a row as a correlating variable by a given relational
 expression.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="SqlToRelConverter.DeferredLookup.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.DeferredLookup</a></th>
<td class="colLast">
<div class="block">Deferred lookup.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="SqlToRelConverter.LookupContext.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.LookupContext</a></th>
<td class="colLast">
<div class="block">Context to find a relational expression to a field offset.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="SqlToRelConverter.RexAccessShuttle.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.RexAccessShuttle</a></th>
<td class="colLast">
<div class="block">Shuttle that replace outer <a href="../rex/RexInputRef.html" title="class in org.apache.calcite.rex"><code>RexInputRef</code></a> with
 <a href="../rex/RexFieldAccess.html" title="class in org.apache.calcite.rex"><code>RexFieldAccess</code></a>, and adjust <code>offset</code> to
 each inner <a href="../rex/RexInputRef.html" title="class in org.apache.calcite.rex"><code>RexInputRef</code></a> in the lateral join
 condition.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="SqlToRelConverter.SubQuery.html" title="class in org.apache.calcite.sql2rel">SqlToRelConverter.SubQuery</a></th>
<td class="colLast">
<div class="block">A sub-query, whether it needs to be translated using 2- or 3-valued
 logic.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="StandardConvertletTable.html" title="class in org.apache.calcite.sql2rel">StandardConvertletTable</a></th>
<td class="colLast">
<div class="block">Standard implementation of <a href="SqlRexConvertletTable.html" title="interface in org.apache.calcite.sql2rel"><code>SqlRexConvertletTable</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="StandardConvertletTable.AvgVarianceConvertlet.html" title="class in org.apache.calcite.sql2rel">StandardConvertletTable.AvgVarianceConvertlet</a></th>
<td class="colLast">
<div class="block">Convertlet that handles <code>AVG</code> and <code>VARIANCE</code>
 windowed aggregate functions.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="StandardConvertletTable.GreatestConvertlet.html" title="class in org.apache.calcite.sql2rel">StandardConvertletTable.GreatestConvertlet</a></th>
<td class="colLast">
<div class="block">Convertlet that converts <code>GREATEST</code> and <code>LEAST</code>.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="StandardConvertletTable.RegrCovarianceConvertlet.html" title="class in org.apache.calcite.sql2rel">StandardConvertletTable.RegrCovarianceConvertlet</a></th>
<td class="colLast">
<div class="block">Convertlet that handles <code>COVAR_POP</code>, <code>COVAR_SAMP</code>,
 <code>REGR_SXX</code>, <code>REGR_SYY</code> windowed aggregate functions.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="StandardConvertletTable.TimestampAddConvertlet.html" title="class in org.apache.calcite.sql2rel">StandardConvertletTable.TimestampAddConvertlet</a></th>
<td class="colLast">
<div class="block">Convertlet that handles the <code>TIMESTAMPADD</code> function.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="StandardConvertletTable.TimestampDiffConvertlet.html" title="class in org.apache.calcite.sql2rel">StandardConvertletTable.TimestampDiffConvertlet</a></th>
<td class="colLast">
<div class="block">Convertlet that handles the <code>TIMESTAMPDIFF</code> function.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="StandardConvertletTable.TrimConvertlet.html" title="class in org.apache.calcite.sql2rel">StandardConvertletTable.TrimConvertlet</a></th>
<td class="colLast">
<div class="block">Convertlet that converts <code>LTRIM</code> and <code>RTRIM</code> to
 <code>TRIM</code>.</div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
</div>
</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 class="navBarCell1Rev">Package</li>
<li>Class</li>
<li><a href="package-use.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</body>
</html>
