blob: 66ce68d6197bd857791cf6656aad73f303d85b8c [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>Uses of Class org.apache.calcite.rel.core.Join (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="Uses of Class org.apache.calcite.rel.core.Join (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><a href="../package-summary.html">Package</a></li>
<li><a href="../Join.html" title="class in org.apache.calcite.rel.core">Class</a></li>
<li class="navBarCell1Rev">Use</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">
<h2 title="Uses of Class org.apache.calcite.rel.core.Join" class="title">Uses of Class<br>org.apache.calcite.rel.core.Join</h2>
</div>
<div class="classUseContainer">
<ul class="blockList">
<li class="blockList">
<table class="useSummary">
<caption><span>Packages that use <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Package</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="#org.apache.calcite.adapter.enumerable">org.apache.calcite.adapter.enumerable</a></th>
<td class="colLast">
<div class="block">Query optimizer rules for Java calling convention.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="#org.apache.calcite.adapter.jdbc">org.apache.calcite.adapter.jdbc</a></th>
<td class="colLast">
<div class="block">Query provider based on a JDBC data source.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="#org.apache.calcite.adapter.pig">org.apache.calcite.adapter.pig</a></th>
<td class="colLast">
<div class="block">Pig query provider.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="#org.apache.calcite.interpreter">org.apache.calcite.interpreter</a></th>
<td class="colLast">
<div class="block">Provides an implementation of relational expressions using an interpreter.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="#org.apache.calcite.plan">org.apache.calcite.plan</a></th>
<td class="colLast">
<div class="block">Defines interfaces for constructing rule-based optimizers of
relational expressions.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="#org.apache.calcite.rel.core">org.apache.calcite.rel.core</a></th>
<td class="colLast">
<div class="block">Defines core relational expressions.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="#org.apache.calcite.rel.logical">org.apache.calcite.rel.logical</a></th>
<td class="colLast">
<div class="block">Defines logical relational expressions.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="#org.apache.calcite.rel.metadata">org.apache.calcite.rel.metadata</a></th>
<td class="colLast">
<div class="block">Defines metadata interfaces and utilities for relational
expressions.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="#org.apache.calcite.rel.rel2sql">org.apache.calcite.rel.rel2sql</a></th>
<td class="colLast">
<div class="block">Translates a relational expression to SQL parse tree.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="#org.apache.calcite.rel.rules">org.apache.calcite.rel.rules</a></th>
<td class="colLast">
<div class="block">Provides a core set of planner rules.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="#org.apache.calcite.rex">org.apache.calcite.rex</a></th>
<td class="colLast">
<div class="block">Provides a language for representing row-expressions.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="#org.apache.calcite.sql2rel">org.apache.calcite.sql2rel</a></th>
<td class="colLast">
<div class="block">Translates a SQL parse tree to relational expression.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList">
<ul class="blockList">
<li class="blockList">
<section role="region"><a id="org.apache.calcite.adapter.enumerable">
<!-- -->
</a>
<h3>Uses of <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a> in <a href="../../../adapter/enumerable/package-summary.html">org.apache.calcite.adapter.enumerable</a></h3>
<table class="useSummary">
<caption><span>Subclasses of <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a> in <a href="../../../adapter/enumerable/package-summary.html">org.apache.calcite.adapter.enumerable</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../adapter/enumerable/EnumerableBatchNestedLoopJoin.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableBatchNestedLoopJoin</a></span></code></th>
<td class="colLast">
<div class="block">Implementation of batch nested loop join in
<a href="../../../adapter/enumerable/EnumerableConvention.html" title="enum in org.apache.calcite.adapter.enumerable"><code>enumerable calling convention</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../adapter/enumerable/EnumerableHashJoin.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableHashJoin</a></span></code></th>
<td class="colLast">
<div class="block">Implementation of <a href="../Join.html" title="class in org.apache.calcite.rel.core"><code>Join</code></a> in
<a href="../../../adapter/enumerable/EnumerableConvention.html" title="enum in org.apache.calcite.adapter.enumerable"><code>enumerable calling convention</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../adapter/enumerable/EnumerableMergeJoin.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableMergeJoin</a></span></code></th>
<td class="colLast">
<div class="block">Implementation of <a href="../Join.html" title="class in org.apache.calcite.rel.core"><code>Join</code></a> in
<a href="../../../adapter/enumerable/EnumerableConvention.html" title="enum in org.apache.calcite.adapter.enumerable"><code>enumerable calling convention</code></a> using
a merge algorithm.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../adapter/enumerable/EnumerableNestedLoopJoin.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableNestedLoopJoin</a></span></code></th>
<td class="colLast">
<div class="block">Implementation of <a href="../Join.html" title="class in org.apache.calcite.rel.core"><code>Join</code></a> in
<a href="../../../adapter/enumerable/EnumerableConvention.html" title="enum in org.apache.calcite.adapter.enumerable"><code>enumerable calling convention</code></a>
that allows conditions that are not just <code>=</code> (equals).</div>
</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Constructor parameters in <a href="../../../adapter/enumerable/package-summary.html">org.apache.calcite.adapter.enumerable</a> with type arguments of type <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../adapter/enumerable/EnumerableBatchNestedLoopJoinRule.html#%3Cinit%3E(java.lang.Class,org.apache.calcite.tools.RelBuilderFactory,int)">EnumerableBatchNestedLoopJoinRule</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&gt;&nbsp;clazz,
<a href="../../../tools/RelBuilderFactory.html" title="interface in org.apache.calcite.tools">RelBuilderFactory</a>&nbsp;relBuilderFactory,
int&nbsp;batchSize)</code></th>
<td class="colLast">
<div class="block">Creates an EnumerableBatchNestedLoopJoinRule.</div>
</td>
</tr>
</tbody>
</table>
</section>
</li>
<li class="blockList">
<section role="region"><a id="org.apache.calcite.adapter.jdbc">
<!-- -->
</a>
<h3>Uses of <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a> in <a href="../../../adapter/jdbc/package-summary.html">org.apache.calcite.adapter.jdbc</a></h3>
<table class="useSummary">
<caption><span>Subclasses of <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a> in <a href="../../../adapter/jdbc/package-summary.html">org.apache.calcite.adapter.jdbc</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../adapter/jdbc/JdbcRules.JdbcJoin.html" title="class in org.apache.calcite.adapter.jdbc">JdbcRules.JdbcJoin</a></span></code></th>
<td class="colLast">
<div class="block">Join operator implemented in JDBC convention.</div>
</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Methods in <a href="../../../adapter/jdbc/package-summary.html">org.apache.calcite.adapter.jdbc</a> with parameters of type <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code><a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">JdbcRules.JdbcJoinRule.</span><code><span class="memberNameLink"><a href="../../../adapter/jdbc/JdbcRules.JdbcJoinRule.html#convert(org.apache.calcite.rel.core.Join,boolean)">convert</a></span>&#8203;(<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;join,
boolean&nbsp;convertInputTraits)</code></th>
<td class="colLast">
<div class="block">Converts a <code>Join</code> into a <code>JdbcJoin</code>.</div>
</td>
</tr>
</tbody>
</table>
</section>
</li>
<li class="blockList">
<section role="region"><a id="org.apache.calcite.adapter.pig">
<!-- -->
</a>
<h3>Uses of <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a> in <a href="../../../adapter/pig/package-summary.html">org.apache.calcite.adapter.pig</a></h3>
<table class="useSummary">
<caption><span>Subclasses of <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a> in <a href="../../../adapter/pig/package-summary.html">org.apache.calcite.adapter.pig</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../adapter/pig/PigJoin.html" title="class in org.apache.calcite.adapter.pig">PigJoin</a></span></code></th>
<td class="colLast">
<div class="block">Implementation of <a href="../Join.html" title="class in org.apache.calcite.rel.core"><code>Join</code></a> in
<a href="../../../adapter/pig/PigRel.html#CONVENTION"><code>Pig calling convention</code></a>.</div>
</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Methods in <a href="../../../adapter/pig/package-summary.html">org.apache.calcite.adapter.pig</a> that return <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code><a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">PigJoin.</span><code><span class="memberNameLink"><a href="../../../adapter/pig/PigJoin.html#copy(org.apache.calcite.plan.RelTraitSet,org.apache.calcite.rex.RexNode,org.apache.calcite.rel.RelNode,org.apache.calcite.rel.RelNode,org.apache.calcite.rel.core.JoinRelType,boolean)">copy</a></span>&#8203;(<a href="../../../plan/RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;traitSet,
<a href="../../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;conditionExpr,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;left,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;right,
<a href="../JoinRelType.html" title="enum in org.apache.calcite.rel.core">JoinRelType</a>&nbsp;joinType,
boolean&nbsp;semiJoinDone)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
</section>
</li>
<li class="blockList">
<section role="region"><a id="org.apache.calcite.interpreter">
<!-- -->
</a>
<h3>Uses of <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a> in <a href="../../../interpreter/package-summary.html">org.apache.calcite.interpreter</a></h3>
<table class="useSummary">
<caption><span>Subclasses of <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a> in <a href="../../../interpreter/package-summary.html">org.apache.calcite.interpreter</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../interpreter/Bindables.BindableJoin.html" title="class in org.apache.calcite.interpreter">Bindables.BindableJoin</a></span></code></th>
<td class="colLast">
<div class="block">Implementation of <a href="../Join.html" title="class in org.apache.calcite.rel.core"><code>Join</code></a> in
bindable calling convention.</div>
</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Fields in <a href="../../../interpreter/package-summary.html">org.apache.calcite.interpreter</a> declared as <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>private <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">JoinNode.</span><code><span class="memberNameLink"><a href="../../../interpreter/JoinNode.html#rel">rel</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Methods in <a href="../../../interpreter/package-summary.html">org.apache.calcite.interpreter</a> with parameters of type <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">Nodes.CoreCompiler.</span><code><span class="memberNameLink"><a href="../../../interpreter/Nodes.CoreCompiler.html#visit(org.apache.calcite.rel.core.Join)">visit</a></span>&#8203;(<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;join)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Constructors in <a href="../../../interpreter/package-summary.html">org.apache.calcite.interpreter</a> with parameters of type <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../../interpreter/JoinNode.html#%3Cinit%3E(org.apache.calcite.interpreter.Compiler,org.apache.calcite.rel.core.Join)">JoinNode</a></span>&#8203;(<a href="../../../interpreter/Compiler.html" title="interface in org.apache.calcite.interpreter">Compiler</a>&nbsp;compiler,
<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;rel)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
</section>
</li>
<li class="blockList">
<section role="region"><a id="org.apache.calcite.plan">
<!-- -->
</a>
<h3>Uses of <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a> in <a href="../../../plan/package-summary.html">org.apache.calcite.plan</a></h3>
<table class="useSummary">
<caption><span>Methods in <a href="../../../plan/package-summary.html">org.apache.calcite.plan</a> with parameters of type <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>static java.util.List&lt;<a href="../../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelOptUtil.</span><code><span class="memberNameLink"><a href="../../../plan/RelOptUtil.html#createSwappedJoinExprs(org.apache.calcite.rel.RelNode,org.apache.calcite.rel.core.Join,boolean)">createSwappedJoinExprs</a></span>&#8203;(<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;newJoin,
<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;origJoin,
boolean&nbsp;origOrder)</code></th>
<td class="colLast">
<div class="block">Creates projection expressions reflecting the swapping of a join's input.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelOptUtil.</span><code><span class="memberNameLink"><a href="../../../plan/RelOptUtil.html#pushDownJoinConditions(org.apache.calcite.rel.core.Join)">pushDownJoinConditions</a></span>&#8203;(<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;originalJoin)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelOptUtil.</span><code><span class="memberNameLink"><a href="../../../plan/RelOptUtil.html#pushDownJoinConditions(org.apache.calcite.rel.core.Join,org.apache.calcite.rel.core.RelFactories.ProjectFactory)">pushDownJoinConditions</a></span>&#8203;(<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;originalJoin,
<a href="../RelFactories.ProjectFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.ProjectFactory</a>&nbsp;projectFactory)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelOptUtil.</span><code><span class="memberNameLink"><a href="../../../plan/RelOptUtil.html#pushDownJoinConditions(org.apache.calcite.rel.core.Join,org.apache.calcite.tools.RelBuilder)">pushDownJoinConditions</a></span>&#8203;(<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;originalJoin,
<a href="../../../tools/RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;relBuilder)</code></th>
<td class="colLast">
<div class="block">Pushes down expressions in "equal" join condition.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static <a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelOptUtil.</span><code><span class="memberNameLink"><a href="../../../plan/RelOptUtil.html#pushDownJoinConditions(org.apache.calcite.rel.core.Join,org.apache.calcite.tools.RelBuilderFactory)">pushDownJoinConditions</a></span>&#8203;(<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;originalJoin,
<a href="../../../tools/RelBuilderFactory.html" title="interface in org.apache.calcite.tools">RelBuilderFactory</a>&nbsp;relBuilderFactory)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
</section>
</li>
<li class="blockList">
<section role="region"><a id="org.apache.calcite.rel.core">
<!-- -->
</a>
<h3>Uses of <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a> in <a href="../package-summary.html">org.apache.calcite.rel.core</a></h3>
<table class="useSummary">
<caption><span>Subclasses of <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a> in <a href="../package-summary.html">org.apache.calcite.rel.core</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../EquiJoin.html" title="class in org.apache.calcite.rel.core">EquiJoin</a></span></code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">This class is no longer needed; if you are writing a sub-class of
Join that only accepts equi conditions, it is sufficient that it extends
<a href="../Join.html" title="class in org.apache.calcite.rel.core"><code>Join</code></a>.</div>
</div>
</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Methods in <a href="../package-summary.html">org.apache.calcite.rel.core</a> that return <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code><a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">Join.</span><code><span class="memberNameLink"><a href="../Join.html#copy(org.apache.calcite.plan.RelTraitSet,java.util.List)">copy</a></span>&#8203;(<a href="../../../plan/RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;traitSet,
java.util.List&lt;<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&gt;&nbsp;inputs)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>abstract <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">Join.</span><code><span class="memberNameLink"><a href="../Join.html#copy(org.apache.calcite.plan.RelTraitSet,org.apache.calcite.rex.RexNode,org.apache.calcite.rel.RelNode,org.apache.calcite.rel.RelNode,org.apache.calcite.rel.core.JoinRelType,boolean)">copy</a></span>&#8203;(<a href="../../../plan/RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;traitSet,
<a href="../../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;conditionExpr,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;left,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;right,
<a href="../JoinRelType.html" title="enum in org.apache.calcite.rel.core">JoinRelType</a>&nbsp;joinType,
boolean&nbsp;semiJoinDone)</code></th>
<td class="colLast">
<div class="block">Creates a copy of this join, overriding condition, system fields and
inputs.</div>
</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Methods in <a href="../package-summary.html">org.apache.calcite.rel.core</a> with parameters of type <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>static double</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">Join.</span><code><span class="memberNameLink"><a href="../Join.html#estimateJoinedRows(org.apache.calcite.rel.core.Join,org.apache.calcite.rex.RexNode)">estimateJoinedRows</a></span>&#8203;(<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;joinRel,
<a href="../../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;condition)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="../../metadata/RelMdUtil.html#getJoinRowCount(org.apache.calcite.rel.metadata.RelMetadataQuery,org.apache.calcite.rel.core.Join,org.apache.calcite.rex.RexNode)"><code>RelMdUtil.getJoinRowCount(RelMetadataQuery, Join, RexNode)</code></a>.</div>
</div>
</td>
</tr>
</tbody>
</table>
</section>
</li>
<li class="blockList">
<section role="region"><a id="org.apache.calcite.rel.logical">
<!-- -->
</a>
<h3>Uses of <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a> in <a href="../../logical/package-summary.html">org.apache.calcite.rel.logical</a></h3>
<table class="useSummary">
<caption><span>Subclasses of <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a> in <a href="../../logical/package-summary.html">org.apache.calcite.rel.logical</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../logical/LogicalJoin.html" title="class in org.apache.calcite.rel.logical">LogicalJoin</a></span></code></th>
<td class="colLast">
<div class="block">Sub-class of <a href="../Join.html" title="class in org.apache.calcite.rel.core"><code>Join</code></a>
not targeted at any particular engine or calling convention.</div>
</td>
</tr>
</tbody>
</table>
</section>
</li>
<li class="blockList">
<section role="region"><a id="org.apache.calcite.rel.metadata">
<!-- -->
</a>
<h3>Uses of <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a> in <a href="../../metadata/package-summary.html">org.apache.calcite.rel.metadata</a></h3>
<table class="useSummary">
<caption><span>Fields in <a href="../../metadata/package-summary.html">org.apache.calcite.rel.metadata</a> declared as <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>(package private) <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelMdPredicates.JoinConditionBasedPredicateInference.</span><code><span class="memberNameLink"><a href="../../metadata/RelMdPredicates.JoinConditionBasedPredicateInference.html#joinRel">joinRel</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Methods in <a href="../../metadata/package-summary.html">org.apache.calcite.rel.metadata</a> with parameters of type <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>java.lang.Boolean</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelMdColumnUniqueness.</span><code><span class="memberNameLink"><a href="../../metadata/RelMdColumnUniqueness.html#areColumnsUnique(org.apache.calcite.rel.core.Join,org.apache.calcite.rel.metadata.RelMetadataQuery,org.apache.calcite.util.ImmutableBitSet,boolean)">areColumnsUnique</a></span>&#8203;(<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;rel,
<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq,
<a href="../../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;columns,
boolean&nbsp;ignoreNulls)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.util.List&lt;java.lang.Double&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelMdSize.</span><code><span class="memberNameLink"><a href="../../metadata/RelMdSize.html#averageColumnSizes(org.apache.calcite.rel.core.Join,org.apache.calcite.rel.metadata.RelMetadataQuery)">averageColumnSizes</a></span>&#8203;(<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;rel,
<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private java.util.List&lt;java.lang.Double&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelMdSize.</span><code><span class="memberNameLink"><a href="../../metadata/RelMdSize.html#averageJoinColumnSizes(org.apache.calcite.rel.core.Join,org.apache.calcite.rel.metadata.RelMetadataQuery)">averageJoinColumnSizes</a></span>&#8203;(<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;rel,
<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static double</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelMdUtil.</span><code><span class="memberNameLink"><a href="../../metadata/RelMdUtil.html#computeSemiJoinSelectivity(org.apache.calcite.rel.metadata.RelMetadataQuery,org.apache.calcite.rel.RelNode,org.apache.calcite.rel.RelNode,org.apache.calcite.rel.core.Join)">computeSemiJoinSelectivity</a></span>&#8203;(<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;factRel,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;dimRel,
<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;rel)</code></th>
<td class="colLast">
<div class="block">Computes the selectivity of a semijoin filter if it is applied on a fact
table.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../plan/RelOptPredicateList.html" title="class in org.apache.calcite.plan">RelOptPredicateList</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelMdAllPredicates.</span><code><span class="memberNameLink"><a href="../../metadata/RelMdAllPredicates.html#getAllPredicates(org.apache.calcite.rel.core.Join,org.apache.calcite.rel.metadata.RelMetadataQuery)">getAllPredicates</a></span>&#8203;(<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;join,
<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq)</code></th>
<td class="colLast">
<div class="block">Add the Join condition to the list obtained from the input.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.util.Set&lt;<a href="../../metadata/RelColumnOrigin.html" title="class in org.apache.calcite.rel.metadata">RelColumnOrigin</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelMdColumnOrigins.</span><code><span class="memberNameLink"><a href="../../metadata/RelMdColumnOrigins.html#getColumnOrigins(org.apache.calcite.rel.core.Join,org.apache.calcite.rel.metadata.RelMetadataQuery,int)">getColumnOrigins</a></span>&#8203;(<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;rel,
<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq,
int&nbsp;iOutputColumn)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.lang.Double</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelMdDistinctRowCount.</span><code><span class="memberNameLink"><a href="../../metadata/RelMdDistinctRowCount.html#getDistinctRowCount(org.apache.calcite.rel.core.Join,org.apache.calcite.rel.metadata.RelMetadataQuery,org.apache.calcite.util.ImmutableBitSet,org.apache.calcite.rex.RexNode)">getDistinctRowCount</a></span>&#8203;(<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;rel,
<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq,
<a href="../../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;groupKey,
<a href="../../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;predicate)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.util.Set&lt;<a href="../../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelMdExpressionLineage.</span><code><span class="memberNameLink"><a href="../../metadata/RelMdExpressionLineage.html#getExpressionLineage(org.apache.calcite.rel.core.Join,org.apache.calcite.rel.metadata.RelMetadataQuery,org.apache.calcite.rex.RexNode)">getExpressionLineage</a></span>&#8203;(<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;rel,
<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq,
<a href="../../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;outputExpression)</code></th>
<td class="colLast">
<div class="block">Expression lineage from <a href="../Join.html" title="class in org.apache.calcite.rel.core"><code>Join</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.Double</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelMdUtil.</span><code><span class="memberNameLink"><a href="../../metadata/RelMdUtil.html#getJoinRowCount(org.apache.calcite.rel.metadata.RelMetadataQuery,org.apache.calcite.rel.core.Join,org.apache.calcite.rex.RexNode)">getJoinRowCount</a></span>&#8203;(<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq,
<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;join,
<a href="../../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;condition)</code></th>
<td class="colLast">
<div class="block">Returns an estimate of the number of rows returned by a <a href="../Join.html" title="class in org.apache.calcite.rel.core"><code>Join</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.lang.Double</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelMdMaxRowCount.</span><code><span class="memberNameLink"><a href="../../metadata/RelMdMaxRowCount.html#getMaxRowCount(org.apache.calcite.rel.core.Join,org.apache.calcite.rel.metadata.RelMetadataQuery)">getMaxRowCount</a></span>&#8203;(<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;rel,
<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.lang.Double</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelMdMinRowCount.</span><code><span class="memberNameLink"><a href="../../metadata/RelMdMinRowCount.html#getMinRowCount(org.apache.calcite.rel.core.Join,org.apache.calcite.rel.metadata.RelMetadataQuery)">getMinRowCount</a></span>&#8203;(<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;rel,
<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>com.google.common.collect.Multimap&lt;java.lang.Class&lt;? extends <a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&gt;,&#8203;<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelMdNodeTypes.</span><code><span class="memberNameLink"><a href="../../metadata/RelMdNodeTypes.html#getNodeTypes(org.apache.calcite.rel.core.Join,org.apache.calcite.rel.metadata.RelMetadataQuery)">getNodeTypes</a></span>&#8203;(<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;rel,
<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.lang.Double</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelMdPercentageOriginalRows.</span><code><span class="memberNameLink"><a href="../../metadata/RelMdPercentageOriginalRows.html#getPercentageOriginalRows(org.apache.calcite.rel.core.Join,org.apache.calcite.rel.metadata.RelMetadataQuery)">getPercentageOriginalRows</a></span>&#8203;(<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;rel,
<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.lang.Double</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelMdPopulationSize.</span><code><span class="memberNameLink"><a href="../../metadata/RelMdPopulationSize.html#getPopulationSize(org.apache.calcite.rel.core.Join,org.apache.calcite.rel.metadata.RelMetadataQuery,org.apache.calcite.util.ImmutableBitSet)">getPopulationSize</a></span>&#8203;(<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;rel,
<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq,
<a href="../../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;groupKey)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../plan/RelOptPredicateList.html" title="class in org.apache.calcite.plan">RelOptPredicateList</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelMdPredicates.</span><code><span class="memberNameLink"><a href="../../metadata/RelMdPredicates.html#getPredicates(org.apache.calcite.rel.core.Join,org.apache.calcite.rel.metadata.RelMetadataQuery)">getPredicates</a></span>&#8203;(<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;join,
<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq)</code></th>
<td class="colLast">
<div class="block">Infers predicates for a <a href="../Join.html" title="class in org.apache.calcite.rel.core"><code>Join</code></a> (including
<code>SemiJoin</code>).</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.lang.Double</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelMdRowCount.</span><code><span class="memberNameLink"><a href="../../metadata/RelMdRowCount.html#getRowCount(org.apache.calcite.rel.core.Join,org.apache.calcite.rel.metadata.RelMetadataQuery)">getRowCount</a></span>&#8203;(<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;rel,
<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.lang.Double</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelMdSelectivity.</span><code><span class="memberNameLink"><a href="../../metadata/RelMdSelectivity.html#getSelectivity(org.apache.calcite.rel.core.Join,org.apache.calcite.rel.metadata.RelMetadataQuery,org.apache.calcite.rex.RexNode)">getSelectivity</a></span>&#8203;(<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;rel,
<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq,
<a href="../../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;predicate)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.Double</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelMdUtil.</span><code><span class="memberNameLink"><a href="../../metadata/RelMdUtil.html#getSemiJoinDistinctRowCount(org.apache.calcite.rel.core.Join,org.apache.calcite.rel.metadata.RelMetadataQuery,org.apache.calcite.util.ImmutableBitSet,org.apache.calcite.rex.RexNode)">getSemiJoinDistinctRowCount</a></span>&#8203;(<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;semiJoinRel,
<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq,
<a href="../../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;groupKey,
<a href="../../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;predicate)</code></th>
<td class="colLast">
<div class="block">Computes the number of distinct rows for a set of keys returned from a
semi-join</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.util.Set&lt;<a href="../../../rex/RexTableInputRef.RelTableRef.html" title="class in org.apache.calcite.rex">RexTableInputRef.RelTableRef</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelMdTableReferences.</span><code><span class="memberNameLink"><a href="../../metadata/RelMdTableReferences.html#getTableReferences(org.apache.calcite.rel.core.Join,org.apache.calcite.rel.metadata.RelMetadataQuery)">getTableReferences</a></span>&#8203;(<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;rel,
<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq)</code></th>
<td class="colLast">
<div class="block">Table references from Join.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.util.Set&lt;<a href="../../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelMdUniqueKeys.</span><code><span class="memberNameLink"><a href="../../metadata/RelMdUniqueKeys.html#getUniqueKeys(org.apache.calcite.rel.core.Join,org.apache.calcite.rel.metadata.RelMetadataQuery,boolean)">getUniqueKeys</a></span>&#8203;(<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;rel,
<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq,
boolean&nbsp;ignoreNulls)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelMdUtil.</span><code><span class="memberNameLink"><a href="../../metadata/RelMdUtil.html#makeSemiJoinSelectivityRexNode(org.apache.calcite.rel.metadata.RelMetadataQuery,org.apache.calcite.rel.core.Join)">makeSemiJoinSelectivityRexNode</a></span>&#8203;(<a href="../../metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq,
<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;rel)</code></th>
<td class="colLast">
<div class="block">Creates a RexNode that stores a selectivity value corresponding to the
selectivity of a semijoin.</div>
</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Constructors in <a href="../../metadata/package-summary.html">org.apache.calcite.rel.metadata</a> with parameters of type <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../metadata/RelMdPredicates.JoinConditionBasedPredicateInference.html#%3Cinit%3E(org.apache.calcite.rel.core.Join,org.apache.calcite.rex.RexNode,org.apache.calcite.rex.RexNode,org.apache.calcite.rex.RexSimplify)">JoinConditionBasedPredicateInference</a></span>&#8203;(<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;joinRel,
<a href="../../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;leftPredicates,
<a href="../../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;rightPredicates,
<a href="../../../rex/RexSimplify.html" title="class in org.apache.calcite.rex">RexSimplify</a>&nbsp;simplify)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
</section>
</li>
<li class="blockList">
<section role="region"><a id="org.apache.calcite.rel.rel2sql">
<!-- -->
</a>
<h3>Uses of <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a> in <a href="../../rel2sql/package-summary.html">org.apache.calcite.rel.rel2sql</a></h3>
<table class="useSummary">
<caption><span>Methods in <a href="../../rel2sql/package-summary.html">org.apache.calcite.rel.rel2sql</a> with parameters of type <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>private boolean</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelToSqlConverter.</span><code><span class="memberNameLink"><a href="../../rel2sql/RelToSqlConverter.html#isCrossJoin(org.apache.calcite.rel.core.Join)">isCrossJoin</a></span>&#8203;(<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;e)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../rel2sql/SqlImplementor.Result.html" title="class in org.apache.calcite.rel.rel2sql">SqlImplementor.Result</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelToSqlConverter.</span><code><span class="memberNameLink"><a href="../../rel2sql/RelToSqlConverter.html#visit(org.apache.calcite.rel.core.Join)">visit</a></span>&#8203;(<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;e)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
</section>
</li>
<li class="blockList">
<section role="region"><a id="org.apache.calcite.rel.rules">
<!-- -->
</a>
<h3>Uses of <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a> in <a href="../../rules/package-summary.html">org.apache.calcite.rel.rules</a></h3>
<table class="useSummary">
<caption><span>Subclasses of <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a> in <a href="../../rules/package-summary.html">org.apache.calcite.rel.rules</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rules/EquiJoin.html" title="class in org.apache.calcite.rel.rules">EquiJoin</a></span></code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use
<a href="../EquiJoin.html" title="class in org.apache.calcite.rel.core"><code>EquiJoin in 'core' package</code></a></div>
</div>
</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Fields in <a href="../../rules/package-summary.html">org.apache.calcite.rel.rules</a> with type parameters of type <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>private static java.util.function.Predicate&lt;<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">SemiJoinRule.</span><code><span class="memberNameLink"><a href="../../rules/SemiJoinRule.html#NOT_GENERATE_NULLS_ON_LEFT">NOT_GENERATE_NULLS_ON_LEFT</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Methods in <a href="../../rules/package-summary.html">org.apache.calcite.rel.rules</a> with parameters of type <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">FilterJoinRule.Predicate.</span><code><span class="memberNameLink"><a href="../../rules/FilterJoinRule.Predicate.html#apply(org.apache.calcite.rel.core.Join,org.apache.calcite.rel.core.JoinRelType,org.apache.calcite.rex.RexNode)">apply</a></span>&#8203;(<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;join,
<a href="../JoinRelType.html" title="enum in org.apache.calcite.rel.core">JoinRelType</a>&nbsp;joinType,
<a href="../../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;exp)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private java.util.List&lt;<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">JoinToMultiJoinRule.</span><code><span class="memberNameLink"><a href="../../rules/JoinToMultiJoinRule.html#combineInputs(org.apache.calcite.rel.core.Join,org.apache.calcite.rel.RelNode,org.apache.calcite.rel.RelNode,java.util.List,java.util.List)">combineInputs</a></span>&#8203;(<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;join,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;left,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;right,
java.util.List&lt;<a href="../../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&nbsp;projFieldsList,
java.util.List&lt;int[]&gt;&nbsp;joinFieldRefCountsList)</code></th>
<td class="colLast">
<div class="block">Combines the inputs into a LogicalJoin into an array of inputs.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private java.util.List&lt;<a href="../../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">JoinToMultiJoinRule.</span><code><span class="memberNameLink"><a href="../../rules/JoinToMultiJoinRule.html#combineJoinFilters(org.apache.calcite.rel.core.Join,org.apache.calcite.rel.RelNode,org.apache.calcite.rel.RelNode)">combineJoinFilters</a></span>&#8203;(<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;joinRel,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;left,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;right)</code></th>
<td class="colLast">
<div class="block">Combines the join filters from the left and right inputs (if they are
MultiJoinRels) with the join filter in the joinrel into a single AND'd
join filter, unless the inputs correspond to null generating inputs in an
outer join</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">JoinToMultiJoinRule.</span><code><span class="memberNameLink"><a href="../../rules/JoinToMultiJoinRule.html#combineOuterJoins(org.apache.calcite.rel.core.Join,java.util.List,org.apache.calcite.rel.RelNode,org.apache.calcite.rel.RelNode,java.util.List)">combineOuterJoins</a></span>&#8203;(<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;joinRel,
java.util.List&lt;<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&gt;&nbsp;combinedInputs,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;left,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;right,
java.util.List&lt;<a href="../../../util/Pair.html" title="class in org.apache.calcite.util">Pair</a>&lt;<a href="../JoinRelType.html" title="enum in org.apache.calcite.rel.core">JoinRelType</a>,&#8203;<a href="../../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&gt;&nbsp;joinSpecs)</code></th>
<td class="colLast">
<div class="block">Combines the outer join conditions and join types from the left and right
join inputs.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private java.util.List&lt;<a href="../../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">JoinToMultiJoinRule.</span><code><span class="memberNameLink"><a href="../../rules/JoinToMultiJoinRule.html#combinePostJoinFilters(org.apache.calcite.rel.core.Join,org.apache.calcite.rel.RelNode,org.apache.calcite.rel.RelNode)">combinePostJoinFilters</a></span>&#8203;(<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;joinRel,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;left,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;right)</code></th>
<td class="colLast">
<div class="block">Combines the post-join filters from the left and right inputs (if they
are MultiJoinRels) into a single AND'd filter.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private boolean</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">AggregateJoinTransposeRule.</span><code><span class="memberNameLink"><a href="../../rules/AggregateJoinTransposeRule.html#isJoinSupported(org.apache.calcite.rel.core.Join,org.apache.calcite.rel.core.Aggregate)">isJoinSupported</a></span>&#8203;(<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;join,
<a href="../Aggregate.html" title="class in org.apache.calcite.rel.core">Aggregate</a>&nbsp;aggregate)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">LoptOptimizeJoinRule.</span><code><span class="memberNameLink"><a href="../../rules/LoptOptimizeJoinRule.html#isRemovableSelfJoin(org.apache.calcite.rel.core.Join)">isRemovableSelfJoin</a></span>&#8203;(<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;joinRel)</code></th>
<td class="colLast">
<div class="block">Determines whether a join is a removable self-join.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">FilterJoinRule.</span><code><span class="memberNameLink"><a href="../../rules/FilterJoinRule.html#perform(org.apache.calcite.plan.RelOptRuleCall,org.apache.calcite.rel.core.Filter,org.apache.calcite.rel.core.Join)">perform</a></span>&#8203;(<a href="../../../plan/RelOptRuleCall.html" title="class in org.apache.calcite.plan">RelOptRuleCall</a>&nbsp;call,
<a href="../Filter.html" title="class in org.apache.calcite.rel.core">Filter</a>&nbsp;filter,
<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;join)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">SemiJoinRule.</span><code><span class="memberNameLink"><a href="../../rules/SemiJoinRule.html#perform(org.apache.calcite.plan.RelOptRuleCall,org.apache.calcite.rel.core.Project,org.apache.calcite.rel.core.Join,org.apache.calcite.rel.RelNode,org.apache.calcite.rel.core.Aggregate)">perform</a></span>&#8203;(<a href="../../../plan/RelOptRuleCall.html" title="class in org.apache.calcite.plan">RelOptRuleCall</a>&nbsp;call,
<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;project,
<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;join,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;left,
<a href="../Aggregate.html" title="class in org.apache.calcite.rel.core">Aggregate</a>&nbsp;aggregate)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="../../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">JoinToMultiJoinRule.</span><code><span class="memberNameLink"><a href="../../rules/JoinToMultiJoinRule.html#shiftRightFilter(org.apache.calcite.rel.core.Join,org.apache.calcite.rel.RelNode,org.apache.calcite.rel.rules.MultiJoin,org.apache.calcite.rex.RexNode)">shiftRightFilter</a></span>&#8203;(<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;joinRel,
<a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;left,
<a href="../../rules/MultiJoin.html" title="class in org.apache.calcite.rel.rules">MultiJoin</a>&nbsp;right,
<a href="../../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;rightFilter)</code></th>
<td class="colLast">
<div class="block">Shifts a filter originating from the right child of the LogicalJoin to the
right, to reflect the filter now being applied on the resulting
MultiJoin.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">JoinCommuteRule.</span><code><span class="memberNameLink"><a href="../../rules/JoinCommuteRule.html#swap(org.apache.calcite.rel.core.Join)">swap</a></span>&#8203;(<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;join)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">JoinCommuteRule.</span><code><span class="memberNameLink"><a href="../../rules/JoinCommuteRule.html#swap(org.apache.calcite.rel.core.Join,boolean)">swap</a></span>&#8203;(<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;join,
boolean&nbsp;swapOuterJoins)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">JoinCommuteRule.</span><code><span class="memberNameLink"><a href="../../rules/JoinCommuteRule.html#swap(org.apache.calcite.rel.core.Join,boolean,org.apache.calcite.tools.RelBuilder)">swap</a></span>&#8203;(<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;join,
boolean&nbsp;swapOuterJoins,
<a href="../../../tools/RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>&nbsp;relBuilder)</code></th>
<td class="colLast">
<div class="block">Returns a relational expression with the inputs switched round.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">FilterJoinRule.</span><code><span class="memberNameLink"><a href="../../rules/FilterJoinRule.html#validateJoinFilters(java.util.List,java.util.List,org.apache.calcite.rel.core.Join,org.apache.calcite.rel.core.JoinRelType)">validateJoinFilters</a></span>&#8203;(java.util.List&lt;<a href="../../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;aboveFilters,
java.util.List&lt;<a href="../../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;joinFilters,
<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;join,
<a href="../JoinRelType.html" title="enum in org.apache.calcite.rel.core">JoinRelType</a>&nbsp;joinType)</code></th>
<td class="colLast">
<div class="block">Validates that target execution framework can satisfy join filters.</div>
</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Constructor parameters in <a href="../../rules/package-summary.html">org.apache.calcite.rel.rules</a> with type arguments of type <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rules/JoinAddRedundantSemiJoinRule.html#%3Cinit%3E(java.lang.Class,org.apache.calcite.tools.RelBuilderFactory)">JoinAddRedundantSemiJoinRule</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&gt;&nbsp;clazz,
<a href="../../../tools/RelBuilderFactory.html" title="interface in org.apache.calcite.tools">RelBuilderFactory</a>&nbsp;relBuilderFactory)</code></th>
<td class="colLast">
<div class="block">Creates an JoinAddRedundantSemiJoinRule.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rules/JoinCommuteRule.html#%3Cinit%3E(java.lang.Class,org.apache.calcite.rel.core.RelFactories.ProjectFactory)">JoinCommuteRule</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&gt;&nbsp;clazz,
<a href="../RelFactories.ProjectFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.ProjectFactory</a>&nbsp;projectFactory)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr class="altColor">
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rules/JoinCommuteRule.html#%3Cinit%3E(java.lang.Class,org.apache.calcite.rel.core.RelFactories.ProjectFactory,boolean)">JoinCommuteRule</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&gt;&nbsp;clazz,
<a href="../RelFactories.ProjectFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.ProjectFactory</a>&nbsp;projectFactory,
boolean&nbsp;swapOuter)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr class="rowColor">
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rules/JoinCommuteRule.html#%3Cinit%3E(java.lang.Class,org.apache.calcite.tools.RelBuilderFactory,boolean)">JoinCommuteRule</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&gt;&nbsp;clazz,
<a href="../../../tools/RelBuilderFactory.html" title="interface in org.apache.calcite.tools">RelBuilderFactory</a>&nbsp;relBuilderFactory,
boolean&nbsp;swapOuter)</code></th>
<td class="colLast">
<div class="block">Creates a JoinCommuteRule.</div>
</td>
</tr>
<tr class="altColor">
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rules/JoinExtractFilterRule.html#%3Cinit%3E(java.lang.Class,org.apache.calcite.tools.RelBuilderFactory)">JoinExtractFilterRule</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&gt;&nbsp;clazz,
<a href="../../../tools/RelBuilderFactory.html" title="interface in org.apache.calcite.tools">RelBuilderFactory</a>&nbsp;relBuilderFactory)</code></th>
<td class="colLast">
<div class="block">Creates a JoinExtractFilterRule.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rules/JoinPushExpressionsRule.html#%3Cinit%3E(java.lang.Class,org.apache.calcite.rel.core.RelFactories.ProjectFactory)">JoinPushExpressionsRule</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&gt;&nbsp;clazz,
<a href="../RelFactories.ProjectFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.ProjectFactory</a>&nbsp;projectFactory)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr class="altColor">
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rules/JoinPushExpressionsRule.html#%3Cinit%3E(java.lang.Class,org.apache.calcite.tools.RelBuilderFactory)">JoinPushExpressionsRule</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&gt;&nbsp;clazz,
<a href="../../../tools/RelBuilderFactory.html" title="interface in org.apache.calcite.tools">RelBuilderFactory</a>&nbsp;relBuilderFactory)</code></th>
<td class="colLast">
<div class="block">Creates a JoinPushExpressionsRule.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rules/JoinPushThroughJoinRule.html#%3Cinit%3E(java.lang.String,boolean,java.lang.Class,org.apache.calcite.rel.core.RelFactories.ProjectFactory)">JoinPushThroughJoinRule</a></span>&#8203;(java.lang.String&nbsp;description,
boolean&nbsp;right,
java.lang.Class&lt;? extends <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&gt;&nbsp;clazz,
<a href="../RelFactories.ProjectFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.ProjectFactory</a>&nbsp;projectFactory)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr class="altColor">
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rules/JoinPushThroughJoinRule.html#%3Cinit%3E(java.lang.String,boolean,java.lang.Class,org.apache.calcite.tools.RelBuilderFactory)">JoinPushThroughJoinRule</a></span>&#8203;(java.lang.String&nbsp;description,
boolean&nbsp;right,
java.lang.Class&lt;? extends <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&gt;&nbsp;clazz,
<a href="../../../tools/RelBuilderFactory.html" title="interface in org.apache.calcite.tools">RelBuilderFactory</a>&nbsp;relBuilderFactory)</code></th>
<td class="colLast">
<div class="block">Creates a JoinPushThroughJoinRule.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rules/JoinPushTransitivePredicatesRule.html#%3Cinit%3E(java.lang.Class,org.apache.calcite.rel.core.RelFactories.FilterFactory)">JoinPushTransitivePredicatesRule</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&gt;&nbsp;clazz,
<a href="../RelFactories.FilterFactory.html" title="interface in org.apache.calcite.rel.core">RelFactories.FilterFactory</a>&nbsp;filterFactory)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr class="altColor">
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rules/JoinPushTransitivePredicatesRule.html#%3Cinit%3E(java.lang.Class,org.apache.calcite.tools.RelBuilderFactory)">JoinPushTransitivePredicatesRule</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&gt;&nbsp;clazz,
<a href="../../../tools/RelBuilderFactory.html" title="interface in org.apache.calcite.tools">RelBuilderFactory</a>&nbsp;relBuilderFactory)</code></th>
<td class="colLast">
<div class="block">Creates a JoinPushTransitivePredicatesRule.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rules/ReduceExpressionsRule.JoinReduceExpressionsRule.html#%3Cinit%3E(java.lang.Class,boolean,org.apache.calcite.tools.RelBuilderFactory)">JoinReduceExpressionsRule</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&gt;&nbsp;joinClass,
boolean&nbsp;matchNullability,
<a href="../../../tools/RelBuilderFactory.html" title="interface in org.apache.calcite.tools">RelBuilderFactory</a>&nbsp;relBuilderFactory)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rules/ReduceExpressionsRule.JoinReduceExpressionsRule.html#%3Cinit%3E(java.lang.Class,org.apache.calcite.tools.RelBuilderFactory)">JoinReduceExpressionsRule</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&gt;&nbsp;joinClass,
<a href="../../../tools/RelBuilderFactory.html" title="interface in org.apache.calcite.tools">RelBuilderFactory</a>&nbsp;relBuilderFactory)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr class="rowColor">
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rules/JoinToCorrelateRule.html#%3Cinit%3E(java.lang.Class,org.apache.calcite.tools.RelBuilderFactory,java.lang.String)">JoinToCorrelateRule</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&gt;&nbsp;clazz,
<a href="../../../tools/RelBuilderFactory.html" title="interface in org.apache.calcite.tools">RelBuilderFactory</a>&nbsp;relBuilderFactory,
java.lang.String&nbsp;description)</code></th>
<td class="colLast">
<div class="block">Creates a JoinToCorrelateRule for a certain sub-class of
<a href="../Join.html" title="class in org.apache.calcite.rel.core"><code>Join</code></a> to be transformed into a
<a href="../../logical/LogicalCorrelate.html" title="class in org.apache.calcite.rel.logical"><code>LogicalCorrelate</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rules/JoinToMultiJoinRule.html#%3Cinit%3E(java.lang.Class)">JoinToMultiJoinRule</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&gt;&nbsp;clazz)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
<tr class="rowColor">
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rules/JoinToMultiJoinRule.html#%3Cinit%3E(java.lang.Class,org.apache.calcite.tools.RelBuilderFactory)">JoinToMultiJoinRule</a></span>&#8203;(java.lang.Class&lt;? extends <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&gt;&nbsp;clazz,
<a href="../../../tools/RelBuilderFactory.html" title="interface in org.apache.calcite.tools">RelBuilderFactory</a>&nbsp;relBuilderFactory)</code></th>
<td class="colLast">
<div class="block">Creates a JoinToMultiJoinRule.</div>
</td>
</tr>
<tr class="altColor">
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rules/SemiJoinRule.JoinToSemiJoinRule.html#%3Cinit%3E(java.lang.Class,java.lang.Class,org.apache.calcite.tools.RelBuilderFactory,java.lang.String)">JoinToSemiJoinRule</a></span>&#8203;(java.lang.Class&lt;<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&gt;&nbsp;joinClass,
java.lang.Class&lt;<a href="../Aggregate.html" title="class in org.apache.calcite.rel.core">Aggregate</a>&gt;&nbsp;aggregateClass,
<a href="../../../tools/RelBuilderFactory.html" title="interface in org.apache.calcite.tools">RelBuilderFactory</a>&nbsp;relBuilderFactory,
java.lang.String&nbsp;description)</code></th>
<td class="colLast">
<div class="block">Creates a JoinToSemiJoinRule.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../rules/SemiJoinRule.html#%3Cinit%3E(java.lang.Class,java.lang.Class,org.apache.calcite.tools.RelBuilderFactory,java.lang.String)">SemiJoinRule</a></span>&#8203;(java.lang.Class&lt;<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&gt;&nbsp;joinClass,
java.lang.Class&lt;<a href="../Aggregate.html" title="class in org.apache.calcite.rel.core">Aggregate</a>&gt;&nbsp;aggregateClass,
<a href="../../../tools/RelBuilderFactory.html" title="interface in org.apache.calcite.tools">RelBuilderFactory</a>&nbsp;relBuilderFactory,
java.lang.String&nbsp;description)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
</section>
</li>
<li class="blockList">
<section role="region"><a id="org.apache.calcite.rex">
<!-- -->
</a>
<h3>Uses of <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a> in <a href="../../../rex/package-summary.html">org.apache.calcite.rex</a></h3>
<table class="useSummary">
<caption><span>Fields in <a href="../../../rex/package-summary.html">org.apache.calcite.rex</a> with type parameters of type <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>static com.google.common.base.Predicate&lt;<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&gt;</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RexUtil.SubQueryFinder.</span><code><span class="memberNameLink"><a href="../../../rex/RexUtil.SubQueryFinder.html#JOIN_PREDICATE">JOIN_PREDICATE</a></span></code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
</td>
</tr>
</tbody>
</table>
<table class="useSummary">
<caption><span>Methods in <a href="../../../rex/package-summary.html">org.apache.calcite.rex</a> with parameters of type <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RexUtil.SubQueryFinder.</span><code><span class="memberNameLink"><a href="../../../rex/RexUtil.SubQueryFinder.html#containsSubQuery(org.apache.calcite.rel.core.Join)">containsSubQuery</a></span>&#8203;(<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;join)</code></th>
<td class="colLast">
<div class="block">Returns whether a <a href="../Join.html" title="class in org.apache.calcite.rel.core"><code>Join</code></a> contains a sub-query.</div>
</td>
</tr>
</tbody>
</table>
</section>
</li>
<li class="blockList">
<section role="region"><a id="org.apache.calcite.sql2rel">
<!-- -->
</a>
<h3>Uses of <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a> in <a href="../../../sql2rel/package-summary.html">org.apache.calcite.sql2rel</a></h3>
<table class="useSummary">
<caption><span>Methods in <a href="../../../sql2rel/package-summary.html">org.apache.calcite.sql2rel</a> with parameters of type <a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../sql2rel/RelDecorrelator.Frame.html" title="class in org.apache.calcite.sql2rel">RelDecorrelator.Frame</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelDecorrelator.</span><code><span class="memberNameLink"><a href="../../../sql2rel/RelDecorrelator.html#decorrelateRel(org.apache.calcite.rel.core.Join)">decorrelateRel</a></span>&#8203;(<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;rel)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="../../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelDecorrelator.</span><code><span class="memberNameLink"><a href="../../../sql2rel/RelDecorrelator.html#projectJoinOutputWithNullability(org.apache.calcite.rel.core.Join,org.apache.calcite.rel.core.Project,int)">projectJoinOutputWithNullability</a></span>&#8203;(<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;join,
<a href="../Project.html" title="class in org.apache.calcite.rel.core">Project</a>&nbsp;project,
int&nbsp;nullIndicatorPos)</code></th>
<td class="colLast">
<div class="block">Pulls project above the join from its RHS input.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../sql2rel/RelFieldTrimmer.TrimResult.html" title="class in org.apache.calcite.sql2rel">RelFieldTrimmer.TrimResult</a></code></td>
<th class="colSecond" scope="row"><span class="typeNameLabel">RelFieldTrimmer.</span><code><span class="memberNameLink"><a href="../../../sql2rel/RelFieldTrimmer.html#trimFields(org.apache.calcite.rel.core.Join,org.apache.calcite.util.ImmutableBitSet,java.util.Set)">trimFields</a></span>&#8203;(<a href="../Join.html" title="class in org.apache.calcite.rel.core">Join</a>&nbsp;join,
<a href="../../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;fieldsUsed,
java.util.Set&lt;<a href="../../type/RelDataTypeField.html" title="interface in org.apache.calcite.rel.type">RelDataTypeField</a>&gt;&nbsp;extraFields)</code></th>
<td class="colLast">
<div class="block">Variant of <a href="../../../sql2rel/RelFieldTrimmer.html#trimFields(org.apache.calcite.rel.RelNode,org.apache.calcite.util.ImmutableBitSet,java.util.Set)"><code>RelFieldTrimmer.trimFields(RelNode, ImmutableBitSet, Set)</code></a> for
<a href="../../logical/LogicalJoin.html" title="class in org.apache.calcite.rel.logical"><code>LogicalJoin</code></a>.</div>
</td>
</tr>
</tbody>
</table>
</section>
</li>
</ul>
</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><a href="../package-summary.html">Package</a></li>
<li><a href="../Join.html" title="class in org.apache.calcite.rel.core">Class</a></li>
<li class="navBarCell1Rev">Use</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>