blob: 075b9f0308cf327a914bd8ecbecc37b37eec4688 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LoptMultiJoin (Apache Calcite calcite API)</title>
<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="LoptMultiJoin (Apache Calcite calcite API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":42,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10};
var tabs = {65535:["t0","所有方法"],2:["t2","实例方法"],8:["t4","具体方法"],32:["t6","已过时的方法"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>您的浏览器已禁用 JavaScript。</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="跳过导航链接">跳过导航链接</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="导航">
<li><a href="../../../../../overview-summary.html">概览</a></li>
<li><a href="package-summary.html">程序包</a></li>
<li class="navBarCell1Rev"></li>
<li><a href="package-tree.html"></a></li>
<li><a href="../../../../../deprecated-list.html">已过时</a></li>
<li><a href="../../../../../index-all.html">索引</a></li>
<li><a href="../../../../../help-doc.html">帮助</a></li>
</ul>
<div class="aboutLanguage"><b>Apache Calcite</b></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/calcite/rel/rules/LoptJoinTree.Node.html" title="org.apache.calcite.rel.rules中的类"><span class="typeNameLink">上一个类</span></a></li>
<li><a href="../../../../../org/apache/calcite/rel/rules/LoptOptimizeJoinRule.html" title="org.apache.calcite.rel.rules中的类"><span class="typeNameLink">下一个类</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/calcite/rel/rules/LoptMultiJoin.html" target="_top">框架</a></li>
<li><a href="LoptMultiJoin.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">所有类</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>概要:&nbsp;</li>
<li>嵌套&nbsp;|&nbsp;</li>
<li>字段&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">构造器</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">方法</a></li>
</ul>
<ul class="subNavList">
<li>详细资料:&nbsp;</li>
<li>字段&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">构造器</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">方法</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.calcite.rel.rules</div>
<h2 title="类 LoptMultiJoin" class="title">类 LoptMultiJoin</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="java.lang中的类或接口">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.apache.calcite.rel.rules.LoptMultiJoin</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="typeNameLabel">LoptMultiJoin</span>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="java.lang中的类或接口">Object</a></pre>
<div class="block">Utility class that keeps track of the join factors that
make up a <a href="../../../../../org/apache/calcite/rel/rules/MultiJoin.html" title="org.apache.calcite.rel.rules中的类"><code>MultiJoin</code></a>.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>构造器概要</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="构造器概要表, 列表构造器和解释">
<caption><span>构造器</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">构造器和说明</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/rules/LoptMultiJoin.html#LoptMultiJoin-org.apache.calcite.rel.rules.MultiJoin-">LoptMultiJoin</a></span>(<a href="../../../../../org/apache/calcite/rel/rules/MultiJoin.html" title="org.apache.calcite.rel.rules中的类">MultiJoin</a>&nbsp;multiJoin)</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>方法概要</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="方法概要表, 列表方法和解释">
<caption><span id="t0" class="activeTableTab"><span>所有方法</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">实例方法</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">具体方法</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">已过时的方法</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">限定符和类型</th>
<th class="colLast" scope="col">方法和说明</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/rules/LoptMultiJoin.html#addRemovableOuterJoinFactor-int-">addRemovableOuterJoinFactor</a></span>(int&nbsp;factIdx)</code>
<div class="block">Adds a join factor to the set of factors that can be removed because the
factor is the null generating factor in an outer join, its join keys are
unique, and the factor is not projected in the query</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/rules/LoptMultiJoin.html#addRemovableSelfJoinPair-int-int-">addRemovableSelfJoinPair</a></span>(int&nbsp;factor1,
int&nbsp;factor2)</code>
<div class="block">Adds to a map that keeps track of removable self-join pairs.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>org.apache.calcite.rel.rules.LoptMultiJoin.Edge</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/rules/LoptMultiJoin.html#createEdge-org.apache.calcite.rex.RexNode-">createEdge</a></span>(<a href="../../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;condition)</code>&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/rules/LoptMultiJoin.html#findRef-int-">findRef</a></span>(int&nbsp;rexInputRef)</code>
<div class="block">Determines the join factor corresponding to a RexInputRef</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/rules/LoptMultiJoin.html#getChildFactors-org.apache.calcite.rel.rules.LoptJoinTree-org.apache.calcite.util.ImmutableBitSet.Builder-">getChildFactors</a></span>(<a href="../../../../../org/apache/calcite/rel/rules/LoptJoinTree.html" title="org.apache.calcite.rel.rules中的类">LoptJoinTree</a>&nbsp;joinTree,
<a href="../../../../../org/apache/calcite/util/ImmutableBitSet.Builder.html" title="org.apache.calcite.util中的类">ImmutableBitSet.Builder</a>&nbsp;childFactors)</code>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/calcite/util/ImmutableBitSet.html" title="org.apache.calcite.util中的类">ImmutableBitSet</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/rules/LoptMultiJoin.html#getFactorsRefByFactor-int-">getFactorsRefByFactor</a></span>(int&nbsp;factIdx)</code>&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/calcite/util/ImmutableBitSet.html" title="org.apache.calcite.util中的类">ImmutableBitSet</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/rules/LoptMultiJoin.html#getFactorsRefByJoinFilter-org.apache.calcite.rex.RexNode-">getFactorsRefByJoinFilter</a></span>(<a href="../../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;joinFilter)</code>&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>int[][]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/rules/LoptMultiJoin.html#getFactorWeights--">getFactorWeights</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/calcite/util/ImmutableBitSet.html" title="org.apache.calcite.util中的类">ImmutableBitSet</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/rules/LoptMultiJoin.html#getFieldsRefByJoinFilter-org.apache.calcite.rex.RexNode-">getFieldsRefByJoinFilter</a></span>(<a href="../../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;joinFilter)</code>&nbsp;</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/rules/LoptMultiJoin.html#getJoinFactor-int-">getJoinFactor</a></span>(int&nbsp;factIdx)</code>&nbsp;</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>int[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/rules/LoptMultiJoin.html#getJoinFieldRefCounts-int-">getJoinFieldRefCounts</a></span>(int&nbsp;factIdx)</code>&nbsp;</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../../org/apache/calcite/rel/type/RelDataTypeField.html" title="org.apache.calcite.rel.type中的接口">RelDataTypeField</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/rules/LoptMultiJoin.html#getJoinFields-org.apache.calcite.rel.rules.LoptJoinTree-org.apache.calcite.rel.rules.LoptJoinTree-">getJoinFields</a></span>(<a href="../../../../../org/apache/calcite/rel/rules/LoptJoinTree.html" title="org.apache.calcite.rel.rules中的类">LoptJoinTree</a>&nbsp;left,
<a href="../../../../../org/apache/calcite/rel/rules/LoptJoinTree.html" title="org.apache.calcite.rel.rules中的类">LoptJoinTree</a>&nbsp;right)</code>
<div class="block">Retrieves the fields corresponding to a join between a left and right
tree</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/rules/LoptMultiJoin.html#getJoinFilters--">getJoinFilters</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="java.lang中的类或接口">Integer</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/rules/LoptMultiJoin.html#getJoinRemovalFactor-int-">getJoinRemovalFactor</a></span>(int&nbsp;dimIdx)</code>&nbsp;</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/calcite/rel/logical/LogicalJoin.html" title="org.apache.calcite.rel.logical中的类">LogicalJoin</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/rules/LoptMultiJoin.html#getJoinRemovalSemiJoin-int-">getJoinRemovalSemiJoin</a></span>(int&nbsp;dimIdx)</code>&nbsp;</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/rules/LoptMultiJoin.html#getJoinStart-int-">getJoinStart</a></span>(int&nbsp;factIdx)</code>&nbsp;</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../../org/apache/calcite/rel/type/RelDataTypeField.html" title="org.apache.calcite.rel.type中的接口">RelDataTypeField</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/rules/LoptMultiJoin.html#getMultiJoinFields--">getMultiJoinFields</a></span>()</code>
<div class="block">Returns array of fields contained within the multi-join</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/calcite/rel/rules/MultiJoin.html" title="org.apache.calcite.rel.rules中的类">MultiJoin</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/rules/LoptMultiJoin.html#getMultiJoinRel--">getMultiJoinRel</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/rules/LoptMultiJoin.html#getNumFieldsInJoinFactor-int-">getNumFieldsInJoinFactor</a></span>(int&nbsp;factIdx)</code>&nbsp;</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/rules/LoptMultiJoin.html#getNumJoinFactors--">getNumJoinFactors</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/rules/LoptMultiJoin.html#getNumTotalFields--">getNumTotalFields</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="java.lang中的类或接口">Integer</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/rules/LoptMultiJoin.html#getOtherSelfJoinFactor-int-">getOtherSelfJoinFactor</a></span>(int&nbsp;factIdx)</code>
<div class="block">Returns the other factor in a self-join pair if the factor passed in is
a factor in a removable self-join; otherwise, returns null.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/rules/LoptMultiJoin.html#getOuterJoinCond-int-">getOuterJoinCond</a></span>(int&nbsp;factIdx)</code>&nbsp;</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/calcite/util/ImmutableBitSet.html" title="org.apache.calcite.util中的类">ImmutableBitSet</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/rules/LoptMultiJoin.html#getOuterJoinFactors-int-">getOuterJoinFactors</a></span>(int&nbsp;factIdx)</code>&nbsp;</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/calcite/util/ImmutableBitSet.html" title="org.apache.calcite.util中的类">ImmutableBitSet</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/rules/LoptMultiJoin.html#getProjFields-int-">getProjFields</a></span>(int&nbsp;factIdx)</code>&nbsp;</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="java.lang中的类或接口">Integer</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/rules/LoptMultiJoin.html#getRightColumnMapping-int-int-">getRightColumnMapping</a></span>(int&nbsp;rightFactor,
int&nbsp;rightOffset)</code>
<div class="block">Determines whether there is a mapping from a column in the right factor
of a self-join to a column from the left factor.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/rules/LoptMultiJoin.html#hasAllFactors-org.apache.calcite.rel.rules.LoptJoinTree-java.util.BitSet-">hasAllFactors</a></span>(<a href="../../../../../org/apache/calcite/rel/rules/LoptJoinTree.html" title="org.apache.calcite.rel.rules中的类">LoptJoinTree</a>&nbsp;joinTree,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/BitSet.html?is-external=true" title="java.util中的类或接口">BitSet</a>&nbsp;factorsNeeded)</code>
<div class="block">Returns true if a join tree contains all factors required</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/rules/LoptMultiJoin.html#isLeftFactorInRemovableSelfJoin-int-">isLeftFactorInRemovableSelfJoin</a></span>(int&nbsp;factIdx)</code>&nbsp;</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/rules/LoptMultiJoin.html#isNullGenerating-int-">isNullGenerating</a></span>(int&nbsp;factIdx)</code>&nbsp;</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/rules/LoptMultiJoin.html#isRemovableOuterJoinFactor-int-">isRemovableOuterJoinFactor</a></span>(int&nbsp;factIdx)</code>&nbsp;</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/rules/LoptMultiJoin.html#isRightFactorInRemovableSelfJoin-int-">isRightFactorInRemovableSelfJoin</a></span>(int&nbsp;factIdx)</code>&nbsp;</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/rules/LoptMultiJoin.html#setFactorWeights--">setFactorWeights</a></span>()</code>
<div class="block">Sets weighting for each combination of factors, depending on which join
filters reference which factors.</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/rules/LoptMultiJoin.html#setJoinRemovalFactor-int-int-">setJoinRemovalFactor</a></span>(int&nbsp;dimIdx,
int&nbsp;factIdx)</code>
<div class="block">Indicates that a dimension factor's join can be removed because of a
semijoin with a fact table.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/rules/LoptMultiJoin.html#setJoinRemovalSemiJoin-int-org.apache.calcite.rel.logical.LogicalJoin-">setJoinRemovalSemiJoin</a></span>(int&nbsp;dimIdx,
<a href="../../../../../org/apache/calcite/rel/logical/LogicalJoin.html" title="org.apache.calcite.rel.logical中的类">LogicalJoin</a>&nbsp;semiJoin)</code>
<div class="block">Indicates the semijoin that allows the join of a dimension table to be
removed</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>从类继承的方法&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="java.lang中的类或接口">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="java.lang中的类或接口">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="java.lang中的类或接口">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="java.lang中的类或接口">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="java.lang中的类或接口">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="java.lang中的类或接口">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="java.lang中的类或接口">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="java.lang中的类或接口">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="java.lang中的类或接口">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="java.lang中的类或接口">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="java.lang中的类或接口">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="java.lang中的类或接口">wait</a></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>构造器详细资料</h3>
<a name="LoptMultiJoin-org.apache.calcite.rel.rules.MultiJoin-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>LoptMultiJoin</h4>
<pre>public&nbsp;LoptMultiJoin(<a href="../../../../../org/apache/calcite/rel/rules/MultiJoin.html" title="org.apache.calcite.rel.rules中的类">MultiJoin</a>&nbsp;multiJoin)</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>方法详细资料</h3>
<a name="getMultiJoinRel--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMultiJoinRel</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/calcite/rel/rules/MultiJoin.html" title="org.apache.calcite.rel.rules中的类">MultiJoin</a>&nbsp;getMultiJoinRel()</pre>
<dl>
<dt><span class="returnLabel">返回:</span></dt>
<dd>the MultiJoin corresponding to this multijoin</dd>
</dl>
</li>
</ul>
<a name="getNumJoinFactors--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNumJoinFactors</h4>
<pre>public&nbsp;int&nbsp;getNumJoinFactors()</pre>
<dl>
<dt><span class="returnLabel">返回:</span></dt>
<dd>number of factors in this multijoin</dd>
</dl>
</li>
</ul>
<a name="getJoinFactor-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getJoinFactor</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;getJoinFactor(int&nbsp;factIdx)</pre>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>factIdx</code> - factor to be returned</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>factor corresponding to the factor index passed in</dd>
</dl>
</li>
</ul>
<a name="getNumTotalFields--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNumTotalFields</h4>
<pre>public&nbsp;int&nbsp;getNumTotalFields()</pre>
<dl>
<dt><span class="returnLabel">返回:</span></dt>
<dd>total number of fields in the multijoin</dd>
</dl>
</li>
</ul>
<a name="getNumFieldsInJoinFactor-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNumFieldsInJoinFactor</h4>
<pre>public&nbsp;int&nbsp;getNumFieldsInJoinFactor(int&nbsp;factIdx)</pre>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>factIdx</code> - desired factor</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>number of fields in the specified factor</dd>
</dl>
</li>
</ul>
<a name="getJoinFilters--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getJoinFilters</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;getJoinFilters()</pre>
<dl>
<dt><span class="returnLabel">返回:</span></dt>
<dd>all non-outer join filters in this multijoin</dd>
</dl>
</li>
</ul>
<a name="getFactorsRefByJoinFilter-org.apache.calcite.rex.RexNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFactorsRefByJoinFilter</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/calcite/util/ImmutableBitSet.html" title="org.apache.calcite.util中的类">ImmutableBitSet</a>&nbsp;getFactorsRefByJoinFilter(<a href="../../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;joinFilter)</pre>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>joinFilter</code> - filter for which information will be returned</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>bitmap corresponding to the factors referenced within the
specified join filter</dd>
</dl>
</li>
</ul>
<a name="getMultiJoinFields--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMultiJoinFields</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../../org/apache/calcite/rel/type/RelDataTypeField.html" title="org.apache.calcite.rel.type中的接口">RelDataTypeField</a>&gt;&nbsp;getMultiJoinFields()</pre>
<div class="block">Returns array of fields contained within the multi-join</div>
</li>
</ul>
<a name="getFieldsRefByJoinFilter-org.apache.calcite.rex.RexNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFieldsRefByJoinFilter</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/calcite/util/ImmutableBitSet.html" title="org.apache.calcite.util中的类">ImmutableBitSet</a>&nbsp;getFieldsRefByJoinFilter(<a href="../../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;joinFilter)</pre>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>joinFilter</code> - the filter for which information will be returned</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>bitmap corresponding to the fields referenced by a join filter</dd>
</dl>
</li>
</ul>
<a name="getFactorWeights--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFactorWeights</h4>
<pre>public&nbsp;int[][]&nbsp;getFactorWeights()</pre>
<dl>
<dt><span class="returnLabel">返回:</span></dt>
<dd>weights of the different factors relative to one another</dd>
</dl>
</li>
</ul>
<a name="getFactorsRefByFactor-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFactorsRefByFactor</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/calcite/util/ImmutableBitSet.html" title="org.apache.calcite.util中的类">ImmutableBitSet</a>&nbsp;getFactorsRefByFactor(int&nbsp;factIdx)</pre>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>factIdx</code> - factor for which information will be returned</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>bitmap corresponding to the factors referenced by the specified
factor in the various join filters that correspond to comparisons</dd>
</dl>
</li>
</ul>
<a name="getJoinStart-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getJoinStart</h4>
<pre>public&nbsp;int&nbsp;getJoinStart(int&nbsp;factIdx)</pre>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>factIdx</code> - factor for which information will be returned</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>starting offset within the multijoin for the specified factor</dd>
</dl>
</li>
</ul>
<a name="isNullGenerating-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isNullGenerating</h4>
<pre>public&nbsp;boolean&nbsp;isNullGenerating(int&nbsp;factIdx)</pre>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>factIdx</code> - factor for which information will be returned</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>whether or not the factor corresponds to a null-generating factor
in a left or right outer join</dd>
</dl>
</li>
</ul>
<a name="getOuterJoinFactors-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOuterJoinFactors</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/calcite/util/ImmutableBitSet.html" title="org.apache.calcite.util中的类">ImmutableBitSet</a>&nbsp;getOuterJoinFactors(int&nbsp;factIdx)</pre>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>factIdx</code> - factor for which information will be returned</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>bitmap containing the factors that a null generating factor is
dependent upon, if the factor is null generating in a left or right outer
join; otherwise null is returned</dd>
</dl>
</li>
</ul>
<a name="getOuterJoinCond-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOuterJoinCond</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;getOuterJoinCond(int&nbsp;factIdx)</pre>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>factIdx</code> - factor for which information will be returned</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>outer join conditions associated with the specified null
generating factor</dd>
</dl>
</li>
</ul>
<a name="getProjFields-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getProjFields</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/calcite/util/ImmutableBitSet.html" title="org.apache.calcite.util中的类">ImmutableBitSet</a>&nbsp;getProjFields(int&nbsp;factIdx)</pre>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>factIdx</code> - factor for which information will be returned</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>bitmap containing the fields that are projected from a factor</dd>
</dl>
</li>
</ul>
<a name="getJoinFieldRefCounts-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getJoinFieldRefCounts</h4>
<pre>public&nbsp;int[]&nbsp;getJoinFieldRefCounts(int&nbsp;factIdx)</pre>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>factIdx</code> - factor for which information will be returned</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>the join field reference counts for a factor</dd>
</dl>
</li>
</ul>
<a name="getJoinRemovalFactor-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getJoinRemovalFactor</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="java.lang中的类或接口">Integer</a>&nbsp;getJoinRemovalFactor(int&nbsp;dimIdx)</pre>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>dimIdx</code> - the dimension factor for which information will be returned</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>the factor id of the fact table corresponding to a dimension
table in a semijoin, in the case where the join with the dimension table
can be removed</dd>
</dl>
</li>
</ul>
<a name="getJoinRemovalSemiJoin-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getJoinRemovalSemiJoin</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/calcite/rel/logical/LogicalJoin.html" title="org.apache.calcite.rel.logical中的类">LogicalJoin</a>&nbsp;getJoinRemovalSemiJoin(int&nbsp;dimIdx)</pre>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>dimIdx</code> - the dimension factor for which information will be returned</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>the semijoin that allows the join of a dimension table to be
removed</dd>
</dl>
</li>
</ul>
<a name="setJoinRemovalFactor-int-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setJoinRemovalFactor</h4>
<pre>public&nbsp;void&nbsp;setJoinRemovalFactor(int&nbsp;dimIdx,
int&nbsp;factIdx)</pre>
<div class="block">Indicates that a dimension factor's join can be removed because of a
semijoin with a fact table.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>dimIdx</code> - id of the dimension factor</dd>
<dd><code>factIdx</code> - id of the fact factor</dd>
</dl>
</li>
</ul>
<a name="setJoinRemovalSemiJoin-int-org.apache.calcite.rel.logical.LogicalJoin-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setJoinRemovalSemiJoin</h4>
<pre>public&nbsp;void&nbsp;setJoinRemovalSemiJoin(int&nbsp;dimIdx,
<a href="../../../../../org/apache/calcite/rel/logical/LogicalJoin.html" title="org.apache.calcite.rel.logical中的类">LogicalJoin</a>&nbsp;semiJoin)</pre>
<div class="block">Indicates the semijoin that allows the join of a dimension table to be
removed</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>dimIdx</code> - id of the dimension factor</dd>
<dd><code>semiJoin</code> - the semijoin</dd>
</dl>
</li>
</ul>
<a name="findRef-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>findRef</h4>
<pre>public&nbsp;int&nbsp;findRef(int&nbsp;rexInputRef)</pre>
<div class="block">Determines the join factor corresponding to a RexInputRef</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rexInputRef</code> - rexInputRef index</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>index corresponding to join factor</dd>
</dl>
</li>
</ul>
<a name="setFactorWeights--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setFactorWeights</h4>
<pre>public&nbsp;void&nbsp;setFactorWeights()</pre>
<div class="block">Sets weighting for each combination of factors, depending on which join
filters reference which factors. Greater weight is given to equality
conditions. Also, sets bitmaps indicating which factors are referenced by
each factor within join filters that are comparisons.</div>
</li>
</ul>
<a name="hasAllFactors-org.apache.calcite.rel.rules.LoptJoinTree-java.util.BitSet-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasAllFactors</h4>
<pre>public&nbsp;boolean&nbsp;hasAllFactors(<a href="../../../../../org/apache/calcite/rel/rules/LoptJoinTree.html" title="org.apache.calcite.rel.rules中的类">LoptJoinTree</a>&nbsp;joinTree,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/BitSet.html?is-external=true" title="java.util中的类或接口">BitSet</a>&nbsp;factorsNeeded)</pre>
<div class="block">Returns true if a join tree contains all factors required</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>joinTree</code> - join tree to be examined</dd>
<dd><code>factorsNeeded</code> - bitmap of factors required</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>true if join tree contains all required factors</dd>
</dl>
</li>
</ul>
<a name="getChildFactors-org.apache.calcite.rel.rules.LoptJoinTree-org.apache.calcite.util.ImmutableBitSet.Builder-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getChildFactors</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="java.lang中的类或接口">@Deprecated</a>
public&nbsp;void&nbsp;getChildFactors(<a href="../../../../../org/apache/calcite/rel/rules/LoptJoinTree.html" title="org.apache.calcite.rel.rules中的类">LoptJoinTree</a>&nbsp;joinTree,
<a href="../../../../../org/apache/calcite/util/ImmutableBitSet.Builder.html" title="org.apache.calcite.util中的类">ImmutableBitSet.Builder</a>&nbsp;childFactors)</pre>
<div class="block"><span class="deprecatedLabel">已过时。</span>&nbsp;</div>
<div class="block">Sets a bitmap indicating all child RelNodes in a join tree</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>joinTree</code> - join tree to be examined</dd>
<dd><code>childFactors</code> - bitmap to be set</dd>
</dl>
</li>
</ul>
<a name="getJoinFields-org.apache.calcite.rel.rules.LoptJoinTree-org.apache.calcite.rel.rules.LoptJoinTree-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getJoinFields</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="../../../../../org/apache/calcite/rel/type/RelDataTypeField.html" title="org.apache.calcite.rel.type中的接口">RelDataTypeField</a>&gt;&nbsp;getJoinFields(<a href="../../../../../org/apache/calcite/rel/rules/LoptJoinTree.html" title="org.apache.calcite.rel.rules中的类">LoptJoinTree</a>&nbsp;left,
<a href="../../../../../org/apache/calcite/rel/rules/LoptJoinTree.html" title="org.apache.calcite.rel.rules中的类">LoptJoinTree</a>&nbsp;right)</pre>
<div class="block">Retrieves the fields corresponding to a join between a left and right
tree</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>left</code> - left hand side of the join</dd>
<dd><code>right</code> - right hand side of the join</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>fields of the join</dd>
</dl>
</li>
</ul>
<a name="addRemovableOuterJoinFactor-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addRemovableOuterJoinFactor</h4>
<pre>public&nbsp;void&nbsp;addRemovableOuterJoinFactor(int&nbsp;factIdx)</pre>
<div class="block">Adds a join factor to the set of factors that can be removed because the
factor is the null generating factor in an outer join, its join keys are
unique, and the factor is not projected in the query</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>factIdx</code> - join factor</dd>
</dl>
</li>
</ul>
<a name="isRemovableOuterJoinFactor-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isRemovableOuterJoinFactor</h4>
<pre>public&nbsp;boolean&nbsp;isRemovableOuterJoinFactor(int&nbsp;factIdx)</pre>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>factIdx</code> - factor in question</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>true if the factor corresponds to the null generating factor in
an outer join that can be removed</dd>
</dl>
</li>
</ul>
<a name="addRemovableSelfJoinPair-int-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addRemovableSelfJoinPair</h4>
<pre>public&nbsp;void&nbsp;addRemovableSelfJoinPair(int&nbsp;factor1,
int&nbsp;factor2)</pre>
<div class="block">Adds to a map that keeps track of removable self-join pairs.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>factor1</code> - one of the factors in the self-join</dd>
<dd><code>factor2</code> - the second factor in the self-join</dd>
</dl>
</li>
</ul>
<a name="getOtherSelfJoinFactor-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOtherSelfJoinFactor</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="java.lang中的类或接口">Integer</a>&nbsp;getOtherSelfJoinFactor(int&nbsp;factIdx)</pre>
<div class="block">Returns the other factor in a self-join pair if the factor passed in is
a factor in a removable self-join; otherwise, returns null.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>factIdx</code> - one of the factors in a self-join pair</dd>
</dl>
</li>
</ul>
<a name="isLeftFactorInRemovableSelfJoin-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isLeftFactorInRemovableSelfJoin</h4>
<pre>public&nbsp;boolean&nbsp;isLeftFactorInRemovableSelfJoin(int&nbsp;factIdx)</pre>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>factIdx</code> - factor in a self-join</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>true if the factor is the left factor in a self-join</dd>
</dl>
</li>
</ul>
<a name="isRightFactorInRemovableSelfJoin-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isRightFactorInRemovableSelfJoin</h4>
<pre>public&nbsp;boolean&nbsp;isRightFactorInRemovableSelfJoin(int&nbsp;factIdx)</pre>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>factIdx</code> - factor in a self-join</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>true if the factor is the right factor in a self-join</dd>
</dl>
</li>
</ul>
<a name="getRightColumnMapping-int-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRightColumnMapping</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="java.lang中的类或接口">Integer</a>&nbsp;getRightColumnMapping(int&nbsp;rightFactor,
int&nbsp;rightOffset)</pre>
<div class="block">Determines whether there is a mapping from a column in the right factor
of a self-join to a column from the left factor. Assumes that the right
factor is a part of a self-join.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rightFactor</code> - the index of the right factor</dd>
<dd><code>rightOffset</code> - the column offset of the right factor</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>the offset of the corresponding column in the left factor, if
such a column mapping exists; otherwise, null is returned</dd>
</dl>
</li>
</ul>
<a name="createEdge-org.apache.calcite.rex.RexNode-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>createEdge</h4>
<pre>public&nbsp;org.apache.calcite.rel.rules.LoptMultiJoin.Edge&nbsp;createEdge(<a href="../../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;condition)</pre>
</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="跳过导航链接">跳过导航链接</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="导航">
<li><a href="../../../../../overview-summary.html">概览</a></li>
<li><a href="package-summary.html">程序包</a></li>
<li class="navBarCell1Rev"></li>
<li><a href="package-tree.html"></a></li>
<li><a href="../../../../../deprecated-list.html">已过时</a></li>
<li><a href="../../../../../index-all.html">索引</a></li>
<li><a href="../../../../../help-doc.html">帮助</a></li>
</ul>
<div class="aboutLanguage"><b>Apache Calcite</b></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/calcite/rel/rules/LoptJoinTree.Node.html" title="org.apache.calcite.rel.rules中的类"><span class="typeNameLink">上一个类</span></a></li>
<li><a href="../../../../../org/apache/calcite/rel/rules/LoptOptimizeJoinRule.html" title="org.apache.calcite.rel.rules中的类"><span class="typeNameLink">下一个类</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/calcite/rel/rules/LoptMultiJoin.html" target="_top">框架</a></li>
<li><a href="LoptMultiJoin.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">所有类</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>概要:&nbsp;</li>
<li>嵌套&nbsp;|&nbsp;</li>
<li>字段&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">构造器</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">方法</a></li>
</ul>
<ul class="subNavList">
<li>详细资料:&nbsp;</li>
<li>字段&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">构造器</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">方法</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &copy; 2012-2020 Apache Software Foundation. All Rights Reserved.</small></p>
</body>
</html>