blob: 4d42c192a79f5288a57cf6534770cdc7ba6a516d [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="zh">
<head>
<!-- Generated by javadoc -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>RelMetadataQuery (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="RelMetadataQuery (Apache Calcite calcite API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":9,"i31":10,"i32":10,"i33":10,"i34":10};
var tabs = {65535:["t0","所有方法"],1:["t1","静态方法"],2:["t2","实例方法"],8:["t4","具体方法"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>您的浏览器已禁用 JavaScript。</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="跳过导航链接">跳过导航链接</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="导航">
<li><a href="../../../../../overview-summary.html">概览</a></li>
<li><a href="package-summary.html">程序包</a></li>
<li class="navBarCell1Rev"></li>
<li><a href="package-tree.html"></a></li>
<li><a href="../../../../../deprecated-list.html">已过时</a></li>
<li><a href="../../../../../index-all.html">索引</a></li>
<li><a href="../../../../../help-doc.html">帮助</a></li>
</ul>
<div class="aboutLanguage"><b>Apache Calcite</b></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataProvider.html" title="org.apache.calcite.rel.metadata中的接口"><span class="typeNameLink">上一个类</span></a></li>
<li><a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQueryBase.html" title="org.apache.calcite.rel.metadata中的类"><span class="typeNameLink">下一个类</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/calcite/rel/metadata/RelMetadataQuery.html" target="_top">框架</a></li>
<li><a href="RelMetadataQuery.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>概要:&nbsp;</li>
<li>嵌套&nbsp;|&nbsp;</li>
<li><a href="#fields.inherited.from.class.org.apache.calcite.rel.metadata.RelMetadataQueryBase">字段</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">构造器</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">方法</a></li>
</ul>
<ul class="subNavList">
<li>详细资料:&nbsp;</li>
<li>字段&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">构造器</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">方法</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.calcite.rel.metadata</div>
<h2 title="类 RelMetadataQuery" class="title">类 RelMetadataQuery</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="java.lang中的类或接口">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQueryBase.html" title="org.apache.calcite.rel.metadata中的类">org.apache.calcite.rel.metadata.RelMetadataQueryBase</a></li>
<li>
<ul class="inheritance">
<li>org.apache.calcite.rel.metadata.RelMetadataQuery</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="typeNameLabel">RelMetadataQuery</span>
extends <a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQueryBase.html" title="org.apache.calcite.rel.metadata中的类">RelMetadataQueryBase</a></pre>
<div class="block">RelMetadataQuery provides a strongly-typed facade on top of
<a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataProvider.html" title="org.apache.calcite.rel.metadata中的接口"><code>RelMetadataProvider</code></a> for the set of relational expression metadata
queries defined as standard within Calcite. The Javadoc on these methods
serves as their primary specification.
<p>To add a new standard query <code>Xyz</code> to this interface, follow
these steps:
<ol>
<li>Add a static method <code>getXyz</code> specification to this class.
<li>Add unit tests to <code>org.apache.calcite.test.RelMetadataTest</code>.
<li>Write a new provider class <code>RelMdXyz</code> in this package. Follow
the pattern from an existing class such as <a href="../../../../../org/apache/calcite/rel/metadata/RelMdColumnOrigins.html" title="org.apache.calcite.rel.metadata中的类"><code>RelMdColumnOrigins</code></a>,
overloading on all of the logical relational expressions to which the query
applies.
<li>Add a <code>SOURCE</code> static member, similar to
<a href="../../../../../org/apache/calcite/rel/metadata/RelMdColumnOrigins.html#SOURCE"><code>RelMdColumnOrigins.SOURCE</code></a>.
<li>Register the <code>SOURCE</code> object in <a href="../../../../../org/apache/calcite/rel/metadata/DefaultRelMetadataProvider.html" title="org.apache.calcite.rel.metadata中的类"><code>DefaultRelMetadataProvider</code></a>.
<li>Get unit tests working.
</ol>
<p>Because relational expression metadata is extensible, extension projects
can define similar facades in order to specify access to custom metadata.
Please do not add queries here (nor on <a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口"><code>RelNode</code></a>) which lack meaning
outside of your extension.
<p>Besides adding new metadata queries, extension projects may need to add
custom providers for the standard queries in order to handle additional
relational expressions (either logical or physical). In either case, the
process is the same: write a reflective provider and chain it on to an
instance of <a href="../../../../../org/apache/calcite/rel/metadata/DefaultRelMetadataProvider.html" title="org.apache.calcite.rel.metadata中的类"><code>DefaultRelMetadataProvider</code></a>, pre-pending it to the default
providers. Then supply that instance to the planner via the appropriate
plugin mechanism.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>字段概要</h3>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.calcite.rel.metadata.RelMetadataQueryBase">
<!-- -->
</a>
<h3>从类继承的字段&nbsp;org.apache.calcite.rel.metadata.<a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQueryBase.html" title="org.apache.calcite.rel.metadata中的类">RelMetadataQueryBase</a></h3>
<code><a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQueryBase.html#map">map</a>, <a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQueryBase.html#metadataProvider">metadataProvider</a>, <a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQueryBase.html#THREAD_PROVIDERS">THREAD_PROVIDERS</a></code></li>
</ul>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>构造器概要</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="构造器概要表, 列表构造器和解释">
<caption><span>构造器</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">限定符</th>
<th class="colLast" scope="col">构造器和说明</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#RelMetadataQuery--">RelMetadataQuery</a></span>()</code>
<div class="block">Creates the instance with <a href="../../../../../org/apache/calcite/rel/metadata/JaninoRelMetadataProvider.html" title="org.apache.calcite.rel.metadata中的类"><code>JaninoRelMetadataProvider</code></a> instance
from <a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQueryBase.html#THREAD_PROVIDERS"><code>RelMetadataQueryBase.THREAD_PROVIDERS</code></a> and <a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#EMPTY"><code>EMPTY</code></a> as a prototype.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>方法概要</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="方法概要表, 列表方法和解释">
<caption><span id="t0" class="activeTableTab"><span>所有方法</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">静态方法</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">实例方法</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">具体方法</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">限定符和类型</th>
<th class="colLast" scope="col">方法和说明</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="java.lang中的类或接口">Boolean</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#areColumnsUnique-org.apache.calcite.rel.RelNode-org.apache.calcite.util.ImmutableBitSet-">areColumnsUnique</a></span>(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel,
<a href="../../../../../org/apache/calcite/util/ImmutableBitSet.html" title="org.apache.calcite.util中的类">ImmutableBitSet</a>&nbsp;columns)</code>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.ColumnUniqueness.html#areColumnsUnique-org.apache.calcite.util.ImmutableBitSet-boolean-"><code>BuiltInMetadata.ColumnUniqueness.areColumnsUnique(ImmutableBitSet, boolean)</code></a>
statistic.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="java.lang中的类或接口">Boolean</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#areColumnsUnique-org.apache.calcite.rel.RelNode-org.apache.calcite.util.ImmutableBitSet-boolean-">areColumnsUnique</a></span>(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel,
<a href="../../../../../org/apache/calcite/util/ImmutableBitSet.html" title="org.apache.calcite.util中的类">ImmutableBitSet</a>&nbsp;columns,
boolean&nbsp;ignoreNulls)</code>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.ColumnUniqueness.html#areColumnsUnique-org.apache.calcite.util.ImmutableBitSet-boolean-"><code>BuiltInMetadata.ColumnUniqueness.areColumnsUnique(ImmutableBitSet, boolean)</code></a>
statistic.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="java.lang中的类或接口">Boolean</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#areRowsUnique-org.apache.calcite.rel.RelNode-">areRowsUnique</a></span>(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</code>
<div class="block">Returns whether the rows of a given relational expression are distinct.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>com.google.common.collect.ImmutableList&lt;<a href="../../../../../org/apache/calcite/rel/RelCollation.html" title="org.apache.calcite.rel中的接口">RelCollation</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#collations-org.apache.calcite.rel.RelNode-">collations</a></span>(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</code>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.Collation.html#collations--"><code>BuiltInMetadata.Collation.collations()</code></a>
statistic.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html?is-external=true" title="java.lang中的类或接口">Double</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#cumulativeMemoryWithinPhase-org.apache.calcite.rel.RelNode-">cumulativeMemoryWithinPhase</a></span>(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</code>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.Memory.html#cumulativeMemoryWithinPhase--"><code>BuiltInMetadata.Memory.cumulativeMemoryWithinPhase()</code></a>
statistic.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html?is-external=true" title="java.lang中的类或接口">Double</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#cumulativeMemoryWithinPhaseSplit-org.apache.calcite.rel.RelNode-">cumulativeMemoryWithinPhaseSplit</a></span>(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</code>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.Memory.html#cumulativeMemoryWithinPhaseSplit--"><code>BuiltInMetadata.Memory.cumulativeMemoryWithinPhaseSplit()</code></a>
statistic.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/calcite/rel/RelDistribution.html" title="org.apache.calcite.rel中的接口">RelDistribution</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#distribution-org.apache.calcite.rel.RelNode-">distribution</a></span>(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</code>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.Distribution.html#distribution--"><code>BuiltInMetadata.Distribution.distribution()</code></a>
statistic.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/calcite/plan/RelOptPredicateList.html" title="org.apache.calcite.plan中的类">RelOptPredicateList</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#getAllPredicates-org.apache.calcite.rel.RelNode-">getAllPredicates</a></span>(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</code>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.AllPredicates.html#getAllPredicates--"><code>BuiltInMetadata.AllPredicates.getAllPredicates()</code></a>
statistic.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html?is-external=true" title="java.lang中的类或接口">Double</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#getAverageColumnSizes-org.apache.calcite.rel.RelNode-">getAverageColumnSizes</a></span>(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</code>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.Size.html#averageColumnSizes--"><code>BuiltInMetadata.Size.averageColumnSizes()</code></a>
statistic.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html?is-external=true" title="java.lang中的类或接口">Double</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#getAverageColumnSizesNotNull-org.apache.calcite.rel.RelNode-">getAverageColumnSizesNotNull</a></span>(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</code>
<div class="block">As <a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#getAverageColumnSizes-org.apache.calcite.rel.RelNode-"><code>getAverageColumnSizes(org.apache.calcite.rel.RelNode)</code></a> but
never returns a null list, only ever a list of nulls.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html?is-external=true" title="java.lang中的类或接口">Double</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#getAverageRowSize-org.apache.calcite.rel.RelNode-">getAverageRowSize</a></span>(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</code>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.Size.html#averageRowSize--"><code>BuiltInMetadata.Size.averageRowSize()</code></a>
statistic.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/calcite/rel/metadata/RelColumnOrigin.html" title="org.apache.calcite.rel.metadata中的类">RelColumnOrigin</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#getColumnOrigin-org.apache.calcite.rel.RelNode-int-">getColumnOrigin</a></span>(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel,
int&nbsp;column)</code>
<div class="block">Determines the origin of a column, provided the column maps to a single
column that isn't derived.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="java.util中的类或接口">Set</a>&lt;<a href="../../../../../org/apache/calcite/rel/metadata/RelColumnOrigin.html" title="org.apache.calcite.rel.metadata中的类">RelColumnOrigin</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#getColumnOrigins-org.apache.calcite.rel.RelNode-int-">getColumnOrigins</a></span>(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel,
int&nbsp;column)</code>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.ColumnOrigin.html#getColumnOrigins-int-"><code>BuiltInMetadata.ColumnOrigin.getColumnOrigins(int)</code></a>
statistic.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/calcite/plan/RelOptCost.html" title="org.apache.calcite.plan中的接口">RelOptCost</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#getCumulativeCost-org.apache.calcite.rel.RelNode-">getCumulativeCost</a></span>(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</code>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.CumulativeCost.html#getCumulativeCost--"><code>BuiltInMetadata.CumulativeCost.getCumulativeCost()</code></a>
statistic.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html?is-external=true" title="java.lang中的类或接口">Double</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#getDistinctRowCount-org.apache.calcite.rel.RelNode-org.apache.calcite.util.ImmutableBitSet-org.apache.calcite.rex.RexNode-">getDistinctRowCount</a></span>(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel,
<a href="../../../../../org/apache/calcite/util/ImmutableBitSet.html" title="org.apache.calcite.util中的类">ImmutableBitSet</a>&nbsp;groupKey,
<a href="../../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;predicate)</code>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.DistinctRowCount.html#getDistinctRowCount-org.apache.calcite.util.ImmutableBitSet-org.apache.calcite.rex.RexNode-"><code>BuiltInMetadata.DistinctRowCount.getDistinctRowCount(ImmutableBitSet, RexNode)</code></a>
statistic.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/calcite/rel/RelDistribution.html" title="org.apache.calcite.rel中的接口">RelDistribution</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#getDistribution-org.apache.calcite.rel.RelNode-">getDistribution</a></span>(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</code>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.Distribution.html#distribution--"><code>BuiltInMetadata.Distribution.distribution()</code></a>
statistic.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="java.util中的类或接口">Set</a>&lt;<a href="../../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#getExpressionLineage-org.apache.calcite.rel.RelNode-org.apache.calcite.rex.RexNode-">getExpressionLineage</a></span>(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel,
<a href="../../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;expression)</code>
<div class="block">Determines the origin of a column.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html?is-external=true" title="java.lang中的类或接口">Double</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#getMaxRowCount-org.apache.calcite.rel.RelNode-">getMaxRowCount</a></span>(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</code>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.MaxRowCount.html#getMaxRowCount--"><code>BuiltInMetadata.MaxRowCount.getMaxRowCount()</code></a>
statistic.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html?is-external=true" title="java.lang中的类或接口">Double</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#getMinRowCount-org.apache.calcite.rel.RelNode-">getMinRowCount</a></span>(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</code>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.MinRowCount.html#getMinRowCount--"><code>BuiltInMetadata.MinRowCount.getMinRowCount()</code></a>
statistic.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>com.google.common.collect.Multimap&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="java.lang中的类或接口">Class</a>&lt;? extends <a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&gt;,<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#getNodeTypes-org.apache.calcite.rel.RelNode-">getNodeTypes</a></span>(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</code>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.NodeTypes.html#getNodeTypes--"><code>BuiltInMetadata.NodeTypes.getNodeTypes()</code></a>
statistic.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/calcite/plan/RelOptCost.html" title="org.apache.calcite.plan中的接口">RelOptCost</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#getNonCumulativeCost-org.apache.calcite.rel.RelNode-">getNonCumulativeCost</a></span>(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</code>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.NonCumulativeCost.html#getNonCumulativeCost--"><code>BuiltInMetadata.NonCumulativeCost.getNonCumulativeCost()</code></a>
statistic.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html?is-external=true" title="java.lang中的类或接口">Double</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#getPercentageOriginalRows-org.apache.calcite.rel.RelNode-">getPercentageOriginalRows</a></span>(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</code>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.PercentageOriginalRows.html#getPercentageOriginalRows--"><code>BuiltInMetadata.PercentageOriginalRows.getPercentageOriginalRows()</code></a>
statistic.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html?is-external=true" title="java.lang中的类或接口">Double</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#getPopulationSize-org.apache.calcite.rel.RelNode-org.apache.calcite.util.ImmutableBitSet-">getPopulationSize</a></span>(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel,
<a href="../../../../../org/apache/calcite/util/ImmutableBitSet.html" title="org.apache.calcite.util中的类">ImmutableBitSet</a>&nbsp;groupKey)</code>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.PopulationSize.html#getPopulationSize-org.apache.calcite.util.ImmutableBitSet-"><code>BuiltInMetadata.PopulationSize.getPopulationSize(ImmutableBitSet)</code></a>
statistic.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/calcite/plan/RelOptPredicateList.html" title="org.apache.calcite.plan中的类">RelOptPredicateList</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#getPulledUpPredicates-org.apache.calcite.rel.RelNode-">getPulledUpPredicates</a></span>(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</code>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.Predicates.html#getPredicates--"><code>BuiltInMetadata.Predicates.getPredicates()</code></a>
statistic.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html?is-external=true" title="java.lang中的类或接口">Double</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#getRowCount-org.apache.calcite.rel.RelNode-">getRowCount</a></span>(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</code>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.RowCount.html#getRowCount--"><code>BuiltInMetadata.RowCount.getRowCount()</code></a>
statistic.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html?is-external=true" title="java.lang中的类或接口">Double</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#getSelectivity-org.apache.calcite.rel.RelNode-org.apache.calcite.rex.RexNode-">getSelectivity</a></span>(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel,
<a href="../../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;predicate)</code>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.Selectivity.html#getSelectivity-org.apache.calcite.rex.RexNode-"><code>BuiltInMetadata.Selectivity.getSelectivity(RexNode)</code></a>
statistic.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/calcite/plan/RelOptTable.html" title="org.apache.calcite.plan中的接口">RelOptTable</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#getTableOrigin-org.apache.calcite.rel.RelNode-">getTableOrigin</a></span>(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</code>
<div class="block">Determines the origin of a <a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口"><code>RelNode</code></a>, provided it maps to a single
table, optionally with filtering and projection.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="java.util中的类或接口">Set</a>&lt;<a href="../../../../../org/apache/calcite/rex/RexTableInputRef.RelTableRef.html" title="org.apache.calcite.rex中的类">RexTableInputRef.RelTableRef</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#getTableReferences-org.apache.calcite.rel.RelNode-">getTableReferences</a></span>(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</code>
<div class="block">Determines the tables used by a plan.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="java.util中的类或接口">Set</a>&lt;<a href="../../../../../org/apache/calcite/util/ImmutableBitSet.html" title="org.apache.calcite.util中的类">ImmutableBitSet</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#getUniqueKeys-org.apache.calcite.rel.RelNode-">getUniqueKeys</a></span>(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</code>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.UniqueKeys.html#getUniqueKeys-boolean-"><code>BuiltInMetadata.UniqueKeys.getUniqueKeys(boolean)</code></a>
statistic.</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="java.util中的类或接口">Set</a>&lt;<a href="../../../../../org/apache/calcite/util/ImmutableBitSet.html" title="org.apache.calcite.util中的类">ImmutableBitSet</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#getUniqueKeys-org.apache.calcite.rel.RelNode-boolean-">getUniqueKeys</a></span>(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel,
boolean&nbsp;ignoreNulls)</code>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.UniqueKeys.html#getUniqueKeys-boolean-"><code>BuiltInMetadata.UniqueKeys.getUniqueKeys(boolean)</code></a>
statistic.</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html" title="org.apache.calcite.rel.metadata中的类">RelMetadataQuery</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#instance--">instance</a></span>()</code>
<div class="block">Returns an instance of RelMetadataQuery.</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="java.lang中的类或接口">Boolean</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#isPhaseTransition-org.apache.calcite.rel.RelNode-">isPhaseTransition</a></span>(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</code>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.Parallelism.html#isPhaseTransition--"><code>BuiltInMetadata.Parallelism.isPhaseTransition()</code></a>
statistic.</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#isVisibleInExplain-org.apache.calcite.rel.RelNode-org.apache.calcite.sql.SqlExplainLevel-">isVisibleInExplain</a></span>(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel,
<a href="../../../../../org/apache/calcite/sql/SqlExplainLevel.html" title="org.apache.calcite.sql中的枚举">SqlExplainLevel</a>&nbsp;explainLevel)</code>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.ExplainVisibility.html#isVisibleInExplain-org.apache.calcite.sql.SqlExplainLevel-"><code>BuiltInMetadata.ExplainVisibility.isVisibleInExplain(SqlExplainLevel)</code></a>
statistic.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html?is-external=true" title="java.lang中的类或接口">Double</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#memory-org.apache.calcite.rel.RelNode-">memory</a></span>(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</code>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.Memory.html#memory--"><code>BuiltInMetadata.Memory.memory()</code></a>
statistic.</div>
</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="java.lang中的类或接口">Integer</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#splitCount-org.apache.calcite.rel.RelNode-">splitCount</a></span>(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</code>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.Parallelism.html#splitCount--"><code>BuiltInMetadata.Parallelism.splitCount()</code></a>
statistic.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.calcite.rel.metadata.RelMetadataQueryBase">
<!-- -->
</a>
<h3>从类继承的方法&nbsp;org.apache.calcite.rel.metadata.<a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQueryBase.html" title="org.apache.calcite.rel.metadata中的类">RelMetadataQueryBase</a></h3>
<code><a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQueryBase.html#clearCache-org.apache.calcite.rel.RelNode-">clearCache</a>, <a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQueryBase.html#initialHandler-java.lang.Class-">initialHandler</a>, <a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQueryBase.html#revise-java.lang.Class-org.apache.calcite.rel.metadata.MetadataDef-">revise</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>从类继承的方法&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="java.lang中的类或接口">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="java.lang中的类或接口">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="java.lang中的类或接口">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="java.lang中的类或接口">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="java.lang中的类或接口">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="java.lang中的类或接口">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="java.lang中的类或接口">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="java.lang中的类或接口">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="java.lang中的类或接口">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="java.lang中的类或接口">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="java.lang中的类或接口">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="java.lang中的类或接口">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>构造器详细资料</h3>
<a name="RelMetadataQuery--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>RelMetadataQuery</h4>
<pre>protected&nbsp;RelMetadataQuery()</pre>
<div class="block">Creates the instance with <a href="../../../../../org/apache/calcite/rel/metadata/JaninoRelMetadataProvider.html" title="org.apache.calcite.rel.metadata中的类"><code>JaninoRelMetadataProvider</code></a> instance
from <a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQueryBase.html#THREAD_PROVIDERS"><code>RelMetadataQueryBase.THREAD_PROVIDERS</code></a> and <a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#EMPTY"><code>EMPTY</code></a> as a prototype.</div>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>方法详细资料</h3>
<a name="instance--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>instance</h4>
<pre>public static&nbsp;<a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html" title="org.apache.calcite.rel.metadata中的类">RelMetadataQuery</a>&nbsp;instance()</pre>
<div class="block">Returns an instance of RelMetadataQuery. It ensures that cycles do not
occur while computing metadata.</div>
</li>
</ul>
<a name="getNodeTypes-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNodeTypes</h4>
<pre>public&nbsp;com.google.common.collect.Multimap&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="java.lang中的类或接口">Class</a>&lt;? extends <a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&gt;,<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&gt;&nbsp;getNodeTypes(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</pre>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.NodeTypes.html#getNodeTypes--"><code>BuiltInMetadata.NodeTypes.getNodeTypes()</code></a>
statistic.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rel</code> - the relational expression</dd>
</dl>
</li>
</ul>
<a name="getRowCount-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRowCount</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html?is-external=true" title="java.lang中的类或接口">Double</a>&nbsp;getRowCount(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</pre>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.RowCount.html#getRowCount--"><code>BuiltInMetadata.RowCount.getRowCount()</code></a>
statistic.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rel</code> - the relational expression</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>estimated row count, or null if no reliable estimate can be
determined</dd>
</dl>
</li>
</ul>
<a name="getMaxRowCount-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMaxRowCount</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html?is-external=true" title="java.lang中的类或接口">Double</a>&nbsp;getMaxRowCount(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</pre>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.MaxRowCount.html#getMaxRowCount--"><code>BuiltInMetadata.MaxRowCount.getMaxRowCount()</code></a>
statistic.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rel</code> - the relational expression</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>max row count</dd>
</dl>
</li>
</ul>
<a name="getMinRowCount-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMinRowCount</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html?is-external=true" title="java.lang中的类或接口">Double</a>&nbsp;getMinRowCount(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</pre>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.MinRowCount.html#getMinRowCount--"><code>BuiltInMetadata.MinRowCount.getMinRowCount()</code></a>
statistic.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rel</code> - the relational expression</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>max row count</dd>
</dl>
</li>
</ul>
<a name="getCumulativeCost-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCumulativeCost</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/calcite/plan/RelOptCost.html" title="org.apache.calcite.plan中的接口">RelOptCost</a>&nbsp;getCumulativeCost(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</pre>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.CumulativeCost.html#getCumulativeCost--"><code>BuiltInMetadata.CumulativeCost.getCumulativeCost()</code></a>
statistic.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rel</code> - the relational expression</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>estimated cost, or null if no reliable estimate can be determined</dd>
</dl>
</li>
</ul>
<a name="getNonCumulativeCost-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNonCumulativeCost</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/calcite/plan/RelOptCost.html" title="org.apache.calcite.plan中的接口">RelOptCost</a>&nbsp;getNonCumulativeCost(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</pre>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.NonCumulativeCost.html#getNonCumulativeCost--"><code>BuiltInMetadata.NonCumulativeCost.getNonCumulativeCost()</code></a>
statistic.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rel</code> - the relational expression</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>estimated cost, or null if no reliable estimate can be determined</dd>
</dl>
</li>
</ul>
<a name="getPercentageOriginalRows-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPercentageOriginalRows</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html?is-external=true" title="java.lang中的类或接口">Double</a>&nbsp;getPercentageOriginalRows(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</pre>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.PercentageOriginalRows.html#getPercentageOriginalRows--"><code>BuiltInMetadata.PercentageOriginalRows.getPercentageOriginalRows()</code></a>
statistic.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rel</code> - the relational expression</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>estimated percentage (between 0.0 and 1.0), or null if no
reliable estimate can be determined</dd>
</dl>
</li>
</ul>
<a name="getColumnOrigins-org.apache.calcite.rel.RelNode-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getColumnOrigins</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="java.util中的类或接口">Set</a>&lt;<a href="../../../../../org/apache/calcite/rel/metadata/RelColumnOrigin.html" title="org.apache.calcite.rel.metadata中的类">RelColumnOrigin</a>&gt;&nbsp;getColumnOrigins(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel,
int&nbsp;column)</pre>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.ColumnOrigin.html#getColumnOrigins-int-"><code>BuiltInMetadata.ColumnOrigin.getColumnOrigins(int)</code></a>
statistic.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rel</code> - the relational expression</dd>
<dd><code>column</code> - 0-based ordinal for output column of interest</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>set of origin columns, or null if this information cannot be
determined (whereas empty set indicates definitely no origin columns at
all)</dd>
</dl>
</li>
</ul>
<a name="getColumnOrigin-org.apache.calcite.rel.RelNode-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getColumnOrigin</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/calcite/rel/metadata/RelColumnOrigin.html" title="org.apache.calcite.rel.metadata中的类">RelColumnOrigin</a>&nbsp;getColumnOrigin(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel,
int&nbsp;column)</pre>
<div class="block">Determines the origin of a column, provided the column maps to a single
column that isn't derived.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rel</code> - the RelNode of the column</dd>
<dd><code>column</code> - the offset of the column whose origin we are trying to
determine</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>the origin of a column provided it's a simple column; otherwise,
returns null</dd>
<dt><span class="seeLabel">另请参阅:</span></dt>
<dd><a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#getColumnOrigins-org.apache.calcite.rel.RelNode-int-"><code>getColumnOrigins(org.apache.calcite.rel.RelNode, int)</code></a></dd>
</dl>
</li>
</ul>
<a name="getExpressionLineage-org.apache.calcite.rel.RelNode-org.apache.calcite.rex.RexNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getExpressionLineage</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="java.util中的类或接口">Set</a>&lt;<a href="../../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&gt;&nbsp;getExpressionLineage(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel,
<a href="../../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;expression)</pre>
<div class="block">Determines the origin of a column.</div>
</li>
</ul>
<a name="getTableReferences-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTableReferences</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="java.util中的类或接口">Set</a>&lt;<a href="../../../../../org/apache/calcite/rex/RexTableInputRef.RelTableRef.html" title="org.apache.calcite.rex中的类">RexTableInputRef.RelTableRef</a>&gt;&nbsp;getTableReferences(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</pre>
<div class="block">Determines the tables used by a plan.</div>
</li>
</ul>
<a name="getTableOrigin-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTableOrigin</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/calcite/plan/RelOptTable.html" title="org.apache.calcite.plan中的接口">RelOptTable</a>&nbsp;getTableOrigin(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</pre>
<div class="block">Determines the origin of a <a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口"><code>RelNode</code></a>, provided it maps to a single
table, optionally with filtering and projection.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rel</code> - the RelNode</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>the table, if the RelNode is a simple table; otherwise null</dd>
</dl>
</li>
</ul>
<a name="getSelectivity-org.apache.calcite.rel.RelNode-org.apache.calcite.rex.RexNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSelectivity</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html?is-external=true" title="java.lang中的类或接口">Double</a>&nbsp;getSelectivity(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel,
<a href="../../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;predicate)</pre>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.Selectivity.html#getSelectivity-org.apache.calcite.rex.RexNode-"><code>BuiltInMetadata.Selectivity.getSelectivity(RexNode)</code></a>
statistic.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rel</code> - the relational expression</dd>
<dd><code>predicate</code> - predicate whose selectivity is to be estimated against
<code>rel</code>'s output</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>estimated selectivity (between 0.0 and 1.0), or null if no
reliable estimate can be determined</dd>
</dl>
</li>
</ul>
<a name="getUniqueKeys-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getUniqueKeys</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="java.util中的类或接口">Set</a>&lt;<a href="../../../../../org/apache/calcite/util/ImmutableBitSet.html" title="org.apache.calcite.util中的类">ImmutableBitSet</a>&gt;&nbsp;getUniqueKeys(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</pre>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.UniqueKeys.html#getUniqueKeys-boolean-"><code>BuiltInMetadata.UniqueKeys.getUniqueKeys(boolean)</code></a>
statistic.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rel</code> - the relational expression</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>set of keys, or null if this information cannot be determined
(whereas empty set indicates definitely no keys at all)</dd>
</dl>
</li>
</ul>
<a name="getUniqueKeys-org.apache.calcite.rel.RelNode-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getUniqueKeys</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="java.util中的类或接口">Set</a>&lt;<a href="../../../../../org/apache/calcite/util/ImmutableBitSet.html" title="org.apache.calcite.util中的类">ImmutableBitSet</a>&gt;&nbsp;getUniqueKeys(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel,
boolean&nbsp;ignoreNulls)</pre>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.UniqueKeys.html#getUniqueKeys-boolean-"><code>BuiltInMetadata.UniqueKeys.getUniqueKeys(boolean)</code></a>
statistic.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rel</code> - the relational expression</dd>
<dd><code>ignoreNulls</code> - if true, ignore null values when determining
whether the keys are unique</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>set of keys, or null if this information cannot be determined
(whereas empty set indicates definitely no keys at all)</dd>
</dl>
</li>
</ul>
<a name="areRowsUnique-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>areRowsUnique</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="java.lang中的类或接口">Boolean</a>&nbsp;areRowsUnique(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</pre>
<div class="block">Returns whether the rows of a given relational expression are distinct.
This is derived by applying the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.ColumnUniqueness.html#areColumnsUnique-org.apache.calcite.util.ImmutableBitSet-boolean-"><code>BuiltInMetadata.ColumnUniqueness.areColumnsUnique(org.apache.calcite.util.ImmutableBitSet, boolean)</code></a>
statistic over all columns.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rel</code> - the relational expression</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>true or false depending on whether the rows are unique, or
null if not enough information is available to make that determination</dd>
</dl>
</li>
</ul>
<a name="areColumnsUnique-org.apache.calcite.rel.RelNode-org.apache.calcite.util.ImmutableBitSet-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>areColumnsUnique</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="java.lang中的类或接口">Boolean</a>&nbsp;areColumnsUnique(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel,
<a href="../../../../../org/apache/calcite/util/ImmutableBitSet.html" title="org.apache.calcite.util中的类">ImmutableBitSet</a>&nbsp;columns)</pre>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.ColumnUniqueness.html#areColumnsUnique-org.apache.calcite.util.ImmutableBitSet-boolean-"><code>BuiltInMetadata.ColumnUniqueness.areColumnsUnique(ImmutableBitSet, boolean)</code></a>
statistic.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rel</code> - the relational expression</dd>
<dd><code>columns</code> - column mask representing the subset of columns for which
uniqueness will be determined</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>true or false depending on whether the columns are unique, or
null if not enough information is available to make that determination</dd>
</dl>
</li>
</ul>
<a name="areColumnsUnique-org.apache.calcite.rel.RelNode-org.apache.calcite.util.ImmutableBitSet-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>areColumnsUnique</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="java.lang中的类或接口">Boolean</a>&nbsp;areColumnsUnique(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel,
<a href="../../../../../org/apache/calcite/util/ImmutableBitSet.html" title="org.apache.calcite.util中的类">ImmutableBitSet</a>&nbsp;columns,
boolean&nbsp;ignoreNulls)</pre>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.ColumnUniqueness.html#areColumnsUnique-org.apache.calcite.util.ImmutableBitSet-boolean-"><code>BuiltInMetadata.ColumnUniqueness.areColumnsUnique(ImmutableBitSet, boolean)</code></a>
statistic.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rel</code> - the relational expression</dd>
<dd><code>columns</code> - column mask representing the subset of columns for which
uniqueness will be determined</dd>
<dd><code>ignoreNulls</code> - if true, ignore null values when determining column
uniqueness</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>true or false depending on whether the columns are unique, or
null if not enough information is available to make that determination</dd>
</dl>
</li>
</ul>
<a name="collations-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>collations</h4>
<pre>public&nbsp;com.google.common.collect.ImmutableList&lt;<a href="../../../../../org/apache/calcite/rel/RelCollation.html" title="org.apache.calcite.rel中的接口">RelCollation</a>&gt;&nbsp;collations(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</pre>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.Collation.html#collations--"><code>BuiltInMetadata.Collation.collations()</code></a>
statistic.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rel</code> - the relational expression</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>List of sorted column combinations, or
null if not enough information is available to make that determination</dd>
</dl>
</li>
</ul>
<a name="distribution-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>distribution</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/calcite/rel/RelDistribution.html" title="org.apache.calcite.rel中的接口">RelDistribution</a>&nbsp;distribution(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</pre>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.Distribution.html#distribution--"><code>BuiltInMetadata.Distribution.distribution()</code></a>
statistic.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rel</code> - the relational expression</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>List of sorted column combinations, or
null if not enough information is available to make that determination</dd>
</dl>
</li>
</ul>
<a name="getPopulationSize-org.apache.calcite.rel.RelNode-org.apache.calcite.util.ImmutableBitSet-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPopulationSize</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html?is-external=true" title="java.lang中的类或接口">Double</a>&nbsp;getPopulationSize(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel,
<a href="../../../../../org/apache/calcite/util/ImmutableBitSet.html" title="org.apache.calcite.util中的类">ImmutableBitSet</a>&nbsp;groupKey)</pre>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.PopulationSize.html#getPopulationSize-org.apache.calcite.util.ImmutableBitSet-"><code>BuiltInMetadata.PopulationSize.getPopulationSize(ImmutableBitSet)</code></a>
statistic.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rel</code> - the relational expression</dd>
<dd><code>groupKey</code> - column mask representing the subset of columns for which
the row count will be determined</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>distinct row count for the given groupKey, or null if no reliable
estimate can be determined</dd>
</dl>
</li>
</ul>
<a name="getAverageRowSize-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAverageRowSize</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html?is-external=true" title="java.lang中的类或接口">Double</a>&nbsp;getAverageRowSize(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</pre>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.Size.html#averageRowSize--"><code>BuiltInMetadata.Size.averageRowSize()</code></a>
statistic.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rel</code> - the relational expression</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>average size of a row, in bytes, or null if not known</dd>
</dl>
</li>
</ul>
<a name="getAverageColumnSizes-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAverageColumnSizes</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html?is-external=true" title="java.lang中的类或接口">Double</a>&gt;&nbsp;getAverageColumnSizes(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</pre>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.Size.html#averageColumnSizes--"><code>BuiltInMetadata.Size.averageColumnSizes()</code></a>
statistic.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rel</code> - the relational expression</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>a list containing, for each column, the average size of a column
value, in bytes. Each value or the entire list may be null if the
metadata is not available</dd>
</dl>
</li>
</ul>
<a name="getAverageColumnSizesNotNull-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAverageColumnSizesNotNull</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="java.util中的类或接口">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html?is-external=true" title="java.lang中的类或接口">Double</a>&gt;&nbsp;getAverageColumnSizesNotNull(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</pre>
<div class="block">As <a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQuery.html#getAverageColumnSizes-org.apache.calcite.rel.RelNode-"><code>getAverageColumnSizes(org.apache.calcite.rel.RelNode)</code></a> but
never returns a null list, only ever a list of nulls.</div>
</li>
</ul>
<a name="isPhaseTransition-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isPhaseTransition</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="java.lang中的类或接口">Boolean</a>&nbsp;isPhaseTransition(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</pre>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.Parallelism.html#isPhaseTransition--"><code>BuiltInMetadata.Parallelism.isPhaseTransition()</code></a>
statistic.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rel</code> - the relational expression</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>whether each physical operator implementing this relational
expression belongs to a different process than its inputs, or null if not
known</dd>
</dl>
</li>
</ul>
<a name="splitCount-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>splitCount</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="java.lang中的类或接口">Integer</a>&nbsp;splitCount(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</pre>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.Parallelism.html#splitCount--"><code>BuiltInMetadata.Parallelism.splitCount()</code></a>
statistic.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rel</code> - the relational expression</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>the number of distinct splits of the data, or null if not known</dd>
</dl>
</li>
</ul>
<a name="memory-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>memory</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html?is-external=true" title="java.lang中的类或接口">Double</a>&nbsp;memory(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</pre>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.Memory.html#memory--"><code>BuiltInMetadata.Memory.memory()</code></a>
statistic.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rel</code> - the relational expression</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>the expected amount of memory, in bytes, required by a physical
operator implementing this relational expression, across all splits,
or null if not known</dd>
</dl>
</li>
</ul>
<a name="cumulativeMemoryWithinPhase-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>cumulativeMemoryWithinPhase</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html?is-external=true" title="java.lang中的类或接口">Double</a>&nbsp;cumulativeMemoryWithinPhase(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</pre>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.Memory.html#cumulativeMemoryWithinPhase--"><code>BuiltInMetadata.Memory.cumulativeMemoryWithinPhase()</code></a>
statistic.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rel</code> - the relational expression</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>the cumulative amount of memory, in bytes, required by the
physical operator implementing this relational expression, and all other
operators within the same phase, across all splits, or null if not known</dd>
</dl>
</li>
</ul>
<a name="cumulativeMemoryWithinPhaseSplit-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>cumulativeMemoryWithinPhaseSplit</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html?is-external=true" title="java.lang中的类或接口">Double</a>&nbsp;cumulativeMemoryWithinPhaseSplit(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</pre>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.Memory.html#cumulativeMemoryWithinPhaseSplit--"><code>BuiltInMetadata.Memory.cumulativeMemoryWithinPhaseSplit()</code></a>
statistic.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rel</code> - the relational expression</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>the expected cumulative amount of memory, in bytes, required by
the physical operator implementing this relational expression, and all
operators within the same phase, within each split, or null if not known</dd>
</dl>
</li>
</ul>
<a name="getDistinctRowCount-org.apache.calcite.rel.RelNode-org.apache.calcite.util.ImmutableBitSet-org.apache.calcite.rex.RexNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDistinctRowCount</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html?is-external=true" title="java.lang中的类或接口">Double</a>&nbsp;getDistinctRowCount(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel,
<a href="../../../../../org/apache/calcite/util/ImmutableBitSet.html" title="org.apache.calcite.util中的类">ImmutableBitSet</a>&nbsp;groupKey,
<a href="../../../../../org/apache/calcite/rex/RexNode.html" title="org.apache.calcite.rex中的类">RexNode</a>&nbsp;predicate)</pre>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.DistinctRowCount.html#getDistinctRowCount-org.apache.calcite.util.ImmutableBitSet-org.apache.calcite.rex.RexNode-"><code>BuiltInMetadata.DistinctRowCount.getDistinctRowCount(ImmutableBitSet, RexNode)</code></a>
statistic.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rel</code> - the relational expression</dd>
<dd><code>groupKey</code> - column mask representing group by columns</dd>
<dd><code>predicate</code> - pre-filtered predicates</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>distinct row count for groupKey, filtered by predicate, or null
if no reliable estimate can be determined</dd>
</dl>
</li>
</ul>
<a name="getPulledUpPredicates-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPulledUpPredicates</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/calcite/plan/RelOptPredicateList.html" title="org.apache.calcite.plan中的类">RelOptPredicateList</a>&nbsp;getPulledUpPredicates(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</pre>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.Predicates.html#getPredicates--"><code>BuiltInMetadata.Predicates.getPredicates()</code></a>
statistic.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rel</code> - the relational expression</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>Predicates that can be pulled above this RelNode</dd>
</dl>
</li>
</ul>
<a name="getAllPredicates-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAllPredicates</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/calcite/plan/RelOptPredicateList.html" title="org.apache.calcite.plan中的类">RelOptPredicateList</a>&nbsp;getAllPredicates(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</pre>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.AllPredicates.html#getAllPredicates--"><code>BuiltInMetadata.AllPredicates.getAllPredicates()</code></a>
statistic.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rel</code> - the relational expression</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>All predicates within and below this RelNode</dd>
</dl>
</li>
</ul>
<a name="isVisibleInExplain-org.apache.calcite.rel.RelNode-org.apache.calcite.sql.SqlExplainLevel-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isVisibleInExplain</h4>
<pre>public&nbsp;boolean&nbsp;isVisibleInExplain(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel,
<a href="../../../../../org/apache/calcite/sql/SqlExplainLevel.html" title="org.apache.calcite.sql中的枚举">SqlExplainLevel</a>&nbsp;explainLevel)</pre>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.ExplainVisibility.html#isVisibleInExplain-org.apache.calcite.sql.SqlExplainLevel-"><code>BuiltInMetadata.ExplainVisibility.isVisibleInExplain(SqlExplainLevel)</code></a>
statistic.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rel</code> - the relational expression</dd>
<dd><code>explainLevel</code> - level of detail</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>true for visible, false for invisible; if no metadata is available,
defaults to true</dd>
</dl>
</li>
</ul>
<a name="getDistribution-org.apache.calcite.rel.RelNode-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getDistribution</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/calcite/rel/RelDistribution.html" title="org.apache.calcite.rel中的接口">RelDistribution</a>&nbsp;getDistribution(<a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口">RelNode</a>&nbsp;rel)</pre>
<div class="block">Returns the
<a href="../../../../../org/apache/calcite/rel/metadata/BuiltInMetadata.Distribution.html#distribution--"><code>BuiltInMetadata.Distribution.distribution()</code></a>
statistic.</div>
<dl>
<dt><span class="paramLabel">参数:</span></dt>
<dd><code>rel</code> - the relational expression</dd>
<dt><span class="returnLabel">返回:</span></dt>
<dd>description of how the rows in the relational expression are
physically distributed</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="跳过导航链接">跳过导航链接</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="导航">
<li><a href="../../../../../overview-summary.html">概览</a></li>
<li><a href="package-summary.html">程序包</a></li>
<li class="navBarCell1Rev"></li>
<li><a href="package-tree.html"></a></li>
<li><a href="../../../../../deprecated-list.html">已过时</a></li>
<li><a href="../../../../../index-all.html">索引</a></li>
<li><a href="../../../../../help-doc.html">帮助</a></li>
</ul>
<div class="aboutLanguage"><b>Apache Calcite</b></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataProvider.html" title="org.apache.calcite.rel.metadata中的接口"><span class="typeNameLink">上一个类</span></a></li>
<li><a href="../../../../../org/apache/calcite/rel/metadata/RelMetadataQueryBase.html" title="org.apache.calcite.rel.metadata中的类"><span class="typeNameLink">下一个类</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/calcite/rel/metadata/RelMetadataQuery.html" target="_top">框架</a></li>
<li><a href="RelMetadataQuery.html" target="_top">无框架</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">所有类</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>概要:&nbsp;</li>
<li>嵌套&nbsp;|&nbsp;</li>
<li><a href="#fields.inherited.from.class.org.apache.calcite.rel.metadata.RelMetadataQueryBase">字段</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">构造器</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">方法</a></li>
</ul>
<ul class="subNavList">
<li>详细资料:&nbsp;</li>
<li>字段&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">构造器</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">方法</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &copy; 2012-2020 Apache Software Foundation. All Rights Reserved.</small></p>
</body>
</html>