blob: 9979fe5208fddc7b00cbc07cf0bd7539cdc033f2 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_181-google-v7) on Mon Jan 27 16:42:32 PST 2020 -->
<title>BeamJoinRel (Apache Beam 2.20.0-SNAPSHOT)</title>
<meta name="date" content="2020-01-27">
<link rel="stylesheet" type="text/css" href="../../../../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="BeamJoinRel (Apache Beam 2.20.0-SNAPSHOT)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":9,"i3":10,"i4":9,"i5":10,"i6":9,"i7":10,"i8":10,"i9":9,"i10":10,"i11":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../../../org/apache/beam/sdk/extensions/sql/impl/rel/BeamIOSourceRel.html" title="class in org.apache.beam.sdk.extensions.sql.impl.rel"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../../../org/apache/beam/sdk/extensions/sql/impl/rel/BeamJoinRel.ExtractJoinKeys.html" title="class in org.apache.beam.sdk.extensions.sql.impl.rel"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../../index.html?org/apache/beam/sdk/extensions/sql/impl/rel/BeamJoinRel.html" target="_top">Frames</a></li>
<li><a href="BeamJoinRel.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></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>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#fields.inherited.from.class.org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.core.Join">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.beam.sdk.extensions.sql.impl.rel</div>
<h2 title="Class BeamJoinRel" class="title">Class BeamJoinRel</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.AbstractRelNode</li>
<li>
<ul class="inheritance">
<li>org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.BiRel</li>
<li>
<ul class="inheritance">
<li>org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.core.Join</li>
<li>
<ul class="inheritance">
<li>org.apache.beam.sdk.extensions.sql.impl.rel.BeamJoinRel</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd>java.lang.Cloneable, <a href="../../../../../../../../org/apache/beam/sdk/extensions/sql/impl/rel/BeamRelNode.html" title="interface in org.apache.beam.sdk.extensions.sql.impl.rel">BeamRelNode</a>, org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.plan.RelOptNode, org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.RelNode</dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><a href="../../../../../../../../org/apache/beam/sdk/extensions/sql/impl/rel/BeamCoGBKJoinRel.html" title="class in org.apache.beam.sdk.extensions.sql.impl.rel">BeamCoGBKJoinRel</a>, <a href="../../../../../../../../org/apache/beam/sdk/extensions/sql/impl/rel/BeamSideInputJoinRel.html" title="class in org.apache.beam.sdk.extensions.sql.impl.rel">BeamSideInputJoinRel</a>, <a href="../../../../../../../../org/apache/beam/sdk/extensions/sql/impl/rel/BeamSideInputLookupJoinRel.html" title="class in org.apache.beam.sdk.extensions.sql.impl.rel">BeamSideInputLookupJoinRel</a></dd>
</dl>
<hr>
<br>
<pre>public abstract class <span class="typeNameLabel">BeamJoinRel</span>
extends org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.core.Join
implements <a href="../../../../../../../../org/apache/beam/sdk/extensions/sql/impl/rel/BeamRelNode.html" title="interface in org.apache.beam.sdk.extensions.sql.impl.rel">BeamRelNode</a></pre>
<div class="block">An abstract <code>BeamRelNode</code> to implement Join Rels.
<p>Support for join can be categorized into 4 cases:
<ul>
<li>BoundedTable JOIN BoundedTable
<li>UnboundedTable JOIN UnboundedTable
<li>BoundedTable JOIN UnboundedTable
<li>SeekableTable JOIN non SeekableTable
</ul></div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/beam/sdk/extensions/sql/impl/rel/BeamJoinRel.ExtractJoinKeys.html" title="class in org.apache.beam.sdk.extensions.sql.impl.rel">BeamJoinRel.ExtractJoinKeys</a></span></code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.RelNode">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.RelNode</h3>
<code>org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.RelNode.Context</code></li>
</ul>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.core.Join">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.core.Join</h3>
<code>condition, joinInfo, joinType, variablesSet</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.BiRel">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.BiRel</h3>
<code>left, right</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.AbstractRelNode">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.AbstractRelNode</h3>
<code>digest, id, rowType, traitSet</code></li>
</ul>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier</th>
<th class="colLast" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/beam/sdk/extensions/sql/impl/rel/BeamJoinRel.html#BeamJoinRel-org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.plan.RelOptCluster-org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.plan.RelTraitSet-org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.RelNode-org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.RelNode-org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rex.RexNode-java.util.Set-org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.core.JoinRelType-">BeamJoinRel</a></span>(org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.plan.RelOptCluster&nbsp;cluster,
org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.plan.RelTraitSet&nbsp;traits,
org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.RelNode&nbsp;left,
org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.RelNode&nbsp;right,
org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rex.RexNode&nbsp;condition,
java.util.Set&lt;org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.core.CorrelationId&gt;&nbsp;variablesSet,
org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.core.JoinRelType&nbsp;joinType)</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="../../../../../../../../org/apache/beam/sdk/extensions/sql/impl/planner/BeamCostModel.html" title="class in org.apache.beam.sdk.extensions.sql.impl.planner">BeamCostModel</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/beam/sdk/extensions/sql/impl/rel/BeamJoinRel.html#beamComputeSelfCost-org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.plan.RelOptPlanner-org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.metadata.RelMetadataQuery-">beamComputeSelfCost</a></span>(org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.plan.RelOptPlanner&nbsp;planner,
org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.metadata.RelMetadataQuery&nbsp;mq)</code>
<div class="block">This method is called by <code>org.apache.beam.sdk.extensions.sql.impl.CalciteQueryPlanner.NonCumulativeCostImpl</code>.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>protected <a href="../../../../../../../../org/apache/beam/sdk/schemas/Schema.html" title="class in org.apache.beam.sdk.schemas">Schema</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/beam/sdk/extensions/sql/impl/rel/BeamJoinRel.html#buildNullSchema-org.apache.beam.sdk.schemas.Schema-">buildNullSchema</a></span>(<a href="../../../../../../../../org/apache/beam/sdk/schemas/Schema.html" title="class in org.apache.beam.sdk.schemas">Schema</a>&nbsp;schema)</code>&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/beam/sdk/extensions/sql/impl/rel/BeamJoinRel.html#containsSeekableInput-org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.RelNode-">containsSeekableInput</a></span>(org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.RelNode&nbsp;relNode)</code>
<div class="block">This method returns whether any of the children of the relNode are Seekable.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../../../org/apache/beam/sdk/extensions/sql/impl/planner/NodeStats.html" title="class in org.apache.beam.sdk.extensions.sql.impl.planner">NodeStats</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/beam/sdk/extensions/sql/impl/rel/BeamJoinRel.html#estimateNodeStats-org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.metadata.RelMetadataQuery-">estimateNodeStats</a></span>(org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.metadata.RelMetadataQuery&nbsp;mq)</code>
<div class="block">This method is called by <code>org.apache.beam.sdk.extensions.sql.impl.planner.RelMdNodeStats</code>.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>static <a href="../../../../../../../../org/apache/beam/sdk/values/PCollection.IsBounded.html" title="enum in org.apache.beam.sdk.values">PCollection.IsBounded</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/beam/sdk/extensions/sql/impl/rel/BeamJoinRel.html#getBoundednessOfRelNode-org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.RelNode-">getBoundednessOfRelNode</a></span>(org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.RelNode&nbsp;relNode)</code>
<div class="block">This method returns the Boundedness of a RelNode.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>java.util.List&lt;org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.RelNode&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/beam/sdk/extensions/sql/impl/rel/BeamJoinRel.html#getPCollectionInputs--">getPCollectionInputs</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/beam/sdk/extensions/sql/impl/rel/BeamJoinRel.html#isJoinLegal-org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.core.Join-">isJoinLegal</a></span>(org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.core.Join&nbsp;join)</code>
<div class="block">This method checks if a join is legal and can be converted into Beam SQL.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/beam/sdk/extensions/sql/impl/rel/BeamJoinRel.html#isSideInputLookupJoin--">isSideInputLookupJoin</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>protected org.apache.beam.vendor.calcite.v1_20_0.com.google.common.base.Optional&lt;java.lang.Integer&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/beam/sdk/extensions/sql/impl/rel/BeamJoinRel.html#nonSeekableInputIndex--">nonSeekableInputIndex</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/beam/sdk/extensions/sql/impl/rel/BeamJoinRel.html#seekable-org.apache.beam.sdk.extensions.sql.impl.rel.BeamRelNode-">seekable</a></span>(<a href="../../../../../../../../org/apache/beam/sdk/extensions/sql/impl/rel/BeamRelNode.html" title="interface in org.apache.beam.sdk.extensions.sql.impl.rel">BeamRelNode</a>&nbsp;relNode)</code>
<div class="block">check if <code>BeamRelNode</code> implements <code>BeamSeekableTable</code>.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>protected org.apache.beam.vendor.calcite.v1_20_0.com.google.common.base.Optional&lt;java.lang.Integer&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/beam/sdk/extensions/sql/impl/rel/BeamJoinRel.html#seekableInputIndex--">seekableInputIndex</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>protected static &lt;K,V&gt;&nbsp;<a href="../../../../../../../../org/apache/beam/sdk/values/PCollection.html" title="class in org.apache.beam.sdk.values">PCollection</a>&lt;<a href="../../../../../../../../org/apache/beam/sdk/values/KV.html" title="class in org.apache.beam.sdk.values">KV</a>&lt;K,V&gt;&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/beam/sdk/extensions/sql/impl/rel/BeamJoinRel.html#setValueCoder-org.apache.beam.sdk.values.PCollection-org.apache.beam.sdk.coders.Coder-">setValueCoder</a></span>(<a href="../../../../../../../../org/apache/beam/sdk/values/PCollection.html" title="class in org.apache.beam.sdk.values">PCollection</a>&lt;<a href="../../../../../../../../org/apache/beam/sdk/values/KV.html" title="class in org.apache.beam.sdk.values">KV</a>&lt;K,V&gt;&gt;&nbsp;kvs,
<a href="../../../../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a>&lt;V&gt;&nbsp;valueCoder)</code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.core.Join">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.core.Join</h3>
<code>accept, analyzeCondition, computeSelfCost, copy, copy, createJoinType, deriveJoinRowType, deriveRowType, estimateJoinedRows, estimateRowCount, explainTerms, getChildExps, getCondition, getJoinType, getSystemFieldList, getVariablesSet, isSemiJoin, isSemiJoinDone, isValid</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.BiRel">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.BiRel</h3>
<code>childrenAccept, getInputs, getLeft, getRight, replaceInput</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.AbstractRelNode">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.AbstractRelNode</h3>
<code>accept, collectVariablesSet, collectVariablesUsed, computeDigest, computeSelfCost, explain, getCluster, getCollationList, getConvention, getCorrelVariable, getDescription, getDigest, getExpectedInputRowType, getId, getInput, getQuery, getRelTypeName, getRows, getRowType, getTable, getTraitSet, getVariablesStopped, isDistinct, isKey, isValid, metadata, onRegister, recomputeDigest, register, sole, toString</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.beam.sdk.extensions.sql.impl.rel.BeamRelNode">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.beam.sdk.extensions.sql.impl.rel.<a href="../../../../../../../../org/apache/beam/sdk/extensions/sql/impl/rel/BeamRelNode.html" title="interface in org.apache.beam.sdk.extensions.sql.impl.rel">BeamRelNode</a></h3>
<code><a href="../../../../../../../../org/apache/beam/sdk/extensions/sql/impl/rel/BeamRelNode.html#buildPTransform--">buildPTransform</a>, <a href="../../../../../../../../org/apache/beam/sdk/extensions/sql/impl/rel/BeamRelNode.html#getPipelineOptions--">getPipelineOptions</a>, <a href="../../../../../../../../org/apache/beam/sdk/extensions/sql/impl/rel/BeamRelNode.html#isBounded--">isBounded</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.RelNode">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.RelNode</h3>
<code>accept, accept, childrenAccept, collectVariablesSet, collectVariablesUsed, computeSelfCost, computeSelfCost, copy, estimateRowCount, explain, getChildExps, getCollationList, getConvention, getCorrelVariable, getExpectedInputRowType, getInput, getInputs, getQuery, getRelTypeName, getRows, getRowType, getTable, getVariablesSet, getVariablesStopped, isDistinct, isKey, isValid, isValid, metadata, onRegister, recomputeDigest, register, replaceInput</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.plan.RelOptNode">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.plan.RelOptNode</h3>
<code>getCluster, getDescription, getDigest, getId, getTraitSet</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="BeamJoinRel-org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.plan.RelOptCluster-org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.plan.RelTraitSet-org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.RelNode-org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.RelNode-org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rex.RexNode-java.util.Set-org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.core.JoinRelType-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>BeamJoinRel</h4>
<pre>protected&nbsp;BeamJoinRel(org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.plan.RelOptCluster&nbsp;cluster,
org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.plan.RelTraitSet&nbsp;traits,
org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.RelNode&nbsp;left,
org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.RelNode&nbsp;right,
org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rex.RexNode&nbsp;condition,
java.util.Set&lt;org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.core.CorrelationId&gt;&nbsp;variablesSet,
org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.core.JoinRelType&nbsp;joinType)</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getPCollectionInputs--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPCollectionInputs</h4>
<pre>public&nbsp;java.util.List&lt;org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.RelNode&gt;&nbsp;getPCollectionInputs()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../../org/apache/beam/sdk/extensions/sql/impl/rel/BeamRelNode.html#getPCollectionInputs--">getPCollectionInputs</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../../org/apache/beam/sdk/extensions/sql/impl/rel/BeamRelNode.html" title="interface in org.apache.beam.sdk.extensions.sql.impl.rel">BeamRelNode</a></code></dd>
</dl>
</li>
</ul>
<a name="isSideInputLookupJoin--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isSideInputLookupJoin</h4>
<pre>protected&nbsp;boolean&nbsp;isSideInputLookupJoin()</pre>
</li>
</ul>
<a name="seekableInputIndex--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>seekableInputIndex</h4>
<pre>protected&nbsp;org.apache.beam.vendor.calcite.v1_20_0.com.google.common.base.Optional&lt;java.lang.Integer&gt;&nbsp;seekableInputIndex()</pre>
</li>
</ul>
<a name="nonSeekableInputIndex--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nonSeekableInputIndex</h4>
<pre>protected&nbsp;org.apache.beam.vendor.calcite.v1_20_0.com.google.common.base.Optional&lt;java.lang.Integer&gt;&nbsp;nonSeekableInputIndex()</pre>
</li>
</ul>
<a name="seekable-org.apache.beam.sdk.extensions.sql.impl.rel.BeamRelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>seekable</h4>
<pre>public static&nbsp;boolean&nbsp;seekable(<a href="../../../../../../../../org/apache/beam/sdk/extensions/sql/impl/rel/BeamRelNode.html" title="interface in org.apache.beam.sdk.extensions.sql.impl.rel">BeamRelNode</a>&nbsp;relNode)</pre>
<div class="block">check if <code>BeamRelNode</code> implements <code>BeamSeekableTable</code>.</div>
</li>
</ul>
<a name="beamComputeSelfCost-org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.plan.RelOptPlanner-org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.metadata.RelMetadataQuery-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>beamComputeSelfCost</h4>
<pre>public&nbsp;<a href="../../../../../../../../org/apache/beam/sdk/extensions/sql/impl/planner/BeamCostModel.html" title="class in org.apache.beam.sdk.extensions.sql.impl.planner">BeamCostModel</a>&nbsp;beamComputeSelfCost(org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.plan.RelOptPlanner&nbsp;planner,
org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.metadata.RelMetadataQuery&nbsp;mq)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../../../org/apache/beam/sdk/extensions/sql/impl/rel/BeamRelNode.html#beamComputeSelfCost-org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.plan.RelOptPlanner-org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.metadata.RelMetadataQuery-">BeamRelNode</a></code></span></div>
<div class="block">This method is called by <code>org.apache.beam.sdk.extensions.sql.impl.CalciteQueryPlanner.NonCumulativeCostImpl</code>. This is
currently only used in SQLTransform Path (and not JDBC path). This is needed when Calcite Query
Planner wants to get the cost of a plan. Instead of calling this directly for a node, if we
needed that it should be obtained by calling mq.getNonCumulativeCost. This way RelMetadataQuery
will call this method instead of ComputeSelfCost if the handler is set correctly (see <code>org.apache.beam.sdk.extensions.sql.impl.CalciteQueryPlanner#convertToBeamRel(String)</code>)</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../../org/apache/beam/sdk/extensions/sql/impl/rel/BeamRelNode.html#beamComputeSelfCost-org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.plan.RelOptPlanner-org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.metadata.RelMetadataQuery-">beamComputeSelfCost</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../../org/apache/beam/sdk/extensions/sql/impl/rel/BeamRelNode.html" title="interface in org.apache.beam.sdk.extensions.sql.impl.rel">BeamRelNode</a></code></dd>
</dl>
</li>
</ul>
<a name="estimateNodeStats-org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.metadata.RelMetadataQuery-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>estimateNodeStats</h4>
<pre>public&nbsp;<a href="../../../../../../../../org/apache/beam/sdk/extensions/sql/impl/planner/NodeStats.html" title="class in org.apache.beam.sdk.extensions.sql.impl.planner">NodeStats</a>&nbsp;estimateNodeStats(org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.metadata.RelMetadataQuery&nbsp;mq)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../../../org/apache/beam/sdk/extensions/sql/impl/rel/BeamRelNode.html#estimateNodeStats-org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.metadata.RelMetadataQuery-">BeamRelNode</a></code></span></div>
<div class="block">This method is called by <code>org.apache.beam.sdk.extensions.sql.impl.planner.RelMdNodeStats</code>. This is currently only used in
SQLTransform Path (and not JDBC path). When a RelNode wants to calculate its BeamCost or
estimate its NodeStats, it may need NodeStat of its inputs. However, it should not call this
directly (because maybe its inputs are not physical yet). It should call <a href="../../../../../../../../org/apache/beam/sdk/extensions/sql/impl/rel/BeamSqlRelUtils.html#getNodeStats-org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.RelNode-org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.metadata.RelMetadataQuery-"><code>BeamSqlRelUtils.getNodeStats(
org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.RelNode,
org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.metadata.RelMetadataQuery)</code></a>
instead.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../../org/apache/beam/sdk/extensions/sql/impl/rel/BeamRelNode.html#estimateNodeStats-org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.metadata.RelMetadataQuery-">estimateNodeStats</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../../org/apache/beam/sdk/extensions/sql/impl/rel/BeamRelNode.html" title="interface in org.apache.beam.sdk.extensions.sql.impl.rel">BeamRelNode</a></code></dd>
</dl>
</li>
</ul>
<a name="isJoinLegal-org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.core.Join-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isJoinLegal</h4>
<pre>public static&nbsp;boolean&nbsp;isJoinLegal(org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.core.Join&nbsp;join)</pre>
<div class="block">This method checks if a join is legal and can be converted into Beam SQL. It is used during
planning and applying <a href="../../../../../../../../org/apache/beam/sdk/extensions/sql/impl/rule/BeamJoinAssociateRule.html" title="class in org.apache.beam.sdk.extensions.sql.impl.rule"><code>BeamJoinAssociateRule</code></a> and <a href="../../../../../../../../org/apache/beam/sdk/extensions/sql/impl/rule/BeamJoinPushThroughJoinRule.html" title="class in org.apache.beam.sdk.extensions.sql.impl.rule"><code>BeamJoinPushThroughJoinRule</code></a></div>
</li>
</ul>
<a name="buildNullSchema-org.apache.beam.sdk.schemas.Schema-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>buildNullSchema</h4>
<pre>protected&nbsp;<a href="../../../../../../../../org/apache/beam/sdk/schemas/Schema.html" title="class in org.apache.beam.sdk.schemas">Schema</a>&nbsp;buildNullSchema(<a href="../../../../../../../../org/apache/beam/sdk/schemas/Schema.html" title="class in org.apache.beam.sdk.schemas">Schema</a>&nbsp;schema)</pre>
</li>
</ul>
<a name="setValueCoder-org.apache.beam.sdk.values.PCollection-org.apache.beam.sdk.coders.Coder-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setValueCoder</h4>
<pre>protected static&nbsp;&lt;K,V&gt;&nbsp;<a href="../../../../../../../../org/apache/beam/sdk/values/PCollection.html" title="class in org.apache.beam.sdk.values">PCollection</a>&lt;<a href="../../../../../../../../org/apache/beam/sdk/values/KV.html" title="class in org.apache.beam.sdk.values">KV</a>&lt;K,V&gt;&gt;&nbsp;setValueCoder(<a href="../../../../../../../../org/apache/beam/sdk/values/PCollection.html" title="class in org.apache.beam.sdk.values">PCollection</a>&lt;<a href="../../../../../../../../org/apache/beam/sdk/values/KV.html" title="class in org.apache.beam.sdk.values">KV</a>&lt;K,V&gt;&gt;&nbsp;kvs,
<a href="../../../../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a>&lt;V&gt;&nbsp;valueCoder)</pre>
</li>
</ul>
<a name="getBoundednessOfRelNode-org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getBoundednessOfRelNode</h4>
<pre>public static&nbsp;<a href="../../../../../../../../org/apache/beam/sdk/values/PCollection.IsBounded.html" title="enum in org.apache.beam.sdk.values">PCollection.IsBounded</a>&nbsp;getBoundednessOfRelNode(org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.RelNode&nbsp;relNode)</pre>
<div class="block">This method returns the Boundedness of a RelNode. It is used during planning and applying
<a href="../../../../../../../../org/apache/beam/sdk/extensions/sql/impl/rule/BeamCoGBKJoinRule.html" title="class in org.apache.beam.sdk.extensions.sql.impl.rule"><code>BeamCoGBKJoinRule</code></a> and <a href="../../../../../../../../org/apache/beam/sdk/extensions/sql/impl/rule/BeamSideInputJoinRule.html" title="class in org.apache.beam.sdk.extensions.sql.impl.rule"><code>BeamSideInputJoinRule</code></a>
<p>The Volcano planner works in a top-down fashion. It starts by transforming the root and move
towards the leafs of the plan. Due to this when transforming a logical join its inputs are
still in the logical convention. So, Recursively visit the inputs of the RelNode till
BeamIOSourceRel is encountered and propagate the boundedness upwards.
<p>The Boundedness of each child of a RelNode is stored in a list. If any of the children are
Unbounded, the RelNode is Unbounded. Else, the RelNode is Bounded.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>relNode</code> - the RelNode whose Boundedness has to be determined</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>PCollection.isBounded</code></dd>
</dl>
</li>
</ul>
<a name="containsSeekableInput-org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>containsSeekableInput</h4>
<pre>public static&nbsp;boolean&nbsp;containsSeekableInput(org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.RelNode&nbsp;relNode)</pre>
<div class="block">This method returns whether any of the children of the relNode are Seekable. It is used during
planning and applying <a href="../../../../../../../../org/apache/beam/sdk/extensions/sql/impl/rule/BeamCoGBKJoinRule.html" title="class in org.apache.beam.sdk.extensions.sql.impl.rule"><code>BeamCoGBKJoinRule</code></a>
and <a href="../../../../../../../../org/apache/beam/sdk/extensions/sql/impl/rule/BeamSideInputJoinRule.html" title="class in org.apache.beam.sdk.extensions.sql.impl.rule"><code>BeamSideInputJoinRule</code></a> and <a href="../../../../../../../../org/apache/beam/sdk/extensions/sql/impl/rule/BeamSideInputLookupJoinRule.html" title="class in org.apache.beam.sdk.extensions.sql.impl.rule"><code>BeamSideInputLookupJoinRule</code></a></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>relNode</code> - the relNode whose children can be Seekable</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A boolean</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../../../org/apache/beam/sdk/extensions/sql/impl/rel/BeamIOSourceRel.html" title="class in org.apache.beam.sdk.extensions.sql.impl.rel"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../../../org/apache/beam/sdk/extensions/sql/impl/rel/BeamJoinRel.ExtractJoinKeys.html" title="class in org.apache.beam.sdk.extensions.sql.impl.rel"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../../index.html?org/apache/beam/sdk/extensions/sql/impl/rel/BeamJoinRel.html" target="_top">Frames</a></li>
<li><a href="BeamJoinRel.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../../../allclasses-noframe.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>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#fields.inherited.from.class.org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.core.Join">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>