| <!DOCTYPE HTML> |
| <html lang="en"> |
| <head> |
| <!-- Generated by javadoc (17) --> |
| <title>RelMetadataQuery (Apache Calcite API)</title> |
| <meta name="viewport" content="width=device-width, initial-scale=1"> |
| <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
| <meta name="description" content="declaration: package: org.apache.calcite.rel.metadata, class: RelMetadataQuery"> |
| <meta name="generator" content="javadoc/ClassWriterImpl"> |
| <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style"> |
| <link rel="stylesheet" type="text/css" href="../../../../../script-dir/jquery-ui.min.css" title="Style"> |
| <link rel="stylesheet" type="text/css" href="../../../../../jquery-ui.overrides.css" title="Style"> |
| <script type="text/javascript" src="../../../../../script.js"></script> |
| <script type="text/javascript" src="../../../../../script-dir/jquery-3.5.1.min.js"></script> |
| <script type="text/javascript" src="../../../../../script-dir/jquery-ui.min.js"></script> |
| </head> |
| <body class="class-declaration-page"> |
| <script type="text/javascript">var evenRowColor = "even-row-color"; |
| var oddRowColor = "odd-row-color"; |
| var tableTab = "table-tab"; |
| var activeTableTab = "active-table-tab"; |
| var pathtoroot = "../../../../../"; |
| loadScripts(document, 'script');</script> |
| <noscript> |
| <div>JavaScript is disabled on your browser.</div> |
| </noscript> |
| <div class="flex-box"> |
| <header role="banner" class="flex-header"> |
| <nav role="navigation"> |
| <!-- ========= START OF TOP NAVBAR ======= --> |
| <div class="top-nav" id="navbar-top"> |
| <div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> |
| <div class="about-language"><b>Apache Calcite</b></div> |
| <ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> |
| <li><a href="../../../../../index.html">Overview</a></li> |
| <li><a href="package-summary.html">Package</a></li> |
| <li class="nav-bar-cell1-rev">Class</li> |
| <li><a href="package-tree.html">Tree</a></li> |
| <li><a href="../../../../../deprecated-list.html">Deprecated</a></li> |
| <li><a href="../../../../../index-all.html">Index</a></li> |
| <li><a href="../../../../../help-doc.html#class">Help</a></li> |
| </ul> |
| </div> |
| <div class="sub-nav"> |
| <div> |
| <ul class="sub-nav-list"> |
| <li>Summary: </li> |
| <li>Nested | </li> |
| <li><a href="#field-summary">Field</a> | </li> |
| <li><a href="#constructor-summary">Constr</a> | </li> |
| <li><a href="#method-summary">Method</a></li> |
| </ul> |
| <ul class="sub-nav-list"> |
| <li>Detail: </li> |
| <li>Field | </li> |
| <li><a href="#constructor-detail">Constr</a> | </li> |
| <li><a href="#method-detail">Method</a></li> |
| </ul> |
| </div> |
| <div class="nav-list-search"><label for="search-input">SEARCH:</label> |
| <input type="text" id="search-input" value="search" disabled="disabled"> |
| <input type="reset" id="reset-button" value="reset" disabled="disabled"> |
| </div> |
| </div> |
| <!-- ========= END OF TOP NAVBAR ========= --> |
| <span class="skip-nav" id="skip-navbar-top"></span></nav> |
| </header> |
| <div class="flex-content"> |
| <main role="main"> |
| <!-- ======== START OF CLASS DATA ======== --> |
| <div class="header"> |
| <div class="sub-title"><span class="package-label-in-type">Package</span> <a href="package-summary.html">org.apache.calcite.rel.metadata</a></div> |
| <h1 title="Class RelMetadataQuery" class="title">Class RelMetadataQuery</h1> |
| </div> |
| <div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a> |
| <div class="inheritance"><a href="RelMetadataQueryBase.html" title="class in org.apache.calcite.rel.metadata">org.apache.calcite.rel.metadata.RelMetadataQueryBase</a> |
| <div class="inheritance">org.apache.calcite.rel.metadata.RelMetadataQuery</div> |
| </div> |
| </div> |
| <section class="class-description" id="class-description"> |
| <hr> |
| <div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">RelMetadataQuery</span> |
| <span class="extends-implements">extends <a href="RelMetadataQueryBase.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQueryBase</a></span></div> |
| <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. 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="RelMdColumnOrigins.html" title="class in 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="RelMdColumnOrigins.html#SOURCE"><code>RelMdColumnOrigins.SOURCE</code></a>. |
| <li>Register the <code>SOURCE</code> object in <a href="DefaultRelMetadataProvider.html" title="class in 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="../RelNode.html" title="interface in 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="DefaultRelMetadataProvider.html" title="class in 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> |
| </section> |
| <section class="summary"> |
| <ul class="summary-list"> |
| <!-- =========== FIELD SUMMARY =========== --> |
| <li> |
| <section class="field-summary" id="field-summary"> |
| <h2>Field Summary</h2> |
| <div class="inherited-list"> |
| <h3 id="fields-inherited-from-class-org.apache.calcite.rel.metadata.RelMetadataQueryBase">Fields inherited from class org.apache.calcite.rel.metadata.<a href="RelMetadataQueryBase.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQueryBase</a></h3> |
| <code><a href="RelMetadataQueryBase.html#map">map</a>, <a href="RelMetadataQueryBase.html#metadataProvider">metadataProvider</a>, <a href="RelMetadataQueryBase.html#THREAD_PROVIDERS">THREAD_PROVIDERS</a></code></div> |
| </section> |
| </li> |
| <!-- ======== CONSTRUCTOR SUMMARY ======== --> |
| <li> |
| <section class="constructor-summary" id="constructor-summary"> |
| <h2>Constructor Summary</h2> |
| <div class="caption"><span>Constructors</span></div> |
| <div class="summary-table three-column-summary"> |
| <div class="table-header col-first">Modifier</div> |
| <div class="table-header col-second">Constructor</div> |
| <div class="table-header col-last">Description</div> |
| <div class="col-first even-row-color"><code>protected </code></div> |
| <div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E()" class="member-name-link">RelMetadataQuery</a>()</code></div> |
| <div class="col-last even-row-color"> |
| <div class="block">Creates the instance with <a href="JaninoRelMetadataProvider.html" title="class in org.apache.calcite.rel.metadata"><code>JaninoRelMetadataProvider</code></a> instance |
| from <a href="RelMetadataQueryBase.html#THREAD_PROVIDERS"><code>RelMetadataQueryBase.THREAD_PROVIDERS</code></a> and <code>EMPTY</code> as a prototype.</div> |
| </div> |
| <div class="col-first odd-row-color"><code> </code></div> |
| <div class="col-constructor-name odd-row-color"><code><a href="#%3Cinit%3E(org.apache.calcite.rel.metadata.MetadataHandlerProvider)" class="member-name-link">RelMetadataQuery</a><wbr>(<a href="MetadataHandlerProvider.html" title="interface in org.apache.calcite.rel.metadata">MetadataHandlerProvider</a> provider)</code></div> |
| <div class="col-last odd-row-color"> |
| <div class="block">Create a RelMetadataQuery with a given <a href="MetadataHandlerProvider.html" title="interface in org.apache.calcite.rel.metadata"><code>MetadataHandlerProvider</code></a>.</div> |
| </div> |
| </div> |
| </section> |
| </li> |
| <!-- ========== METHOD SUMMARY =========== --> |
| <li> |
| <section class="method-summary" id="method-summary"> |
| <h2>Method Summary</h2> |
| <div id="method-summary-table"> |
| <div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab1" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab1', 3)" class="table-tab">Static Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div> |
| <div id="method-summary-table.tabpanel" role="tabpanel"> |
| <div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0"> |
| <div class="table-header col-first">Modifier and Type</div> |
| <div class="table-header col-second">Method</div> |
| <div class="table-header col-last">Description</div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Boolean.html" title="class or interface in java.lang" class="external-link">Boolean</a></code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#areColumnsUnique(org.apache.calcite.rel.RelNode,org.apache.calcite.util.ImmutableBitSet)" class="member-name-link">areColumnsUnique</a><wbr>(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel, |
| <a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a> columns)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.ColumnUniqueness.html#areColumnsUnique(org.apache.calcite.util.ImmutableBitSet,boolean)"><code>BuiltInMetadata.ColumnUniqueness.areColumnsUnique(ImmutableBitSet, boolean)</code></a> |
| statistic.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Boolean.html" title="class or interface in java.lang" class="external-link">Boolean</a></code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#areColumnsUnique(org.apache.calcite.rel.RelNode,org.apache.calcite.util.ImmutableBitSet,boolean)" class="member-name-link">areColumnsUnique</a><wbr>(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel, |
| <a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a> columns, |
| boolean ignoreNulls)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.ColumnUniqueness.html#areColumnsUnique(org.apache.calcite.util.ImmutableBitSet,boolean)"><code>BuiltInMetadata.ColumnUniqueness.areColumnsUnique(ImmutableBitSet, boolean)</code></a> |
| statistic.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Boolean.html" title="class or interface in java.lang" class="external-link">Boolean</a></code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#areRowsUnique(org.apache.calcite.rel.RelNode)" class="member-name-link">areRowsUnique</a><wbr>(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns whether the rows of a given relational expression are distinct.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Boolean.html" title="class or interface in java.lang" class="external-link">Boolean</a></code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#areRowsUnique(org.apache.calcite.rel.RelNode,boolean)" class="member-name-link">areRowsUnique</a><wbr>(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel, |
| boolean ignoreNulls)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns whether the rows of a given relational expression are distinct, |
| optionally ignoring NULL values.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>@Nullable com.google.common.collect.ImmutableList<<a href="../RelCollation.html" title="interface in org.apache.calcite.rel">RelCollation</a>></code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#collations(org.apache.calcite.rel.RelNode)" class="member-name-link">collations</a><wbr>(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.Collation.html#collations()"><code>BuiltInMetadata.Collation.collations()</code></a> |
| statistic.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a></code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#cumulativeMemoryWithinPhase(org.apache.calcite.rel.RelNode)" class="member-name-link">cumulativeMemoryWithinPhase</a><wbr>(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.Memory.html#cumulativeMemoryWithinPhase()"><code>BuiltInMetadata.Memory.cumulativeMemoryWithinPhase()</code></a> |
| statistic.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a></code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#cumulativeMemoryWithinPhaseSplit(org.apache.calcite.rel.RelNode)" class="member-name-link">cumulativeMemoryWithinPhaseSplit</a><wbr>(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.Memory.html#cumulativeMemoryWithinPhaseSplit()"><code>BuiltInMetadata.Memory.cumulativeMemoryWithinPhaseSplit()</code></a> |
| statistic.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="../RelDistribution.html" title="interface in org.apache.calcite.rel">RelDistribution</a></code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#distribution(org.apache.calcite.rel.RelNode)" class="member-name-link">distribution</a><wbr>(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.Distribution.html#distribution()"><code>BuiltInMetadata.Distribution.distribution()</code></a> |
| statistic.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>@Nullable <a href="../../plan/RelOptPredicateList.html" title="class in org.apache.calcite.plan">RelOptPredicateList</a></code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getAllPredicates(org.apache.calcite.rel.RelNode)" class="member-name-link">getAllPredicates</a><wbr>(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.AllPredicates.html#getAllPredicates()"><code>BuiltInMetadata.AllPredicates.getAllPredicates()</code></a> |
| statistic.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a><@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a>></code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getAverageColumnSizes(org.apache.calcite.rel.RelNode)" class="member-name-link">getAverageColumnSizes</a><wbr>(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.Size.html#averageColumnSizes()"><code>BuiltInMetadata.Size.averageColumnSizes()</code></a> |
| statistic.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a><@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a>></code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getAverageColumnSizesNotNull(org.apache.calcite.rel.RelNode)" class="member-name-link">getAverageColumnSizesNotNull</a><wbr>(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">As <a href="#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> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a></code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getAverageRowSize(org.apache.calcite.rel.RelNode)" class="member-name-link">getAverageRowSize</a><wbr>(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.Size.html#averageRowSize()"><code>BuiltInMetadata.Size.averageRowSize()</code></a> |
| statistic.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>@Nullable <a href="RelColumnOrigin.html" title="class in org.apache.calcite.rel.metadata">RelColumnOrigin</a></code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getColumnOrigin(org.apache.calcite.rel.RelNode,int)" class="member-name-link">getColumnOrigin</a><wbr>(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel, |
| int column)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Determines the origin of a column.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Set.html" title="class or interface in java.util" class="external-link">Set</a><<a href="RelColumnOrigin.html" title="class in org.apache.calcite.rel.metadata">RelColumnOrigin</a>></code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getColumnOrigins(org.apache.calcite.rel.RelNode,int)" class="member-name-link">getColumnOrigins</a><wbr>(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel, |
| int column)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.ColumnOrigin.html#getColumnOrigins(int)"><code>BuiltInMetadata.ColumnOrigin.getColumnOrigins(int)</code></a> |
| statistic.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>@Nullable <a href="../../plan/RelOptCost.html" title="interface in org.apache.calcite.plan">RelOptCost</a></code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getCumulativeCost(org.apache.calcite.rel.RelNode)" class="member-name-link">getCumulativeCost</a><wbr>(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.CumulativeCost.html#getCumulativeCost()"><code>BuiltInMetadata.CumulativeCost.getCumulativeCost()</code></a> |
| statistic.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a></code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getDistinctRowCount(org.apache.calcite.rel.RelNode,org.apache.calcite.util.ImmutableBitSet,org.apache.calcite.rex.RexNode)" class="member-name-link">getDistinctRowCount</a><wbr>(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel, |
| <a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a> groupKey, |
| @Nullable <a href="../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> predicate)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.DistinctRowCount.html#getDistinctRowCount(org.apache.calcite.util.ImmutableBitSet,org.apache.calcite.rex.RexNode)"><code>BuiltInMetadata.DistinctRowCount.getDistinctRowCount(ImmutableBitSet, RexNode)</code></a> |
| statistic.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>@Nullable <a href="../RelDistribution.html" title="interface in org.apache.calcite.rel">RelDistribution</a></code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getDistribution(org.apache.calcite.rel.RelNode)" class="member-name-link">getDistribution</a><wbr>(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.Distribution.html#distribution()"><code>BuiltInMetadata.Distribution.distribution()</code></a> |
| statistic.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Set.html" title="class or interface in java.util" class="external-link">Set</a><<a href="../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>></code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getExpressionLineage(org.apache.calcite.rel.RelNode,org.apache.calcite.rex.RexNode)" class="member-name-link">getExpressionLineage</a><wbr>(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel, |
| <a href="../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> expression)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Determines the origin of a column.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>@Nullable <a href="../../plan/RelOptCost.html" title="interface in org.apache.calcite.plan">RelOptCost</a></code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getLowerBoundCost(org.apache.calcite.rel.RelNode,org.apache.calcite.plan.volcano.VolcanoPlanner)" class="member-name-link">getLowerBoundCost</a><wbr>(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel, |
| <a href="../../plan/volcano/VolcanoPlanner.html" title="class in org.apache.calcite.plan.volcano">VolcanoPlanner</a> planner)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns the lower bound cost of a RelNode.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a></code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getMaxRowCount(org.apache.calcite.rel.RelNode)" class="member-name-link">getMaxRowCount</a><wbr>(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.MaxRowCount.html#getMaxRowCount()"><code>BuiltInMetadata.MaxRowCount.getMaxRowCount()</code></a> |
| statistic.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a></code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getMinRowCount(org.apache.calcite.rel.RelNode)" class="member-name-link">getMinRowCount</a><wbr>(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.MinRowCount.html#getMinRowCount()"><code>BuiltInMetadata.MinRowCount.getMinRowCount()</code></a> |
| statistic.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>@Nullable com.google.common.collect.Multimap<<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a><? extends <a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>>,<wbr><a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>></code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getNodeTypes(org.apache.calcite.rel.RelNode)" class="member-name-link">getNodeTypes</a><wbr>(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.NodeTypes.html#getNodeTypes()"><code>BuiltInMetadata.NodeTypes.getNodeTypes()</code></a> |
| statistic.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>@Nullable <a href="../../plan/RelOptCost.html" title="interface in org.apache.calcite.plan">RelOptCost</a></code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getNonCumulativeCost(org.apache.calcite.rel.RelNode)" class="member-name-link">getNonCumulativeCost</a><wbr>(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.NonCumulativeCost.html#getNonCumulativeCost()"><code>BuiltInMetadata.NonCumulativeCost.getNonCumulativeCost()</code></a> |
| statistic.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a></code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getPercentageOriginalRows(org.apache.calcite.rel.RelNode)" class="member-name-link">getPercentageOriginalRows</a><wbr>(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.PercentageOriginalRows.html#getPercentageOriginalRows()"><code>BuiltInMetadata.PercentageOriginalRows.getPercentageOriginalRows()</code></a> |
| statistic.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a></code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getPopulationSize(org.apache.calcite.rel.RelNode,org.apache.calcite.util.ImmutableBitSet)" class="member-name-link">getPopulationSize</a><wbr>(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel, |
| <a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a> groupKey)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.PopulationSize.html#getPopulationSize(org.apache.calcite.util.ImmutableBitSet)"><code>BuiltInMetadata.PopulationSize.getPopulationSize(ImmutableBitSet)</code></a> |
| statistic.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="../../plan/RelOptPredicateList.html" title="class in org.apache.calcite.plan">RelOptPredicateList</a></code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getPulledUpPredicates(org.apache.calcite.rel.RelNode)" class="member-name-link">getPulledUpPredicates</a><wbr>(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.Predicates.html#getPredicates()"><code>BuiltInMetadata.Predicates.getPredicates()</code></a> |
| statistic.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a></code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getRowCount(org.apache.calcite.rel.RelNode)" class="member-name-link">getRowCount</a><wbr>(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.RowCount.html#getRowCount()"><code>BuiltInMetadata.RowCount.getRowCount()</code></a> |
| statistic.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a></code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getSelectivity(org.apache.calcite.rel.RelNode,org.apache.calcite.rex.RexNode)" class="member-name-link">getSelectivity</a><wbr>(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel, |
| @Nullable <a href="../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> predicate)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.Selectivity.html#getSelectivity(org.apache.calcite.rex.RexNode)"><code>BuiltInMetadata.Selectivity.getSelectivity(RexNode)</code></a> |
| statistic.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>@Nullable <a href="../../plan/RelOptTable.html" title="interface in org.apache.calcite.plan">RelOptTable</a></code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getTableOrigin(org.apache.calcite.rel.RelNode)" class="member-name-link">getTableOrigin</a><wbr>(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Determines the origin of a <a href="../RelNode.html" title="interface in org.apache.calcite.rel"><code>RelNode</code></a>, provided it maps to a single |
| table, optionally with filtering and projection.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Set.html" title="class or interface in java.util" class="external-link">Set</a><<a href="../../rex/RexTableInputRef.RelTableRef.html" title="class in org.apache.calcite.rex">RexTableInputRef.RelTableRef</a>></code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getTableReferences(org.apache.calcite.rel.RelNode)" class="member-name-link">getTableReferences</a><wbr>(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Determines the tables used by a plan.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Set.html" title="class or interface in java.util" class="external-link">Set</a><<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>></code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getUniqueKeys(org.apache.calcite.rel.RelNode)" class="member-name-link">getUniqueKeys</a><wbr>(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.UniqueKeys.html#getUniqueKeys(boolean)"><code>BuiltInMetadata.UniqueKeys.getUniqueKeys(boolean)</code></a> |
| statistic.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Set.html" title="class or interface in java.util" class="external-link">Set</a><<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>></code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getUniqueKeys(org.apache.calcite.rel.RelNode,boolean)" class="member-name-link">getUniqueKeys</a><wbr>(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel, |
| boolean ignoreNulls)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.UniqueKeys.html#getUniqueKeys(boolean)"><code>BuiltInMetadata.UniqueKeys.getUniqueKeys(boolean)</code></a> |
| statistic.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a></code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#instance()" class="member-name-link">instance</a>()</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"> |
| <div class="block">Returns an instance of RelMetadataQuery.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Boolean.html" title="class or interface in java.lang" class="external-link">Boolean</a></code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isPhaseTransition(org.apache.calcite.rel.RelNode)" class="member-name-link">isPhaseTransition</a><wbr>(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.Parallelism.html#isPhaseTransition()"><code>BuiltInMetadata.Parallelism.isPhaseTransition()</code></a> |
| statistic.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Boolean.html" title="class or interface in java.lang" class="external-link">Boolean</a></code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isVisibleInExplain(org.apache.calcite.rel.RelNode,org.apache.calcite.sql.SqlExplainLevel)" class="member-name-link">isVisibleInExplain</a><wbr>(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel, |
| <a href="../../sql/SqlExplainLevel.html" title="enum in org.apache.calcite.sql">SqlExplainLevel</a> explainLevel)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.ExplainVisibility.html#isVisibleInExplain(org.apache.calcite.sql.SqlExplainLevel)"><code>BuiltInMetadata.ExplainVisibility.isVisibleInExplain(SqlExplainLevel)</code></a> |
| statistic.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a></code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#memory(org.apache.calcite.rel.RelNode)" class="member-name-link">memory</a><wbr>(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.Memory.html#memory()"><code>BuiltInMetadata.Memory.memory()</code></a> |
| statistic.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Integer.html" title="class or interface in java.lang" class="external-link">Integer</a></code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#splitCount(org.apache.calcite.rel.RelNode)" class="member-name-link">splitCount</a><wbr>(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.Parallelism.html#splitCount()"><code>BuiltInMetadata.Parallelism.splitCount()</code></a> |
| statistic.</div> |
| </div> |
| </div> |
| </div> |
| </div> |
| <div class="inherited-list"> |
| <h3 id="methods-inherited-from-class-org.apache.calcite.rel.metadata.RelMetadataQueryBase">Methods inherited from class org.apache.calcite.rel.metadata.<a href="RelMetadataQueryBase.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQueryBase</a></h3> |
| <code><a href="RelMetadataQueryBase.html#clearCache(org.apache.calcite.rel.RelNode)">clearCache</a>, <a href="RelMetadataQueryBase.html#handler(java.lang.Class)">handler</a>, <a href="RelMetadataQueryBase.html#initialHandler(java.lang.Class)">initialHandler</a>, <a href="RelMetadataQueryBase.html#revise(java.lang.Class,org.apache.calcite.rel.metadata.MetadataDef)">revise</a>, <a href="RelMetadataQueryBase.html#revise(java.lang.Class)">revise</a></code></div> |
| <div class="inherited-list"> |
| <h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3> |
| <code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div> |
| </section> |
| </li> |
| </ul> |
| </section> |
| <section class="details"> |
| <ul class="details-list"> |
| <!-- ========= CONSTRUCTOR DETAIL ======== --> |
| <li> |
| <section class="constructor-details" id="constructor-detail"> |
| <h2>Constructor Details</h2> |
| <ul class="member-list"> |
| <li> |
| <section class="detail" id="<init>()"> |
| <h3>RelMetadataQuery</h3> |
| <div class="member-signature"><span class="modifiers">protected</span> <span class="element-name">RelMetadataQuery</span>()</div> |
| <div class="block">Creates the instance with <a href="JaninoRelMetadataProvider.html" title="class in org.apache.calcite.rel.metadata"><code>JaninoRelMetadataProvider</code></a> instance |
| from <a href="RelMetadataQueryBase.html#THREAD_PROVIDERS"><code>RelMetadataQueryBase.THREAD_PROVIDERS</code></a> and <code>EMPTY</code> as a prototype.</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="<init>(org.apache.calcite.rel.metadata.MetadataHandlerProvider)"> |
| <h3>RelMetadataQuery</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="element-name">RelMetadataQuery</span><wbr><span class="parameters">(<a href="MetadataHandlerProvider.html" title="interface in org.apache.calcite.rel.metadata">MetadataHandlerProvider</a> provider)</span></div> |
| <div class="block">Create a RelMetadataQuery with a given <a href="MetadataHandlerProvider.html" title="interface in org.apache.calcite.rel.metadata"><code>MetadataHandlerProvider</code></a>.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>provider</code> - The provider to use for construction.</dd> |
| </dl> |
| </section> |
| </li> |
| </ul> |
| </section> |
| </li> |
| <!-- ============ METHOD DETAIL ========== --> |
| <li> |
| <section class="method-details" id="method-detail"> |
| <h2>Method Details</h2> |
| <ul class="member-list"> |
| <li> |
| <section class="detail" id="instance()"> |
| <h3>instance</h3> |
| <div class="member-signature"><span class="modifiers">public static</span> <span class="return-type"><a href="RelMetadataQuery.html" title="class in org.apache.calcite.rel.metadata">RelMetadataQuery</a></span> <span class="element-name">instance</span>()</div> |
| <div class="block">Returns an instance of RelMetadataQuery. It ensures that cycles do not |
| occur while computing metadata.</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getNodeTypes(org.apache.calcite.rel.RelNode)"> |
| <h3>getNodeTypes</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">@Nullable com.google.common.collect.Multimap<<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a><? extends <a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>>,<wbr><a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>></span> <span class="element-name">getNodeTypes</span><wbr><span class="parameters">(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel)</span></div> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.NodeTypes.html#getNodeTypes()"><code>BuiltInMetadata.NodeTypes.getNodeTypes()</code></a> |
| statistic.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>rel</code> - the relational expression</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getRowCount(org.apache.calcite.rel.RelNode)"> |
| <h3>getRowCount</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a></span> <span class="element-name">getRowCount</span><wbr><span class="parameters">(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel)</span></div> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.RowCount.html#getRowCount()"><code>BuiltInMetadata.RowCount.getRowCount()</code></a> |
| statistic.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>rel</code> - the relational expression</dd> |
| <dt>Returns:</dt> |
| <dd>estimated row count, or null if no reliable estimate can be |
| determined</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getMaxRowCount(org.apache.calcite.rel.RelNode)"> |
| <h3>getMaxRowCount</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a></span> <span class="element-name">getMaxRowCount</span><wbr><span class="parameters">(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel)</span></div> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.MaxRowCount.html#getMaxRowCount()"><code>BuiltInMetadata.MaxRowCount.getMaxRowCount()</code></a> |
| statistic.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>rel</code> - the relational expression</dd> |
| <dt>Returns:</dt> |
| <dd>max row count</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getMinRowCount(org.apache.calcite.rel.RelNode)"> |
| <h3>getMinRowCount</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a></span> <span class="element-name">getMinRowCount</span><wbr><span class="parameters">(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel)</span></div> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.MinRowCount.html#getMinRowCount()"><code>BuiltInMetadata.MinRowCount.getMinRowCount()</code></a> |
| statistic.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>rel</code> - the relational expression</dd> |
| <dt>Returns:</dt> |
| <dd>max row count</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getCumulativeCost(org.apache.calcite.rel.RelNode)"> |
| <h3>getCumulativeCost</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">@Nullable <a href="../../plan/RelOptCost.html" title="interface in org.apache.calcite.plan">RelOptCost</a></span> <span class="element-name">getCumulativeCost</span><wbr><span class="parameters">(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel)</span></div> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.CumulativeCost.html#getCumulativeCost()"><code>BuiltInMetadata.CumulativeCost.getCumulativeCost()</code></a> |
| statistic.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>rel</code> - the relational expression</dd> |
| <dt>Returns:</dt> |
| <dd>estimated cost, or null if no reliable estimate can be determined</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getNonCumulativeCost(org.apache.calcite.rel.RelNode)"> |
| <h3>getNonCumulativeCost</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">@Nullable <a href="../../plan/RelOptCost.html" title="interface in org.apache.calcite.plan">RelOptCost</a></span> <span class="element-name">getNonCumulativeCost</span><wbr><span class="parameters">(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel)</span></div> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.NonCumulativeCost.html#getNonCumulativeCost()"><code>BuiltInMetadata.NonCumulativeCost.getNonCumulativeCost()</code></a> |
| statistic.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>rel</code> - the relational expression</dd> |
| <dt>Returns:</dt> |
| <dd>estimated cost, or null if no reliable estimate can be determined</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getPercentageOriginalRows(org.apache.calcite.rel.RelNode)"> |
| <h3>getPercentageOriginalRows</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a></span> <span class="element-name">getPercentageOriginalRows</span><wbr><span class="parameters">(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel)</span></div> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.PercentageOriginalRows.html#getPercentageOriginalRows()"><code>BuiltInMetadata.PercentageOriginalRows.getPercentageOriginalRows()</code></a> |
| statistic.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>rel</code> - the relational expression</dd> |
| <dt>Returns:</dt> |
| <dd>estimated percentage (between 0.0 and 1.0), or null if no |
| reliable estimate can be determined</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getColumnOrigins(org.apache.calcite.rel.RelNode,int)"> |
| <h3>getColumnOrigins</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Set.html" title="class or interface in java.util" class="external-link">Set</a><<a href="RelColumnOrigin.html" title="class in org.apache.calcite.rel.metadata">RelColumnOrigin</a>></span> <span class="element-name">getColumnOrigins</span><wbr><span class="parameters">(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel, |
| int column)</span></div> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.ColumnOrigin.html#getColumnOrigins(int)"><code>BuiltInMetadata.ColumnOrigin.getColumnOrigins(int)</code></a> |
| statistic.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>rel</code> - the relational expression</dd> |
| <dd><code>column</code> - 0-based ordinal for output column of interest</dd> |
| <dt>Returns:</dt> |
| <dd>set of origin columns, or null if this information cannot be |
| determined (whereas empty set indicates Handler.classinitely no origin columns at |
| all)</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getColumnOrigin(org.apache.calcite.rel.RelNode,int)"> |
| <h3>getColumnOrigin</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">@Nullable <a href="RelColumnOrigin.html" title="class in org.apache.calcite.rel.metadata">RelColumnOrigin</a></span> <span class="element-name">getColumnOrigin</span><wbr><span class="parameters">(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel, |
| int column)</span></div> |
| <div class="block">Determines the origin of a column.</div> |
| <dl class="notes"> |
| <dt>Parameters:</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>Returns:</dt> |
| <dd>the origin of a column</dd> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="see-list-long"> |
| <li><a href="#getColumnOrigins(org.apache.calcite.rel.RelNode,int)"><code>getColumnOrigins(org.apache.calcite.rel.RelNode, int)</code></a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getExpressionLineage(org.apache.calcite.rel.RelNode,org.apache.calcite.rex.RexNode)"> |
| <h3>getExpressionLineage</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Set.html" title="class or interface in java.util" class="external-link">Set</a><<a href="../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>></span> <span class="element-name">getExpressionLineage</span><wbr><span class="parameters">(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel, |
| <a href="../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> expression)</span></div> |
| <div class="block">Determines the origin of a column.</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getTableReferences(org.apache.calcite.rel.RelNode)"> |
| <h3>getTableReferences</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Set.html" title="class or interface in java.util" class="external-link">Set</a><<a href="../../rex/RexTableInputRef.RelTableRef.html" title="class in org.apache.calcite.rex">RexTableInputRef.RelTableRef</a>></span> <span class="element-name">getTableReferences</span><wbr><span class="parameters">(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel)</span></div> |
| <div class="block">Determines the tables used by a plan.</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getTableOrigin(org.apache.calcite.rel.RelNode)"> |
| <h3>getTableOrigin</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">@Nullable <a href="../../plan/RelOptTable.html" title="interface in org.apache.calcite.plan">RelOptTable</a></span> <span class="element-name">getTableOrigin</span><wbr><span class="parameters">(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel)</span></div> |
| <div class="block">Determines the origin of a <a href="../RelNode.html" title="interface in org.apache.calcite.rel"><code>RelNode</code></a>, provided it maps to a single |
| table, optionally with filtering and projection.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>rel</code> - the RelNode</dd> |
| <dt>Returns:</dt> |
| <dd>the table, if the RelNode is a simple table; otherwise null</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getSelectivity(org.apache.calcite.rel.RelNode,org.apache.calcite.rex.RexNode)"> |
| <h3>getSelectivity</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a></span> <span class="element-name">getSelectivity</span><wbr><span class="parameters">(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel, |
| @Nullable <a href="../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> predicate)</span></div> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.Selectivity.html#getSelectivity(org.apache.calcite.rex.RexNode)"><code>BuiltInMetadata.Selectivity.getSelectivity(RexNode)</code></a> |
| statistic.</div> |
| <dl class="notes"> |
| <dt>Parameters:</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>Returns:</dt> |
| <dd>estimated selectivity (between 0.0 and 1.0), or null if no |
| reliable estimate can be determined</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getUniqueKeys(org.apache.calcite.rel.RelNode)"> |
| <h3>getUniqueKeys</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Set.html" title="class or interface in java.util" class="external-link">Set</a><<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>></span> <span class="element-name">getUniqueKeys</span><wbr><span class="parameters">(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel)</span></div> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.UniqueKeys.html#getUniqueKeys(boolean)"><code>BuiltInMetadata.UniqueKeys.getUniqueKeys(boolean)</code></a> |
| statistic.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>rel</code> - the relational expression</dd> |
| <dt>Returns:</dt> |
| <dd>set of keys, or null if this information cannot be determined |
| (whereas empty set indicates Handler.classinitely no keys at all)</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getUniqueKeys(org.apache.calcite.rel.RelNode,boolean)"> |
| <h3>getUniqueKeys</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Set.html" title="class or interface in java.util" class="external-link">Set</a><<a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>></span> <span class="element-name">getUniqueKeys</span><wbr><span class="parameters">(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel, |
| boolean ignoreNulls)</span></div> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.UniqueKeys.html#getUniqueKeys(boolean)"><code>BuiltInMetadata.UniqueKeys.getUniqueKeys(boolean)</code></a> |
| statistic.</div> |
| <dl class="notes"> |
| <dt>Parameters:</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>Returns:</dt> |
| <dd>set of keys, or null if this information cannot be determined |
| (whereas empty set indicates definitely no keys at all)</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="areRowsUnique(org.apache.calcite.rel.RelNode,boolean)"> |
| <h3>areRowsUnique</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Boolean.html" title="class or interface in java.lang" class="external-link">Boolean</a></span> <span class="element-name">areRowsUnique</span><wbr><span class="parameters">(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel, |
| boolean ignoreNulls)</span></div> |
| <div class="block">Returns whether the rows of a given relational expression are distinct, |
| optionally ignoring NULL values. |
| |
| <p>This is derived by applying the |
| <a href="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. If |
| <a href="BuiltInMetadata.MaxRowCount.html#getMaxRowCount()"><code>BuiltInMetadata.MaxRowCount.getMaxRowCount()</code></a> |
| is less than or equal to one, we shortcut the process and declare the rows |
| unique.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>rel</code> - the relational expression</dd> |
| <dd><code>ignoreNulls</code> - if true, ignore null values when determining column |
| uniqueness</dd> |
| <dt>Returns:</dt> |
| <dd>whether the rows are unique, or |
| null if not enough information is available to make that determination</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="areRowsUnique(org.apache.calcite.rel.RelNode)"> |
| <h3>areRowsUnique</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Boolean.html" title="class or interface in java.lang" class="external-link">Boolean</a></span> <span class="element-name">areRowsUnique</span><wbr><span class="parameters">(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel)</span></div> |
| <div class="block">Returns whether the rows of a given relational expression are distinct. |
| |
| <p>Derived by calling <a href="#areRowsUnique(org.apache.calcite.rel.RelNode,boolean)"><code>areRowsUnique(RelNode, boolean)</code></a>.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>rel</code> - the relational expression</dd> |
| <dt>Returns:</dt> |
| <dd>whether the rows are unique, or |
| null if not enough information is available to make that determination</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="areColumnsUnique(org.apache.calcite.rel.RelNode,org.apache.calcite.util.ImmutableBitSet)"> |
| <h3>areColumnsUnique</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Boolean.html" title="class or interface in java.lang" class="external-link">Boolean</a></span> <span class="element-name">areColumnsUnique</span><wbr><span class="parameters">(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel, |
| <a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a> columns)</span></div> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.ColumnUniqueness.html#areColumnsUnique(org.apache.calcite.util.ImmutableBitSet,boolean)"><code>BuiltInMetadata.ColumnUniqueness.areColumnsUnique(ImmutableBitSet, boolean)</code></a> |
| statistic.</div> |
| <dl class="notes"> |
| <dt>Parameters:</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>Returns:</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> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="areColumnsUnique(org.apache.calcite.rel.RelNode,org.apache.calcite.util.ImmutableBitSet,boolean)"> |
| <h3>areColumnsUnique</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Boolean.html" title="class or interface in java.lang" class="external-link">Boolean</a></span> <span class="element-name">areColumnsUnique</span><wbr><span class="parameters">(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel, |
| <a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a> columns, |
| boolean ignoreNulls)</span></div> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.ColumnUniqueness.html#areColumnsUnique(org.apache.calcite.util.ImmutableBitSet,boolean)"><code>BuiltInMetadata.ColumnUniqueness.areColumnsUnique(ImmutableBitSet, boolean)</code></a> |
| statistic.</div> |
| <dl class="notes"> |
| <dt>Parameters:</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>Returns:</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> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="collations(org.apache.calcite.rel.RelNode)"> |
| <h3>collations</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">@Nullable com.google.common.collect.ImmutableList<<a href="../RelCollation.html" title="interface in org.apache.calcite.rel">RelCollation</a>></span> <span class="element-name">collations</span><wbr><span class="parameters">(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel)</span></div> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.Collation.html#collations()"><code>BuiltInMetadata.Collation.collations()</code></a> |
| statistic.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>rel</code> - the relational expression</dd> |
| <dt>Returns:</dt> |
| <dd>List of sorted column combinations, or |
| null if not enough information is available to make that determination</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="distribution(org.apache.calcite.rel.RelNode)"> |
| <h3>distribution</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="../RelDistribution.html" title="interface in org.apache.calcite.rel">RelDistribution</a></span> <span class="element-name">distribution</span><wbr><span class="parameters">(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel)</span></div> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.Distribution.html#distribution()"><code>BuiltInMetadata.Distribution.distribution()</code></a> |
| statistic.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>rel</code> - the relational expression</dd> |
| <dt>Returns:</dt> |
| <dd>List of sorted column combinations, or |
| null if not enough information is available to make that determination</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getPopulationSize(org.apache.calcite.rel.RelNode,org.apache.calcite.util.ImmutableBitSet)"> |
| <h3>getPopulationSize</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a></span> <span class="element-name">getPopulationSize</span><wbr><span class="parameters">(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel, |
| <a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a> groupKey)</span></div> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.PopulationSize.html#getPopulationSize(org.apache.calcite.util.ImmutableBitSet)"><code>BuiltInMetadata.PopulationSize.getPopulationSize(ImmutableBitSet)</code></a> |
| statistic.</div> |
| <dl class="notes"> |
| <dt>Parameters:</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>Returns:</dt> |
| <dd>distinct row count for the given groupKey, or null if no reliable |
| estimate can be determined</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getAverageRowSize(org.apache.calcite.rel.RelNode)"> |
| <h3>getAverageRowSize</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a></span> <span class="element-name">getAverageRowSize</span><wbr><span class="parameters">(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel)</span></div> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.Size.html#averageRowSize()"><code>BuiltInMetadata.Size.averageRowSize()</code></a> |
| statistic.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>rel</code> - the relational expression</dd> |
| <dt>Returns:</dt> |
| <dd>average size of a row, in bytes, or null if not known</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getAverageColumnSizes(org.apache.calcite.rel.RelNode)"> |
| <h3>getAverageColumnSizes</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a><@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a>></span> <span class="element-name">getAverageColumnSizes</span><wbr><span class="parameters">(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel)</span></div> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.Size.html#averageColumnSizes()"><code>BuiltInMetadata.Size.averageColumnSizes()</code></a> |
| statistic.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>rel</code> - the relational expression</dd> |
| <dt>Returns:</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> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getAverageColumnSizesNotNull(org.apache.calcite.rel.RelNode)"> |
| <h3>getAverageColumnSizesNotNull</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a><@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a>></span> <span class="element-name">getAverageColumnSizesNotNull</span><wbr><span class="parameters">(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel)</span></div> |
| <div class="block">As <a href="#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> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="isPhaseTransition(org.apache.calcite.rel.RelNode)"> |
| <h3>isPhaseTransition</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Boolean.html" title="class or interface in java.lang" class="external-link">Boolean</a></span> <span class="element-name">isPhaseTransition</span><wbr><span class="parameters">(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel)</span></div> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.Parallelism.html#isPhaseTransition()"><code>BuiltInMetadata.Parallelism.isPhaseTransition()</code></a> |
| statistic.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>rel</code> - the relational expression</dd> |
| <dt>Returns:</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> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="splitCount(org.apache.calcite.rel.RelNode)"> |
| <h3>splitCount</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Integer.html" title="class or interface in java.lang" class="external-link">Integer</a></span> <span class="element-name">splitCount</span><wbr><span class="parameters">(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel)</span></div> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.Parallelism.html#splitCount()"><code>BuiltInMetadata.Parallelism.splitCount()</code></a> |
| statistic.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>rel</code> - the relational expression</dd> |
| <dt>Returns:</dt> |
| <dd>the number of distinct splits of the data, or null if not known</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="memory(org.apache.calcite.rel.RelNode)"> |
| <h3>memory</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a></span> <span class="element-name">memory</span><wbr><span class="parameters">(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel)</span></div> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.Memory.html#memory()"><code>BuiltInMetadata.Memory.memory()</code></a> |
| statistic.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>rel</code> - the relational expression</dd> |
| <dt>Returns:</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> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="cumulativeMemoryWithinPhase(org.apache.calcite.rel.RelNode)"> |
| <h3>cumulativeMemoryWithinPhase</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a></span> <span class="element-name">cumulativeMemoryWithinPhase</span><wbr><span class="parameters">(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel)</span></div> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.Memory.html#cumulativeMemoryWithinPhase()"><code>BuiltInMetadata.Memory.cumulativeMemoryWithinPhase()</code></a> |
| statistic.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>rel</code> - the relational expression</dd> |
| <dt>Returns:</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> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="cumulativeMemoryWithinPhaseSplit(org.apache.calcite.rel.RelNode)"> |
| <h3>cumulativeMemoryWithinPhaseSplit</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a></span> <span class="element-name">cumulativeMemoryWithinPhaseSplit</span><wbr><span class="parameters">(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel)</span></div> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.Memory.html#cumulativeMemoryWithinPhaseSplit()"><code>BuiltInMetadata.Memory.cumulativeMemoryWithinPhaseSplit()</code></a> |
| statistic.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>rel</code> - the relational expression</dd> |
| <dt>Returns:</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> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getDistinctRowCount(org.apache.calcite.rel.RelNode,org.apache.calcite.util.ImmutableBitSet,org.apache.calcite.rex.RexNode)"> |
| <h3>getDistinctRowCount</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">@Nullable <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a></span> <span class="element-name">getDistinctRowCount</span><wbr><span class="parameters">(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel, |
| <a href="../../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a> groupKey, |
| @Nullable <a href="../../rex/RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> predicate)</span></div> |
| <div class="block">Returns the |
| <a href="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 class="notes"> |
| <dt>Parameters:</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>Returns:</dt> |
| <dd>distinct row count for groupKey, filtered by predicate, or null |
| if no reliable estimate can be determined</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getPulledUpPredicates(org.apache.calcite.rel.RelNode)"> |
| <h3>getPulledUpPredicates</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="../../plan/RelOptPredicateList.html" title="class in org.apache.calcite.plan">RelOptPredicateList</a></span> <span class="element-name">getPulledUpPredicates</span><wbr><span class="parameters">(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel)</span></div> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.Predicates.html#getPredicates()"><code>BuiltInMetadata.Predicates.getPredicates()</code></a> |
| statistic.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>rel</code> - the relational expression</dd> |
| <dt>Returns:</dt> |
| <dd>Predicates that can be pulled above this RelNode</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getAllPredicates(org.apache.calcite.rel.RelNode)"> |
| <h3>getAllPredicates</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">@Nullable <a href="../../plan/RelOptPredicateList.html" title="class in org.apache.calcite.plan">RelOptPredicateList</a></span> <span class="element-name">getAllPredicates</span><wbr><span class="parameters">(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel)</span></div> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.AllPredicates.html#getAllPredicates()"><code>BuiltInMetadata.AllPredicates.getAllPredicates()</code></a> |
| statistic.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>rel</code> - the relational expression</dd> |
| <dt>Returns:</dt> |
| <dd>All predicates within and below this RelNode</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="isVisibleInExplain(org.apache.calcite.rel.RelNode,org.apache.calcite.sql.SqlExplainLevel)"> |
| <h3>isVisibleInExplain</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Boolean.html" title="class or interface in java.lang" class="external-link">Boolean</a></span> <span class="element-name">isVisibleInExplain</span><wbr><span class="parameters">(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel, |
| <a href="../../sql/SqlExplainLevel.html" title="enum in org.apache.calcite.sql">SqlExplainLevel</a> explainLevel)</span></div> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.ExplainVisibility.html#isVisibleInExplain(org.apache.calcite.sql.SqlExplainLevel)"><code>BuiltInMetadata.ExplainVisibility.isVisibleInExplain(SqlExplainLevel)</code></a> |
| statistic.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>rel</code> - the relational expression</dd> |
| <dd><code>explainLevel</code> - level of detail</dd> |
| <dt>Returns:</dt> |
| <dd>true for visible, false for invisible; if no metadata is available, |
| defaults to true</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getDistribution(org.apache.calcite.rel.RelNode)"> |
| <h3>getDistribution</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">@Nullable <a href="../RelDistribution.html" title="interface in org.apache.calcite.rel">RelDistribution</a></span> <span class="element-name">getDistribution</span><wbr><span class="parameters">(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel)</span></div> |
| <div class="block">Returns the |
| <a href="BuiltInMetadata.Distribution.html#distribution()"><code>BuiltInMetadata.Distribution.distribution()</code></a> |
| statistic.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>rel</code> - the relational expression</dd> |
| <dt>Returns:</dt> |
| <dd>description of how the rows in the relational expression are |
| physically distributed</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getLowerBoundCost(org.apache.calcite.rel.RelNode,org.apache.calcite.plan.volcano.VolcanoPlanner)"> |
| <h3>getLowerBoundCost</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">@Nullable <a href="../../plan/RelOptCost.html" title="interface in org.apache.calcite.plan">RelOptCost</a></span> <span class="element-name">getLowerBoundCost</span><wbr><span class="parameters">(<a href="../RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a> rel, |
| <a href="../../plan/volcano/VolcanoPlanner.html" title="class in org.apache.calcite.plan.volcano">VolcanoPlanner</a> planner)</span></div> |
| <div class="block">Returns the lower bound cost of a RelNode.</div> |
| </section> |
| </li> |
| </ul> |
| </section> |
| </li> |
| </ul> |
| </section> |
| <!-- ========= END OF CLASS DATA ========= --> |
| </main> |
| <footer role="contentinfo"> |
| <hr> |
| <p class="legal-copy"><small>Copyright © 2012-2023 Apache Software Foundation. All Rights Reserved.</small></p> |
| </footer> |
| </div> |
| </div> |
| </body> |
| </html> |