blob: 0b19541790cbb509088d9d0db9996474440357cd [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>RelNode (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="RelNode (Apache Calcite calcite API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":38,"i6":6,"i7":6,"i8":6,"i9":6,"i10":38,"i11":38,"i12":6,"i13":6,"i14":18,"i15":6,"i16":6,"i17":6,"i18":38,"i19":6,"i20":6,"i21":38,"i22":6,"i23":6,"i24":6,"i25":38,"i26":38,"i27":18,"i28":38,"i29":38,"i30":6,"i31":6,"i32":6,"i33":6,"i34":6,"i35":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default Methods"],32:["t6","Deprecated Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><b>Apache Calcite</b></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/calcite/rel/RelInput.html" title="interface in org.apache.calcite.rel"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/calcite/rel/RelNode.Context.html" title="interface in org.apache.calcite.rel"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/calcite/rel/RelNode.html" target="_top">Frames</a></li>
<li><a href="RelNode.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&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>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.calcite.rel</div>
<h2 title="Interface RelNode" class="title">Interface RelNode</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</a>, <a href="../../../../org/apache/calcite/plan/RelOptNode.html" title="interface in org.apache.calcite.plan">RelOptNode</a></dd>
</dl>
<dl>
<dt>All Known Subinterfaces:</dt>
<dd><a href="../../../../org/apache/calcite/interpreter/BindableRel.html" title="interface in org.apache.calcite.interpreter">BindableRel</a>, <a href="../../../../org/apache/calcite/adapter/cassandra/CassandraRel.html" title="interface in org.apache.calcite.adapter.cassandra">CassandraRel</a>, <a href="../../../../org/apache/calcite/rel/convert/Converter.html" title="interface in org.apache.calcite.rel.convert">Converter</a>, <a href="../../../../org/apache/calcite/adapter/elasticsearch/ElasticsearchRel.html" title="interface in org.apache.calcite.adapter.elasticsearch">ElasticsearchRel</a>, <a href="../../../../org/apache/calcite/adapter/enumerable/EnumerableRel.html" title="interface in org.apache.calcite.adapter.enumerable">EnumerableRel</a>, <a href="../../../../org/apache/calcite/adapter/geode/rel/GeodeRel.html" title="interface in org.apache.calcite.adapter.geode.rel">GeodeRel</a>, <a href="../../../../org/apache/calcite/interpreter/InterpretableRel.html" title="interface in org.apache.calcite.interpreter">InterpretableRel</a>, <a href="../../../../org/apache/calcite/adapter/jdbc/JdbcRel.html" title="interface in org.apache.calcite.adapter.jdbc">JdbcRel</a>, <a href="../../../../org/apache/calcite/adapter/mongodb/MongoRel.html" title="interface in org.apache.calcite.adapter.mongodb">MongoRel</a>, <a href="../../../../org/apache/calcite/rel/PhysicalNode.html" title="interface in org.apache.calcite.rel">PhysicalNode</a>, <a href="../../../../org/apache/calcite/adapter/pig/PigRel.html" title="interface in org.apache.calcite.adapter.pig">PigRel</a>, <a href="../../../../org/apache/calcite/sql2rel/RelStructuredTypeFlattener.SelfFlatteningRel.html" title="interface in org.apache.calcite.sql2rel">RelStructuredTypeFlattener.SelfFlatteningRel</a>, <a href="../../../../org/apache/calcite/adapter/spark/SparkRel.html" title="interface in org.apache.calcite.adapter.spark">SparkRel</a></dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../../../../org/apache/calcite/plan/volcano/AbstractConverter.html" title="class in org.apache.calcite.plan.volcano">AbstractConverter</a>, <a href="../../../../org/apache/calcite/rel/AbstractRelNode.html" title="class in org.apache.calcite.rel">AbstractRelNode</a>, <a href="../../../../org/apache/calcite/rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core">Aggregate</a>, <a href="../../../../org/apache/calcite/interpreter/Bindables.BindableAggregate.html" title="class in org.apache.calcite.interpreter">Bindables.BindableAggregate</a>, <a href="../../../../org/apache/calcite/interpreter/Bindables.BindableFilter.html" title="class in org.apache.calcite.interpreter">Bindables.BindableFilter</a>, <a href="../../../../org/apache/calcite/interpreter/Bindables.BindableIntersect.html" title="class in org.apache.calcite.interpreter">Bindables.BindableIntersect</a>, <a href="../../../../org/apache/calcite/interpreter/Bindables.BindableJoin.html" title="class in org.apache.calcite.interpreter">Bindables.BindableJoin</a>, <a href="../../../../org/apache/calcite/interpreter/Bindables.BindableMatch.html" title="class in org.apache.calcite.interpreter">Bindables.BindableMatch</a>, <a href="../../../../org/apache/calcite/interpreter/Bindables.BindableMinus.html" title="class in org.apache.calcite.interpreter">Bindables.BindableMinus</a>, <a href="../../../../org/apache/calcite/interpreter/Bindables.BindableProject.html" title="class in org.apache.calcite.interpreter">Bindables.BindableProject</a>, <a href="../../../../org/apache/calcite/interpreter/Bindables.BindableSort.html" title="class in org.apache.calcite.interpreter">Bindables.BindableSort</a>, <a href="../../../../org/apache/calcite/interpreter/Bindables.BindableTableScan.html" title="class in org.apache.calcite.interpreter">Bindables.BindableTableScan</a>, <a href="../../../../org/apache/calcite/interpreter/Bindables.BindableUnion.html" title="class in org.apache.calcite.interpreter">Bindables.BindableUnion</a>, <a href="../../../../org/apache/calcite/interpreter/Bindables.BindableValues.html" title="class in org.apache.calcite.interpreter">Bindables.BindableValues</a>, <a href="../../../../org/apache/calcite/interpreter/Bindables.BindableWindow.html" title="class in org.apache.calcite.interpreter">Bindables.BindableWindow</a>, <a href="../../../../org/apache/calcite/rel/BiRel.html" title="class in org.apache.calcite.rel">BiRel</a>, <a href="../../../../org/apache/calcite/rel/core/Calc.html" title="class in org.apache.calcite.rel.core">Calc</a>, <a href="../../../../org/apache/calcite/adapter/cassandra/CassandraFilter.html" title="class in org.apache.calcite.adapter.cassandra">CassandraFilter</a>, <a href="../../../../org/apache/calcite/adapter/cassandra/CassandraLimit.html" title="class in org.apache.calcite.adapter.cassandra">CassandraLimit</a>, <a href="../../../../org/apache/calcite/adapter/cassandra/CassandraProject.html" title="class in org.apache.calcite.adapter.cassandra">CassandraProject</a>, <a href="../../../../org/apache/calcite/adapter/cassandra/CassandraSort.html" title="class in org.apache.calcite.adapter.cassandra">CassandraSort</a>, <a href="../../../../org/apache/calcite/adapter/cassandra/CassandraTableScan.html" title="class in org.apache.calcite.adapter.cassandra">CassandraTableScan</a>, <a href="../../../../org/apache/calcite/adapter/cassandra/CassandraToEnumerableConverter.html" title="class in org.apache.calcite.adapter.cassandra">CassandraToEnumerableConverter</a>, <a href="../../../../org/apache/calcite/rel/stream/Chi.html" title="class in org.apache.calcite.rel.stream">Chi</a>, <a href="../../../../org/apache/calcite/rel/core/Collect.html" title="class in org.apache.calcite.rel.core">Collect</a>, <a href="../../../../org/apache/calcite/rel/convert/ConverterImpl.html" title="class in org.apache.calcite.rel.convert">ConverterImpl</a>, <a href="../../../../org/apache/calcite/rel/core/Correlate.html" title="class in org.apache.calcite.rel.core">Correlate</a>, <a href="../../../../org/apache/calcite/adapter/csv/CsvTableScan.html" title="class in org.apache.calcite.adapter.csv">CsvTableScan</a>, <a href="../../../../org/apache/calcite/rel/stream/Delta.html" title="class in org.apache.calcite.rel.stream">Delta</a>, <a href="../../../../org/apache/calcite/adapter/druid/DruidQuery.html" title="class in org.apache.calcite.adapter.druid">DruidQuery</a>, <a href="../../../../org/apache/calcite/adapter/elasticsearch/ElasticsearchAggregate.html" title="class in org.apache.calcite.adapter.elasticsearch">ElasticsearchAggregate</a>, <a href="../../../../org/apache/calcite/adapter/elasticsearch/ElasticsearchFilter.html" title="class in org.apache.calcite.adapter.elasticsearch">ElasticsearchFilter</a>, <a href="../../../../org/apache/calcite/adapter/elasticsearch/ElasticsearchProject.html" title="class in org.apache.calcite.adapter.elasticsearch">ElasticsearchProject</a>, <a href="../../../../org/apache/calcite/adapter/elasticsearch/ElasticsearchSort.html" title="class in org.apache.calcite.adapter.elasticsearch">ElasticsearchSort</a>, <a href="../../../../org/apache/calcite/adapter/elasticsearch/ElasticsearchTableScan.html" title="class in org.apache.calcite.adapter.elasticsearch">ElasticsearchTableScan</a>, <a href="../../../../org/apache/calcite/adapter/elasticsearch/ElasticsearchToEnumerableConverter.html" title="class in org.apache.calcite.adapter.elasticsearch">ElasticsearchToEnumerableConverter</a>, <a href="../../../../org/apache/calcite/adapter/enumerable/EnumerableAggregate.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableAggregate</a>, <a href="../../../../org/apache/calcite/adapter/enumerable/EnumerableAggregateBase.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableAggregateBase</a>, <a href="../../../../org/apache/calcite/adapter/enumerable/EnumerableBatchNestedLoopJoin.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableBatchNestedLoopJoin</a>, <a href="../../../../org/apache/calcite/adapter/enumerable/EnumerableBindable.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableBindable</a>, <a href="../../../../org/apache/calcite/adapter/enumerable/EnumerableCalc.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableCalc</a>, <a href="../../../../org/apache/calcite/adapter/enumerable/EnumerableCollect.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableCollect</a>, <a href="../../../../org/apache/calcite/adapter/enumerable/EnumerableCorrelate.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableCorrelate</a>, <a href="../../../../org/apache/calcite/adapter/enumerable/EnumerableFilter.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableFilter</a>, <a href="../../../../org/apache/calcite/adapter/enumerable/EnumerableHashJoin.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableHashJoin</a>, <a href="../../../../org/apache/calcite/adapter/enumerable/EnumerableInterpretable.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableInterpretable</a>, <a href="../../../../org/apache/calcite/adapter/enumerable/EnumerableInterpreter.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableInterpreter</a>, <a href="../../../../org/apache/calcite/adapter/enumerable/EnumerableIntersect.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableIntersect</a>, <a href="../../../../org/apache/calcite/adapter/enumerable/EnumerableLimit.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableLimit</a>, <a href="../../../../org/apache/calcite/adapter/enumerable/EnumerableMatch.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableMatch</a>, <a href="../../../../org/apache/calcite/adapter/enumerable/EnumerableMergeJoin.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableMergeJoin</a>, <a href="../../../../org/apache/calcite/adapter/enumerable/EnumerableMinus.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableMinus</a>, <a href="../../../../org/apache/calcite/adapter/enumerable/EnumerableNestedLoopJoin.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableNestedLoopJoin</a>, <a href="../../../../org/apache/calcite/adapter/enumerable/EnumerableProject.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableProject</a>, <a href="../../../../org/apache/calcite/adapter/enumerable/EnumerableRepeatUnion.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableRepeatUnion</a>, <a href="../../../../org/apache/calcite/adapter/enumerable/EnumerableSort.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableSort</a>, <a href="../../../../org/apache/calcite/adapter/enumerable/EnumerableSortedAggregate.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableSortedAggregate</a>, <a href="../../../../org/apache/calcite/adapter/enumerable/EnumerableTableFunctionScan.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableTableFunctionScan</a>, <a href="../../../../org/apache/calcite/adapter/enumerable/EnumerableTableModify.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableTableModify</a>, <a href="../../../../org/apache/calcite/adapter/enumerable/EnumerableTableScan.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableTableScan</a>, <a href="../../../../org/apache/calcite/adapter/enumerable/EnumerableTableSpool.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableTableSpool</a>, <a href="../../../../org/apache/calcite/adapter/spark/EnumerableToSparkConverter.html" title="class in org.apache.calcite.adapter.spark">EnumerableToSparkConverter</a>, <a href="../../../../org/apache/calcite/adapter/enumerable/EnumerableUncollect.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableUncollect</a>, <a href="../../../../org/apache/calcite/adapter/enumerable/EnumerableUnion.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableUnion</a>, <a href="../../../../org/apache/calcite/adapter/enumerable/EnumerableValues.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableValues</a>, <a href="../../../../org/apache/calcite/adapter/enumerable/EnumerableWindow.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableWindow</a>, <a href="../../../../org/apache/calcite/rel/core/EquiJoin.html" title="class in org.apache.calcite.rel.core">EquiJoin</a>, <a href="../../../../org/apache/calcite/rel/rules/EquiJoin.html" title="class in org.apache.calcite.rel.rules">EquiJoin</a>, <a href="../../../../org/apache/calcite/rel/core/Exchange.html" title="class in org.apache.calcite.rel.core">Exchange</a>, <a href="../../../../org/apache/calcite/rel/core/Filter.html" title="class in org.apache.calcite.rel.core">Filter</a>, <a href="../../../../org/apache/calcite/adapter/geode/rel/GeodeAggregate.html" title="class in org.apache.calcite.adapter.geode.rel">GeodeAggregate</a>, <a href="../../../../org/apache/calcite/adapter/geode/rel/GeodeFilter.html" title="class in org.apache.calcite.adapter.geode.rel">GeodeFilter</a>, <a href="../../../../org/apache/calcite/adapter/geode/rel/GeodeProject.html" title="class in org.apache.calcite.adapter.geode.rel">GeodeProject</a>, <a href="../../../../org/apache/calcite/adapter/geode/rel/GeodeSort.html" title="class in org.apache.calcite.adapter.geode.rel">GeodeSort</a>, <a href="../../../../org/apache/calcite/adapter/geode/rel/GeodeTableScan.html" title="class in org.apache.calcite.adapter.geode.rel">GeodeTableScan</a>, <a href="../../../../org/apache/calcite/adapter/geode/rel/GeodeToEnumerableConverter.html" title="class in org.apache.calcite.adapter.geode.rel">GeodeToEnumerableConverter</a>, <a href="../../../../org/apache/calcite/plan/hep/HepRelVertex.html" title="class in org.apache.calcite.plan.hep">HepRelVertex</a>, <a href="../../../../org/apache/calcite/interpreter/InterpretableConverter.html" title="class in org.apache.calcite.interpreter">InterpretableConverter</a>, <a href="../../../../org/apache/calcite/rel/core/Intersect.html" title="class in org.apache.calcite.rel.core">Intersect</a>, <a href="../../../../org/apache/calcite/adapter/jdbc/JdbcRules.JdbcAggregate.html" title="class in org.apache.calcite.adapter.jdbc">JdbcRules.JdbcAggregate</a>, <a href="../../../../org/apache/calcite/adapter/jdbc/JdbcRules.JdbcCalc.html" title="class in org.apache.calcite.adapter.jdbc">JdbcRules.JdbcCalc</a>, <a href="../../../../org/apache/calcite/adapter/jdbc/JdbcRules.JdbcFilter.html" title="class in org.apache.calcite.adapter.jdbc">JdbcRules.JdbcFilter</a>, <a href="../../../../org/apache/calcite/adapter/jdbc/JdbcRules.JdbcIntersect.html" title="class in org.apache.calcite.adapter.jdbc">JdbcRules.JdbcIntersect</a>, <a href="../../../../org/apache/calcite/adapter/jdbc/JdbcRules.JdbcJoin.html" title="class in org.apache.calcite.adapter.jdbc">JdbcRules.JdbcJoin</a>, <a href="../../../../org/apache/calcite/adapter/jdbc/JdbcRules.JdbcMinus.html" title="class in org.apache.calcite.adapter.jdbc">JdbcRules.JdbcMinus</a>, <a href="../../../../org/apache/calcite/adapter/jdbc/JdbcRules.JdbcProject.html" title="class in org.apache.calcite.adapter.jdbc">JdbcRules.JdbcProject</a>, <a href="../../../../org/apache/calcite/adapter/jdbc/JdbcRules.JdbcSort.html" title="class in org.apache.calcite.adapter.jdbc">JdbcRules.JdbcSort</a>, <a href="../../../../org/apache/calcite/adapter/jdbc/JdbcRules.JdbcTableModify.html" title="class in org.apache.calcite.adapter.jdbc">JdbcRules.JdbcTableModify</a>, <a href="../../../../org/apache/calcite/adapter/jdbc/JdbcRules.JdbcUnion.html" title="class in org.apache.calcite.adapter.jdbc">JdbcRules.JdbcUnion</a>, <a href="../../../../org/apache/calcite/adapter/jdbc/JdbcRules.JdbcValues.html" title="class in org.apache.calcite.adapter.jdbc">JdbcRules.JdbcValues</a>, <a href="../../../../org/apache/calcite/adapter/jdbc/JdbcTableScan.html" title="class in org.apache.calcite.adapter.jdbc">JdbcTableScan</a>, <a href="../../../../org/apache/calcite/adapter/jdbc/JdbcToEnumerableConverter.html" title="class in org.apache.calcite.adapter.jdbc">JdbcToEnumerableConverter</a>, <a href="../../../../org/apache/calcite/adapter/spark/JdbcToSparkConverter.html" title="class in org.apache.calcite.adapter.spark">JdbcToSparkConverter</a>, <a href="../../../../org/apache/calcite/rel/core/Join.html" title="class in org.apache.calcite.rel.core">Join</a>, <a href="../../../../org/apache/calcite/rel/logical/LogicalAggregate.html" title="class in org.apache.calcite.rel.logical">LogicalAggregate</a>, <a href="../../../../org/apache/calcite/rel/logical/LogicalCalc.html" title="class in org.apache.calcite.rel.logical">LogicalCalc</a>, <a href="../../../../org/apache/calcite/rel/stream/LogicalChi.html" title="class in org.apache.calcite.rel.stream">LogicalChi</a>, <a href="../../../../org/apache/calcite/rel/logical/LogicalCorrelate.html" title="class in org.apache.calcite.rel.logical">LogicalCorrelate</a>, <a href="../../../../org/apache/calcite/rel/stream/LogicalDelta.html" title="class in org.apache.calcite.rel.stream">LogicalDelta</a>, <a href="../../../../org/apache/calcite/rel/logical/LogicalExchange.html" title="class in org.apache.calcite.rel.logical">LogicalExchange</a>, <a href="../../../../org/apache/calcite/rel/logical/LogicalFilter.html" title="class in org.apache.calcite.rel.logical">LogicalFilter</a>, <a href="../../../../org/apache/calcite/rel/logical/LogicalIntersect.html" title="class in org.apache.calcite.rel.logical">LogicalIntersect</a>, <a href="../../../../org/apache/calcite/rel/logical/LogicalJoin.html" title="class in org.apache.calcite.rel.logical">LogicalJoin</a>, <a href="../../../../org/apache/calcite/rel/logical/LogicalMatch.html" title="class in org.apache.calcite.rel.logical">LogicalMatch</a>, <a href="../../../../org/apache/calcite/rel/logical/LogicalMinus.html" title="class in org.apache.calcite.rel.logical">LogicalMinus</a>, <a href="../../../../org/apache/calcite/rel/logical/LogicalProject.html" title="class in org.apache.calcite.rel.logical">LogicalProject</a>, <a href="../../../../org/apache/calcite/rel/logical/LogicalRepeatUnion.html" title="class in org.apache.calcite.rel.logical">LogicalRepeatUnion</a>, <a href="../../../../org/apache/calcite/rel/logical/LogicalSnapshot.html" title="class in org.apache.calcite.rel.logical">LogicalSnapshot</a>, <a href="../../../../org/apache/calcite/rel/logical/LogicalSort.html" title="class in org.apache.calcite.rel.logical">LogicalSort</a>, <a href="../../../../org/apache/calcite/rel/logical/LogicalSortExchange.html" title="class in org.apache.calcite.rel.logical">LogicalSortExchange</a>, <a href="../../../../org/apache/calcite/rel/logical/LogicalTableFunctionScan.html" title="class in org.apache.calcite.rel.logical">LogicalTableFunctionScan</a>, <a href="../../../../org/apache/calcite/rel/logical/LogicalTableModify.html" title="class in org.apache.calcite.rel.logical">LogicalTableModify</a>, <a href="../../../../org/apache/calcite/rel/logical/LogicalTableScan.html" title="class in org.apache.calcite.rel.logical">LogicalTableScan</a>, <a href="../../../../org/apache/calcite/rel/logical/LogicalTableSpool.html" title="class in org.apache.calcite.rel.logical">LogicalTableSpool</a>, <a href="../../../../org/apache/calcite/rel/logical/LogicalUnion.html" title="class in org.apache.calcite.rel.logical">LogicalUnion</a>, <a href="../../../../org/apache/calcite/rel/logical/LogicalValues.html" title="class in org.apache.calcite.rel.logical">LogicalValues</a>, <a href="../../../../org/apache/calcite/rel/logical/LogicalWindow.html" title="class in org.apache.calcite.rel.logical">LogicalWindow</a>, <a href="../../../../org/apache/calcite/rel/core/Match.html" title="class in org.apache.calcite.rel.core">Match</a>, <a href="../../../../org/apache/calcite/rel/core/Minus.html" title="class in org.apache.calcite.rel.core">Minus</a>, <a href="../../../../org/apache/calcite/adapter/mongodb/MongoAggregate.html" title="class in org.apache.calcite.adapter.mongodb">MongoAggregate</a>, <a href="../../../../org/apache/calcite/adapter/mongodb/MongoFilter.html" title="class in org.apache.calcite.adapter.mongodb">MongoFilter</a>, <a href="../../../../org/apache/calcite/adapter/mongodb/MongoProject.html" title="class in org.apache.calcite.adapter.mongodb">MongoProject</a>, <a href="../../../../org/apache/calcite/adapter/mongodb/MongoSort.html" title="class in org.apache.calcite.adapter.mongodb">MongoSort</a>, <a href="../../../../org/apache/calcite/adapter/mongodb/MongoTableScan.html" title="class in org.apache.calcite.adapter.mongodb">MongoTableScan</a>, <a href="../../../../org/apache/calcite/adapter/mongodb/MongoToEnumerableConverter.html" title="class in org.apache.calcite.adapter.mongodb">MongoToEnumerableConverter</a>, <a href="../../../../org/apache/calcite/rel/rules/MultiJoin.html" title="class in org.apache.calcite.rel.rules">MultiJoin</a>, <a href="../../../../org/apache/calcite/rel/convert/NoneConverter.html" title="class in org.apache.calcite.rel.convert">NoneConverter</a>, <a href="../../../../org/apache/calcite/adapter/pig/PigAggregate.html" title="class in org.apache.calcite.adapter.pig">PigAggregate</a>, <a href="../../../../org/apache/calcite/adapter/pig/PigFilter.html" title="class in org.apache.calcite.adapter.pig">PigFilter</a>, <a href="../../../../org/apache/calcite/adapter/pig/PigJoin.html" title="class in org.apache.calcite.adapter.pig">PigJoin</a>, <a href="../../../../org/apache/calcite/adapter/pig/PigProject.html" title="class in org.apache.calcite.adapter.pig">PigProject</a>, <a href="../../../../org/apache/calcite/adapter/pig/PigTableScan.html" title="class in org.apache.calcite.adapter.pig">PigTableScan</a>, <a href="../../../../org/apache/calcite/adapter/pig/PigToEnumerableConverter.html" title="class in org.apache.calcite.adapter.pig">PigToEnumerableConverter</a>, <a href="../../../../org/apache/calcite/rel/core/Project.html" title="class in org.apache.calcite.rel.core">Project</a>, <a href="../../../../org/apache/calcite/plan/volcano/RelSubset.html" title="class in org.apache.calcite.plan.volcano">RelSubset</a>, <a href="../../../../org/apache/calcite/rel/core/RepeatUnion.html" title="class in org.apache.calcite.rel.core">RepeatUnion</a>, <a href="../../../../org/apache/calcite/rel/core/Sample.html" title="class in org.apache.calcite.rel.core">Sample</a>, <a href="../../../../org/apache/calcite/rel/core/SetOp.html" title="class in org.apache.calcite.rel.core">SetOp</a>, <a href="../../../../org/apache/calcite/rel/SingleRel.html" title="class in org.apache.calcite.rel">SingleRel</a>, <a href="../../../../org/apache/calcite/rel/core/Snapshot.html" title="class in org.apache.calcite.rel.core">Snapshot</a>, <a href="../../../../org/apache/calcite/rel/core/Sort.html" title="class in org.apache.calcite.rel.core">Sort</a>, <a href="../../../../org/apache/calcite/rel/core/SortExchange.html" title="class in org.apache.calcite.rel.core">SortExchange</a>, <a href="../../../../org/apache/calcite/adapter/spark/SparkRules.SparkCalc.html" title="class in org.apache.calcite.adapter.spark">SparkRules.SparkCalc</a>, <a href="../../../../org/apache/calcite/adapter/spark/SparkRules.SparkValues.html" title="class in org.apache.calcite.adapter.spark">SparkRules.SparkValues</a>, <a href="../../../../org/apache/calcite/adapter/spark/SparkToEnumerableConverter.html" title="class in org.apache.calcite.adapter.spark">SparkToEnumerableConverter</a>, <a href="../../../../org/apache/calcite/adapter/splunk/SplunkTableScan.html" title="class in org.apache.calcite.adapter.splunk">SplunkTableScan</a>, <a href="../../../../org/apache/calcite/rel/core/Spool.html" title="class in org.apache.calcite.rel.core">Spool</a>, <a href="../../../../org/apache/calcite/schema/impl/StarTable.StarTableScan.html" title="class in org.apache.calcite.schema.impl">StarTable.StarTableScan</a>, <a href="../../../../org/apache/calcite/rel/core/TableFunctionScan.html" title="class in org.apache.calcite.rel.core">TableFunctionScan</a>, <a href="../../../../org/apache/calcite/rel/core/TableModify.html" title="class in org.apache.calcite.rel.core">TableModify</a>, <a href="../../../../org/apache/calcite/rel/core/TableScan.html" title="class in org.apache.calcite.rel.core">TableScan</a>, <a href="../../../../org/apache/calcite/rel/core/TableSpool.html" title="class in org.apache.calcite.rel.core">TableSpool</a>, <a href="../../../../org/apache/calcite/rel/core/Uncollect.html" title="class in org.apache.calcite.rel.core">Uncollect</a>, <a href="../../../../org/apache/calcite/rel/core/Union.html" title="class in org.apache.calcite.rel.core">Union</a>, <a href="../../../../org/apache/calcite/rel/core/Values.html" title="class in org.apache.calcite.rel.core">Values</a>, <a href="../../../../org/apache/calcite/rel/core/Window.html" title="class in org.apache.calcite.rel.core">Window</a></dd>
</dl>
<hr>
<br>
<pre>public interface <span class="typeNameLabel">RelNode</span>
extends <a href="../../../../org/apache/calcite/plan/RelOptNode.html" title="interface in org.apache.calcite.plan">RelOptNode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</a></pre>
<div class="block">A <code>RelNode</code> is a relational expression.
<p>Relational expressions process data, so their names are typically verbs:
Sort, Join, Project, Filter, Scan, Sample.
<p>A relational expression is not a scalar expression; see
<a href="../../../../org/apache/calcite/sql/SqlNode.html" title="class in org.apache.calcite.sql"><code>SqlNode</code></a> and <a href="../../../../org/apache/calcite/rex/RexNode.html" title="class in org.apache.calcite.rex"><code>RexNode</code></a>.</p>
<p>If this type of relational expression has some particular planner rules,
it should implement the <em>public static</em> method
<a href="../../../../org/apache/calcite/rel/AbstractRelNode.html#register-org.apache.calcite.plan.RelOptPlanner-"><code>AbstractRelNode.register(org.apache.calcite.plan.RelOptPlanner)</code></a>.</p>
<p>When a relational expression comes to be implemented, the system allocates
a <a href="../../../../org/apache/calcite/plan/RelImplementor.html" title="interface in org.apache.calcite.plan"><code>RelImplementor</code></a> to manage the process. Every
implementable relational expression has a <a href="../../../../org/apache/calcite/plan/RelTraitSet.html" title="class in org.apache.calcite.plan"><code>RelTraitSet</code></a> describing its
physical attributes. The RelTraitSet always contains a <a href="../../../../org/apache/calcite/plan/Convention.html" title="interface in org.apache.calcite.plan"><code>Convention</code></a>
describing how the expression passes data to its consuming
relational expression, but may contain other traits, including some applied
externally. Because traits can be applied externally, implementations of
RelNode should never assume the size or contents of their trait set (beyond
those traits configured by the RelNode itself).</p>
<p>For each calling-convention, there is a corresponding sub-interface of
RelNode. For example,
<code>org.apache.calcite.adapter.enumerable.EnumerableRel</code>
has operations to manage the conversion to a graph of
<code>org.apache.calcite.adapter.enumerable.EnumerableConvention</code>
calling-convention, and it interacts with a
<code>EnumerableRelImplementor</code>.</p>
<p>A relational expression is only required to implement its
calling-convention's interface when it is actually implemented, that is,
converted into a plan/program. This means that relational expressions which
cannot be implemented, such as converters, are not required to implement
their convention's interface.</p>
<p>Every relational expression must derive from <a href="../../../../org/apache/calcite/rel/AbstractRelNode.html" title="class in org.apache.calcite.rel"><code>AbstractRelNode</code></a>. (Why
have the <code>RelNode</code> interface, then? We need a root interface,
because an interface can only derive from an interface.)</p></div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Interface and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static interface&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rel/RelNode.Context.html" title="interface in org.apache.calcite.rel">RelNode.Context</a></span></code>
<div class="block">Context of a relational expression, for purposes of checking validity.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t5" class="tableTab"><span><a href="javascript:show(16);">Default Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rel/RelNode.html#accept-org.apache.calcite.rel.RelShuttle-">accept</a></span>(<a href="../../../../org/apache/calcite/rel/RelShuttle.html" title="interface in org.apache.calcite.rel">RelShuttle</a>&nbsp;shuttle)</code>
<div class="block">Accepts a visit from a shuttle.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rel/RelNode.html#accept-org.apache.calcite.rex.RexShuttle-">accept</a></span>(<a href="../../../../org/apache/calcite/rex/RexShuttle.html" title="class in org.apache.calcite.rex">RexShuttle</a>&nbsp;shuttle)</code>
<div class="block">Accepts a visit from a shuttle.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rel/RelNode.html#childrenAccept-org.apache.calcite.rel.RelVisitor-">childrenAccept</a></span>(<a href="../../../../org/apache/calcite/rel/RelVisitor.html" title="class in org.apache.calcite.rel">RelVisitor</a>&nbsp;visitor)</code>
<div class="block">Interacts with the <a href="../../../../org/apache/calcite/rel/RelVisitor.html" title="class in org.apache.calcite.rel"><code>RelVisitor</code></a> in a
<a href="../../../../org/apache/calcite/util/Glossary.html#VISITOR_PATTERN"><code>visitor pattern</code></a> to
traverse the tree of relational expressions.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rel/RelNode.html#collectVariablesSet-java.util.Set-">collectVariablesSet</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../org/apache/calcite/rel/core/CorrelationId.html" title="class in org.apache.calcite.rel.core">CorrelationId</a>&gt;&nbsp;variableSet)</code>
<div class="block">Collects variables set by this expression.</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/RelNode.html#collectVariablesUsed-java.util.Set-">collectVariablesUsed</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../org/apache/calcite/rel/core/CorrelationId.html" title="class in org.apache.calcite.rel.core">CorrelationId</a>&gt;&nbsp;variableSet)</code>
<div class="block">Collects variables known to be used by this expression or its
descendants.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/plan/RelOptCost.html" title="interface in org.apache.calcite.plan">RelOptCost</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rel/RelNode.html#computeSelfCost-org.apache.calcite.plan.RelOptPlanner-">computeSelfCost</a></span>(<a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="interface in org.apache.calcite.plan">RelOptPlanner</a>&nbsp;planner)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">Call <a href="../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#getNonCumulativeCost-org.apache.calcite.rel.RelNode-"><code>RelMetadataQuery.getNonCumulativeCost(RelNode)</code></a>;
if you wish to override the default cost formula, override the
<a href="../../../../org/apache/calcite/rel/RelNode.html#computeSelfCost-org.apache.calcite.plan.RelOptPlanner-org.apache.calcite.rel.metadata.RelMetadataQuery-"><code>computeSelfCost(RelOptPlanner, RelMetadataQuery)</code></a> method.</span></div>
</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/plan/RelOptCost.html" title="interface in org.apache.calcite.plan">RelOptCost</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rel/RelNode.html#computeSelfCost-org.apache.calcite.plan.RelOptPlanner-org.apache.calcite.rel.metadata.RelMetadataQuery-">computeSelfCost</a></span>(<a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="interface in org.apache.calcite.plan">RelOptPlanner</a>&nbsp;planner,
<a href="../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq)</code>
<div class="block">Returns the cost of this plan (not including children).</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rel/RelNode.html#copy-org.apache.calcite.plan.RelTraitSet-java.util.List-">copy</a></span>(<a href="../../../../org/apache/calcite/plan/RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;traitSet,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&gt;&nbsp;inputs)</code>
<div class="block">Creates a copy of this relational expression, perhaps changing traits and
inputs.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rel/RelNode.html#estimateRowCount-org.apache.calcite.rel.metadata.RelMetadataQuery-">estimateRowCount</a></span>(<a href="../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq)</code>
<div class="block">Returns an estimate of the number of rows this relational expression will
return.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rel/RelNode.html#explain-org.apache.calcite.rel.RelWriter-">explain</a></span>(<a href="../../../../org/apache/calcite/rel/RelWriter.html" title="interface in org.apache.calcite.rel">RelWriter</a>&nbsp;pw)</code>
<div class="block">Describes the inputs and attributes of this relational expression.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rel/RelNode.html#getChildExps--">getChildExps</a></span>()</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">use #accept(org.apache.calcite.rex.RexShuttle)}</span></div>
</div>
</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="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/calcite/rel/RelCollation.html" title="interface in org.apache.calcite.rel">RelCollation</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rel/RelNode.html#getCollationList--">getCollationList</a></span>()</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">Use <a href="../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#distribution-org.apache.calcite.rel.RelNode-"><code>RelMetadataQuery.distribution(RelNode)</code></a></span></div>
</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/plan/Convention.html" title="interface in org.apache.calcite.plan">Convention</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rel/RelNode.html#getConvention--">getConvention</a></span>()</code>
<div class="block">Return the CallingConvention trait from this RelNode's
<a href="../../../../org/apache/calcite/plan/RelOptNode.html#getTraitSet--"><code>trait set</code></a>.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rel/RelNode.html#getCorrelVariable--">getCorrelVariable</a></span>()</code>
<div class="block">Returns the name of the variable which is to be implicitly set at runtime
each time a row is returned from the first input of this relational
expression; or null if there is no variable.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>default <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rel/RelNode.html#getDigest--">getDigest</a></span>()</code>
<div class="block">Returns a string which concisely describes the definition of this
relational expression.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rel/RelNode.html#getExpectedInputRowType-int-">getExpectedInputRowType</a></span>(int&nbsp;ordinalInParent)</code>
<div class="block">Returns the type of the rows expected for an input.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rel/RelNode.html#getInput-int-">getInput</a></span>(int&nbsp;i)</code>
<div class="block">Returns the <code>i</code><sup>th</sup> input relational expression.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rel/RelNode.html#getInputs--">getInputs</a></span>()</code>
<div class="block">Returns an array of this relational expression's inputs.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/plan/RelOptQuery.html" title="class in org.apache.calcite.plan">RelOptQuery</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rel/RelNode.html#getQuery--">getQuery</a></span>()</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">With no replacement</span></div>
</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/plan/RelDigest.html" title="interface in org.apache.calcite.plan">RelDigest</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rel/RelNode.html#getRelDigest--">getRelDigest</a></span>()</code>
<div class="block">Digest of the <code>RelNode</code>, for planner internal use only.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rel/RelNode.html#getRelTypeName--">getRelTypeName</a></span>()</code>
<div class="block">Returns the name of this relational expression's class, sans package
name, for use in explain.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rel/RelNode.html#getRows--">getRows</a></span>()</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">Call <a href="../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#getRowCount-org.apache.calcite.rel.RelNode-"><code>RelMetadataQuery.getRowCount(RelNode)</code></a>;
if you wish to override the default row count formula, override the
<a href="../../../../org/apache/calcite/rel/RelNode.html#estimateRowCount-org.apache.calcite.rel.metadata.RelMetadataQuery-"><code>estimateRowCount(RelMetadataQuery)</code></a> method.</span></div>
</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rel/RelNode.html#getRowType--">getRowType</a></span>()</code>
<div class="block">Returns the type of the rows returned by this relational expression.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/plan/RelOptTable.html" title="interface in org.apache.calcite.plan">RelOptTable</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rel/RelNode.html#getTable--">getTable</a></span>()</code>
<div class="block">If this relational expression represents an access to a table, returns
that table, otherwise returns null.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../org/apache/calcite/rel/core/CorrelationId.html" title="class in org.apache.calcite.rel.core">CorrelationId</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rel/RelNode.html#getVariablesSet--">getVariablesSet</a></span>()</code>
<div class="block">Returns the variables that are set in this relational
expression but also used and therefore not available to parents of this
relational expression.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rel/RelNode.html#getVariablesStopped--">getVariablesStopped</a></span>()</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">Use <a href="../../../../org/apache/calcite/rel/RelNode.html#getVariablesSet--"><code>getVariablesSet()</code></a>
and <a href="../../../../org/apache/calcite/rel/core/CorrelationId.html#names-java.util.Set-"><code>CorrelationId.names(Set)</code></a></span></div>
</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/RelNode.html#isDistinct--">isDistinct</a></span>()</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">Use <a href="../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#areRowsUnique-org.apache.calcite.rel.RelNode-"><code>RelMetadataQuery.areRowsUnique(RelNode)</code></a></span></div>
</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>default boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rel/RelNode.html#isEnforcer--">isEnforcer</a></span>()</code>
<div class="block">Indicates whether it is an enforcer operator, e.g.</div>
</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/RelNode.html#isKey-org.apache.calcite.util.ImmutableBitSet-">isKey</a></span>(<a href="../../../../org/apache/calcite/util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;columns)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">Use <a href="../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#areColumnsUnique-org.apache.calcite.rel.RelNode-org.apache.calcite.util.ImmutableBitSet-"><code>RelMetadataQuery.areColumnsUnique(RelNode, ImmutableBitSet)</code></a></span></div>
</div>
</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/RelNode.html#isValid-boolean-">isValid</a></span>(boolean&nbsp;fail)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
</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/RelNode.html#isValid-org.apache.calcite.util.Litmus-org.apache.calcite.rel.RelNode.Context-">isValid</a></span>(<a href="../../../../org/apache/calcite/util/Litmus.html" title="interface in org.apache.calcite.util">Litmus</a>&nbsp;litmus,
<a href="../../../../org/apache/calcite/rel/RelNode.Context.html" title="interface in org.apache.calcite.rel">RelNode.Context</a>&nbsp;context)</code>
<div class="block">Returns whether this relational expression is valid.</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>&lt;M extends <a href="../../../../org/apache/calcite/rel/metadata/Metadata.html" title="interface in org.apache.calcite.rel.metadata">Metadata</a>&gt;<br>M</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rel/RelNode.html#metadata-java.lang.Class-org.apache.calcite.rel.metadata.RelMetadataQuery-">metadata</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;M&gt;&nbsp;metadataClass,
<a href="../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq)</code>
<div class="block">Returns a metadata interface.</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rel/RelNode.html#onRegister-org.apache.calcite.plan.RelOptPlanner-">onRegister</a></span>(<a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="interface in org.apache.calcite.plan">RelOptPlanner</a>&nbsp;planner)</code>
<div class="block">Receives notification that this expression is about to be registered.</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/RelNode.html#recomputeDigest--">recomputeDigest</a></span>()</code>
<div class="block">Recomputes the digest.</div>
</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rel/RelNode.html#register-org.apache.calcite.plan.RelOptPlanner-">register</a></span>(<a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="interface in org.apache.calcite.plan">RelOptPlanner</a>&nbsp;planner)</code>
<div class="block">Registers any special rules specific to this kind of relational
expression.</div>
</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/calcite/rel/RelNode.html#replaceInput-int-org.apache.calcite.rel.RelNode-">replaceInput</a></span>(int&nbsp;ordinalInParent,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;p)</code>
<div class="block">Replaces the <code>ordinalInParent</code><sup>th</sup> input.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.calcite.plan.RelOptNode">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.calcite.plan.<a href="../../../../org/apache/calcite/plan/RelOptNode.html" title="interface in org.apache.calcite.plan">RelOptNode</a></h3>
<code><a href="../../../../org/apache/calcite/plan/RelOptNode.html#getCluster--">getCluster</a>, <a href="../../../../org/apache/calcite/plan/RelOptNode.html#getDescription--">getDescription</a>, <a href="../../../../org/apache/calcite/plan/RelOptNode.html#getId--">getId</a>, <a href="../../../../org/apache/calcite/plan/RelOptNode.html#getTraitSet--">getTraitSet</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getChildExps--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getChildExps</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/calcite/rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>&gt;&nbsp;getChildExps()</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">use #accept(org.apache.calcite.rex.RexShuttle)}</span></div>
<div class="block">Returns a list of this relational expression's child expressions.
(These are scalar expressions, and so do not include the relational
inputs that are returned by <a href="../../../../org/apache/calcite/rel/RelNode.html#getInputs--"><code>getInputs()</code></a>.
<p>The caller should treat the list as unmodifiable; typical
implementations will return an immutable list. If there are no
child expressions, returns an empty list, not <code>null</code>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>List of this relational expression's child expressions</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/calcite/rel/RelNode.html#accept-org.apache.calcite.rex.RexShuttle-"><code>accept(org.apache.calcite.rex.RexShuttle)</code></a></dd>
</dl>
</li>
</ul>
<a name="getConvention--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getConvention</h4>
<pre><a href="../../../../org/apache/calcite/plan/Convention.html" title="interface in org.apache.calcite.plan">Convention</a>&nbsp;getConvention()</pre>
<div class="block">Return the CallingConvention trait from this RelNode's
<a href="../../../../org/apache/calcite/plan/RelOptNode.html#getTraitSet--"><code>trait set</code></a>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this RelNode's CallingConvention</dd>
</dl>
</li>
</ul>
<a name="getCorrelVariable--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCorrelVariable</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getCorrelVariable()</pre>
<div class="block">Returns the name of the variable which is to be implicitly set at runtime
each time a row is returned from the first input of this relational
expression; or null if there is no variable.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Name of correlating variable, or null</dd>
</dl>
</li>
</ul>
<a name="isDistinct--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isDistinct</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
boolean&nbsp;isDistinct()</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Use <a href="../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#areRowsUnique-org.apache.calcite.rel.RelNode-"><code>RelMetadataQuery.areRowsUnique(RelNode)</code></a></span></div>
<div class="block">Returns whether the same value will not come out twice. Default value is
<code>false</code>, derived classes should override.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Whether the same value will not come out twice</dd>
</dl>
</li>
</ul>
<a name="getInput-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getInput</h4>
<pre><a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;getInput(int&nbsp;i)</pre>
<div class="block">Returns the <code>i</code><sup>th</sup> input relational expression.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>i</code> - Ordinal of input</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>i</code><sup>th</sup> input</dd>
</dl>
</li>
</ul>
<a name="getQuery--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getQuery</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
<a href="../../../../org/apache/calcite/plan/RelOptQuery.html" title="class in org.apache.calcite.plan">RelOptQuery</a>&nbsp;getQuery()</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">With no replacement</span></div>
<div class="block">Returns the sub-query this relational expression belongs to.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Sub-query</dd>
</dl>
</li>
</ul>
<a name="getRowType--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRowType</h4>
<pre><a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;getRowType()</pre>
<div class="block">Returns the type of the rows returned by this relational expression.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/plan/RelOptNode.html#getRowType--">getRowType</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptNode.html" title="interface in org.apache.calcite.plan">RelOptNode</a></code></dd>
</dl>
</li>
</ul>
<a name="getExpectedInputRowType-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getExpectedInputRowType</h4>
<pre><a href="../../../../org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&nbsp;getExpectedInputRowType(int&nbsp;ordinalInParent)</pre>
<div class="block">Returns the type of the rows expected for an input. Defaults to
<a href="../../../../org/apache/calcite/rel/RelNode.html#getRowType--"><code>getRowType()</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>ordinalInParent</code> - input's 0-based ordinal with respect to this
parent rel</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>expected row type</dd>
</dl>
</li>
</ul>
<a name="getInputs--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getInputs</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&gt;&nbsp;getInputs()</pre>
<div class="block">Returns an array of this relational expression's inputs. If there are no
inputs, returns an empty list, not <code>null</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/plan/RelOptNode.html#getInputs--">getInputs</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptNode.html" title="interface in org.apache.calcite.plan">RelOptNode</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Array of this relational expression's inputs</dd>
</dl>
</li>
</ul>
<a name="estimateRowCount-org.apache.calcite.rel.metadata.RelMetadataQuery-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>estimateRowCount</h4>
<pre>double&nbsp;estimateRowCount(<a href="../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq)</pre>
<div class="block">Returns an estimate of the number of rows this relational expression will
return.
<p>NOTE jvs 29-Mar-2006: Don't call this method directly. Instead, use
<a href="../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#getRowCount-org.apache.calcite.rel.RelNode-"><code>RelMetadataQuery.getRowCount(org.apache.calcite.rel.RelNode)</code></a>, which gives plugins a chance to
override the rel's default ideas about row count.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mq</code> - Metadata query</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Estimate of the number of rows this relational expression will
return</dd>
</dl>
</li>
</ul>
<a name="getRows--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRows</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
double&nbsp;getRows()</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Call <a href="../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#getRowCount-org.apache.calcite.rel.RelNode-"><code>RelMetadataQuery.getRowCount(RelNode)</code></a>;
if you wish to override the default row count formula, override the
<a href="../../../../org/apache/calcite/rel/RelNode.html#estimateRowCount-org.apache.calcite.rel.metadata.RelMetadataQuery-"><code>estimateRowCount(RelMetadataQuery)</code></a> method.</span></div>
</li>
</ul>
<a name="getVariablesStopped--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getVariablesStopped</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getVariablesStopped()</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Use <a href="../../../../org/apache/calcite/rel/RelNode.html#getVariablesSet--"><code>getVariablesSet()</code></a>
and <a href="../../../../org/apache/calcite/rel/core/CorrelationId.html#names-java.util.Set-"><code>CorrelationId.names(Set)</code></a></span></div>
<div class="block">Returns the names of variables that are set in this relational
expression but also used and therefore not available to parents of this
relational expression.
<p>Note: only <a href="../../../../org/apache/calcite/rel/core/Correlate.html" title="class in org.apache.calcite.rel.core"><code>Correlate</code></a> should set
variables.
<p>Note: <a href="../../../../org/apache/calcite/rel/RelNode.html#getVariablesSet--"><code>getVariablesSet()</code></a> is equivalent but returns
<a href="../../../../org/apache/calcite/rel/core/CorrelationId.html" title="class in org.apache.calcite.rel.core"><code>CorrelationId</code></a> rather than their names. It is preferable except for
calling old methods that require a set of strings.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Names of variables which are set in this relational
expression</dd>
</dl>
</li>
</ul>
<a name="getVariablesSet--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getVariablesSet</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../org/apache/calcite/rel/core/CorrelationId.html" title="class in org.apache.calcite.rel.core">CorrelationId</a>&gt;&nbsp;getVariablesSet()</pre>
<div class="block">Returns the variables that are set in this relational
expression but also used and therefore not available to parents of this
relational expression.
<p>Note: only <a href="../../../../org/apache/calcite/rel/core/Correlate.html" title="class in org.apache.calcite.rel.core"><code>Correlate</code></a> should set
variables.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Names of variables which are set in this relational
expression</dd>
</dl>
</li>
</ul>
<a name="collectVariablesUsed-java.util.Set-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>collectVariablesUsed</h4>
<pre>void&nbsp;collectVariablesUsed(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../org/apache/calcite/rel/core/CorrelationId.html" title="class in org.apache.calcite.rel.core">CorrelationId</a>&gt;&nbsp;variableSet)</pre>
<div class="block">Collects variables known to be used by this expression or its
descendants. By default, no such information is available and must be
derived by analyzing sub-expressions, but some optimizer implementations
may insert special expressions which remember such information.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>variableSet</code> - receives variables used</dd>
</dl>
</li>
</ul>
<a name="collectVariablesSet-java.util.Set-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>collectVariablesSet</h4>
<pre>void&nbsp;collectVariablesSet(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../org/apache/calcite/rel/core/CorrelationId.html" title="class in org.apache.calcite.rel.core">CorrelationId</a>&gt;&nbsp;variableSet)</pre>
<div class="block">Collects variables set by this expression.
TODO: is this required?</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>variableSet</code> - receives variables known to be set by</dd>
</dl>
</li>
</ul>
<a name="childrenAccept-org.apache.calcite.rel.RelVisitor-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>childrenAccept</h4>
<pre>void&nbsp;childrenAccept(<a href="../../../../org/apache/calcite/rel/RelVisitor.html" title="class in org.apache.calcite.rel">RelVisitor</a>&nbsp;visitor)</pre>
<div class="block">Interacts with the <a href="../../../../org/apache/calcite/rel/RelVisitor.html" title="class in org.apache.calcite.rel"><code>RelVisitor</code></a> in a
<a href="../../../../org/apache/calcite/util/Glossary.html#VISITOR_PATTERN"><code>visitor pattern</code></a> to
traverse the tree of relational expressions.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>visitor</code> - Visitor that will traverse the tree of relational
expressions</dd>
</dl>
</li>
</ul>
<a name="computeSelfCost-org.apache.calcite.plan.RelOptPlanner-org.apache.calcite.rel.metadata.RelMetadataQuery-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>computeSelfCost</h4>
<pre><a href="../../../../org/apache/calcite/plan/RelOptCost.html" title="interface in org.apache.calcite.plan">RelOptCost</a>&nbsp;computeSelfCost(<a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="interface in org.apache.calcite.plan">RelOptPlanner</a>&nbsp;planner,
<a href="../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq)</pre>
<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="../../../../org/apache/calcite/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="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>
</li>
</ul>
<a name="computeSelfCost-org.apache.calcite.plan.RelOptPlanner-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>computeSelfCost</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
<a href="../../../../org/apache/calcite/plan/RelOptCost.html" title="interface in org.apache.calcite.plan">RelOptCost</a>&nbsp;computeSelfCost(<a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="interface in org.apache.calcite.plan">RelOptPlanner</a>&nbsp;planner)</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Call <a href="../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#getNonCumulativeCost-org.apache.calcite.rel.RelNode-"><code>RelMetadataQuery.getNonCumulativeCost(RelNode)</code></a>;
if you wish to override the default cost formula, override the
<a href="../../../../org/apache/calcite/rel/RelNode.html#computeSelfCost-org.apache.calcite.plan.RelOptPlanner-org.apache.calcite.rel.metadata.RelMetadataQuery-"><code>computeSelfCost(RelOptPlanner, RelMetadataQuery)</code></a> method.</span></div>
</li>
</ul>
<a name="metadata-java.lang.Class-org.apache.calcite.rel.metadata.RelMetadataQuery-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>metadata</h4>
<pre>&lt;M extends <a href="../../../../org/apache/calcite/rel/metadata/Metadata.html" title="interface in org.apache.calcite.rel.metadata">Metadata</a>&gt;&nbsp;M&nbsp;metadata(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;M&gt;&nbsp;metadataClass,
<a href="../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a>&nbsp;mq)</pre>
<div class="block">Returns a metadata interface.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>M</code> - Type of metadata being requested</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>metadataClass</code> - Metadata interface</dd>
<dd><code>mq</code> - Metadata query</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Metadata object that supplies the desired metadata (never null,
although if the information is not present the metadata object may
return null from all methods)</dd>
</dl>
</li>
</ul>
<a name="explain-org.apache.calcite.rel.RelWriter-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>explain</h4>
<pre>void&nbsp;explain(<a href="../../../../org/apache/calcite/rel/RelWriter.html" title="interface in org.apache.calcite.rel">RelWriter</a>&nbsp;pw)</pre>
<div class="block">Describes the inputs and attributes of this relational expression.
Each node should call <code>super.explain</code>, then call the
<a href="../../../../org/apache/calcite/rel/RelWriter.html#input-java.lang.String-org.apache.calcite.rel.RelNode-"><code>RelWriter.input(String, RelNode)</code></a>
and
<a href="../../../../org/apache/calcite/rel/externalize/RelWriterImpl.html#item-java.lang.String-java.lang.Object-"><code>RelWriterImpl.item(String, Object)</code></a>
methods for each input and attribute.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>pw</code> - Plan writer</dd>
</dl>
</li>
</ul>
<a name="onRegister-org.apache.calcite.plan.RelOptPlanner-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onRegister</h4>
<pre><a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;onRegister(<a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="interface in org.apache.calcite.plan">RelOptPlanner</a>&nbsp;planner)</pre>
<div class="block">Receives notification that this expression is about to be registered. The
implementation of this method must at least register all child
expressions.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>planner</code> - Planner that plans this relational node</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Relational expression that should be used by the planner</dd>
</dl>
</li>
</ul>
<a name="getDigest--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDigest</h4>
<pre>default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getDigest()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptNode.html#getDigest--">RelOptNode</a></code></span></div>
<div class="block">Returns a string which concisely describes the definition of this
relational expression. Two relational expressions are equivalent if
their digests and <a href="../../../../org/apache/calcite/plan/RelOptNode.html#getRowType--"><code>RelOptNode.getRowType()</code></a> (except the field names) are the same.
<p>The digest does not contain the relational expression's identity --
that would prevent similar relational expressions from ever comparing
equal -- but does include the identity of children (on the assumption
that children have already been normalized).
<p>If you want a descriptive string which contains the identity, call
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang"><code>Object.toString()</code></a>, which always returns "rel#{id}:{digest}".</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/calcite/plan/RelOptNode.html#getDigest--">getDigest</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/calcite/plan/RelOptNode.html" title="interface in org.apache.calcite.plan">RelOptNode</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Digest string of this <code>RelNode</code></dd>
</dl>
</li>
</ul>
<a name="getRelDigest--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRelDigest</h4>
<pre>@API(since="1.24",
status=INTERNAL)
<a href="../../../../org/apache/calcite/plan/RelDigest.html" title="interface in org.apache.calcite.plan">RelDigest</a>&nbsp;getRelDigest()</pre>
<div class="block">Digest of the <code>RelNode</code>, for planner internal use only.
<p>INTERNAL USE ONLY.</p></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Digest of this <code>RelNode</code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/calcite/rel/RelNode.html#getDigest--"><code>getDigest()</code></a></dd>
</dl>
</li>
</ul>
<a name="recomputeDigest--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>recomputeDigest</h4>
<pre>@API(since="1.24",
status=INTERNAL)
void&nbsp;recomputeDigest()</pre>
<div class="block">Recomputes the digest. For planner internal use only.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/calcite/rel/RelNode.html#getDigest--"><code>getDigest()</code></a></dd>
</dl>
</li>
</ul>
<a name="replaceInput-int-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>replaceInput</h4>
<pre>void&nbsp;replaceInput(int&nbsp;ordinalInParent,
<a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;p)</pre>
<div class="block">Replaces the <code>ordinalInParent</code><sup>th</sup> input. You must
override this method if you override <a href="../../../../org/apache/calcite/rel/RelNode.html#getInputs--"><code>getInputs()</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>ordinalInParent</code> - Position of the child input, 0 is the first</dd>
<dd><code>p</code> - New node that should be put at position <code>ordinalInParent</code></dd>
</dl>
</li>
</ul>
<a name="getTable--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTable</h4>
<pre><a href="../../../../org/apache/calcite/plan/RelOptTable.html" title="interface in org.apache.calcite.plan">RelOptTable</a>&nbsp;getTable()</pre>
<div class="block">If this relational expression represents an access to a table, returns
that table, otherwise returns null.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>If this relational expression represents an access to a table,
returns that table, otherwise returns null</dd>
</dl>
</li>
</ul>
<a name="getRelTypeName--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRelTypeName</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getRelTypeName()</pre>
<div class="block">Returns the name of this relational expression's class, sans package
name, for use in explain. For example, for a <code>
org.apache.calcite.rel.ArrayRel.ArrayReader</code>, this method returns
"ArrayReader".</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Name of this relational expression's class, sans package name,
for use in explain</dd>
</dl>
</li>
</ul>
<a name="isValid-org.apache.calcite.util.Litmus-org.apache.calcite.rel.RelNode.Context-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isValid</h4>
<pre>boolean&nbsp;isValid(<a href="../../../../org/apache/calcite/util/Litmus.html" title="interface in org.apache.calcite.util">Litmus</a>&nbsp;litmus,
<a href="../../../../org/apache/calcite/rel/RelNode.Context.html" title="interface in org.apache.calcite.rel">RelNode.Context</a>&nbsp;context)</pre>
<div class="block">Returns whether this relational expression is valid.
<p>If assertions are enabled, this method is typically called with <code>
litmus</code> = <code>THROW</code>, as follows:
<blockquote>
<pre>assert rel.isValid(Litmus.THROW)</pre>
</blockquote>
<p>This signals that the method can throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AssertionError.html?is-external=true" title="class or interface in java.lang"><code>AssertionError</code></a> if it
is not valid.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>litmus</code> - What to do if invalid</dd>
<dd><code>context</code> - Context for validity checking</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Whether relational expression is valid</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AssertionError.html?is-external=true" title="class or interface in java.lang">AssertionError</a></code> - if this relational expression is invalid and
litmus is THROW</dd>
</dl>
</li>
</ul>
<a name="isValid-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isValid</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
boolean&nbsp;isValid(boolean&nbsp;fail)</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
</li>
</ul>
<a name="getCollationList--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCollationList</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/calcite/rel/RelCollation.html" title="interface in org.apache.calcite.rel">RelCollation</a>&gt;&nbsp;getCollationList()</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Use <a href="../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#distribution-org.apache.calcite.rel.RelNode-"><code>RelMetadataQuery.distribution(RelNode)</code></a></span></div>
<div class="block">Returns a description of the physical ordering (or orderings) of this
relational expression. Never null.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Description of the physical ordering (or orderings) of this
relational expression. Never null</dd>
</dl>
</li>
</ul>
<a name="copy-org.apache.calcite.plan.RelTraitSet-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>copy</h4>
<pre><a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;copy(<a href="../../../../org/apache/calcite/plan/RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;traitSet,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&gt;&nbsp;inputs)</pre>
<div class="block">Creates a copy of this relational expression, perhaps changing traits and
inputs.
<p>Sub-classes with other important attributes are encouraged to create
variants of this method with more parameters.</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>traitSet</code> - Trait set</dd>
<dd><code>inputs</code> - Inputs</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Copy of this relational expression, substituting traits and
inputs</dd>
</dl>
</li>
</ul>
<a name="register-org.apache.calcite.plan.RelOptPlanner-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>register</h4>
<pre>void&nbsp;register(<a href="../../../../org/apache/calcite/plan/RelOptPlanner.html" title="interface in org.apache.calcite.plan">RelOptPlanner</a>&nbsp;planner)</pre>
<div class="block">Registers any special rules specific to this kind of relational
expression.
<p>The planner calls this method this first time that it sees a
relational expression of this class. The derived class should call
<a href="../../../../org/apache/calcite/plan/RelOptPlanner.html#addRule-org.apache.calcite.plan.RelOptRule-"><code>RelOptPlanner.addRule(org.apache.calcite.plan.RelOptRule)</code></a> for each rule, and
then call <code>super.register</code>.</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>planner</code> - Planner to be used to register additional relational
expressions</dd>
</dl>
</li>
</ul>
<a name="isEnforcer--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isEnforcer</h4>
<pre>default&nbsp;boolean&nbsp;isEnforcer()</pre>
<div class="block">Indicates whether it is an enforcer operator, e.g. PhysicalSort,
PhysicalHashDistribute, etc. As an enforcer, the operator must be
created only when required traitSet is not satisfied by its input.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Whether it is an enforcer operator</dd>
</dl>
</li>
</ul>
<a name="isKey-org.apache.calcite.util.ImmutableBitSet-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isKey</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
boolean&nbsp;isKey(<a href="../../../../org/apache/calcite/util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;columns)</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Use <a href="../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#areColumnsUnique-org.apache.calcite.rel.RelNode-org.apache.calcite.util.ImmutableBitSet-"><code>RelMetadataQuery.areColumnsUnique(RelNode, ImmutableBitSet)</code></a></span></div>
<div class="block">Returns whether the result of this relational expression is uniquely
identified by this columns with the given ordinals.
<p>For example, if this relational expression is a LogicalTableScan to
T(A, B, C, D) whose key is (A, B), then isKey([0, 1]) yields true,
and isKey([0]) and isKey([0, 2]) yields false.</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>columns</code> - Ordinals of key columns</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Whether the given columns are a key or a superset of a key</dd>
</dl>
</li>
</ul>
<a name="accept-org.apache.calcite.rel.RelShuttle-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>accept</h4>
<pre><a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;accept(<a href="../../../../org/apache/calcite/rel/RelShuttle.html" title="interface in org.apache.calcite.rel">RelShuttle</a>&nbsp;shuttle)</pre>
<div class="block">Accepts a visit from a shuttle.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>shuttle</code> - Shuttle</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A copy of this node incorporating changes made by the shuttle to
this node's children</dd>
</dl>
</li>
</ul>
<a name="accept-org.apache.calcite.rex.RexShuttle-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>accept</h4>
<pre><a href="../../../../org/apache/calcite/rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;accept(<a href="../../../../org/apache/calcite/rex/RexShuttle.html" title="class in org.apache.calcite.rex">RexShuttle</a>&nbsp;shuttle)</pre>
<div class="block">Accepts a visit from a shuttle. If the shuttle updates expression, then
a copy of the relation should be created. This new relation might have
a different row-type.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>shuttle</code> - Shuttle</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A copy of this node incorporating changes made by the shuttle to
this node's children</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><b>Apache Calcite</b></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/calcite/rel/RelInput.html" title="interface in org.apache.calcite.rel"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/calcite/rel/RelNode.Context.html" title="interface in org.apache.calcite.rel"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/calcite/rel/RelNode.html" target="_top">Frames</a></li>
<li><a href="RelNode.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&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>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</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>