blob: 20e3ada4fae7adb7a3de1d496cc15e546a0140ae [file] [log] [blame]
<!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/logical/LogicalCorrelate.html" title="class in org.apache.calcite.rel.logical"><code>LogicalCorrelate</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>