blob: 2e531edaa1fbefb58e4b6788ba4978d6cc12be69 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>org.apache.calcite.rel.metadata (Apache Calcite API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="org.apache.calcite.rel.metadata (Apache Calcite API)";
}
}
catch(err) {
}
//-->
var pathtoroot = "../../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li class="navBarCell1Rev">Package</li>
<li>Class</li>
<li><a href="package-use.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</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>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<main role="main">
<div class="header">
<h1 title="Package" class="title">Package&nbsp;org.apache.calcite.rel.metadata</h1>
</div>
<div class="contentContainer">
<section role="region"><a id="package.description">
<!-- -->
</a>
<div class="block">Defines metadata interfaces and utilities for relational
expressions.</div>
</section>
<ul class="blockList">
<li class="blockList">
<table class="typeSummary">
<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Interface</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="BuiltInMetadata.All.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.All</a></th>
<td class="colLast">
<div class="block">The built-in forms of metadata.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="BuiltInMetadata.AllPredicates.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.AllPredicates</a></th>
<td class="colLast">
<div class="block">Metadata about the predicates that hold in the rows emitted from a
relational expression.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="BuiltInMetadata.AllPredicates.Handler.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.AllPredicates.Handler</a></th>
<td class="colLast">
<div class="block">Handler API.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="BuiltInMetadata.Collation.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.Collation</a></th>
<td class="colLast">
<div class="block">Metadata about which columns are sorted.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="BuiltInMetadata.Collation.Handler.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.Collation.Handler</a></th>
<td class="colLast">
<div class="block">Handler API.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="BuiltInMetadata.ColumnOrigin.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.ColumnOrigin</a></th>
<td class="colLast">
<div class="block">Metadata about the origins of columns.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="BuiltInMetadata.ColumnOrigin.Handler.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.ColumnOrigin.Handler</a></th>
<td class="colLast">
<div class="block">Handler API.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="BuiltInMetadata.ColumnUniqueness.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.ColumnUniqueness</a></th>
<td class="colLast">
<div class="block">Metadata about whether a set of columns uniquely identifies a row.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="BuiltInMetadata.ColumnUniqueness.Handler.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.ColumnUniqueness.Handler</a></th>
<td class="colLast">
<div class="block">Handler API.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="BuiltInMetadata.CumulativeCost.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.CumulativeCost</a></th>
<td class="colLast">
<div class="block">Metadata about the cost of evaluating a relational expression, including
all of its inputs.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="BuiltInMetadata.CumulativeCost.Handler.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.CumulativeCost.Handler</a></th>
<td class="colLast">
<div class="block">Handler API.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="BuiltInMetadata.DistinctRowCount.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.DistinctRowCount</a></th>
<td class="colLast">
<div class="block">Metadata about the number of distinct rows returned by a set of columns
in a relational expression.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="BuiltInMetadata.DistinctRowCount.Handler.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.DistinctRowCount.Handler</a></th>
<td class="colLast">
<div class="block">Handler API.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="BuiltInMetadata.Distribution.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.Distribution</a></th>
<td class="colLast">
<div class="block">Metadata about how a relational expression is distributed.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="BuiltInMetadata.Distribution.Handler.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.Distribution.Handler</a></th>
<td class="colLast">
<div class="block">Handler API.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="BuiltInMetadata.ExplainVisibility.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.ExplainVisibility</a></th>
<td class="colLast">
<div class="block">Metadata about whether a relational expression should appear in a plan.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="BuiltInMetadata.ExplainVisibility.Handler.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.ExplainVisibility.Handler</a></th>
<td class="colLast">
<div class="block">Handler API.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="BuiltInMetadata.ExpressionLineage.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.ExpressionLineage</a></th>
<td class="colLast">
<div class="block">Metadata about the origins of expressions.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="BuiltInMetadata.ExpressionLineage.Handler.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.ExpressionLineage.Handler</a></th>
<td class="colLast">
<div class="block">Handler API.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="BuiltInMetadata.MaxRowCount.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.MaxRowCount</a></th>
<td class="colLast">
<div class="block">Metadata about the maximum number of rows returned by a relational
expression.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="BuiltInMetadata.MaxRowCount.Handler.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.MaxRowCount.Handler</a></th>
<td class="colLast">
<div class="block">Handler API.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="BuiltInMetadata.Memory.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.Memory</a></th>
<td class="colLast">
<div class="block">Metadata about the memory use of an operator.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="BuiltInMetadata.Memory.Handler.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.Memory.Handler</a></th>
<td class="colLast">
<div class="block">Handler API.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="BuiltInMetadata.MinRowCount.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.MinRowCount</a></th>
<td class="colLast">
<div class="block">Metadata about the minimum number of rows returned by a relational
expression.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="BuiltInMetadata.MinRowCount.Handler.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.MinRowCount.Handler</a></th>
<td class="colLast">
<div class="block">Handler API.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="BuiltInMetadata.NodeTypes.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.NodeTypes</a></th>
<td class="colLast">
<div class="block">Metadata about the node types in a relational expression.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="BuiltInMetadata.NodeTypes.Handler.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.NodeTypes.Handler</a></th>
<td class="colLast">
<div class="block">Handler API.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="BuiltInMetadata.NonCumulativeCost.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.NonCumulativeCost</a></th>
<td class="colLast">
<div class="block">Metadata about the cost of evaluating a relational expression, not
including its inputs.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="BuiltInMetadata.NonCumulativeCost.Handler.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.NonCumulativeCost.Handler</a></th>
<td class="colLast">
<div class="block">Handler API.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="BuiltInMetadata.Parallelism.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.Parallelism</a></th>
<td class="colLast">
<div class="block">Metadata about the degree of parallelism of a relational expression, and
how its operators are assigned to processes with independent resource
pools.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="BuiltInMetadata.Parallelism.Handler.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.Parallelism.Handler</a></th>
<td class="colLast">
<div class="block">Handler API.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="BuiltInMetadata.PercentageOriginalRows.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.PercentageOriginalRows</a></th>
<td class="colLast">
<div class="block">Metadata about the proportion of original rows that remain in a relational
expression.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="BuiltInMetadata.PercentageOriginalRows.Handler.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.PercentageOriginalRows.Handler</a></th>
<td class="colLast">
<div class="block">Handler API.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="BuiltInMetadata.PopulationSize.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.PopulationSize</a></th>
<td class="colLast">
<div class="block">Metadata about the number of distinct values in the original source of a
column or set of columns.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="BuiltInMetadata.PopulationSize.Handler.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.PopulationSize.Handler</a></th>
<td class="colLast">
<div class="block">Handler API.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="BuiltInMetadata.Predicates.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.Predicates</a></th>
<td class="colLast">
<div class="block">Metadata about the predicates that hold in the rows emitted from a
relational expression.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="BuiltInMetadata.Predicates.Handler.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.Predicates.Handler</a></th>
<td class="colLast">
<div class="block">Handler API.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="BuiltInMetadata.RowCount.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.RowCount</a></th>
<td class="colLast">
<div class="block">Metadata about the number of rows returned by a relational expression.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="BuiltInMetadata.RowCount.Handler.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.RowCount.Handler</a></th>
<td class="colLast">
<div class="block">Handler API.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="BuiltInMetadata.Selectivity.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.Selectivity</a></th>
<td class="colLast">
<div class="block">Metadata about the selectivity of a predicate.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="BuiltInMetadata.Selectivity.Handler.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.Selectivity.Handler</a></th>
<td class="colLast">
<div class="block">Handler API.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="BuiltInMetadata.Size.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.Size</a></th>
<td class="colLast">
<div class="block">Metadata about the size of rows and columns.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="BuiltInMetadata.Size.Handler.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.Size.Handler</a></th>
<td class="colLast">
<div class="block">Handler API.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="BuiltInMetadata.TableReferences.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.TableReferences</a></th>
<td class="colLast">
<div class="block">Metadata to obtain references to tables used by a given expression.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="BuiltInMetadata.TableReferences.Handler.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.TableReferences.Handler</a></th>
<td class="colLast">
<div class="block">Handler API.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="BuiltInMetadata.UniqueKeys.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.UniqueKeys</a></th>
<td class="colLast">
<div class="block">Metadata about which combinations of columns are unique identifiers.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="BuiltInMetadata.UniqueKeys.Handler.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.UniqueKeys.Handler</a></th>
<td class="colLast">
<div class="block">Handler API.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="Metadata.html" title="interface in org.apache.calcite.rel.metadata">Metadata</a></th>
<td class="colLast">
<div class="block">Metadata about a relational expression.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="MetadataFactory.html" title="interface in org.apache.calcite.rel.metadata">MetadataFactory</a></th>
<td class="colLast">
<div class="block">Source of metadata about relational expressions.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="MetadataHandler.html" title="interface in org.apache.calcite.rel.metadata">MetadataHandler</a>&lt;M extends <a href="Metadata.html" title="interface in org.apache.calcite.rel.metadata">Metadata</a>&gt;</th>
<td class="colLast">
<div class="block">Marker interface for a handler of metadata.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RelMetadataProvider.html" title="interface in org.apache.calcite.rel.metadata">RelMetadataProvider</a></th>
<td class="colLast">
<div class="block">RelMetadataProvider defines an interface for obtaining metadata about
relational expressions.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="UnboundMetadata.html" title="interface in org.apache.calcite.rel.metadata">UnboundMetadata</a>&lt;M extends <a href="Metadata.html" title="interface in org.apache.calcite.rel.metadata">Metadata</a>&gt;</th>
<td class="colLast">
<div class="block">Metadata that needs to be bound to a <a href="../RelNode.html" title="interface in org.apache.calcite.rel"><code>RelNode</code></a> and
<a href="RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata"><code>RelMetadataQuery</code></a> before it can be used.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList">
<table class="typeSummary">
<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="BuiltInMetadata.html" title="class in org.apache.calcite.rel.metadata">BuiltInMetadata</a></th>
<td class="colLast">
<div class="block">Contains the interfaces for several common forms of metadata.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="CachingRelMetadataProvider.html" title="class in org.apache.calcite.rel.metadata">CachingRelMetadataProvider</a></th>
<td class="colLast">
<div class="block">Implementation of the <a href="RelMetadataProvider.html" title="interface in org.apache.calcite.rel.metadata"><code>RelMetadataProvider</code></a>
interface that caches results from an underlying provider.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="CachingRelMetadataProvider.CacheEntry.html" title="class in org.apache.calcite.rel.metadata">CachingRelMetadataProvider.CacheEntry</a></th>
<td class="colLast">
<div class="block">An entry in the cache.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="ChainedRelMetadataProvider.html" title="class in org.apache.calcite.rel.metadata">ChainedRelMetadataProvider</a></th>
<td class="colLast">
<div class="block">Implementation of the <a href="RelMetadataProvider.html" title="interface in org.apache.calcite.rel.metadata"><code>RelMetadataProvider</code></a>
interface via the
<a href="../../util/Glossary.html#CHAIN_OF_RESPONSIBILITY_PATTERN"><code>Glossary.CHAIN_OF_RESPONSIBILITY_PATTERN</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="ChainedRelMetadataProvider.ChainedInvocationHandler.html" title="class in org.apache.calcite.rel.metadata">ChainedRelMetadataProvider.ChainedInvocationHandler</a></th>
<td class="colLast">
<div class="block">Invocation handler that calls a list of <a href="Metadata.html" title="interface in org.apache.calcite.rel.metadata"><code>Metadata</code></a> objects,
returning the first non-null value.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="DefaultRelMetadataProvider.html" title="class in org.apache.calcite.rel.metadata">DefaultRelMetadataProvider</a></th>
<td class="colLast">
<div class="block">DefaultRelMetadataProvider supplies a default implementation of the
<a href="RelMetadataProvider.html" title="interface in org.apache.calcite.rel.metadata"><code>RelMetadataProvider</code></a> interface.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="JaninoRelMetadataProvider.html" title="class in org.apache.calcite.rel.metadata">JaninoRelMetadataProvider</a></th>
<td class="colLast">
<div class="block">Implementation of the <a href="RelMetadataProvider.html" title="interface in org.apache.calcite.rel.metadata"><code>RelMetadataProvider</code></a> interface that generates
a class that dispatches to the underlying providers.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="JaninoRelMetadataProvider.Key.html" title="class in org.apache.calcite.rel.metadata">JaninoRelMetadataProvider.Key</a></th>
<td class="colLast">
<div class="block">Key for the cache.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="MetadataDef.html" title="class in org.apache.calcite.rel.metadata">MetadataDef</a>&lt;M extends <a href="Metadata.html" title="interface in org.apache.calcite.rel.metadata">Metadata</a>&gt;</th>
<td class="colLast">
<div class="block">Definition of metadata.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="MetadataFactoryImpl.html" title="class in org.apache.calcite.rel.metadata">MetadataFactoryImpl</a></th>
<td class="colLast">
<div class="block">Implementation of <a href="MetadataFactory.html" title="interface in org.apache.calcite.rel.metadata"><code>MetadataFactory</code></a> that gets providers from a
<a href="RelMetadataProvider.html" title="interface in org.apache.calcite.rel.metadata"><code>RelMetadataProvider</code></a> and stores them in a cache.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="ReflectiveRelMetadataProvider.html" title="class in org.apache.calcite.rel.metadata">ReflectiveRelMetadataProvider</a></th>
<td class="colLast">
<div class="block">Implementation of the <a href="RelMetadataProvider.html" title="interface in org.apache.calcite.rel.metadata"><code>RelMetadataProvider</code></a> interface that dispatches
metadata methods to methods on a given object via reflection.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="ReflectiveRelMetadataProvider.Space.html" title="class in org.apache.calcite.rel.metadata">ReflectiveRelMetadataProvider.Space</a></th>
<td class="colLast">
<div class="block">Workspace for computing which methods can act as handlers for
given metadata methods.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="ReflectiveRelMetadataProvider.Space2.html" title="class in org.apache.calcite.rel.metadata">ReflectiveRelMetadataProvider.Space2</a></th>
<td class="colLast">
<div class="block">Extended work space.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RelColumnMapping.html" title="class in org.apache.calcite.rel.metadata">RelColumnMapping</a></th>
<td class="colLast">
<div class="block">Mapping from an input column of a <a href="../RelNode.html" title="interface in org.apache.calcite.rel"><code>RelNode</code></a> to
one of its output columns.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RelColumnOrigin.html" title="class in org.apache.calcite.rel.metadata">RelColumnOrigin</a></th>
<td class="colLast">
<div class="block">RelColumnOrigin is a data structure describing one of the origins of an
output column produced by a relational expression.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RelMdAllPredicates.html" title="class in org.apache.calcite.rel.metadata">RelMdAllPredicates</a></th>
<td class="colLast">
<div class="block">Utility to extract Predicates that are present in the (sub)plan
starting at this node.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RelMdCollation.html" title="class in org.apache.calcite.rel.metadata">RelMdCollation</a></th>
<td class="colLast">
<div class="block">RelMdCollation supplies a default implementation of
<a href="RelMetadataQuery.html#collations(org.apache.calcite.rel.RelNode)"><code>RelMetadataQuery.collations(org.apache.calcite.rel.RelNode)</code></a>
for the standard logical algebra.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RelMdColumnOrigins.html" title="class in org.apache.calcite.rel.metadata">RelMdColumnOrigins</a></th>
<td class="colLast">
<div class="block">RelMdColumnOrigins supplies a default implementation of
<a href="RelMetadataQuery.html#getColumnOrigins(org.apache.calcite.rel.RelNode,int)"><code>RelMetadataQuery.getColumnOrigins(org.apache.calcite.rel.RelNode, int)</code></a> for the standard logical algebra.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RelMdColumnUniqueness.html" title="class in org.apache.calcite.rel.metadata">RelMdColumnUniqueness</a></th>
<td class="colLast">
<div class="block">RelMdColumnUniqueness supplies a default implementation of
<a href="RelMetadataQuery.html#areColumnsUnique(org.apache.calcite.rel.RelNode,org.apache.calcite.util.ImmutableBitSet)"><code>RelMetadataQuery.areColumnsUnique(org.apache.calcite.rel.RelNode, org.apache.calcite.util.ImmutableBitSet)</code></a> for the standard logical algebra.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RelMdDistinctRowCount.html" title="class in org.apache.calcite.rel.metadata">RelMdDistinctRowCount</a></th>
<td class="colLast">
<div class="block">RelMdDistinctRowCount supplies a default implementation of
<a href="RelMetadataQuery.html#getDistinctRowCount(org.apache.calcite.rel.RelNode,org.apache.calcite.util.ImmutableBitSet,org.apache.calcite.rex.RexNode)"><code>RelMetadataQuery.getDistinctRowCount(org.apache.calcite.rel.RelNode, org.apache.calcite.util.ImmutableBitSet, org.apache.calcite.rex.RexNode)</code></a> for the standard logical
algebra.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RelMdDistribution.html" title="class in org.apache.calcite.rel.metadata">RelMdDistribution</a></th>
<td class="colLast">
<div class="block">RelMdCollation supplies a default implementation of
<a href="RelMetadataQuery.html#distribution(org.apache.calcite.rel.RelNode)"><code>RelMetadataQuery.distribution(org.apache.calcite.rel.RelNode)</code></a>
for the standard logical algebra.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RelMdExplainVisibility.html" title="class in org.apache.calcite.rel.metadata">RelMdExplainVisibility</a></th>
<td class="colLast">
<div class="block">RelMdExplainVisibility supplies a default implementation of
<a href="RelMetadataQuery.html#isVisibleInExplain(org.apache.calcite.rel.RelNode,org.apache.calcite.sql.SqlExplainLevel)"><code>RelMetadataQuery.isVisibleInExplain(org.apache.calcite.rel.RelNode, org.apache.calcite.sql.SqlExplainLevel)</code></a> for the standard logical algebra.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RelMdExpressionLineage.html" title="class in org.apache.calcite.rel.metadata">RelMdExpressionLineage</a></th>
<td class="colLast">
<div class="block">Default implementation of
<a href="RelMetadataQuery.html#getExpressionLineage(org.apache.calcite.rel.RelNode,org.apache.calcite.rex.RexNode)"><code>RelMetadataQuery.getExpressionLineage(org.apache.calcite.rel.RelNode, org.apache.calcite.rex.RexNode)</code></a> for the standard logical
algebra.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RelMdExpressionLineage.RexReplacer.html" title="class in org.apache.calcite.rel.metadata">RelMdExpressionLineage.RexReplacer</a></th>
<td class="colLast">
<div class="block">Replaces expressions with their equivalences.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RelMdMaxRowCount.html" title="class in org.apache.calcite.rel.metadata">RelMdMaxRowCount</a></th>
<td class="colLast">
<div class="block">RelMdMaxRowCount supplies a default implementation of
<a href="RelMetadataQuery.html#getMaxRowCount(org.apache.calcite.rel.RelNode)"><code>RelMetadataQuery.getMaxRowCount(org.apache.calcite.rel.RelNode)</code></a> for the standard logical algebra.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RelMdMemory.html" title="class in org.apache.calcite.rel.metadata">RelMdMemory</a></th>
<td class="colLast">
<div class="block">Default implementations of the
<a href="BuiltInMetadata.Memory.html" title="interface in org.apache.calcite.rel.metadata"><code>BuiltInMetadata.Memory</code></a>
metadata provider for the standard logical algebra.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RelMdMinRowCount.html" title="class in org.apache.calcite.rel.metadata">RelMdMinRowCount</a></th>
<td class="colLast">
<div class="block">RelMdMinRowCount supplies a default implementation of
<a href="RelMetadataQuery.html#getMinRowCount(org.apache.calcite.rel.RelNode)"><code>RelMetadataQuery.getMinRowCount(org.apache.calcite.rel.RelNode)</code></a> for the standard logical algebra.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RelMdNodeTypes.html" title="class in org.apache.calcite.rel.metadata">RelMdNodeTypes</a></th>
<td class="colLast">
<div class="block">RelMdNodeTypeCount supplies a default implementation of
<a href="RelMetadataQuery.html#getNodeTypes(org.apache.calcite.rel.RelNode)"><code>RelMetadataQuery.getNodeTypes(org.apache.calcite.rel.RelNode)</code></a> for the standard logical algebra.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RelMdParallelism.html" title="class in org.apache.calcite.rel.metadata">RelMdParallelism</a></th>
<td class="colLast">
<div class="block">Default implementations of the
<a href="BuiltInMetadata.Parallelism.html" title="interface in org.apache.calcite.rel.metadata"><code>BuiltInMetadata.Parallelism</code></a>
metadata provider for the standard logical algebra.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RelMdPercentageOriginalRows.html" title="class in org.apache.calcite.rel.metadata">RelMdPercentageOriginalRows</a></th>
<td class="colLast">
<div class="block">RelMdPercentageOriginalRows supplies a default implementation of
<a href="RelMetadataQuery.html#getPercentageOriginalRows(org.apache.calcite.rel.RelNode)"><code>RelMetadataQuery.getPercentageOriginalRows(org.apache.calcite.rel.RelNode)</code></a> for the standard logical
algebra.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RelMdPopulationSize.html" title="class in org.apache.calcite.rel.metadata">RelMdPopulationSize</a></th>
<td class="colLast">
<div class="block">RelMdPopulationSize supplies a default implementation of
<a href="RelMetadataQuery.html#getPopulationSize(org.apache.calcite.rel.RelNode,org.apache.calcite.util.ImmutableBitSet)"><code>RelMetadataQuery.getPopulationSize(org.apache.calcite.rel.RelNode, org.apache.calcite.util.ImmutableBitSet)</code></a> for the standard logical algebra.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RelMdPredicates.html" title="class in org.apache.calcite.rel.metadata">RelMdPredicates</a></th>
<td class="colLast">
<div class="block">Utility to infer Predicates that are applicable above a RelNode.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RelMdPredicates.JoinConditionBasedPredicateInference.html" title="class in org.apache.calcite.rel.metadata">RelMdPredicates.JoinConditionBasedPredicateInference</a></th>
<td class="colLast">
<div class="block">Utility to infer predicates from one side of the join that apply on the
other side.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RelMdRowCount.html" title="class in org.apache.calcite.rel.metadata">RelMdRowCount</a></th>
<td class="colLast">
<div class="block">RelMdRowCount supplies a default implementation of
<a href="RelMetadataQuery.html#getRowCount(org.apache.calcite.rel.RelNode)"><code>RelMetadataQuery.getRowCount(org.apache.calcite.rel.RelNode)</code></a> for the standard logical algebra.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RelMdSelectivity.html" title="class in org.apache.calcite.rel.metadata">RelMdSelectivity</a></th>
<td class="colLast">
<div class="block">RelMdSelectivity supplies a default implementation of
<a href="RelMetadataQuery.html#getSelectivity(org.apache.calcite.rel.RelNode,org.apache.calcite.rex.RexNode)"><code>RelMetadataQuery.getSelectivity(org.apache.calcite.rel.RelNode, org.apache.calcite.rex.RexNode)</code></a> for the standard logical algebra.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RelMdSize.html" title="class in org.apache.calcite.rel.metadata">RelMdSize</a></th>
<td class="colLast">
<div class="block">Default implementations of the
<a href="BuiltInMetadata.Size.html" title="interface in org.apache.calcite.rel.metadata"><code>BuiltInMetadata.Size</code></a>
metadata provider for the standard logical algebra.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RelMdTableReferences.html" title="class in org.apache.calcite.rel.metadata">RelMdTableReferences</a></th>
<td class="colLast">
<div class="block">Default implementation of <a href="RelMetadataQuery.html#getTableReferences(org.apache.calcite.rel.RelNode)"><code>RelMetadataQuery.getTableReferences(org.apache.calcite.rel.RelNode)</code></a> for the
standard logical algebra.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RelMdUniqueKeys.html" title="class in org.apache.calcite.rel.metadata">RelMdUniqueKeys</a></th>
<td class="colLast">
<div class="block">RelMdUniqueKeys supplies a default implementation of
<a href="RelMetadataQuery.html#getUniqueKeys(org.apache.calcite.rel.RelNode)"><code>RelMetadataQuery.getUniqueKeys(org.apache.calcite.rel.RelNode)</code></a> for the standard logical algebra.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RelMdUtil.html" title="class in org.apache.calcite.rel.metadata">RelMdUtil</a></th>
<td class="colLast">
<div class="block">RelMdUtil provides utility methods used by the metadata provider methods.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="RelMdUtil.CardOfProjExpr.html" title="class in org.apache.calcite.rel.metadata">RelMdUtil.CardOfProjExpr</a></th>
<td class="colLast">
<div class="block">Visitor that walks over a scalar expression and computes the
cardinality of its result.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a></th>
<td class="colLast">
<div class="block">RelMetadataQuery provides a strongly-typed facade on top of
<a href="RelMetadataProvider.html" title="interface in org.apache.calcite.rel.metadata"><code>RelMetadataProvider</code></a> for the set of relational expression metadata
queries defined as standard within Calcite.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList">
<table class="typeSummary">
<caption><span>Enum Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Enum</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="NullSentinel.html" title="enum in org.apache.calcite.rel.metadata">NullSentinel</a></th>
<td class="colLast">
<div class="block">Placeholder for null values.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList">
<table class="typeSummary">
<caption><span>Exception Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Exception</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="CyclicMetadataException.html" title="class in org.apache.calcite.rel.metadata">CyclicMetadataException</a></th>
<td class="colLast">
<div class="block">Exception that indicates that a cycle has been detected while
computing metadata.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="JaninoRelMetadataProvider.NoHandler.html" title="class in org.apache.calcite.rel.metadata">JaninoRelMetadataProvider.NoHandler</a></th>
<td class="colLast">
<div class="block">Exception that indicates there there should be a handler for
this class but there is not.</div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
</div>
</main>
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li class="navBarCell1Rev">Package</li>
<li>Class</li>
<li><a href="package-use.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses.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>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</body>
</html>