blob: 01f8d8d0d22b112ebd78c073d387c5e603d96a34 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>Planner (Apache Calcite calcite API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.calcite.tools, interface: Planner">
<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.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../script-dir/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../script-dir/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../script-dir/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../script-dir/jquery-3.4.1.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-ui.js"></script>
</head>
<body class="class-declaration">
<script type="text/javascript">var data = {"i0":6,"i1":38,"i2":6,"i3":6,"i4":6,"i5":18,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default Methods"],32:["t6","Deprecated Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flexBox">
<header role="banner" class="flexHeader">
<nav role="navigation">
<!-- ========= 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="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 class="aboutLanguage"><b>Apache Calcite</b></div>
</div>
<div class="subNav">
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&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>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<div class="navListSearch"><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="skipNav"><a id="skip.navbar.top">
<!-- -->
</a></div>
</nav>
</header>
<div class="flexContent">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.calcite.tools</a></div>
<h1 title="Interface Planner" class="title">Interface Planner</h1>
</div>
<div class="contentContainer">
<section class="description">
<dl>
<dt>All Superinterfaces:</dt>
<dd><code><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang" class="externalLink">AutoCloseable</a></code></dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="../prepare/PlannerImpl.html" title="class in org.apache.calcite.prepare">PlannerImpl</a></code></dd>
</dl>
<hr>
<pre>public interface <span class="typeNameLabel">Planner</span>
extends <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang" class="externalLink">AutoCloseable</a></pre>
<div class="block">A fa&ccedil;ade that covers Calcite's query planning process: parse SQL,
validate the parse tree, convert the parse tree to a relational expression,
and optimize the relational expression.
<p>Planner is NOT thread safe. However, it can be reused for
different queries. The consumer of this interface is responsible for calling
reset() after each use of Planner that corresponds to a different
query.</div>
</section>
<section class="summary">
<ul class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<li class="blockList">
<section class="methodSummary"><a id="method.summary">
<!-- -->
</a>
<h2>Method Summary</h2>
<div class="memberSummary">
<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t5" class="tableTab" onclick="show(16);">Default Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t6" class="tableTab" onclick="show(32);">Deprecated Methods</button></div>
<div id="memberSummary_tabpanel" role="tabpanel">
<table aria-labelledby="t0">
<thead>
<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>
</thead>
<tbody>
<tr class="altColor" id="i0">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#close()">close</a></span>()</code></th>
<td class="colLast">
<div class="block">Releases all internal resources utilized while this <code>Planner</code>
exists.</div>
</td>
</tr>
<tr class="rowColor" id="i1">
<td class="colFirst"><code><a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convert(org.apache.calcite.sql.SqlNode)">convert</a></span>&#8203;(<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;sql)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="#rel(org.apache.calcite.sql.SqlNode)"><code>rel(org.apache.calcite.sql.SqlNode)</code></a>.</div>
</div>
</td>
</tr>
<tr class="altColor" id="i2">
<td class="colFirst"><code><a href="../plan/RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEmptyTraitSet()">getEmptyTraitSet</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor" id="i3">
<td class="colFirst"><code><a href="../rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTypeFactory()">getTypeFactory</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the type factory.</div>
</td>
</tr>
<tr class="altColor" id="i4">
<td class="colFirst"><code><a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#parse(java.io.Reader)">parse</a></span>&#8203;(<a href="https://docs.oracle.com/javase/9/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io" class="externalLink">Reader</a>&nbsp;source)</code></th>
<td class="colLast">
<div class="block">Parses and validates a SQL statement.</div>
</td>
</tr>
<tr class="rowColor" id="i5">
<td class="colFirst"><code>default <a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#parse(java.lang.String)">parse</a></span>&#8203;(<a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;sql)</code></th>
<td class="colLast">
<div class="block">Parses and validates a SQL statement.</div>
</td>
</tr>
<tr class="altColor" id="i6">
<td class="colFirst"><code><a href="../rel/RelRoot.html" title="class in org.apache.calcite.rel">RelRoot</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#rel(org.apache.calcite.sql.SqlNode)">rel</a></span>&#8203;(<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;sql)</code></th>
<td class="colLast">
<div class="block">Converts a SQL parse tree into a tree of relational expressions.</div>
</td>
</tr>
<tr class="rowColor" id="i7">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#reset()">reset</a></span>()</code></th>
<td class="colLast">
<div class="block">Resets this <code>Planner</code> to be used with a new query.</div>
</td>
</tr>
<tr class="altColor" id="i8">
<td class="colFirst"><code><a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#transform(int,org.apache.calcite.plan.RelTraitSet,org.apache.calcite.rel.RelNode)">transform</a></span>&#8203;(int&nbsp;ruleSetIndex,
<a href="../plan/RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;requiredOutputTraits,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel)</code></th>
<td class="colLast">
<div class="block">Converts one relational expression tree into another relational expression
based on a particular rule set and requires set of traits.</div>
</td>
</tr>
<tr class="rowColor" id="i9">
<td class="colFirst"><code><a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validate(org.apache.calcite.sql.SqlNode)">validate</a></span>&#8203;(<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;sqlNode)</code></th>
<td class="colLast">
<div class="block">Validates a SQL statement.</div>
</td>
</tr>
<tr class="altColor" id="i10">
<td class="colFirst"><code><a href="../util/Pair.html" title="class in org.apache.calcite.util">Pair</a>&lt;<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>,&#8203;<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#validateAndGetType(org.apache.calcite.sql.SqlNode)">validateAndGetType</a></span>&#8203;(<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;sqlNode)</code></th>
<td class="colLast">
<div class="block">Validates a SQL statement.</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<li class="blockList">
<section class="methodDetails"><a id="method.detail">
<!-- -->
</a>
<h2>Method Details</h2>
<ul class="blockList">
<li class="blockList">
<section class="detail">
<h3><a id="parse(java.lang.String)">parse</a></h3>
<div class="memberSignature"><span class="modifiers">default</span>&nbsp;<span class="returnType"><a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a></span>&nbsp;<span class="memberName">parse</span>&#8203;(<span class="arguments"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;sql)</span>
throws <span class="exceptions"><a href="../sql/parser/SqlParseException.html" title="class in org.apache.calcite.sql.parser">SqlParseException</a></span></div>
<div class="block">Parses and validates a SQL statement.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sql</code> - The SQL statement to parse.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The root node of the SQL parse tree.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../sql/parser/SqlParseException.html" title="class in org.apache.calcite.sql.parser">SqlParseException</a></code> - on parse error</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="parse(java.io.Reader)">parse</a></h3>
<div class="memberSignature"><span class="returnType"><a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a></span>&nbsp;<span class="memberName">parse</span>&#8203;(<span class="arguments"><a href="https://docs.oracle.com/javase/9/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io" class="externalLink">Reader</a>&nbsp;source)</span>
throws <span class="exceptions"><a href="../sql/parser/SqlParseException.html" title="class in org.apache.calcite.sql.parser">SqlParseException</a></span></div>
<div class="block">Parses and validates a SQL statement.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>source</code> - A reader which will provide the SQL statement to parse.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The root node of the SQL parse tree.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../sql/parser/SqlParseException.html" title="class in org.apache.calcite.sql.parser">SqlParseException</a></code> - on parse error</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="validate(org.apache.calcite.sql.SqlNode)">validate</a></h3>
<div class="memberSignature"><span class="returnType"><a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a></span>&nbsp;<span class="memberName">validate</span>&#8203;(<span class="arguments"><a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;sqlNode)</span>
throws <span class="exceptions"><a href="ValidationException.html" title="class in org.apache.calcite.tools">ValidationException</a></span></div>
<div class="block">Validates a SQL statement.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sqlNode</code> - Root node of the SQL parse tree.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Validated node</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="ValidationException.html" title="class in org.apache.calcite.tools">ValidationException</a></code> - if not valid</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="validateAndGetType(org.apache.calcite.sql.SqlNode)">validateAndGetType</a></h3>
<div class="memberSignature"><span class="returnType"><a href="../util/Pair.html" title="class in org.apache.calcite.util">Pair</a>&lt;<a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>,&#8203;<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>&gt;</span>&nbsp;<span class="memberName">validateAndGetType</span>&#8203;(<span class="arguments"><a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;sqlNode)</span>
throws <span class="exceptions"><a href="ValidationException.html" title="class in org.apache.calcite.tools">ValidationException</a></span></div>
<div class="block">Validates a SQL statement.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sqlNode</code> - Root node of the SQL parse tree.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Validated node and its validated type.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="ValidationException.html" title="class in org.apache.calcite.tools">ValidationException</a></code> - if not valid</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="rel(org.apache.calcite.sql.SqlNode)">rel</a></h3>
<div class="memberSignature"><span class="returnType"><a href="../rel/RelRoot.html" title="class in org.apache.calcite.rel">RelRoot</a></span>&nbsp;<span class="memberName">rel</span>&#8203;(<span class="arguments"><a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;sql)</span>
throws <span class="exceptions"><a href="RelConversionException.html" title="class in org.apache.calcite.tools">RelConversionException</a></span></div>
<div class="block">Converts a SQL parse tree into a tree of relational expressions.
<p>You must call <a href="#validate(org.apache.calcite.sql.SqlNode)"><code>validate(org.apache.calcite.sql.SqlNode)</code></a> first.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sql</code> - The root node of the SQL parse tree.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The root node of the newly generated RelNode tree.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="RelConversionException.html" title="class in org.apache.calcite.tools">RelConversionException</a></code> - if the node
cannot be converted or has not been validated</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="convert(org.apache.calcite.sql.SqlNode)">convert</a></h3>
<div class="memberSignature"><span class="annotations"><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
</span><span class="returnType"><a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></span>&nbsp;<span class="memberName">convert</span>&#8203;(<span class="arguments"><a href="../sql/SqlNode.html" title="class in org.apache.calcite.sql">SqlNode</a>&nbsp;sql)</span>
throws <span class="exceptions"><a href="RelConversionException.html" title="class in org.apache.calcite.tools">RelConversionException</a></span></div>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">Use <a href="#rel(org.apache.calcite.sql.SqlNode)"><code>rel(org.apache.calcite.sql.SqlNode)</code></a>.</div>
</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="RelConversionException.html" title="class in org.apache.calcite.tools">RelConversionException</a></code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getTypeFactory()">getTypeFactory</a></h3>
<div class="memberSignature"><span class="returnType"><a href="../rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a></span>&nbsp;<span class="memberName">getTypeFactory</span>()</div>
<div class="block">Returns the type factory.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="transform(int,org.apache.calcite.plan.RelTraitSet,org.apache.calcite.rel.RelNode)">transform</a></h3>
<div class="memberSignature"><span class="returnType"><a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a></span>&nbsp;<span class="memberName">transform</span>&#8203;(<span class="arguments">int&nbsp;ruleSetIndex,
<a href="../plan/RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a>&nbsp;requiredOutputTraits,
<a href="../rel/RelNode.html" title="interface in org.apache.calcite.rel">RelNode</a>&nbsp;rel)</span>
throws <span class="exceptions"><a href="RelConversionException.html" title="class in org.apache.calcite.tools">RelConversionException</a></span></div>
<div class="block">Converts one relational expression tree into another relational expression
based on a particular rule set and requires set of traits.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>ruleSetIndex</code> - The RuleSet to use for conversion purposes. Note that
this is zero-indexed and is based on the list and order
of RuleSets provided in the construction of this
Planner.</dd>
<dd><code>requiredOutputTraits</code> - The set of RelTraits required of the root node
at the termination of the planning cycle.</dd>
<dd><code>rel</code> - The root of the RelNode tree to convert.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The root of the new RelNode tree.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="RelConversionException.html" title="class in org.apache.calcite.tools">RelConversionException</a></code> - on conversion
error</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="reset()">reset</a></h3>
<div class="memberSignature"><span class="returnType">void</span>&nbsp;<span class="memberName">reset</span>()</div>
<div class="block">Resets this <code>Planner</code> to be used with a new query. This
should be called between each new query.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="close()">close</a></h3>
<div class="memberSignature"><span class="returnType">void</span>&nbsp;<span class="memberName">close</span>()</div>
<div class="block">Releases all internal resources utilized while this <code>Planner</code>
exists. Once called, this Planner object is no longer valid.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/AutoCloseable.html?is-external=true#close()" title="class or interface in java.lang" class="externalLink">close</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/9/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang" class="externalLink">AutoCloseable</a></code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getEmptyTraitSet()">getEmptyTraitSet</a></h3>
<div class="memberSignature"><span class="returnType"><a href="../plan/RelTraitSet.html" title="class in org.apache.calcite.plan">RelTraitSet</a></span>&nbsp;<span class="memberName">getEmptyTraitSet</span>()</div>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
</div>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">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">Help</a></li>
</ul>
<div class="aboutLanguage"><b>Apache Calcite</b></div>
</div>
<div class="subNav">
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&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>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &copy; 2012-2021 Apache Software Foundation. All Rights Reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>