blob: f36a6cc17db631402b8fe4abfe8441610a4dea7c [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>EnumerableMergeJoin (Apache Calcite calcite API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.calcite.adapter.enumerable, class: EnumerableMergeJoin">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../script-dir/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../script-dir/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../script-dir/jquery-3.4.1.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-ui.js"></script>
</head>
<body class="class-declaration">
<script type="text/javascript">var data = {"i0":10,"i1":10,"i2":9,"i3":10,"i4":10,"i5":10,"i6":9,"i7":10};
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";
var pathtoroot = "../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flexBox">
<header role="banner" class="flexHeader">
<nav role="navigation">
<!-- ========= 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 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 class="aboutLanguage"><b>Apache Calcite</b></div>
</div>
<div class="subNav">
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">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>
<div class="navListSearch"><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="skipNav"><a id="skip.navbar.top">
<!-- -->
</a></div>
</nav>
</header>
<div class="flexContent">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.calcite.adapter.enumerable</a></div>
<h1 title="Class EnumerableMergeJoin" class="title">Class EnumerableMergeJoin</h1>
</div>
<div class="contentContainer">
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a>
<div class="inheritance"><a href="../../rel/AbstractRelNode.html" title="class in org.apache.calcite.rel">org.apache.calcite.rel.AbstractRelNode</a>
<div class="inheritance"><a href="../../rel/BiRel.html" title="class in org.apache.calcite.rel">org.apache.calcite.rel.BiRel</a>
<div class="inheritance"><a href="../../rel/core/Join.html" title="class in org.apache.calcite.rel.core">org.apache.calcite.rel.core.Join</a>
<div class="inheritance">org.apache.calcite.adapter.enumerable.EnumerableMergeJoin</div>
</div>
</div>
</div>
</div>
<section class="description">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Cloneable</a></code>, <code><a href="EnumerableRel.html" title="interface in org.apache.calcite.adapter.enumerable">EnumerableRel</a></code>, <code><a href="../../plan/RelOptNode.html" title="interface in org.apache.calcite.plan">RelOptNode</a></code>, <code><a href="../../rel/hint/Hintable.html" title="interface in org.apache.calcite.rel.hint">Hintable</a></code>, <code><a href="../../rel/PhysicalNode.html" title="interface in org.apache.calcite.rel">PhysicalNode</a></code>, <code><a href="../../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></dd>
</dl>
<hr>
<pre>public class <span class="typeNameLabel">EnumerableMergeJoin</span>
extends <a href="../../rel/core/Join.html" title="class in org.apache.calcite.rel.core">Join</a>
implements <a href="EnumerableRel.html" title="interface in org.apache.calcite.adapter.enumerable">EnumerableRel</a></pre>
<div class="block">Implementation of <a href="../../rel/core/Join.html" title="class in org.apache.calcite.rel.core"><code>Join</code></a> in
<a href="EnumerableConvention.html" title="enum in org.apache.calcite.adapter.enumerable"><code>enumerable calling convention</code></a> using
a merge algorithm.</div>
</section>
<section class="summary">
<ul class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<li class="blockList">
<section class="nestedClassSummary"><a id="nested.class.summary">
<!-- -->
</a>
<h2>Nested Class Summary</h2>
<div class="inheritedList">
<h2>Nested classes/interfaces inherited from interface&nbsp;org.apache.calcite.adapter.enumerable.<a href="EnumerableRel.html" title="interface in org.apache.calcite.adapter.enumerable">EnumerableRel</a></h2>
<a id="nested.classes.inherited.from.class.org.apache.calcite.adapter.enumerable.EnumerableRel">
<!-- -->
</a><code><a href="EnumerableRel.Prefer.html" title="enum in org.apache.calcite.adapter.enumerable">EnumerableRel.Prefer</a>, <a href="EnumerableRel.Result.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableRel.Result</a></code></div>
<div class="inheritedList">
<h2>Nested classes/interfaces inherited from interface&nbsp;org.apache.calcite.rel.<a href="../../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></h2>
<a id="nested.classes.inherited.from.class.org.apache.calcite.rel.RelNode">
<!-- -->
</a><code><a href="../../rel/RelNode.Context.html" title="interface in org.apache.calcite.rel">RelNode.Context</a></code></div>
</section>
</li>
<!-- =========== FIELD SUMMARY =========== -->
<li class="blockList">
<section class="fieldSummary"><a id="field.summary">
<!-- -->
</a>
<h2>Field Summary</h2>
<div class="inheritedList">
<h3>Fields inherited from class&nbsp;org.apache.calcite.rel.core.<a href="../../rel/core/Join.html" title="class in org.apache.calcite.rel.core">Join</a></h3>
<a id="fields.inherited.from.class.org.apache.calcite.rel.core.Join">
<!-- -->
</a><code><a href="../../rel/core/Join.html#condition">condition</a>, <a href="../../rel/core/Join.html#hints">hints</a>, <a href="../../rel/core/Join.html#joinInfo">joinInfo</a>, <a href="../../rel/core/Join.html#joinType">joinType</a>, <a href="../../rel/core/Join.html#variablesSet">variablesSet</a></code></div>
<div class="inheritedList">
<h3>Fields inherited from class&nbsp;org.apache.calcite.rel.<a href="../../rel/BiRel.html" title="class in org.apache.calcite.rel">BiRel</a></h3>
<a id="fields.inherited.from.class.org.apache.calcite.rel.BiRel">
<!-- -->
</a><code><a href="../../rel/BiRel.html#left">left</a>, <a href="../../rel/BiRel.html#right">right</a></code></div>
<div class="inheritedList">
<h3>Fields inherited from class&nbsp;org.apache.calcite.rel.<a href="../../rel/AbstractRelNode.html" title="class in org.apache.calcite.rel">AbstractRelNode</a></h3>
<a id="fields.inherited.from.class.org.apache.calcite.rel.AbstractRelNode">
<!-- -->
</a><code><a href="../../rel/AbstractRelNode.html#digest">digest</a>, <a href="../../rel/AbstractRelNode.html#id">id</a>, <a href="../../rel/AbstractRelNode.html#rowType">rowType</a>, <a href="../../rel/AbstractRelNode.html#traitSet">traitSet</a></code></div>
</section>
</li>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li class="blockList">
<section class="constructorSummary"><a id="constructor.summary">
<!-- -->
</a>
<h2>Constructor Summary</h2>
<div class="memberSummary">
<table>
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<thead>
<tr>
<th class="colFirst" scope="col">Modifier</th>
<th class="colSecond" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
</thead>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>protected </code></td>
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.apache.calcite.plan.RelOptCluster,org.apache.calcite.plan.RelTraitSet,org.apache.calcite.rel.RelNode,org.apache.calcite.rel.RelNode,org.apache.calcite.rex.RexNode,java.util.Set,org.apache.calcite.rel.core.JoinRelType)">EnumerableMergeJoin</a></span>&#8203;(<a href="../../plan/RelOptCluster.html" title="class in org.apache.calcite.plan">RelOptCluster</a>&nbsp;cluster,
<a href="../../plan/RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;traits,
<a href="../../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;left,
<a href="../../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;right,
<a href="../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;condition,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="../../rel/core/CorrelationId.html" title="class in org.apache.calcite.rel.core">CorrelationId</a>&gt;&nbsp;variablesSet,
<a href="../../rel/core/JoinRelType.html" title="enum in org.apache.calcite.rel.core">JoinRelType</a>&nbsp;joinType)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li class="blockList">
<section class="methodSummary"><a id="method.summary">
<!-- -->
</a>
<h2>Method Summary</h2>
<div class="memberSummary">
<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t1" class="tableTab" onclick="show(1);">Static Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t4" class="tableTab" onclick="show(8);">Concrete Methods</button></div>
<div id="memberSummary_tabpanel" role="tabpanel">
<table aria-labelledby="t0">
<thead>
<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>
</thead>
<tbody>
<tr class="altColor" id="i0">
<td class="colFirst"><code><a href="../../plan/RelOptCost.html" title="interface in org.apache.calcite.plan">RelOptCost</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#computeSelfCost(org.apache.calcite.plan.RelOptPlanner,org.apache.calcite.rel.metadata.RelMetadataQuery)">computeSelfCost</a></span>&#8203;(<a href="../../plan/RelOptPlanner.html" title="interface in org.apache.calcite.plan">RelOptPlanner</a>&nbsp;planner,
<a href="../../rel/metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq)</code></th>
<td class="colLast">
<div class="block">Returns the cost of this plan (not including children).</div>
</td>
</tr>
<tr class="rowColor" id="i1">
<td class="colFirst"><code><a href="EnumerableMergeJoin.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableMergeJoin</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#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;condition,
<a href="../../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;left,
<a href="../../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;right,
<a href="../../rel/core/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>
<tr class="altColor" id="i2">
<td class="colFirst"><code>static <a href="EnumerableMergeJoin.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableMergeJoin</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#create(org.apache.calcite.rel.RelNode,org.apache.calcite.rel.RelNode,org.apache.calcite.rex.RexNode,org.apache.calcite.util.ImmutableIntList,org.apache.calcite.util.ImmutableIntList,org.apache.calcite.rel.core.JoinRelType)">create</a></span>&#8203;(<a href="../../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;left,
<a href="../../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;right,
<a href="../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;condition,
<a href="../../util/ImmutableIntList.html" title="class in org.apache.calcite.util">ImmutableIntList</a>&nbsp;leftKeys,
<a href="../../util/ImmutableIntList.html" title="class in org.apache.calcite.util">ImmutableIntList</a>&nbsp;rightKeys,
<a href="../../rel/core/JoinRelType.html" title="enum in org.apache.calcite.rel.core">JoinRelType</a>&nbsp;joinType)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor" id="i3">
<td class="colFirst"><code><a href="../../util/Pair.html" title="class in org.apache.calcite.util">Pair</a>&lt;<a href="../../plan/RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>,&#8203;<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../../plan/RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&gt;&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#deriveTraits(org.apache.calcite.plan.RelTraitSet,int)">deriveTraits</a></span>&#8203;(<a href="../../plan/RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;childTraits,
int&nbsp;childId)</code></th>
<td class="colLast">
<div class="block">Derive traitset from child node, returns a pair of traits after
traits derivation.</div>
</td>
</tr>
<tr class="altColor" id="i4">
<td class="colFirst"><code><a href="../../plan/DeriveMode.html" title="enum in org.apache.calcite.plan">DeriveMode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDeriveMode()">getDeriveMode</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns mode of derivation.</div>
</td>
</tr>
<tr class="rowColor" id="i5">
<td class="colFirst"><code><a href="EnumerableRel.Result.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableRel.Result</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#implement(org.apache.calcite.adapter.enumerable.EnumerableRelImplementor,org.apache.calcite.adapter.enumerable.EnumerableRel.Prefer)">implement</a></span>&#8203;(<a href="EnumerableRelImplementor.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableRelImplementor</a>&nbsp;implementor,
<a href="EnumerableRel.Prefer.html" title="enum in org.apache.calcite.adapter.enumerable">EnumerableRel.Prefer</a>&nbsp;pref)</code></th>
<td class="colLast">
<div class="block">Creates a plan for this expression according to a calling convention.</div>
</td>
</tr>
<tr class="altColor" id="i6">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isMergeJoinSupported(org.apache.calcite.rel.core.JoinRelType)">isMergeJoinSupported</a></span>&#8203;(<a href="../../rel/core/JoinRelType.html" title="enum in org.apache.calcite.rel.core">JoinRelType</a>&nbsp;joinType)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor" id="i7">
<td class="colFirst"><code><a href="../../util/Pair.html" title="class in org.apache.calcite.util">Pair</a>&lt;<a href="../../plan/RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>,&#8203;<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../../plan/RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&gt;&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#passThroughTraits(org.apache.calcite.plan.RelTraitSet)">passThroughTraits</a></span>&#8203;(<a href="../../plan/RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;required)</code></th>
<td class="colLast">
<div class="block">Pass collations through can have three cases:
1.</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="inheritedList">
<h3>Methods inherited from class&nbsp;org.apache.calcite.rel.core.<a href="../../rel/core/Join.html" title="class in org.apache.calcite.rel.core">Join</a></h3>
<a id="methods.inherited.from.class.org.apache.calcite.rel.core.Join">
<!-- -->
</a><code><a href="../../rel/core/Join.html#accept(org.apache.calcite.rex.RexShuttle)">accept</a>, <a href="../../rel/core/Join.html#analyzeCondition()">analyzeCondition</a>, <a href="../../rel/core/Join.html#copy(org.apache.calcite.plan.RelTraitSet,java.util.List)">copy</a>, <a href="../../rel/core/Join.html#createJoinType(org.apache.calcite.rel.type.RelDataTypeFactory,org.apache.calcite.rel.type.RelDataType,org.apache.calcite.rel.type.RelDataType,java.util.List,java.util.List)">createJoinType</a>, <a href="../../rel/core/Join.html#deepEquals0(java.lang.Object)">deepEquals0</a>, <a href="../../rel/core/Join.html#deepHashCode0()">deepHashCode0</a>, <a href="../../rel/core/Join.html#deriveJoinRowType(org.apache.calcite.rel.type.RelDataType,org.apache.calcite.rel.type.RelDataType,org.apache.calcite.rel.core.JoinRelType,org.apache.calcite.rel.type.RelDataTypeFactory,java.util.List,java.util.List)">deriveJoinRowType</a>, <a href="../../rel/core/Join.html#deriveRowType()">deriveRowType</a>, <a href="../../rel/core/Join.html#estimateJoinedRows(org.apache.calcite.rel.core.Join,org.apache.calcite.rex.RexNode)">estimateJoinedRows</a>, <a href="../../rel/core/Join.html#estimateRowCount(org.apache.calcite.rel.metadata.RelMetadataQuery)">estimateRowCount</a>, <a href="../../rel/core/Join.html#explainTerms(org.apache.calcite.rel.RelWriter)">explainTerms</a>, <a href="../../rel/core/Join.html#getCondition()">getCondition</a>, <a href="../../rel/core/Join.html#getHints()">getHints</a>, <a href="../../rel/core/Join.html#getJoinType()">getJoinType</a>, <a href="../../rel/core/Join.html#getSystemFieldList()">getSystemFieldList</a>, <a href="../../rel/core/Join.html#getVariablesSet()">getVariablesSet</a>, <a href="../../rel/core/Join.html#isSemiJoin()">isSemiJoin</a>, <a href="../../rel/core/Join.html#isSemiJoinDone()">isSemiJoinDone</a>, <a href="../../rel/core/Join.html#isValid(org.apache.calcite.util.Litmus,org.apache.calcite.rel.RelNode.Context)">isValid</a></code></div>
<div class="inheritedList">
<h3>Methods inherited from class&nbsp;org.apache.calcite.rel.<a href="../../rel/BiRel.html" title="class in org.apache.calcite.rel">BiRel</a></h3>
<a id="methods.inherited.from.class.org.apache.calcite.rel.BiRel">
<!-- -->
</a><code><a href="../../rel/BiRel.html#childrenAccept(org.apache.calcite.rel.RelVisitor)">childrenAccept</a>, <a href="../../rel/BiRel.html#getInputs()">getInputs</a>, <a href="../../rel/BiRel.html#getLeft()">getLeft</a>, <a href="../../rel/BiRel.html#getRight()">getRight</a>, <a href="../../rel/BiRel.html#replaceInput(int,org.apache.calcite.rel.RelNode)">replaceInput</a></code></div>
<div class="inheritedList">
<h3>Methods inherited from class&nbsp;org.apache.calcite.rel.<a href="../../rel/AbstractRelNode.html" title="class in org.apache.calcite.rel">AbstractRelNode</a></h3>
<a id="methods.inherited.from.class.org.apache.calcite.rel.AbstractRelNode">
<!-- -->
</a><code><a href="../../rel/AbstractRelNode.html#accept(org.apache.calcite.rel.RelShuttle)">accept</a>, <a href="../../rel/AbstractRelNode.html#collectVariablesSet(java.util.Set)">collectVariablesSet</a>, <a href="../../rel/AbstractRelNode.html#collectVariablesUsed(java.util.Set)">collectVariablesUsed</a>, <a href="../../rel/AbstractRelNode.html#deepEquals(java.lang.Object)">deepEquals</a>, <a href="../../rel/AbstractRelNode.html#deepHashCode()">deepHashCode</a>, <a href="../../rel/AbstractRelNode.html#equals(java.lang.Object)">equals</a>, <a href="../../rel/AbstractRelNode.html#explain(org.apache.calcite.rel.RelWriter)">explain</a>, <a href="../../rel/AbstractRelNode.html#getCluster()">getCluster</a>, <a href="../../rel/AbstractRelNode.html#getConvention()">getConvention</a>, <a href="../../rel/AbstractRelNode.html#getCorrelVariable()">getCorrelVariable</a>, <a href="../../rel/AbstractRelNode.html#getDescription()">getDescription</a>, <a href="../../rel/AbstractRelNode.html#getDigest()">getDigest</a>, <a href="../../rel/AbstractRelNode.html#getExpectedInputRowType(int)">getExpectedInputRowType</a>, <a href="../../rel/AbstractRelNode.html#getId()">getId</a>, <a href="../../rel/AbstractRelNode.html#getInput(int)">getInput</a>, <a href="../../rel/AbstractRelNode.html#getRelDigest()">getRelDigest</a>, <a href="../../rel/AbstractRelNode.html#getRelTypeName()">getRelTypeName</a>, <a href="../../rel/AbstractRelNode.html#getRowType()">getRowType</a>, <a href="../../rel/AbstractRelNode.html#getTable()">getTable</a>, <a href="../../rel/AbstractRelNode.html#getTraitSet()">getTraitSet</a>, <a href="../../rel/AbstractRelNode.html#hashCode()">hashCode</a>, <a href="../../rel/AbstractRelNode.html#isEnforcer()">isEnforcer</a>, <a href="../../rel/AbstractRelNode.html#metadata(java.lang.Class,org.apache.calcite.rel.metadata.RelMetadataQuery)">metadata</a>, <a href="../../rel/AbstractRelNode.html#onRegister(org.apache.calcite.plan.RelOptPlanner)">onRegister</a>, <a href="../../rel/AbstractRelNode.html#recomputeDigest()">recomputeDigest</a>, <a href="../../rel/AbstractRelNode.html#register(org.apache.calcite.plan.RelOptPlanner)">register</a>, <a href="../../rel/AbstractRelNode.html#sole(java.util.List)">sole</a>, <a href="../../rel/AbstractRelNode.html#toString()">toString</a></code></div>
<div class="inheritedList">
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
<a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a><code><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></div>
<div class="inheritedList">
<h3>Methods inherited from interface&nbsp;org.apache.calcite.rel.hint.<a href="../../rel/hint/Hintable.html" title="interface in org.apache.calcite.rel.hint">Hintable</a></h3>
<a id="methods.inherited.from.class.org.apache.calcite.rel.hint.Hintable">
<!-- -->
</a><code><a href="../../rel/hint/Hintable.html#attachHints(java.util.List)">attachHints</a>, <a href="../../rel/hint/Hintable.html#withHints(java.util.List)">withHints</a></code></div>
<div class="inheritedList">
<h3>Methods inherited from interface&nbsp;org.apache.calcite.rel.<a href="../../rel/PhysicalNode.html" title="interface in org.apache.calcite.rel">PhysicalNode</a></h3>
<a id="methods.inherited.from.class.org.apache.calcite.rel.PhysicalNode">
<!-- -->
</a><code><a href="../../rel/PhysicalNode.html#derive(java.util.List)">derive</a>, <a href="../../rel/PhysicalNode.html#derive(org.apache.calcite.plan.RelTraitSet,int)">derive</a>, <a href="../../rel/PhysicalNode.html#passThrough(org.apache.calcite.plan.RelTraitSet)">passThrough</a></code></div>
<div class="inheritedList">
<h3>Methods inherited from interface&nbsp;org.apache.calcite.rel.<a href="../../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></h3>
<a id="methods.inherited.from.class.org.apache.calcite.rel.RelNode">
<!-- -->
</a><code><a href="../../rel/RelNode.html#accept(org.apache.calcite.rel.RelShuttle)">accept</a>, <a href="../../rel/RelNode.html#accept(org.apache.calcite.rex.RexShuttle)">accept</a>, <a href="../../rel/RelNode.html#childrenAccept(org.apache.calcite.rel.RelVisitor)">childrenAccept</a>, <a href="../../rel/RelNode.html#collectVariablesSet(java.util.Set)">collectVariablesSet</a>, <a href="../../rel/RelNode.html#collectVariablesUsed(java.util.Set)">collectVariablesUsed</a>, <a href="../../rel/RelNode.html#copy(org.apache.calcite.plan.RelTraitSet,java.util.List)">copy</a>, <a href="../../rel/RelNode.html#deepEquals(java.lang.Object)">deepEquals</a>, <a href="../../rel/RelNode.html#deepHashCode()">deepHashCode</a>, <a href="../../rel/RelNode.html#estimateRowCount(org.apache.calcite.rel.metadata.RelMetadataQuery)">estimateRowCount</a>, <a href="../../rel/RelNode.html#explain()">explain</a>, <a href="../../rel/RelNode.html#explain(org.apache.calcite.rel.RelWriter)">explain</a>, <a href="../../rel/RelNode.html#getConvention()">getConvention</a>, <a href="../../rel/RelNode.html#getCorrelVariable()">getCorrelVariable</a>, <a href="../../rel/RelNode.html#getDigest()">getDigest</a>, <a href="../../rel/RelNode.html#getExpectedInputRowType(int)">getExpectedInputRowType</a>, <a href="../../rel/RelNode.html#getInput(int)">getInput</a>, <a href="../../rel/RelNode.html#getInputs()">getInputs</a>, <a href="../../rel/RelNode.html#getRelDigest()">getRelDigest</a>, <a href="../../rel/RelNode.html#getRelTypeName()">getRelTypeName</a>, <a href="../../rel/RelNode.html#getRowType()">getRowType</a>, <a href="../../rel/RelNode.html#getTable()">getTable</a>, <a href="../../rel/RelNode.html#getVariablesSet()">getVariablesSet</a>, <a href="../../rel/RelNode.html#isEnforcer()">isEnforcer</a>, <a href="../../rel/RelNode.html#isValid(org.apache.calcite.util.Litmus,org.apache.calcite.rel.RelNode.Context)">isValid</a>, <a href="../../rel/RelNode.html#metadata(java.lang.Class,org.apache.calcite.rel.metadata.RelMetadataQuery)">metadata</a>, <a href="../../rel/RelNode.html#onRegister(org.apache.calcite.plan.RelOptPlanner)">onRegister</a>, <a href="../../rel/RelNode.html#recomputeDigest()">recomputeDigest</a>, <a href="../../rel/RelNode.html#register(org.apache.calcite.plan.RelOptPlanner)">register</a>, <a href="../../rel/RelNode.html#replaceInput(int,org.apache.calcite.rel.RelNode)">replaceInput</a></code></div>
<div class="inheritedList">
<h3>Methods inherited from interface&nbsp;org.apache.calcite.plan.<a href="../../plan/RelOptNode.html" title="interface in org.apache.calcite.plan">RelOptNode</a></h3>
<a id="methods.inherited.from.class.org.apache.calcite.plan.RelOptNode">
<!-- -->
</a><code><a href="../../plan/RelOptNode.html#getCluster()">getCluster</a>, <a href="../../plan/RelOptNode.html#getDescription()">getDescription</a>, <a href="../../plan/RelOptNode.html#getId()">getId</a>, <a href="../../plan/RelOptNode.html#getTraitSet()">getTraitSet</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li class="blockList">
<section class="constructorDetails"><a id="constructor.detail">
<!-- -->
</a>
<h2>Constructor Details</h2>
<ul class="blockList">
<li class="blockList">
<section class="detail">
<h3><a id="&lt;init&gt;(org.apache.calcite.plan.RelOptCluster,org.apache.calcite.plan.RelTraitSet,org.apache.calcite.rel.RelNode,org.apache.calcite.rel.RelNode,org.apache.calcite.rex.RexNode,java.util.Set,org.apache.calcite.rel.core.JoinRelType)">EnumerableMergeJoin</a></h3>
<div class="memberSignature"><span class="modifiers">protected</span>&nbsp;<span class="memberName">EnumerableMergeJoin</span>&#8203;(<span class="arguments"><a href="../../plan/RelOptCluster.html" title="class in org.apache.calcite.plan">RelOptCluster</a>&nbsp;cluster,
<a href="../../plan/RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;traits,
<a href="../../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;left,
<a href="../../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;right,
<a href="../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;condition,
<a href="https://docs.oracle.com/javase/9/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="../../rel/core/CorrelationId.html" title="class in org.apache.calcite.rel.core">CorrelationId</a>&gt;&nbsp;variablesSet,
<a href="../../rel/core/JoinRelType.html" title="enum in org.apache.calcite.rel.core">JoinRelType</a>&nbsp;joinType)</span></div>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li class="blockList">
<section class="methodDetails"><a id="method.detail">
<!-- -->
</a>
<h2>Method Details</h2>
<ul class="blockList">
<li class="blockList">
<section class="detail">
<h3><a id="isMergeJoinSupported(org.apache.calcite.rel.core.JoinRelType)">isMergeJoinSupported</a></h3>
<div class="memberSignature"><span class="modifiers">public static</span>&nbsp;<span class="returnType">boolean</span>&nbsp;<span class="memberName">isMergeJoinSupported</span>&#8203;(<span class="arguments"><a href="../../rel/core/JoinRelType.html" title="enum in org.apache.calcite.rel.core">JoinRelType</a>&nbsp;joinType)</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="passThroughTraits(org.apache.calcite.plan.RelTraitSet)">passThroughTraits</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="../../util/Pair.html" title="class in org.apache.calcite.util">Pair</a>&lt;<a href="../../plan/RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>,&#8203;<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../../plan/RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&gt;&gt;</span>&nbsp;<span class="memberName">passThroughTraits</span>&#8203;(<span class="arguments"><a href="../../plan/RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;required)</span></div>
<div class="block">Pass collations through can have three cases:
1. If sort keys are equal to either left join keys, or right join keys,
collations can be pushed to both join sides with correct mappings.
For example, for the query
select * from foo join bar on foo.a=bar.b order by foo.a desc
after traits pass through it will be equivalent to
select * from
(select * from foo order by foo.a desc)
join
(select * from bar order by bar.b desc)
2. If sort keys are sub-set of either left join keys, or right join keys,
collations have to be extended to cover all joins keys before passing through,
because merge join requires all join keys are sorted.
For example, for the query
select * from foo join bar
on foo.a=bar.b and foo.c=bar.d
order by foo.a desc
after traits pass through it will be equivalent to
select * from
(select * from foo order by foo.a desc, foo.c)
join
(select * from bar order by bar.b desc, bar.d)
3. If sort keys are super-set of either left join keys, or right join keys,
but not both, collations can be completely passed to the join key whose join
keys match the prefix of collations. Meanwhile, partial mapped collations can
be passed to another join side to make sure join keys are sorted.
For example, for the query
select * from foo join bar
on foo.a=bar.b and foo.c=bar.d
order by foo.a desc, foo.c desc, foo.e
after traits pass through it will be equivalent to
select * from
(select * from foo order by foo.a desc, foo.c desc, foo.e)
join
(select * from bar order by bar.b desc, bar.d desc)</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="EnumerableRel.html#passThroughTraits(org.apache.calcite.plan.RelTraitSet)">passThroughTraits</a></code>&nbsp;in interface&nbsp;<code><a href="EnumerableRel.html" title="interface in org.apache.calcite.adapter.enumerable">EnumerableRel</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../rel/PhysicalNode.html#passThroughTraits(org.apache.calcite.plan.RelTraitSet)">passThroughTraits</a></code>&nbsp;in interface&nbsp;<code><a href="../../rel/PhysicalNode.html" title="interface in org.apache.calcite.rel">PhysicalNode</a></code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="deriveTraits(org.apache.calcite.plan.RelTraitSet,int)">deriveTraits</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="../../util/Pair.html" title="class in org.apache.calcite.util">Pair</a>&lt;<a href="../../plan/RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>,&#8203;<a href="https://docs.oracle.com/javase/9/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../../plan/RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&gt;&gt;</span>&nbsp;<span class="memberName">deriveTraits</span>&#8203;(<span class="arguments"><a href="../../plan/RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;childTraits,
int&nbsp;childId)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../rel/PhysicalNode.html#deriveTraits(org.apache.calcite.plan.RelTraitSet,int)">PhysicalNode</a></code></span></div>
<div class="block">Derive traitset from child node, returns a pair of traits after
traits derivation.
<p>Pair.left: the new traitset
<p>Pair.right: the list of required traitsets for child nodes</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="EnumerableRel.html#deriveTraits(org.apache.calcite.plan.RelTraitSet,int)">deriveTraits</a></code>&nbsp;in interface&nbsp;<code><a href="EnumerableRel.html" title="interface in org.apache.calcite.adapter.enumerable">EnumerableRel</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../rel/PhysicalNode.html#deriveTraits(org.apache.calcite.plan.RelTraitSet,int)">deriveTraits</a></code>&nbsp;in interface&nbsp;<code><a href="../../rel/PhysicalNode.html" title="interface in org.apache.calcite.rel">PhysicalNode</a></code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getDeriveMode()">getDeriveMode</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="../../plan/DeriveMode.html" title="enum in org.apache.calcite.plan">DeriveMode</a></span>&nbsp;<span class="memberName">getDeriveMode</span>()</div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../rel/PhysicalNode.html#getDeriveMode()">PhysicalNode</a></code></span></div>
<div class="block">Returns mode of derivation.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="EnumerableRel.html#getDeriveMode()">getDeriveMode</a></code>&nbsp;in interface&nbsp;<code><a href="EnumerableRel.html" title="interface in org.apache.calcite.adapter.enumerable">EnumerableRel</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../rel/PhysicalNode.html#getDeriveMode()">getDeriveMode</a></code>&nbsp;in interface&nbsp;<code><a href="../../rel/PhysicalNode.html" title="interface in org.apache.calcite.rel">PhysicalNode</a></code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="create(org.apache.calcite.rel.RelNode,org.apache.calcite.rel.RelNode,org.apache.calcite.rex.RexNode,org.apache.calcite.util.ImmutableIntList,org.apache.calcite.util.ImmutableIntList,org.apache.calcite.rel.core.JoinRelType)">create</a></h3>
<div class="memberSignature"><span class="modifiers">public static</span>&nbsp;<span class="returnType"><a href="EnumerableMergeJoin.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableMergeJoin</a></span>&nbsp;<span class="memberName">create</span>&#8203;(<span class="arguments"><a href="../../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;left,
<a href="../../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;right,
<a href="../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&nbsp;condition,
<a href="../../util/ImmutableIntList.html" title="class in org.apache.calcite.util">ImmutableIntList</a>&nbsp;leftKeys,
<a href="../../util/ImmutableIntList.html" title="class in org.apache.calcite.util">ImmutableIntList</a>&nbsp;rightKeys,
<a href="../../rel/core/JoinRelType.html" title="enum in org.apache.calcite.rel.core">JoinRelType</a>&nbsp;joinType)</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="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></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="EnumerableMergeJoin.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableMergeJoin</a></span>&nbsp;<span class="memberName">copy</span>&#8203;(<span class="arguments"><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;condition,
<a href="../../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;left,
<a href="../../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;right,
<a href="../../rel/core/JoinRelType.html" title="enum in org.apache.calcite.rel.core">JoinRelType</a>&nbsp;joinType,
boolean&nbsp;semiJoinDone)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../rel/core/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)">Join</a></code></span></div>
<div class="block">Creates a copy of this join, overriding condition, system fields and
inputs.
<p>General contract as <a href="../../rel/RelNode.html#copy(org.apache.calcite.plan.RelTraitSet,java.util.List)"><code>RelNode.copy(org.apache.calcite.plan.RelTraitSet, java.util.List&lt;org.apache.calcite.rel.RelNode&gt;)</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../rel/core/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></code>&nbsp;in class&nbsp;<code><a href="../../rel/core/Join.html" title="class in org.apache.calcite.rel.core">Join</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>traitSet</code> - Traits</dd>
<dd><code>condition</code> - Condition</dd>
<dd><code>left</code> - Left input</dd>
<dd><code>right</code> - Right input</dd>
<dd><code>joinType</code> - Join type</dd>
<dd><code>semiJoinDone</code> - Whether this join has been translated to a
semi-join</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Copy of this join</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="computeSelfCost(org.apache.calcite.plan.RelOptPlanner,org.apache.calcite.rel.metadata.RelMetadataQuery)">computeSelfCost</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="../../plan/RelOptCost.html" title="interface in org.apache.calcite.plan">RelOptCost</a></span>&nbsp;<span class="memberName">computeSelfCost</span>&#8203;(<span class="arguments"><a href="../../plan/RelOptPlanner.html" title="interface in org.apache.calcite.plan">RelOptPlanner</a>&nbsp;planner,
<a href="../../rel/metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../rel/RelNode.html#computeSelfCost(org.apache.calcite.plan.RelOptPlanner,org.apache.calcite.rel.metadata.RelMetadataQuery)">RelNode</a></code></span></div>
<div class="block">Returns the cost of this plan (not including children). The base
implementation throws an error; derived classes should override.
<p>NOTE jvs 29-Mar-2006: Don't call this method directly. Instead, use
<a href="../../rel/metadata/RelMetadataQuery.html#getNonCumulativeCost(org.apache.calcite.rel.RelNode)"><code>RelMetadataQuery.getNonCumulativeCost(org.apache.calcite.rel.RelNode)</code></a>, which gives plugins a
chance to override the rel's default ideas about cost.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../rel/RelNode.html#computeSelfCost(org.apache.calcite.plan.RelOptPlanner,org.apache.calcite.rel.metadata.RelMetadataQuery)">computeSelfCost</a></code>&nbsp;in interface&nbsp;<code><a href="../../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../rel/core/Join.html#computeSelfCost(org.apache.calcite.plan.RelOptPlanner,org.apache.calcite.rel.metadata.RelMetadataQuery)">computeSelfCost</a></code>&nbsp;in class&nbsp;<code><a href="../../rel/core/Join.html" title="class in org.apache.calcite.rel.core">Join</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>planner</code> - Planner for cost calculation</dd>
<dd><code>mq</code> - Metadata query</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Cost of this plan (not including children)</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="implement(org.apache.calcite.adapter.enumerable.EnumerableRelImplementor,org.apache.calcite.adapter.enumerable.EnumerableRel.Prefer)">implement</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="EnumerableRel.Result.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableRel.Result</a></span>&nbsp;<span class="memberName">implement</span>&#8203;(<span class="arguments"><a href="EnumerableRelImplementor.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableRelImplementor</a>&nbsp;implementor,
<a href="EnumerableRel.Prefer.html" title="enum in org.apache.calcite.adapter.enumerable">EnumerableRel.Prefer</a>&nbsp;pref)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="EnumerableRel.html#implement(org.apache.calcite.adapter.enumerable.EnumerableRelImplementor,org.apache.calcite.adapter.enumerable.EnumerableRel.Prefer)">EnumerableRel</a></code></span></div>
<div class="block">Creates a plan for this expression according to a calling convention.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="EnumerableRel.html#implement(org.apache.calcite.adapter.enumerable.EnumerableRelImplementor,org.apache.calcite.adapter.enumerable.EnumerableRel.Prefer)">implement</a></code>&nbsp;in interface&nbsp;<code><a href="EnumerableRel.html" title="interface in org.apache.calcite.adapter.enumerable">EnumerableRel</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>implementor</code> - Implementor</dd>
<dd><code>pref</code> - Preferred representation for rows in result expression</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Plan for this expression according to a calling convention</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
</div>
<!-- ========= END OF CLASS DATA ========= -->
</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 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 class="aboutLanguage"><b>Apache Calcite</b></div>
</div>
<div class="subNav">
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">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>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &copy; 2012-2020 Apache Software Foundation. All Rights Reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>