blob: a9f6946db764dcc2f4ce093df23d88a28ca79395 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>QuerySqlStatisticProvider (Apache Calcite API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="QuerySqlStatisticProvider (Apache Calcite API)";
}
}
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/QuerySqlStatisticProvider.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<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><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.calcite.statistic</a></div>
<h2 title="Class QuerySqlStatisticProvider" class="title">Class QuerySqlStatisticProvider</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.calcite.statistic.QuerySqlStatisticProvider</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="../materialize/SqlStatisticProvider.html" title="interface in org.apache.calcite.materialize">SqlStatisticProvider</a></code></dd>
</dl>
<hr>
<pre>public class <span class="typeNameLabel">QuerySqlStatisticProvider</span>
extends java.lang.Object
implements <a href="../materialize/SqlStatisticProvider.html" title="interface in org.apache.calcite.materialize">SqlStatisticProvider</a></pre>
<div class="block">Implementation of <a href="../materialize/SqlStatisticProvider.html" title="interface in org.apache.calcite.materialize"><code>SqlStatisticProvider</code></a> that generates and executes
SQL queries.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static interface&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="QuerySqlStatisticProvider.BuilderAction.html" title="interface in org.apache.calcite.statistic">QuerySqlStatisticProvider.BuilderAction</a>&lt;<a href="QuerySqlStatisticProvider.BuilderAction.html" title="type parameter in QuerySqlStatisticProvider.BuilderAction">R</a>&gt;</span></code></th>
<td class="colLast">
<div class="block">Performs an action with a <a href="../tools/RelBuilder.html" title="class in org.apache.calcite.tools"><code>RelBuilder</code></a>.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../materialize/SqlStatisticProvider.html" title="interface in org.apache.calcite.materialize">SqlStatisticProvider</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#SILENT_CACHING_INSTANCE">SILENT_CACHING_INSTANCE</a></span></code></th>
<td class="colLast">
<div class="block">Instance that uses SQL to compute statistics,
does not log SQL statements,
and caches up to 1,024 results for up to 30 minutes.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private java.util.function.Consumer&lt;java.lang.String&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sqlConsumer">sqlConsumer</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../materialize/SqlStatisticProvider.html" title="interface in org.apache.calcite.materialize">SqlStatisticProvider</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#VERBOSE_CACHING_INSTANCE">VERBOSE_CACHING_INSTANCE</a></span></code></th>
<td class="colLast">
<div class="block">As <a href="#SILENT_CACHING_INSTANCE"><code>SILENT_CACHING_INSTANCE</code></a> but prints SQL statements to
<code>System.out</code>.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.util.function.Consumer)">QuerySqlStatisticProvider</a></span>&#8203;(java.util.function.Consumer&lt;java.lang.String&gt;&nbsp;sqlConsumer)</code></th>
<td class="colLast">
<div class="block">Creates a QuerySqlStatisticProvider.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>private java.lang.RuntimeException</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#handle(java.sql.SQLException,java.lang.String)">handle</a></span>&#8203;(java.sql.SQLException&nbsp;e,
java.lang.String&nbsp;sql)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isForeignKey(org.apache.calcite.plan.RelOptTable,java.util.List,org.apache.calcite.plan.RelOptTable,java.util.List)">isForeignKey</a></span>&#8203;(<a href="../plan/RelOptTable.html" title="interface in org.apache.calcite.plan">RelOptTable</a>&nbsp;fromTable,
java.util.List&lt;java.lang.Integer&gt;&nbsp;fromColumns,
<a href="../plan/RelOptTable.html" title="interface in org.apache.calcite.plan">RelOptTable</a>&nbsp;toTable,
java.util.List&lt;java.lang.Integer&gt;&nbsp;toColumns)</code></th>
<td class="colLast">
<div class="block">Returns whether a join is a foreign key; that is, whether every row in
the referencing table is matched by at least one row in the referenced
table.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isKey(org.apache.calcite.plan.RelOptTable,java.util.List)">isKey</a></span>&#8203;(<a href="../plan/RelOptTable.html" title="interface in org.apache.calcite.plan">RelOptTable</a>&nbsp;table,
java.util.List&lt;java.lang.Integer&gt;&nbsp;columns)</code></th>
<td class="colLast">
<div class="block">Returns whether a collection of columns is a unique (or primary) key.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#tableCardinality(org.apache.calcite.plan.RelOptTable)">tableCardinality</a></span>&#8203;(<a href="../plan/RelOptTable.html" title="interface in org.apache.calcite.plan">RelOptTable</a>&nbsp;table)</code></th>
<td class="colLast">
<div class="block">Returns an estimate of the number of rows in <code>table</code>.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>protected java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toSql(org.apache.calcite.rel.RelNode,org.apache.calcite.sql.SqlDialect)">toSql</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel,
<a href="../sql/SqlDialect.html" title="class in org.apache.calcite.sql">SqlDialect</a>&nbsp;dialect)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>private &lt;R&gt;&nbsp;R</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withBuilder(org.apache.calcite.adapter.jdbc.JdbcSchema,org.apache.calcite.statistic.QuerySqlStatisticProvider.BuilderAction)">withBuilder</a></span>&#8203;(<a href="../adapter/jdbc/JdbcSchema.html" title="class in org.apache.calcite.adapter.jdbc">JdbcSchema</a>&nbsp;jdbcSchema,
<a href="QuerySqlStatisticProvider.BuilderAction.html" title="interface in org.apache.calcite.statistic">QuerySqlStatisticProvider.BuilderAction</a>&lt;R&gt;&nbsp;action)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a id="SILENT_CACHING_INSTANCE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SILENT_CACHING_INSTANCE</h4>
<pre>public static final&nbsp;<a href="../materialize/SqlStatisticProvider.html" title="interface in org.apache.calcite.materialize">SqlStatisticProvider</a> SILENT_CACHING_INSTANCE</pre>
<div class="block">Instance that uses SQL to compute statistics,
does not log SQL statements,
and caches up to 1,024 results for up to 30 minutes.
(That period should be sufficient for the
duration of Calcite's tests, and many other purposes.)</div>
</li>
</ul>
<a id="VERBOSE_CACHING_INSTANCE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>VERBOSE_CACHING_INSTANCE</h4>
<pre>public static final&nbsp;<a href="../materialize/SqlStatisticProvider.html" title="interface in org.apache.calcite.materialize">SqlStatisticProvider</a> VERBOSE_CACHING_INSTANCE</pre>
<div class="block">As <a href="#SILENT_CACHING_INSTANCE"><code>SILENT_CACHING_INSTANCE</code></a> but prints SQL statements to
<code>System.out</code>.</div>
</li>
</ul>
<a id="sqlConsumer">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>sqlConsumer</h4>
<pre>private final&nbsp;java.util.function.Consumer&lt;java.lang.String&gt; sqlConsumer</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;(java.util.function.Consumer)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>QuerySqlStatisticProvider</h4>
<pre>public&nbsp;QuerySqlStatisticProvider&#8203;(java.util.function.Consumer&lt;java.lang.String&gt;&nbsp;sqlConsumer)</pre>
<div class="block">Creates a QuerySqlStatisticProvider.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sqlConsumer</code> - Called when each SQL statement is generated</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="tableCardinality(org.apache.calcite.plan.RelOptTable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>tableCardinality</h4>
<pre class="methodSignature">public&nbsp;double&nbsp;tableCardinality&#8203;(<a href="../plan/RelOptTable.html" title="interface in org.apache.calcite.plan">RelOptTable</a>&nbsp;table)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../materialize/SqlStatisticProvider.html#tableCardinality(org.apache.calcite.plan.RelOptTable)">SqlStatisticProvider</a></code></span></div>
<div class="block">Returns an estimate of the number of rows in <code>table</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../materialize/SqlStatisticProvider.html#tableCardinality(org.apache.calcite.plan.RelOptTable)">tableCardinality</a></code>&nbsp;in interface&nbsp;<code><a href="../materialize/SqlStatisticProvider.html" title="interface in org.apache.calcite.materialize">SqlStatisticProvider</a></code></dd>
</dl>
</li>
</ul>
<a id="isForeignKey(org.apache.calcite.plan.RelOptTable,java.util.List,org.apache.calcite.plan.RelOptTable,java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isForeignKey</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isForeignKey&#8203;(<a href="../plan/RelOptTable.html" title="interface in org.apache.calcite.plan">RelOptTable</a>&nbsp;fromTable,
java.util.List&lt;java.lang.Integer&gt;&nbsp;fromColumns,
<a href="../plan/RelOptTable.html" title="interface in org.apache.calcite.plan">RelOptTable</a>&nbsp;toTable,
java.util.List&lt;java.lang.Integer&gt;&nbsp;toColumns)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../materialize/SqlStatisticProvider.html#isForeignKey(org.apache.calcite.plan.RelOptTable,java.util.List,org.apache.calcite.plan.RelOptTable,java.util.List)">SqlStatisticProvider</a></code></span></div>
<div class="block">Returns whether a join is a foreign key; that is, whether every row in
the referencing table is matched by at least one row in the referenced
table.
<p>For example, <code>isForeignKey(EMP, [DEPTNO], DEPT, [DEPTNO])</code>
returns true.
<p>To change "at least one" to "exactly one", you also need to call
<a href="../materialize/SqlStatisticProvider.html#isKey(org.apache.calcite.plan.RelOptTable,java.util.List)"><code>SqlStatisticProvider.isKey(org.apache.calcite.plan.RelOptTable, java.util.List&lt;java.lang.Integer&gt;)</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../materialize/SqlStatisticProvider.html#isForeignKey(org.apache.calcite.plan.RelOptTable,java.util.List,org.apache.calcite.plan.RelOptTable,java.util.List)">isForeignKey</a></code>&nbsp;in interface&nbsp;<code><a href="../materialize/SqlStatisticProvider.html" title="interface in org.apache.calcite.materialize">SqlStatisticProvider</a></code></dd>
</dl>
</li>
</ul>
<a id="isKey(org.apache.calcite.plan.RelOptTable,java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isKey</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isKey&#8203;(<a href="../plan/RelOptTable.html" title="interface in org.apache.calcite.plan">RelOptTable</a>&nbsp;table,
java.util.List&lt;java.lang.Integer&gt;&nbsp;columns)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../materialize/SqlStatisticProvider.html#isKey(org.apache.calcite.plan.RelOptTable,java.util.List)">SqlStatisticProvider</a></code></span></div>
<div class="block">Returns whether a collection of columns is a unique (or primary) key.
<p>For example, <code>isKey(EMP, [DEPTNO]</code> returns true;
<p>For example, <code>isKey(DEPT, [DEPTNO]</code> returns false.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../materialize/SqlStatisticProvider.html#isKey(org.apache.calcite.plan.RelOptTable,java.util.List)">isKey</a></code>&nbsp;in interface&nbsp;<code><a href="../materialize/SqlStatisticProvider.html" title="interface in org.apache.calcite.materialize">SqlStatisticProvider</a></code></dd>
</dl>
</li>
</ul>
<a id="handle(java.sql.SQLException,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handle</h4>
<pre class="methodSignature">private&nbsp;java.lang.RuntimeException&nbsp;handle&#8203;(java.sql.SQLException&nbsp;e,
java.lang.String&nbsp;sql)</pre>
</li>
</ul>
<a id="toSql(org.apache.calcite.rel.RelNode,org.apache.calcite.sql.SqlDialect)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toSql</h4>
<pre class="methodSignature">protected&nbsp;java.lang.String&nbsp;toSql&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel,
<a href="../sql/SqlDialect.html" title="class in org.apache.calcite.sql">SqlDialect</a>&nbsp;dialect)</pre>
</li>
</ul>
<a id="withBuilder(org.apache.calcite.adapter.jdbc.JdbcSchema,org.apache.calcite.statistic.QuerySqlStatisticProvider.BuilderAction)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>withBuilder</h4>
<pre class="methodSignature">private&nbsp;&lt;R&gt;&nbsp;R&nbsp;withBuilder&#8203;(<a href="../adapter/jdbc/JdbcSchema.html" title="class in org.apache.calcite.adapter.jdbc">JdbcSchema</a>&nbsp;jdbcSchema,
<a href="QuerySqlStatisticProvider.BuilderAction.html" title="interface in org.apache.calcite.statistic">QuerySqlStatisticProvider.BuilderAction</a>&lt;R&gt;&nbsp;action)</pre>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/QuerySqlStatisticProvider.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<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><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</body>
</html>