blob: 1daaffca8f5a92cc0f58cfd8fb5c05770a0816fe [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>RelOptMaterializations (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="RelOptMaterializations (Apache Calcite API)";
}
}
catch(err) {
}
//-->
var data = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static 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/RelOptMaterializations.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>Nested&nbsp;|&nbsp;</li>
<li>Field&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>Field&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.plan</a></div>
<h2 title="Class RelOptMaterializations" class="title">Class RelOptMaterializations</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.calcite.plan.RelOptMaterializations</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<pre>public abstract class <span class="typeNameLabel">RelOptMaterializations</span>
extends java.lang.Object</pre>
<div class="block">Utility methods for using
materialized views and lattices for queries.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== 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()">RelOptMaterializations</a></span>()</code></th>
<td class="colLast">&nbsp;</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="t1" class="tableTab"><span><a href="javascript:show(1);">Static 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>static java.util.List&lt;<a href="RelOptMaterialization.html" title="class in org.apache.calcite.plan">RelOptMaterialization</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getApplicableMaterializations(org.apache.calcite.rel.RelNode,java.util.List)">getApplicableMaterializations</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel,
java.util.List&lt;<a href="RelOptMaterialization.html" title="class in org.apache.calcite.plan">RelOptMaterialization</a>&gt;&nbsp;materializations)</code></th>
<td class="colLast">
<div class="block">Returns a list of materializations that can potentially be used by the query.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>private static java.util.List&lt;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#substitute(org.apache.calcite.rel.RelNode,org.apache.calcite.plan.RelOptMaterialization)">substitute</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;root,
<a href="RelOptMaterialization.html" title="class in org.apache.calcite.plan">RelOptMaterialization</a>&nbsp;materialization)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static java.util.List&lt;<a href="../util/Pair.html" title="class in org.apache.calcite.util">Pair</a>&lt;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>,&#8203;<a href="RelOptLattice.html" title="class in org.apache.calcite.plan">RelOptLattice</a>&gt;&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#useLattices(org.apache.calcite.rel.RelNode,java.util.List)">useLattices</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel,
java.util.List&lt;<a href="RelOptLattice.html" title="class in org.apache.calcite.plan">RelOptLattice</a>&gt;&nbsp;lattices)</code></th>
<td class="colLast">
<div class="block">Returns a list of RelNode transformed from all possible lattice uses.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>static java.util.List&lt;<a href="../util/Pair.html" title="class in org.apache.calcite.util">Pair</a>&lt;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>,&#8203;java.util.List&lt;<a href="RelOptMaterialization.html" title="class in org.apache.calcite.plan">RelOptMaterialization</a>&gt;&gt;&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#useMaterializedViews(org.apache.calcite.rel.RelNode,java.util.List)">useMaterializedViews</a></span>&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel,
java.util.List&lt;<a href="RelOptMaterialization.html" title="class in org.apache.calcite.plan">RelOptMaterialization</a>&gt;&nbsp;materializations)</code></th>
<td class="colLast">
<div class="block">Returns a list of RelNode transformed from all possible combination of
materialized view uses.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>private static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#usesTable(java.util.List,java.util.Set,org.apache.calcite.util.graph.Graphs.FrozenGraph)">usesTable</a></span>&#8203;(java.util.List&lt;java.lang.String&gt;&nbsp;qualifiedName,
java.util.Set&lt;<a href="RelOptTable.html" title="interface in org.apache.calcite.plan">RelOptTable</a>&gt;&nbsp;usedTables,
<a href="../util/graph/Graphs.FrozenGraph.html" title="class in org.apache.calcite.util.graph">Graphs.FrozenGraph</a>&lt;java.util.List&lt;java.lang.String&gt;,&#8203;<a href="../util/graph/DefaultEdge.html" title="class in org.apache.calcite.util.graph">DefaultEdge</a>&gt;&nbsp;usesGraph)</code></th>
<td class="colLast">
<div class="block">Returns whether <code>table</code> uses one or more of the tables in
<code>usedTables</code>.</div>
</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">
<!-- ========= 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;()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>RelOptMaterializations</h4>
<pre>public&nbsp;RelOptMaterializations()</pre>
</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="useMaterializedViews(org.apache.calcite.rel.RelNode,java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>useMaterializedViews</h4>
<pre class="methodSignature">public static&nbsp;java.util.List&lt;<a href="../util/Pair.html" title="class in org.apache.calcite.util">Pair</a>&lt;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>,&#8203;java.util.List&lt;<a href="RelOptMaterialization.html" title="class in org.apache.calcite.plan">RelOptMaterialization</a>&gt;&gt;&gt;&nbsp;useMaterializedViews&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel,
java.util.List&lt;<a href="RelOptMaterialization.html" title="class in org.apache.calcite.plan">RelOptMaterialization</a>&gt;&nbsp;materializations)</pre>
<div class="block">Returns a list of RelNode transformed from all possible combination of
materialized view uses. Big queries will likely have more than one
transformed RelNode, e.g., (t1 group by c1) join (t2 group by c2).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>rel</code> - the original RelNode</dd>
<dd><code>materializations</code> - the materialized view list</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the list of transformed RelNode together with their corresponding
materialized views used in the transformation.</dd>
</dl>
</li>
</ul>
<a id="useLattices(org.apache.calcite.rel.RelNode,java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>useLattices</h4>
<pre class="methodSignature">public static&nbsp;java.util.List&lt;<a href="../util/Pair.html" title="class in org.apache.calcite.util">Pair</a>&lt;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>,&#8203;<a href="RelOptLattice.html" title="class in org.apache.calcite.plan">RelOptLattice</a>&gt;&gt;&nbsp;useLattices&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel,
java.util.List&lt;<a href="RelOptLattice.html" title="class in org.apache.calcite.plan">RelOptLattice</a>&gt;&nbsp;lattices)</pre>
<div class="block">Returns a list of RelNode transformed from all possible lattice uses.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>rel</code> - the original RelNode</dd>
<dd><code>lattices</code> - the lattice list</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the list of transformed RelNode together with their corresponding
lattice used in the transformation.</dd>
</dl>
</li>
</ul>
<a id="getApplicableMaterializations(org.apache.calcite.rel.RelNode,java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getApplicableMaterializations</h4>
<pre class="methodSignature">public static&nbsp;java.util.List&lt;<a href="RelOptMaterialization.html" title="class in org.apache.calcite.plan">RelOptMaterialization</a>&gt;&nbsp;getApplicableMaterializations&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel,
java.util.List&lt;<a href="RelOptMaterialization.html" title="class in org.apache.calcite.plan">RelOptMaterialization</a>&gt;&nbsp;materializations)</pre>
<div class="block">Returns a list of materializations that can potentially be used by the query.</div>
</li>
</ul>
<a id="substitute(org.apache.calcite.rel.RelNode,org.apache.calcite.plan.RelOptMaterialization)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>substitute</h4>
<pre class="methodSignature">private static&nbsp;java.util.List&lt;<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&gt;&nbsp;substitute&#8203;(<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;root,
<a href="RelOptMaterialization.html" title="class in org.apache.calcite.plan">RelOptMaterialization</a>&nbsp;materialization)</pre>
</li>
</ul>
<a id="usesTable(java.util.List,java.util.Set,org.apache.calcite.util.graph.Graphs.FrozenGraph)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>usesTable</h4>
<pre class="methodSignature">private static&nbsp;boolean&nbsp;usesTable&#8203;(java.util.List&lt;java.lang.String&gt;&nbsp;qualifiedName,
java.util.Set&lt;<a href="RelOptTable.html" title="interface in org.apache.calcite.plan">RelOptTable</a>&gt;&nbsp;usedTables,
<a href="../util/graph/Graphs.FrozenGraph.html" title="class in org.apache.calcite.util.graph">Graphs.FrozenGraph</a>&lt;java.util.List&lt;java.lang.String&gt;,&#8203;<a href="../util/graph/DefaultEdge.html" title="class in org.apache.calcite.util.graph">DefaultEdge</a>&gt;&nbsp;usesGraph)</pre>
<div class="block">Returns whether <code>table</code> uses one or more of the tables in
<code>usedTables</code>.</div>
</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/RelOptMaterializations.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>Nested&nbsp;|&nbsp;</li>
<li>Field&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>Field&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>