blob: a623873c439beffc43c5a8e4a38b870b4f3cd4f6 [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>RelMetadataFixture (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.test, class: RelMetadataFixture">
<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:&nbsp;</li>
<li><a href="#nested-class-summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field-summary">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li><a href="#field-detail">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</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>&nbsp;<a href="package-summary.html">org.apache.calcite.test</a></div>
<h1 title="Class RelMetadataFixture" class="title">Class RelMetadataFixture</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">org.apache.calcite.test.RelMetadataFixture</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">RelMetadataFixture</span>
<span class="extends-implements">extends <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></span></div>
<div class="block">Parameters for a Metadata test.</div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<li>
<section class="nested-class-summary" id="nested-class-summary">
<h2>Nested Class Summary</h2>
<div class="caption"><span>Nested Classes</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Class</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>static class&nbsp;</code></div>
<div class="col-second even-row-color"><code><a href="RelMetadataFixture.MetadataConfig.html" class="type-name-link" title="class in org.apache.calcite.test">RelMetadataFixture.MetadataConfig</a></code></div>
<div class="col-last even-row-color">
<div class="block">A configuration that describes how metadata should be configured.</div>
</div>
</div>
</section>
</li>
<!-- =========== FIELD SUMMARY =========== -->
<li>
<section class="field-summary" id="field-summary">
<h2>Field Summary</h2>
<div class="caption"><span>Fields</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Field</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>final boolean</code></div>
<div class="col-second even-row-color"><code><a href="#convertAsCalc" class="member-name-link">convertAsCalc</a></code></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><code>static final <a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></code></div>
<div class="col-second odd-row-color"><code><a href="#DEFAULT" class="member-name-link">DEFAULT</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Default fixture.</div>
</div>
<div class="col-first even-row-color"><code>final <a href="../sql/test/SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a></code></div>
<div class="col-second even-row-color"><code><a href="#factory" class="member-name-link">factory</a></code></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><code>final <a href="RelMetadataFixture.MetadataConfig.html" title="class in org.apache.calcite.test">RelMetadataFixture.MetadataConfig</a></code></div>
<div class="col-second odd-row-color"><code><a href="#metadataConfig" class="member-name-link">metadataConfig</a></code></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><code>final org.apache.calcite.test.RelSupplier</code></div>
<div class="col-second even-row-color"><code><a href="#relSupplier" class="member-name-link">relSupplier</a></code></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><code>final <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/function/UnaryOperator.html" title="class or interface in java.util.function" class="external-link">UnaryOperator</a>&lt;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&gt;</code></div>
<div class="col-second odd-row-color"><code><a href="#relTransform" class="member-name-link">relTransform</a></code></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><code>final <a href="../sql/test/SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a></code></div>
<div class="col-second even-row-color"><code><a href="#tester" class="member-name-link">tester</a></code></div>
<div class="col-last even-row-color">&nbsp;</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-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><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#assertColumnOriginDouble(java.lang.String,java.lang.String,java.lang.String,java.lang.String,boolean)" class="member-name-link">assertColumnOriginDouble</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;expectedTableName1,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;expectedColumnName1,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;expectedTableName2,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;expectedColumnName2,
boolean&nbsp;expectedDerived)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Checks that <a href="../rel/metadata/RelMetadataQuery.html#getColumnOrigins(org.apache.calcite.rel.RelNode,int)"><code>RelMetadataQuery.getColumnOrigins(RelNode, int)</code></a>
for column 0 returns two origins.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#assertColumnOriginIsEmpty()" class="member-name-link">assertColumnOriginIsEmpty</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Checks that <a href="../rel/metadata/RelMetadataQuery.html#getColumnOrigins(org.apache.calcite.rel.RelNode,int)"><code>RelMetadataQuery.getColumnOrigins(RelNode, int)</code></a>
for column 0 returns no origins.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#assertColumnOriginSingle(java.lang.String,java.lang.String,boolean)" class="member-name-link">assertColumnOriginSingle</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;expectedTableName,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;expectedColumnName,
boolean&nbsp;expectedDerived)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Checks that <a href="../rel/metadata/RelMetadataQuery.html#getColumnOrigins(org.apache.calcite.rel.RelNode,int)"><code>RelMetadataQuery.getColumnOrigins(RelNode, int)</code></a>
for column 0 returns one origin.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#assertCpuCost(org.hamcrest.Matcher,java.lang.String)" class="member-name-link">assertCpuCost</a><wbr>(org.hamcrest.Matcher&lt;<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>&gt;&nbsp;matcher,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;reason)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Checks the CPU component of
<a href="../rel/RelNode.html#computeSelfCost(org.apache.calcite.plan.RelOptPlanner,org.apache.calcite.rel.metadata.RelMetadataQuery)"><code>RelNode.computeSelfCost(RelOptPlanner, RelMetadataQuery)</code></a>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#assertPercentageOriginalRows(org.hamcrest.Matcher)" class="member-name-link">assertPercentageOriginalRows</a><wbr>(org.hamcrest.Matcher&lt;<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>&gt;&nbsp;matcher)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Checks <a href="../rel/metadata/RelMetadataQuery.html#getPercentageOriginalRows(org.apache.calcite.rel.RelNode)"><code>RelMetadataQuery.getPercentageOriginalRows(RelNode)</code></a>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#assertRowsUnique(boolean,org.hamcrest.Matcher,java.lang.String)" class="member-name-link">assertRowsUnique</a><wbr>(boolean&nbsp;ignoreNulls,
org.hamcrest.Matcher&lt;<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>&gt;&nbsp;matcher,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;reason)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Checks <a href="../rel/metadata/RelMetadataQuery.html#areRowsUnique(org.apache.calcite.rel.RelNode)"><code>RelMetadataQuery.areRowsUnique(RelNode)</code></a>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#assertRowsUnique(org.hamcrest.Matcher,java.lang.String)" class="member-name-link">assertRowsUnique</a><wbr>(org.hamcrest.Matcher&lt;<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>&gt;&nbsp;matcher,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;reason)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Checks <a href="../rel/metadata/RelMetadataQuery.html#areRowsUnique(org.apache.calcite.rel.RelNode)"><code>RelMetadataQuery.areRowsUnique(RelNode)</code></a> for all
values of <code>ignoreNulls</code>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#assertThatAreColumnsUnique(java.util.function.Function,java.util.function.UnaryOperator,org.hamcrest.Matcher)" class="member-name-link">assertThatAreColumnsUnique</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/function/Function.html" title="class or interface in java.util.function" class="external-link">Function</a>&lt;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>,<wbr><a href="../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&nbsp;columnsFn,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/function/UnaryOperator.html" title="class or interface in java.util.function" class="external-link">UnaryOperator</a>&lt;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&gt;&nbsp;relFn,
org.hamcrest.Matcher&lt;<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>&gt;&nbsp;matcher)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Checks <a href="../rel/metadata/RelMetadataQuery.html#areColumnsUnique(org.apache.calcite.rel.RelNode,org.apache.calcite.util.ImmutableBitSet)"><code>RelMetadataQuery.areColumnsUnique(RelNode, ImmutableBitSet)</code></a>,
deriving parameters via functions.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#assertThatAreColumnsUnique(org.apache.calcite.util.ImmutableBitSet,org.hamcrest.Matcher)" class="member-name-link">assertThatAreColumnsUnique</a><wbr>(<a href="../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;columns,
org.hamcrest.Matcher&lt;<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>&gt;&nbsp;matcher)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Checks <a href="../rel/metadata/RelMetadataQuery.html#areColumnsUnique(org.apache.calcite.rel.RelNode,org.apache.calcite.util.ImmutableBitSet)"><code>RelMetadataQuery.areColumnsUnique(RelNode, ImmutableBitSet)</code></a>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#assertThatAreRowsUnique(org.hamcrest.Matcher)" class="member-name-link">assertThatAreRowsUnique</a><wbr>(org.hamcrest.Matcher&lt;<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>&gt;&nbsp;matcher)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Checks <a href="../rel/metadata/RelMetadataQuery.html#areRowsUnique(org.apache.calcite.rel.RelNode)"><code>RelMetadataQuery.areRowsUnique(RelNode)</code></a>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#assertThatDistinctRowCount(java.util.function.Function,org.hamcrest.Matcher)" class="member-name-link">assertThatDistinctRowCount</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/function/Function.html" title="class or interface in java.util.function" class="external-link">Function</a>&lt;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>,<wbr><a href="../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&nbsp;groupKeyFn,
org.hamcrest.Matcher&lt;<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>&gt;&nbsp;matcher)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Checks
<a href="../rel/metadata/RelMetadataQuery.html#getDistinctRowCount(org.apache.calcite.rel.RelNode,org.apache.calcite.util.ImmutableBitSet,org.apache.calcite.rex.RexNode)"><code>RelMetadataQuery.getDistinctRowCount(RelNode, ImmutableBitSet, RexNode)</code></a>
with a null predicate, deriving the group key from the <a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel"><code>RelNode</code></a>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#assertThatDistinctRowCount(org.apache.calcite.util.ImmutableBitSet,org.hamcrest.Matcher)" class="member-name-link">assertThatDistinctRowCount</a><wbr>(<a href="../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;groupKey,
org.hamcrest.Matcher&lt;<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>&gt;&nbsp;matcher)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Checks
<a href="../rel/metadata/RelMetadataQuery.html#getDistinctRowCount(org.apache.calcite.rel.RelNode,org.apache.calcite.util.ImmutableBitSet,org.apache.calcite.rex.RexNode)"><code>RelMetadataQuery.getDistinctRowCount(RelNode, ImmutableBitSet, RexNode)</code></a>
with a null predicate.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#assertThatNodeTypeCount(org.hamcrest.Matcher)" class="member-name-link">assertThatNodeTypeCount</a><wbr>(org.hamcrest.Matcher&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a>&lt;<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>&lt;? extends <a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&gt;,<wbr><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>&gt;&gt;&nbsp;matcher)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Checks the number of each sub-class of <a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel"><code>RelNode</code></a>,
calling <a href="../rel/metadata/RelMetadataQuery.html#getNodeTypes(org.apache.calcite.rel.RelNode)"><code>RelMetadataQuery.getNodeTypes(RelNode)</code></a>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#assertThatNodeTypeCountIs(java.lang.Class,java.lang.Integer,java.lang.Object...)" class="member-name-link">assertThatNodeTypeCountIs</a><wbr>(<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>&lt;? extends <a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&gt;&nbsp;k0,
<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>&nbsp;v0,
<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>...&nbsp;rest)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Shorthand for a call to <a href="#assertThatNodeTypeCount(org.hamcrest.Matcher)"><code>assertThatNodeTypeCount(Matcher)</code></a>
with a constant map.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#assertThatRel(org.hamcrest.Matcher)" class="member-name-link">assertThatRel</a><wbr>(org.hamcrest.Matcher&lt;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&gt;&nbsp;matcher)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Checks the <a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel"><code>RelNode</code></a> produced by <a href="#toRel()"><code>toRel()</code></a>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#assertThatRowCount(org.hamcrest.Matcher,org.hamcrest.Matcher,org.hamcrest.Matcher)" class="member-name-link">assertThatRowCount</a><wbr>(org.hamcrest.Matcher&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Number.html" title="class or interface in java.lang" class="external-link">Number</a>&gt;&nbsp;rowCountMatcher,
org.hamcrest.Matcher&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Number.html" title="class or interface in java.lang" class="external-link">Number</a>&gt;&nbsp;minRowCountMatcher,
org.hamcrest.Matcher&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Number.html" title="class or interface in java.lang" class="external-link">Number</a>&gt;&nbsp;maxRowCountMatcher)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Checks <a href="../rel/metadata/RelMetadataQuery.html#getRowCount(org.apache.calcite.rel.RelNode)"><code>RelMetadataQuery.getRowCount(RelNode)</code></a>,
<a href="../rel/metadata/RelMetadataQuery.html#getMaxRowCount(org.apache.calcite.rel.RelNode)"><code>RelMetadataQuery.getMaxRowCount(RelNode)</code></a>,
and <a href="../rel/metadata/RelMetadataQuery.html#getMinRowCount(org.apache.calcite.rel.RelNode)"><code>RelMetadataQuery.getMinRowCount(RelNode)</code></a>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#assertThatSelectivity(org.hamcrest.Matcher)" class="member-name-link">assertThatSelectivity</a><wbr>(org.hamcrest.Matcher&lt;<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>&gt;&nbsp;matcher)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Checks <a href="../rel/metadata/RelMetadataQuery.html#getSelectivity(org.apache.calcite.rel.RelNode,org.apache.calcite.rex.RexNode)"><code>RelMetadataQuery.getSelectivity(RelNode, RexNode)</code></a>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#assertThatUniqueKeys(org.hamcrest.Matcher)" class="member-name-link">assertThatUniqueKeys</a><wbr>(org.hamcrest.Matcher&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Iterable.html" title="class or interface in java.lang" class="external-link">Iterable</a>&lt;<a href="../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&gt;&nbsp;matcher)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Checks <a href="../rel/metadata/RelMetadataQuery.html#getUniqueKeys(org.apache.calcite.rel.RelNode)"><code>RelMetadataQuery.getUniqueKeys(RelNode)</code></a>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#assertThatUniqueKeysAre(org.apache.calcite.util.ImmutableBitSet...)" class="member-name-link">assertThatUniqueKeysAre</a><wbr>(<a href="../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>...&nbsp;expectedUniqueKeys)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Checks result of getting unique keys for SQL.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#convertingProjectAsCalc()" class="member-name-link">convertingProjectAsCalc</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#toRel()" class="member-name-link">toRel</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Creates a <a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel"><code>RelNode</code></a> from this fixture's supplier
(see <a href="#withSql(java.lang.String)"><code>withSql(String)</code></a> and <a href="#withRelFn(java.util.function.Function)"><code>withRelFn(Function)</code></a>).</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#withCatalogReaderFactory(org.apache.calcite.sql.test.SqlTestFactory.CatalogReaderFactory)" class="member-name-link">withCatalogReaderFactory</a><wbr>(<a href="../sql/test/SqlTestFactory.CatalogReaderFactory.html" title="interface in org.apache.calcite.sql.test">SqlTestFactory.CatalogReaderFactory</a>&nbsp;catalogReaderFactory)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#withCluster(java.util.function.UnaryOperator)" class="member-name-link">withCluster</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/function/UnaryOperator.html" title="class or interface in java.util.function" class="external-link">UnaryOperator</a>&lt;<a href="../plan/RelOptCluster.html" title="class in org.apache.calcite.plan">RelOptCluster</a>&gt;&nbsp;factory)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#withFactory(java.util.function.UnaryOperator)" class="member-name-link">withFactory</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/function/UnaryOperator.html" title="class or interface in java.util.function" class="external-link">UnaryOperator</a>&lt;<a href="../sql/test/SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a>&gt;&nbsp;transform)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#withMetadataConfig(org.apache.calcite.test.RelMetadataFixture.MetadataConfig)" class="member-name-link">withMetadataConfig</a><wbr>(<a href="RelMetadataFixture.MetadataConfig.html" title="class in org.apache.calcite.test">RelMetadataFixture.MetadataConfig</a>&nbsp;metadataConfig)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#withRelFn(java.util.function.Function)" class="member-name-link">withRelFn</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/function/Function.html" title="class or interface in java.util.function" class="external-link">Function</a>&lt;<a href="../tools/RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>,<wbr><a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&gt;&nbsp;relFn)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Creates a copy of this fixture that uses a given function to create a
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel"><code>RelNode</code></a>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#withRelTransform(java.util.function.UnaryOperator)" class="member-name-link">withRelTransform</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/function/UnaryOperator.html" title="class or interface in java.util.function" class="external-link">UnaryOperator</a>&lt;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&gt;&nbsp;relTransform)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#withSql(java.lang.String)" class="member-name-link">withSql</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;sql)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Creates a copy of this fixture that uses a given SQL query.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#withTester(java.util.function.UnaryOperator)" class="member-name-link">withTester</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/function/UnaryOperator.html" title="class or interface in java.util.function" class="external-link">UnaryOperator</a>&lt;<a href="../sql/test/SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a>&gt;&nbsp;transform)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;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">
<!-- ============ FIELD DETAIL =========== -->
<li>
<section class="field-details" id="field-detail">
<h2>Field Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="DEFAULT">
<h3>DEFAULT</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></span>&nbsp;<span class="element-name">DEFAULT</span></div>
<div class="block">Default fixture.
<p>Use this, or call the <code>withXxx</code> methods to make one with the
properties you need. Fixtures are immutable, so whatever your test does
to this fixture, it won't break other tests.</div>
</section>
</li>
<li>
<section class="detail" id="tester">
<h3>tester</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type"><a href="../sql/test/SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a></span>&nbsp;<span class="element-name">tester</span></div>
</section>
</li>
<li>
<section class="detail" id="factory">
<h3>factory</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type"><a href="../sql/test/SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a></span>&nbsp;<span class="element-name">factory</span></div>
</section>
</li>
<li>
<section class="detail" id="metadataConfig">
<h3>metadataConfig</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type"><a href="RelMetadataFixture.MetadataConfig.html" title="class in org.apache.calcite.test">RelMetadataFixture.MetadataConfig</a></span>&nbsp;<span class="element-name">metadataConfig</span></div>
</section>
</li>
<li>
<section class="detail" id="relSupplier">
<h3>relSupplier</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type">org.apache.calcite.test.RelSupplier</span>&nbsp;<span class="element-name">relSupplier</span></div>
</section>
</li>
<li>
<section class="detail" id="convertAsCalc">
<h3>convertAsCalc</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">convertAsCalc</span></div>
</section>
</li>
<li>
<section class="detail" id="relTransform">
<h3>relTransform</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/function/UnaryOperator.html" title="class or interface in java.util.function" class="external-link">UnaryOperator</a>&lt;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&gt;</span>&nbsp;<span class="element-name">relTransform</span></div>
</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="withSql(java.lang.String)">
<h3>withSql</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></span>&nbsp;<span class="element-name">withSql</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;sql)</span></div>
<div class="block">Creates a copy of this fixture that uses a given SQL query.</div>
</section>
</li>
<li>
<section class="detail" id="withRelFn(java.util.function.Function)">
<h3>withRelFn</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></span>&nbsp;<span class="element-name">withRelFn</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/function/Function.html" title="class or interface in java.util.function" class="external-link">Function</a>&lt;<a href="../tools/RelBuilder.html" title="class in org.apache.calcite.tools">RelBuilder</a>,<wbr><a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&gt;&nbsp;relFn)</span></div>
<div class="block">Creates a copy of this fixture that uses a given function to create a
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel"><code>RelNode</code></a>.</div>
</section>
</li>
<li>
<section class="detail" id="withFactory(java.util.function.UnaryOperator)">
<h3>withFactory</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></span>&nbsp;<span class="element-name">withFactory</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/function/UnaryOperator.html" title="class or interface in java.util.function" class="external-link">UnaryOperator</a>&lt;<a href="../sql/test/SqlTestFactory.html" title="class in org.apache.calcite.sql.test">SqlTestFactory</a>&gt;&nbsp;transform)</span></div>
</section>
</li>
<li>
<section class="detail" id="withTester(java.util.function.UnaryOperator)">
<h3>withTester</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></span>&nbsp;<span class="element-name">withTester</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/function/UnaryOperator.html" title="class or interface in java.util.function" class="external-link">UnaryOperator</a>&lt;<a href="../sql/test/SqlTester.html" title="interface in org.apache.calcite.sql.test">SqlTester</a>&gt;&nbsp;transform)</span></div>
</section>
</li>
<li>
<section class="detail" id="withMetadataConfig(org.apache.calcite.test.RelMetadataFixture.MetadataConfig)">
<h3>withMetadataConfig</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></span>&nbsp;<span class="element-name">withMetadataConfig</span><wbr><span class="parameters">(<a href="RelMetadataFixture.MetadataConfig.html" title="class in org.apache.calcite.test">RelMetadataFixture.MetadataConfig</a>&nbsp;metadataConfig)</span></div>
</section>
</li>
<li>
<section class="detail" id="convertingProjectAsCalc()">
<h3>convertingProjectAsCalc</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></span>&nbsp;<span class="element-name">convertingProjectAsCalc</span>()</div>
</section>
</li>
<li>
<section class="detail" id="withCatalogReaderFactory(org.apache.calcite.sql.test.SqlTestFactory.CatalogReaderFactory)">
<h3>withCatalogReaderFactory</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></span>&nbsp;<span class="element-name">withCatalogReaderFactory</span><wbr><span class="parameters">(<a href="../sql/test/SqlTestFactory.CatalogReaderFactory.html" title="interface in org.apache.calcite.sql.test">SqlTestFactory.CatalogReaderFactory</a>&nbsp;catalogReaderFactory)</span></div>
</section>
</li>
<li>
<section class="detail" id="withCluster(java.util.function.UnaryOperator)">
<h3>withCluster</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></span>&nbsp;<span class="element-name">withCluster</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/function/UnaryOperator.html" title="class or interface in java.util.function" class="external-link">UnaryOperator</a>&lt;<a href="../plan/RelOptCluster.html" title="class in org.apache.calcite.plan">RelOptCluster</a>&gt;&nbsp;factory)</span></div>
</section>
</li>
<li>
<section class="detail" id="withRelTransform(java.util.function.UnaryOperator)">
<h3>withRelTransform</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></span>&nbsp;<span class="element-name">withRelTransform</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/function/UnaryOperator.html" title="class or interface in java.util.function" class="external-link">UnaryOperator</a>&lt;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&gt;&nbsp;relTransform)</span></div>
</section>
</li>
<li>
<section class="detail" id="toRel()">
<h3>toRel</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></span>&nbsp;<span class="element-name">toRel</span>()</div>
<div class="block">Creates a <a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel"><code>RelNode</code></a> from this fixture's supplier
(see <a href="#withSql(java.lang.String)"><code>withSql(String)</code></a> and <a href="#withRelFn(java.util.function.Function)"><code>withRelFn(Function)</code></a>).</div>
</section>
</li>
<li>
<section class="detail" id="assertCpuCost(org.hamcrest.Matcher,java.lang.String)">
<h3>assertCpuCost</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></span>&nbsp;<span class="element-name">assertCpuCost</span><wbr><span class="parameters">(org.hamcrest.Matcher&lt;<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>&gt;&nbsp;matcher,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;reason)</span></div>
<div class="block">Checks the CPU component of
<a href="../rel/RelNode.html#computeSelfCost(org.apache.calcite.plan.RelOptPlanner,org.apache.calcite.rel.metadata.RelMetadataQuery)"><code>RelNode.computeSelfCost(RelOptPlanner, RelMetadataQuery)</code></a>.</div>
</section>
</li>
<li>
<section class="detail" id="assertRowsUnique(org.hamcrest.Matcher,java.lang.String)">
<h3>assertRowsUnique</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></span>&nbsp;<span class="element-name">assertRowsUnique</span><wbr><span class="parameters">(org.hamcrest.Matcher&lt;<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>&gt;&nbsp;matcher,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;reason)</span></div>
<div class="block">Checks <a href="../rel/metadata/RelMetadataQuery.html#areRowsUnique(org.apache.calcite.rel.RelNode)"><code>RelMetadataQuery.areRowsUnique(RelNode)</code></a> for all
values of <code>ignoreNulls</code>.</div>
</section>
</li>
<li>
<section class="detail" id="assertRowsUnique(boolean,org.hamcrest.Matcher,java.lang.String)">
<h3>assertRowsUnique</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></span>&nbsp;<span class="element-name">assertRowsUnique</span><wbr><span class="parameters">(boolean&nbsp;ignoreNulls,
org.hamcrest.Matcher&lt;<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>&gt;&nbsp;matcher,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;reason)</span></div>
<div class="block">Checks <a href="../rel/metadata/RelMetadataQuery.html#areRowsUnique(org.apache.calcite.rel.RelNode)"><code>RelMetadataQuery.areRowsUnique(RelNode)</code></a>.</div>
</section>
</li>
<li>
<section class="detail" id="assertPercentageOriginalRows(org.hamcrest.Matcher)">
<h3>assertPercentageOriginalRows</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></span>&nbsp;<span class="element-name">assertPercentageOriginalRows</span><wbr><span class="parameters">(org.hamcrest.Matcher&lt;<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>&gt;&nbsp;matcher)</span></div>
<div class="block">Checks <a href="../rel/metadata/RelMetadataQuery.html#getPercentageOriginalRows(org.apache.calcite.rel.RelNode)"><code>RelMetadataQuery.getPercentageOriginalRows(RelNode)</code></a>.</div>
</section>
</li>
<li>
<section class="detail" id="assertColumnOriginIsEmpty()">
<h3>assertColumnOriginIsEmpty</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></span>&nbsp;<span class="element-name">assertColumnOriginIsEmpty</span>()</div>
<div class="block">Checks that <a href="../rel/metadata/RelMetadataQuery.html#getColumnOrigins(org.apache.calcite.rel.RelNode,int)"><code>RelMetadataQuery.getColumnOrigins(RelNode, int)</code></a>
for column 0 returns no origins.</div>
</section>
</li>
<li>
<section class="detail" id="assertColumnOriginSingle(java.lang.String,java.lang.String,boolean)">
<h3>assertColumnOriginSingle</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></span>&nbsp;<span class="element-name">assertColumnOriginSingle</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;expectedTableName,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;expectedColumnName,
boolean&nbsp;expectedDerived)</span></div>
<div class="block">Checks that <a href="../rel/metadata/RelMetadataQuery.html#getColumnOrigins(org.apache.calcite.rel.RelNode,int)"><code>RelMetadataQuery.getColumnOrigins(RelNode, int)</code></a>
for column 0 returns one origin.</div>
</section>
</li>
<li>
<section class="detail" id="assertColumnOriginDouble(java.lang.String,java.lang.String,java.lang.String,java.lang.String,boolean)">
<h3>assertColumnOriginDouble</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></span>&nbsp;<span class="element-name">assertColumnOriginDouble</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;expectedTableName1,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;expectedColumnName1,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;expectedTableName2,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;expectedColumnName2,
boolean&nbsp;expectedDerived)</span></div>
<div class="block">Checks that <a href="../rel/metadata/RelMetadataQuery.html#getColumnOrigins(org.apache.calcite.rel.RelNode,int)"><code>RelMetadataQuery.getColumnOrigins(RelNode, int)</code></a>
for column 0 returns two origins.</div>
</section>
</li>
<li>
<section class="detail" id="assertThatUniqueKeysAre(org.apache.calcite.util.ImmutableBitSet...)">
<h3>assertThatUniqueKeysAre</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></span>&nbsp;<span class="element-name">assertThatUniqueKeysAre</span><wbr><span class="parameters">(<a href="../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>...&nbsp;expectedUniqueKeys)</span></div>
<div class="block">Checks result of getting unique keys for SQL.</div>
</section>
</li>
<li>
<section class="detail" id="assertThatRowCount(org.hamcrest.Matcher,org.hamcrest.Matcher,org.hamcrest.Matcher)">
<h3>assertThatRowCount</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></span>&nbsp;<span class="element-name">assertThatRowCount</span><wbr><span class="parameters">(org.hamcrest.Matcher&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Number.html" title="class or interface in java.lang" class="external-link">Number</a>&gt;&nbsp;rowCountMatcher,
org.hamcrest.Matcher&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Number.html" title="class or interface in java.lang" class="external-link">Number</a>&gt;&nbsp;minRowCountMatcher,
org.hamcrest.Matcher&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Number.html" title="class or interface in java.lang" class="external-link">Number</a>&gt;&nbsp;maxRowCountMatcher)</span></div>
<div class="block">Checks <a href="../rel/metadata/RelMetadataQuery.html#getRowCount(org.apache.calcite.rel.RelNode)"><code>RelMetadataQuery.getRowCount(RelNode)</code></a>,
<a href="../rel/metadata/RelMetadataQuery.html#getMaxRowCount(org.apache.calcite.rel.RelNode)"><code>RelMetadataQuery.getMaxRowCount(RelNode)</code></a>,
and <a href="../rel/metadata/RelMetadataQuery.html#getMinRowCount(org.apache.calcite.rel.RelNode)"><code>RelMetadataQuery.getMinRowCount(RelNode)</code></a>.</div>
</section>
</li>
<li>
<section class="detail" id="assertThatSelectivity(org.hamcrest.Matcher)">
<h3>assertThatSelectivity</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></span>&nbsp;<span class="element-name">assertThatSelectivity</span><wbr><span class="parameters">(org.hamcrest.Matcher&lt;<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>&gt;&nbsp;matcher)</span></div>
<div class="block">Checks <a href="../rel/metadata/RelMetadataQuery.html#getSelectivity(org.apache.calcite.rel.RelNode,org.apache.calcite.rex.RexNode)"><code>RelMetadataQuery.getSelectivity(RelNode, RexNode)</code></a>.</div>
</section>
</li>
<li>
<section class="detail" id="assertThatDistinctRowCount(org.apache.calcite.util.ImmutableBitSet,org.hamcrest.Matcher)">
<h3>assertThatDistinctRowCount</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></span>&nbsp;<span class="element-name">assertThatDistinctRowCount</span><wbr><span class="parameters">(<a href="../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;groupKey,
org.hamcrest.Matcher&lt;<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>&gt;&nbsp;matcher)</span></div>
<div class="block">Checks
<a href="../rel/metadata/RelMetadataQuery.html#getDistinctRowCount(org.apache.calcite.rel.RelNode,org.apache.calcite.util.ImmutableBitSet,org.apache.calcite.rex.RexNode)"><code>RelMetadataQuery.getDistinctRowCount(RelNode, ImmutableBitSet, RexNode)</code></a>
with a null predicate.</div>
</section>
</li>
<li>
<section class="detail" id="assertThatDistinctRowCount(java.util.function.Function,org.hamcrest.Matcher)">
<h3>assertThatDistinctRowCount</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></span>&nbsp;<span class="element-name">assertThatDistinctRowCount</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/function/Function.html" title="class or interface in java.util.function" class="external-link">Function</a>&lt;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>,<wbr><a href="../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&nbsp;groupKeyFn,
org.hamcrest.Matcher&lt;<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>&gt;&nbsp;matcher)</span></div>
<div class="block">Checks
<a href="../rel/metadata/RelMetadataQuery.html#getDistinctRowCount(org.apache.calcite.rel.RelNode,org.apache.calcite.util.ImmutableBitSet,org.apache.calcite.rex.RexNode)"><code>RelMetadataQuery.getDistinctRowCount(RelNode, ImmutableBitSet, RexNode)</code></a>
with a null predicate, deriving the group key from the <a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel"><code>RelNode</code></a>.</div>
</section>
</li>
<li>
<section class="detail" id="assertThatRel(org.hamcrest.Matcher)">
<h3>assertThatRel</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></span>&nbsp;<span class="element-name">assertThatRel</span><wbr><span class="parameters">(org.hamcrest.Matcher&lt;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&gt;&nbsp;matcher)</span></div>
<div class="block">Checks the <a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel"><code>RelNode</code></a> produced by <a href="#toRel()"><code>toRel()</code></a>.</div>
</section>
</li>
<li>
<section class="detail" id="assertThatNodeTypeCountIs(java.lang.Class,java.lang.Integer,java.lang.Object...)">
<h3>assertThatNodeTypeCountIs</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></span>&nbsp;<span class="element-name">assertThatNodeTypeCountIs</span><wbr><span class="parameters">(<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>&lt;? extends <a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&gt;&nbsp;k0,
<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>&nbsp;v0,
<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>...&nbsp;rest)</span></div>
<div class="block">Shorthand for a call to <a href="#assertThatNodeTypeCount(org.hamcrest.Matcher)"><code>assertThatNodeTypeCount(Matcher)</code></a>
with a constant map.</div>
</section>
</li>
<li>
<section class="detail" id="assertThatNodeTypeCount(org.hamcrest.Matcher)">
<h3>assertThatNodeTypeCount</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></span>&nbsp;<span class="element-name">assertThatNodeTypeCount</span><wbr><span class="parameters">(org.hamcrest.Matcher&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a>&lt;<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>&lt;? extends <a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&gt;,<wbr><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>&gt;&gt;&nbsp;matcher)</span></div>
<div class="block">Checks the number of each sub-class of <a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel"><code>RelNode</code></a>,
calling <a href="../rel/metadata/RelMetadataQuery.html#getNodeTypes(org.apache.calcite.rel.RelNode)"><code>RelMetadataQuery.getNodeTypes(RelNode)</code></a>.</div>
</section>
</li>
<li>
<section class="detail" id="assertThatUniqueKeys(org.hamcrest.Matcher)">
<h3>assertThatUniqueKeys</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></span>&nbsp;<span class="element-name">assertThatUniqueKeys</span><wbr><span class="parameters">(org.hamcrest.Matcher&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Iterable.html" title="class or interface in java.lang" class="external-link">Iterable</a>&lt;<a href="../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&gt;&nbsp;matcher)</span></div>
<div class="block">Checks <a href="../rel/metadata/RelMetadataQuery.html#getUniqueKeys(org.apache.calcite.rel.RelNode)"><code>RelMetadataQuery.getUniqueKeys(RelNode)</code></a>.</div>
</section>
</li>
<li>
<section class="detail" id="assertThatAreColumnsUnique(org.apache.calcite.util.ImmutableBitSet,org.hamcrest.Matcher)">
<h3>assertThatAreColumnsUnique</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></span>&nbsp;<span class="element-name">assertThatAreColumnsUnique</span><wbr><span class="parameters">(<a href="../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&nbsp;columns,
org.hamcrest.Matcher&lt;<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>&gt;&nbsp;matcher)</span></div>
<div class="block">Checks <a href="../rel/metadata/RelMetadataQuery.html#areColumnsUnique(org.apache.calcite.rel.RelNode,org.apache.calcite.util.ImmutableBitSet)"><code>RelMetadataQuery.areColumnsUnique(RelNode, ImmutableBitSet)</code></a>.</div>
</section>
</li>
<li>
<section class="detail" id="assertThatAreColumnsUnique(java.util.function.Function,java.util.function.UnaryOperator,org.hamcrest.Matcher)">
<h3>assertThatAreColumnsUnique</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></span>&nbsp;<span class="element-name">assertThatAreColumnsUnique</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/function/Function.html" title="class or interface in java.util.function" class="external-link">Function</a>&lt;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>,<wbr><a href="../util/ImmutableBitSet.html" title="class in org.apache.calcite.util">ImmutableBitSet</a>&gt;&nbsp;columnsFn,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/function/UnaryOperator.html" title="class or interface in java.util.function" class="external-link">UnaryOperator</a>&lt;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&gt;&nbsp;relFn,
org.hamcrest.Matcher&lt;<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>&gt;&nbsp;matcher)</span></div>
<div class="block">Checks <a href="../rel/metadata/RelMetadataQuery.html#areColumnsUnique(org.apache.calcite.rel.RelNode,org.apache.calcite.util.ImmutableBitSet)"><code>RelMetadataQuery.areColumnsUnique(RelNode, ImmutableBitSet)</code></a>,
deriving parameters via functions.</div>
</section>
</li>
<li>
<section class="detail" id="assertThatAreRowsUnique(org.hamcrest.Matcher)">
<h3>assertThatAreRowsUnique</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="RelMetadataFixture.html" title="class in org.apache.calcite.test">RelMetadataFixture</a></span>&nbsp;<span class="element-name">assertThatAreRowsUnique</span><wbr><span class="parameters">(org.hamcrest.Matcher&lt;<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>&gt;&nbsp;matcher)</span></div>
<div class="block">Checks <a href="../rel/metadata/RelMetadataQuery.html#areRowsUnique(org.apache.calcite.rel.RelNode)"><code>RelMetadataQuery.areRowsUnique(RelNode)</code></a>.</div>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &copy; 2012-2023 Apache Software Foundation. All Rights Reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>