| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> |
| <!-- NewPage --> |
| <html lang="zh"> |
| <head> |
| <!-- Generated by javadoc --> |
| <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
| <title>org.apache.calcite.rel.rules (Apache Calcite calcite API)</title> |
| <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style"> |
| <script type="text/javascript" src="../../../../../script.js"></script> |
| </head> |
| <body> |
| <script type="text/javascript"><!-- |
| try { |
| if (location.href.indexOf('is-external=true') == -1) { |
| parent.document.title="org.apache.calcite.rel.rules (Apache Calcite calcite API)"; |
| } |
| } |
| catch(err) { |
| } |
| //--> |
| </script> |
| <noscript> |
| <div>您的浏览器已禁用 JavaScript。</div> |
| </noscript> |
| <!-- ========= START OF TOP NAVBAR ======= --> |
| <div class="topNav"><a name="navbar.top"> |
| <!-- --> |
| </a> |
| <div class="skipNav"><a href="#skip.navbar.top" title="跳过导航链接">跳过导航链接</a></div> |
| <a name="navbar.top.firstrow"> |
| <!-- --> |
| </a> |
| <ul class="navList" title="导航"> |
| <li><a href="../../../../../overview-summary.html">概览</a></li> |
| <li class="navBarCell1Rev">程序包</li> |
| <li>类</li> |
| <li><a href="package-tree.html">树</a></li> |
| <li><a href="../../../../../deprecated-list.html">已过时</a></li> |
| <li><a href="../../../../../index-all.html">索引</a></li> |
| <li><a href="../../../../../help-doc.html">帮助</a></li> |
| </ul> |
| <div class="aboutLanguage"><b>Apache Calcite</b></div> |
| </div> |
| <div class="subNav"> |
| <ul class="navList"> |
| <li><a href="../../../../../org/apache/calcite/rel/rel2sql/package-summary.html">上一个程序包</a></li> |
| <li><a href="../../../../../org/apache/calcite/rel/rules/materialize/package-summary.html">下一个程序包</a></li> |
| </ul> |
| <ul class="navList"> |
| <li><a href="../../../../../index.html?org/apache/calcite/rel/rules/package-summary.html" target="_top">框架</a></li> |
| <li><a href="package-summary.html" target="_top">无框架</a></li> |
| </ul> |
| <ul class="navList" id="allclasses_navbar_top"> |
| <li><a href="../../../../../allclasses-noframe.html">所有类</a></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> |
| </div> |
| <a name="skip.navbar.top"> |
| <!-- --> |
| </a></div> |
| <!-- ========= END OF TOP NAVBAR ========= --> |
| <div class="header"> |
| <h1 title="程序包" class="title">程序包 org.apache.calcite.rel.rules</h1> |
| <div class="docSummary"> |
| <div class="block">Provides a core set of planner rules.</div> |
| </div> |
| <p>请参阅: <a href="#package.description">说明</a></p> |
| </div> |
| <div class="contentContainer"> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="接口概要表, 列表接口和解释"> |
| <caption><span>接口概要</span><span class="tabEnd"> </span></caption> |
| <tr> |
| <th class="colFirst" scope="col">接口</th> |
| <th class="colLast" scope="col">说明</th> |
| </tr> |
| <tbody> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/FilterJoinRule.Predicate.html" title="org.apache.calcite.rel.rules中的接口">FilterJoinRule.Predicate</a></td> |
| <td class="colLast"> |
| <div class="block">Predicate that returns whether a filter is valid in the ON clause of a |
| join for this particular kind of join.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/PushProjector.ExprCondition.html" title="org.apache.calcite.rel.rules中的接口">PushProjector.ExprCondition</a></td> |
| <td class="colLast"> |
| <div class="block">A functor that replies true or false for a given expression.</div> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| </li> |
| <li class="blockList"> |
| <table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="类概要表, 列表类和解释"> |
| <caption><span>类概要</span><span class="tabEnd"> </span></caption> |
| <tr> |
| <th class="colFirst" scope="col">类</th> |
| <th class="colLast" scope="col">说明</th> |
| </tr> |
| <tbody> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/AbstractJoinExtractFilterRule.html" title="org.apache.calcite.rel.rules中的类">AbstractJoinExtractFilterRule</a></td> |
| <td class="colLast"> |
| <div class="block">Rule to convert an |
| <a href="../../../../../org/apache/calcite/rel/core/Join.html" title="org.apache.calcite.rel.core中的类"><code>inner join</code></a> to a |
| <a href="../../../../../org/apache/calcite/rel/core/Filter.html" title="org.apache.calcite.rel.core中的类"><code>filter</code></a> on top of a |
| <a href="../../../../../org/apache/calcite/rel/core/Join.html" title="org.apache.calcite.rel.core中的类"><code>cartesian inner join</code></a>.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/AggregateCaseToFilterRule.html" title="org.apache.calcite.rel.rules中的类">AggregateCaseToFilterRule</a></td> |
| <td class="colLast"> |
| <div class="block">Rule that converts CASE-style filtered aggregates into true filtered |
| aggregates.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/AggregateExpandDistinctAggregatesRule.html" title="org.apache.calcite.rel.rules中的类">AggregateExpandDistinctAggregatesRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that expands distinct aggregates |
| (such as <code>COUNT(DISTINCT x)</code>) from a |
| <a href="../../../../../org/apache/calcite/rel/core/Aggregate.html" title="org.apache.calcite.rel.core中的类"><code>Aggregate</code></a>.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/AggregateExtractProjectRule.html" title="org.apache.calcite.rel.rules中的类">AggregateExtractProjectRule</a></td> |
| <td class="colLast"> |
| <div class="block">Rule to extract a <a href="../../../../../org/apache/calcite/rel/core/Project.html" title="org.apache.calcite.rel.core中的类"><code>Project</code></a> |
| from an <a href="../../../../../org/apache/calcite/rel/core/Aggregate.html" title="org.apache.calcite.rel.core中的类"><code>Aggregate</code></a> |
| and push it down towards the input.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/AggregateFilterTransposeRule.html" title="org.apache.calcite.rel.rules中的类">AggregateFilterTransposeRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that matches an <a href="../../../../../org/apache/calcite/rel/core/Aggregate.html" title="org.apache.calcite.rel.core中的类"><code>Aggregate</code></a> |
| on a <a href="../../../../../org/apache/calcite/rel/core/Filter.html" title="org.apache.calcite.rel.core中的类"><code>Filter</code></a> and transposes them, |
| pushing the aggregate below the filter.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/AggregateJoinJoinRemoveRule.html" title="org.apache.calcite.rel.rules中的类">AggregateJoinJoinRemoveRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that matches an <a href="../../../../../org/apache/calcite/rel/core/Aggregate.html" title="org.apache.calcite.rel.core中的类"><code>Aggregate</code></a> |
| on a <a href="../../../../../org/apache/calcite/rel/core/Join.html" title="org.apache.calcite.rel.core中的类"><code>Join</code></a> and removes the left input |
| of the join provided that the left input is also a left join if possible.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/AggregateJoinRemoveRule.html" title="org.apache.calcite.rel.rules中的类">AggregateJoinRemoveRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that matches an <a href="../../../../../org/apache/calcite/rel/core/Aggregate.html" title="org.apache.calcite.rel.core中的类"><code>Aggregate</code></a> |
| on a <a href="../../../../../org/apache/calcite/rel/core/Join.html" title="org.apache.calcite.rel.core中的类"><code>Join</code></a> and removes the join |
| provided that the join is a left join or right join and it computes no |
| aggregate functions or all the aggregate calls have distinct.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/AggregateJoinTransposeRule.html" title="org.apache.calcite.rel.rules中的类">AggregateJoinTransposeRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that pushes an |
| <a href="../../../../../org/apache/calcite/rel/core/Aggregate.html" title="org.apache.calcite.rel.core中的类"><code>Aggregate</code></a> |
| past a <a href="../../../../../org/apache/calcite/rel/core/Join.html" title="org.apache.calcite.rel.core中的类"><code>Join</code></a>.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/AggregateMergeRule.html" title="org.apache.calcite.rel.rules中的类">AggregateMergeRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that matches an <a href="../../../../../org/apache/calcite/rel/core/Aggregate.html" title="org.apache.calcite.rel.core中的类"><code>Aggregate</code></a> on a <a href="../../../../../org/apache/calcite/rel/core/Aggregate.html" title="org.apache.calcite.rel.core中的类"><code>Aggregate</code></a> |
| and the top aggregate's group key is a subset of the lower aggregate's |
| group key, and the aggregates are expansions of rollups, then it would |
| convert into a single aggregate.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/AggregateProjectMergeRule.html" title="org.apache.calcite.rel.rules中的类">AggregateProjectMergeRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that recognizes a <a href="../../../../../org/apache/calcite/rel/core/Aggregate.html" title="org.apache.calcite.rel.core中的类"><code>Aggregate</code></a> |
| on top of a <a href="../../../../../org/apache/calcite/rel/core/Project.html" title="org.apache.calcite.rel.core中的类"><code>Project</code></a> and if possible |
| aggregate through the project or removes the project.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/AggregateProjectPullUpConstantsRule.html" title="org.apache.calcite.rel.rules中的类">AggregateProjectPullUpConstantsRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that removes constant keys from an |
| <a href="../../../../../org/apache/calcite/rel/core/Aggregate.html" title="org.apache.calcite.rel.core中的类"><code>Aggregate</code></a>.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/AggregateReduceFunctionsRule.html" title="org.apache.calcite.rel.rules中的类">AggregateReduceFunctionsRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that reduces aggregate functions in |
| <a href="../../../../../org/apache/calcite/rel/core/Aggregate.html" title="org.apache.calcite.rel.core中的类"><code>Aggregate</code></a>s to simpler forms.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/AggregateRemoveRule.html" title="org.apache.calcite.rel.rules中的类">AggregateRemoveRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that removes |
| a <a href="../../../../../org/apache/calcite/rel/core/Aggregate.html" title="org.apache.calcite.rel.core中的类"><code>Aggregate</code></a> |
| if it computes no aggregate functions |
| (that is, it is implementing <code>SELECT DISTINCT</code>), |
| or all the aggregate functions are splittable, |
| and the underlying relational expression is already distinct.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/AggregateStarTableRule.html" title="org.apache.calcite.rel.rules中的类">AggregateStarTableRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that matches an <a href="../../../../../org/apache/calcite/rel/core/Aggregate.html" title="org.apache.calcite.rel.core中的类"><code>Aggregate</code></a> on |
| top of a <a href="../../../../../org/apache/calcite/schema/impl/StarTable.StarTableScan.html" title="org.apache.calcite.schema.impl中的类"><code>StarTable.StarTableScan</code></a>.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/AggregateUnionAggregateRule.html" title="org.apache.calcite.rel.rules中的类">AggregateUnionAggregateRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that matches |
| <a href="../../../../../org/apache/calcite/rel/core/Aggregate.html" title="org.apache.calcite.rel.core中的类"><code>Aggregate</code></a>s beneath a |
| <a href="../../../../../org/apache/calcite/rel/core/Union.html" title="org.apache.calcite.rel.core中的类"><code>Union</code></a> and pulls them up, so |
| that a single |
| <a href="../../../../../org/apache/calcite/rel/core/Aggregate.html" title="org.apache.calcite.rel.core中的类"><code>Aggregate</code></a> removes duplicates.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/AggregateUnionTransposeRule.html" title="org.apache.calcite.rel.rules中的类">AggregateUnionTransposeRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that pushes an |
| <a href="../../../../../org/apache/calcite/rel/core/Aggregate.html" title="org.apache.calcite.rel.core中的类"><code>Aggregate</code></a> |
| past a non-distinct <a href="../../../../../org/apache/calcite/rel/core/Union.html" title="org.apache.calcite.rel.core中的类"><code>Union</code></a>.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/AggregateValuesRule.html" title="org.apache.calcite.rel.rules中的类">AggregateValuesRule</a></td> |
| <td class="colLast"> |
| <div class="block">Rule that applies <a href="../../../../../org/apache/calcite/rel/core/Aggregate.html" title="org.apache.calcite.rel.core中的类"><code>Aggregate</code></a> to a <a href="../../../../../org/apache/calcite/rel/core/Values.html" title="org.apache.calcite.rel.core中的类"><code>Values</code></a> (currently just an |
| empty <code>Value</code>s).</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/CalcMergeRule.html" title="org.apache.calcite.rel.rules中的类">CalcMergeRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that merges a |
| <a href="../../../../../org/apache/calcite/rel/logical/LogicalCalc.html" title="org.apache.calcite.rel.logical中的类"><code>LogicalCalc</code></a> onto a |
| <a href="../../../../../org/apache/calcite/rel/logical/LogicalCalc.html" title="org.apache.calcite.rel.logical中的类"><code>LogicalCalc</code></a>.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/CalcRelSplitter.html" title="org.apache.calcite.rel.rules中的类">CalcRelSplitter</a></td> |
| <td class="colLast"> |
| <div class="block">CalcRelSplitter operates on a |
| <a href="../../../../../org/apache/calcite/rel/core/Calc.html" title="org.apache.calcite.rel.core中的类"><code>Calc</code></a> with multiple <a href="../../../../../org/apache/calcite/rex/RexCall.html" title="org.apache.calcite.rex中的类"><code>RexCall</code></a> |
| sub-expressions that cannot all be implemented by a single concrete |
| <a href="../../../../../org/apache/calcite/rel/RelNode.html" title="org.apache.calcite.rel中的接口"><code>RelNode</code></a>.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/CalcRelSplitter.RelType.html" title="org.apache.calcite.rel.rules中的类">CalcRelSplitter.RelType</a></td> |
| <td class="colLast"> |
| <div class="block">Type of relational expression.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/CalcRemoveRule.html" title="org.apache.calcite.rel.rules中的类">CalcRemoveRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that removes a trivial |
| <a href="../../../../../org/apache/calcite/rel/logical/LogicalCalc.html" title="org.apache.calcite.rel.logical中的类"><code>LogicalCalc</code></a>.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/CalcSplitRule.html" title="org.apache.calcite.rel.rules中的类">CalcSplitRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that converts a <a href="../../../../../org/apache/calcite/rel/core/Calc.html" title="org.apache.calcite.rel.core中的类"><code>Calc</code></a> |
| to a <a href="../../../../../org/apache/calcite/rel/core/Project.html" title="org.apache.calcite.rel.core中的类"><code>Project</code></a> |
| and <a href="../../../../../org/apache/calcite/rel/core/Filter.html" title="org.apache.calcite.rel.core中的类"><code>Filter</code></a>.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/CoerceInputsRule.html" title="org.apache.calcite.rel.rules中的类">CoerceInputsRule</a></td> |
| <td class="colLast"> |
| <div class="block">CoerceInputsRule pre-casts inputs to a particular type.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/DateRangeRules.html" title="org.apache.calcite.rel.rules中的类">DateRangeRules</a></td> |
| <td class="colLast"> |
| <div class="block">Collection of planner rules that convert |
| <code>EXTRACT(timeUnit FROM dateTime) = constant</code>, |
| <code>FLOOR(dateTime to timeUnit</code> = constant} and |
| <code>CEIL(dateTime to timeUnit</code> = constant} to |
| <code>dateTime BETWEEN lower AND upper</code>.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/DateRangeRules.FilterDateRangeRule.html" title="org.apache.calcite.rel.rules中的类">DateRangeRules.FilterDateRangeRule</a></td> |
| <td class="colLast"> |
| <div class="block">Rule that converts EXTRACT, FLOOR and CEIL in a <a href="../../../../../org/apache/calcite/rel/core/Filter.html" title="org.apache.calcite.rel.core中的类"><code>Filter</code></a> into a date |
| range.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/EquiJoin.html" title="org.apache.calcite.rel.rules中的类">EquiJoin</a></td> |
| <td class="colLast">已过时 |
| <div class="block"><span class="deprecationComment">Use |
| <a href="../../../../../org/apache/calcite/rel/core/EquiJoin.html" title="org.apache.calcite.rel.core中的类"><code>EquiJoin in 'core' package</code></a></span></div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/ExchangeRemoveConstantKeysRule.html" title="org.apache.calcite.rel.rules中的类">ExchangeRemoveConstantKeysRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that removes keys from |
| a <a href="../../../../../org/apache/calcite/rel/core/Exchange.html" title="org.apache.calcite.rel.core中的类"><code>Exchange</code></a> if those keys are known to be constant.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/ExchangeRemoveConstantKeysRule.SortExchangeRemoveConstantKeysRule.html" title="org.apache.calcite.rel.rules中的类">ExchangeRemoveConstantKeysRule.SortExchangeRemoveConstantKeysRule</a></td> |
| <td class="colLast"> |
| <div class="block">Rule that reduces constants inside a <a href="../../../../../org/apache/calcite/rel/core/SortExchange.html" title="org.apache.calcite.rel.core中的类"><code>SortExchange</code></a>.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/FilterAggregateTransposeRule.html" title="org.apache.calcite.rel.rules中的类">FilterAggregateTransposeRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that pushes a <a href="../../../../../org/apache/calcite/rel/core/Filter.html" title="org.apache.calcite.rel.core中的类"><code>Filter</code></a> |
| past a <a href="../../../../../org/apache/calcite/rel/core/Aggregate.html" title="org.apache.calcite.rel.core中的类"><code>Aggregate</code></a>.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/FilterCalcMergeRule.html" title="org.apache.calcite.rel.rules中的类">FilterCalcMergeRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that merges a |
| <a href="../../../../../org/apache/calcite/rel/logical/LogicalFilter.html" title="org.apache.calcite.rel.logical中的类"><code>LogicalFilter</code></a> and a |
| <a href="../../../../../org/apache/calcite/rel/logical/LogicalCalc.html" title="org.apache.calcite.rel.logical中的类"><code>LogicalCalc</code></a>.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/FilterCorrelateRule.html" title="org.apache.calcite.rel.rules中的类">FilterCorrelateRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that pushes a <a href="../../../../../org/apache/calcite/rel/core/Filter.html" title="org.apache.calcite.rel.core中的类"><code>Filter</code></a> above a <a href="../../../../../org/apache/calcite/rel/core/Correlate.html" title="org.apache.calcite.rel.core中的类"><code>Correlate</code></a> into the |
| inputs of the Correlate.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/FilterJoinRule.html" title="org.apache.calcite.rel.rules中的类">FilterJoinRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that pushes filters above and |
| within a join node into the join node and/or its children nodes.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/FilterJoinRule.FilterIntoJoinRule.html" title="org.apache.calcite.rel.rules中的类">FilterJoinRule.FilterIntoJoinRule</a></td> |
| <td class="colLast"> |
| <div class="block">Rule that tries to push filter expressions into a join |
| condition and into the inputs of the join.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/FilterJoinRule.JoinConditionPushRule.html" title="org.apache.calcite.rel.rules中的类">FilterJoinRule.JoinConditionPushRule</a></td> |
| <td class="colLast"> |
| <div class="block">Rule that pushes parts of the join condition to its inputs.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/FilterMergeRule.html" title="org.apache.calcite.rel.rules中的类">FilterMergeRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that combines two |
| <a href="../../../../../org/apache/calcite/rel/logical/LogicalFilter.html" title="org.apache.calcite.rel.logical中的类"><code>LogicalFilter</code></a>s.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/FilterMultiJoinMergeRule.html" title="org.apache.calcite.rel.rules中的类">FilterMultiJoinMergeRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that merges a |
| <a href="../../../../../org/apache/calcite/rel/core/Filter.html" title="org.apache.calcite.rel.core中的类"><code>Filter</code></a> into a <a href="../../../../../org/apache/calcite/rel/rules/MultiJoin.html" title="org.apache.calcite.rel.rules中的类"><code>MultiJoin</code></a>, |
| creating a richer <code>MultiJoin</code>.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/FilterProjectTransposeRule.html" title="org.apache.calcite.rel.rules中的类">FilterProjectTransposeRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that pushes |
| a <a href="../../../../../org/apache/calcite/rel/core/Filter.html" title="org.apache.calcite.rel.core中的类"><code>Filter</code></a> |
| past a <a href="../../../../../org/apache/calcite/rel/core/Project.html" title="org.apache.calcite.rel.core中的类"><code>Project</code></a>.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/FilterRemoveIsNotDistinctFromRule.html" title="org.apache.calcite.rel.rules中的类">FilterRemoveIsNotDistinctFromRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that replaces <code>IS NOT DISTINCT FROM</code> |
| in a <a href="../../../../../org/apache/calcite/rel/core/Filter.html" title="org.apache.calcite.rel.core中的类"><code>Filter</code></a> with logically equivalent operations.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/FilterSetOpTransposeRule.html" title="org.apache.calcite.rel.rules中的类">FilterSetOpTransposeRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that pushes a <a href="../../../../../org/apache/calcite/rel/core/Filter.html" title="org.apache.calcite.rel.core中的类"><code>Filter</code></a> |
| past a <a href="../../../../../org/apache/calcite/rel/core/SetOp.html" title="org.apache.calcite.rel.core中的类"><code>SetOp</code></a>.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/FilterTableFunctionTransposeRule.html" title="org.apache.calcite.rel.rules中的类">FilterTableFunctionTransposeRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that pushes |
| a <a href="../../../../../org/apache/calcite/rel/logical/LogicalFilter.html" title="org.apache.calcite.rel.logical中的类"><code>LogicalFilter</code></a> |
| past a <a href="../../../../../org/apache/calcite/rel/logical/LogicalTableFunctionScan.html" title="org.apache.calcite.rel.logical中的类"><code>LogicalTableFunctionScan</code></a>.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/FilterTableScanRule.html" title="org.apache.calcite.rel.rules中的类">FilterTableScanRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that converts |
| a <a href="../../../../../org/apache/calcite/rel/core/Filter.html" title="org.apache.calcite.rel.core中的类"><code>Filter</code></a> |
| on a <a href="../../../../../org/apache/calcite/rel/core/TableScan.html" title="org.apache.calcite.rel.core中的类"><code>TableScan</code></a> |
| of a <a href="../../../../../org/apache/calcite/schema/FilterableTable.html" title="org.apache.calcite.schema中的接口"><code>FilterableTable</code></a> |
| or a <a href="../../../../../org/apache/calcite/schema/ProjectableFilterableTable.html" title="org.apache.calcite.schema中的接口"><code>ProjectableFilterableTable</code></a> |
| to a <a href="../../../../../org/apache/calcite/interpreter/Bindables.BindableTableScan.html" title="org.apache.calcite.interpreter中的类"><code>Bindables.BindableTableScan</code></a>.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/FilterToCalcRule.html" title="org.apache.calcite.rel.rules中的类">FilterToCalcRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that converts a |
| <a href="../../../../../org/apache/calcite/rel/logical/LogicalFilter.html" title="org.apache.calcite.rel.logical中的类"><code>LogicalFilter</code></a> to a |
| <a href="../../../../../org/apache/calcite/rel/logical/LogicalCalc.html" title="org.apache.calcite.rel.logical中的类"><code>LogicalCalc</code></a>.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/IntersectToDistinctRule.html" title="org.apache.calcite.rel.rules中的类">IntersectToDistinctRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that translates a distinct |
| <a href="../../../../../org/apache/calcite/rel/core/Intersect.html" title="org.apache.calcite.rel.core中的类"><code>Intersect</code></a> |
| (<code>all</code> = <code>false</code>) |
| into a group of operators composed of |
| <a href="../../../../../org/apache/calcite/rel/core/Union.html" title="org.apache.calcite.rel.core中的类"><code>Union</code></a>, |
| <a href="../../../../../org/apache/calcite/rel/core/Aggregate.html" title="org.apache.calcite.rel.core中的类"><code>Aggregate</code></a>, etc.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/JoinAddRedundantSemiJoinRule.html" title="org.apache.calcite.rel.rules中的类">JoinAddRedundantSemiJoinRule</a></td> |
| <td class="colLast"> |
| <div class="block">Rule to add a semi-join into a join.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/JoinAssociateRule.html" title="org.apache.calcite.rel.rules中的类">JoinAssociateRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that changes a join based on the associativity rule.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/JoinCommuteRule.html" title="org.apache.calcite.rel.rules中的类">JoinCommuteRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that permutes the inputs to a |
| <a href="../../../../../org/apache/calcite/rel/core/Join.html" title="org.apache.calcite.rel.core中的类"><code>Join</code></a>.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/JoinExtractFilterRule.html" title="org.apache.calcite.rel.rules中的类">JoinExtractFilterRule</a></td> |
| <td class="colLast"> |
| <div class="block">Rule to convert an |
| <a href="../../../../../org/apache/calcite/rel/logical/LogicalJoin.html" title="org.apache.calcite.rel.logical中的类"><code>inner join</code></a> to a |
| <a href="../../../../../org/apache/calcite/rel/logical/LogicalFilter.html" title="org.apache.calcite.rel.logical中的类"><code>filter</code></a> on top of a |
| <a href="../../../../../org/apache/calcite/rel/logical/LogicalJoin.html" title="org.apache.calcite.rel.logical中的类"><code>cartesian inner join</code></a>.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/JoinProjectTransposeRule.html" title="org.apache.calcite.rel.rules中的类">JoinProjectTransposeRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that matches a |
| <a href="../../../../../org/apache/calcite/rel/core/Join.html" title="org.apache.calcite.rel.core中的类"><code>Join</code></a> one of whose inputs is a |
| <a href="../../../../../org/apache/calcite/rel/logical/LogicalProject.html" title="org.apache.calcite.rel.logical中的类"><code>LogicalProject</code></a>, and |
| pulls the project up.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/JoinPushExpressionsRule.html" title="org.apache.calcite.rel.rules中的类">JoinPushExpressionsRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that pushes down expressions in "equal" join condition.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/JoinPushThroughJoinRule.html" title="org.apache.calcite.rel.rules中的类">JoinPushThroughJoinRule</a></td> |
| <td class="colLast"> |
| <div class="block">Rule that pushes the right input of a join into through the left input of |
| the join, provided that the left input is also a join.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/JoinPushTransitivePredicatesRule.html" title="org.apache.calcite.rel.rules中的类">JoinPushTransitivePredicatesRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that infers predicates from on a |
| <a href="../../../../../org/apache/calcite/rel/core/Join.html" title="org.apache.calcite.rel.core中的类"><code>Join</code></a> and creates |
| <a href="../../../../../org/apache/calcite/rel/core/Filter.html" title="org.apache.calcite.rel.core中的类"><code>Filter</code></a>s if those predicates can be pushed |
| to its inputs.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/JoinToCorrelateRule.html" title="org.apache.calcite.rel.rules中的类">JoinToCorrelateRule</a></td> |
| <td class="colLast"> |
| <div class="block">Rule that converts a <a href="../../../../../org/apache/calcite/rel/core/Join.html" title="org.apache.calcite.rel.core中的类"><code>Join</code></a> |
| into a <a href="../../../../../org/apache/calcite/rel/logical/LogicalCorrelate.html" title="org.apache.calcite.rel.logical中的类"><code>LogicalCorrelate</code></a>, which can |
| then be implemented using nested loops.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/JoinToMultiJoinRule.html" title="org.apache.calcite.rel.rules中的类">JoinToMultiJoinRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule to flatten a tree of |
| <a href="../../../../../org/apache/calcite/rel/logical/LogicalJoin.html" title="org.apache.calcite.rel.logical中的类"><code>LogicalJoin</code></a>s |
| into a single <a href="../../../../../org/apache/calcite/rel/rules/MultiJoin.html" title="org.apache.calcite.rel.rules中的类"><code>MultiJoin</code></a> with N inputs.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/JoinUnionTransposeRule.html" title="org.apache.calcite.rel.rules中的类">JoinUnionTransposeRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that pushes a |
| <a href="../../../../../org/apache/calcite/rel/core/Join.html" title="org.apache.calcite.rel.core中的类"><code>Join</code></a> |
| past a non-distinct <a href="../../../../../org/apache/calcite/rel/core/Union.html" title="org.apache.calcite.rel.core中的类"><code>Union</code></a>.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/LoptJoinTree.html" title="org.apache.calcite.rel.rules中的类">LoptJoinTree</a></td> |
| <td class="colLast"> |
| <div class="block">Utility class used to store a <a href="../../../../../org/apache/calcite/rel/core/Join.html" title="org.apache.calcite.rel.core中的类"><code>Join</code></a> tree |
| and the factors that make up the tree.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/LoptJoinTree.BinaryTree.html" title="org.apache.calcite.rel.rules中的类">LoptJoinTree.BinaryTree</a></td> |
| <td class="colLast"> |
| <div class="block">Simple binary tree class that stores an id in the leaf nodes and keeps |
| track of the parent LoptJoinTree object associated with the binary tree.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/LoptJoinTree.Leaf.html" title="org.apache.calcite.rel.rules中的类">LoptJoinTree.Leaf</a></td> |
| <td class="colLast"> |
| <div class="block">Binary tree node that has no children.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/LoptJoinTree.Node.html" title="org.apache.calcite.rel.rules中的类">LoptJoinTree.Node</a></td> |
| <td class="colLast"> |
| <div class="block">Binary tree node that has two children.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/LoptMultiJoin.html" title="org.apache.calcite.rel.rules中的类">LoptMultiJoin</a></td> |
| <td class="colLast"> |
| <div class="block">Utility class that keeps track of the join factors that |
| make up a <a href="../../../../../org/apache/calcite/rel/rules/MultiJoin.html" title="org.apache.calcite.rel.rules中的类"><code>MultiJoin</code></a>.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/LoptOptimizeJoinRule.html" title="org.apache.calcite.rel.rules中的类">LoptOptimizeJoinRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that implements the heuristic planner for determining optimal |
| join orderings.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/LoptSemiJoinOptimizer.html" title="org.apache.calcite.rel.rules中的类">LoptSemiJoinOptimizer</a></td> |
| <td class="colLast"> |
| <div class="block">Implements the logic for determining the optimal |
| semi-joins to be used in processing joins in a query.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/MatchRule.html" title="org.apache.calcite.rel.rules中的类">MatchRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that converts a |
| <a href="../../../../../org/apache/calcite/rel/logical/LogicalMatch.html" title="org.apache.calcite.rel.logical中的类"><code>LogicalMatch</code></a> to the result |
| of calling <a href="../../../../../org/apache/calcite/rel/logical/LogicalMatch.html#copy-org.apache.calcite.plan.RelTraitSet-java.util.List-"><code>LogicalMatch.copy(org.apache.calcite.plan.RelTraitSet, java.util.List<org.apache.calcite.rel.RelNode>)</code></a>.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/MaterializedViewFilterScanRule.html" title="org.apache.calcite.rel.rules中的类">MaterializedViewFilterScanRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that converts |
| a <a href="../../../../../org/apache/calcite/rel/core/Filter.html" title="org.apache.calcite.rel.core中的类"><code>Filter</code></a> |
| on a <a href="../../../../../org/apache/calcite/rel/core/TableScan.html" title="org.apache.calcite.rel.core中的类"><code>TableScan</code></a> |
| to a <a href="../../../../../org/apache/calcite/rel/core/Filter.html" title="org.apache.calcite.rel.core中的类"><code>Filter</code></a> on Materialized View</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/MultiJoin.html" title="org.apache.calcite.rel.rules中的类">MultiJoin</a></td> |
| <td class="colLast"> |
| <div class="block">A MultiJoin represents a join of N inputs, whereas regular Joins |
| represent strictly binary joins.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/MultiJoinOptimizeBushyRule.html" title="org.apache.calcite.rel.rules中的类">MultiJoinOptimizeBushyRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that finds an approximately optimal ordering for join operators |
| using a heuristic algorithm.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/MultiJoinProjectTransposeRule.html" title="org.apache.calcite.rel.rules中的类">MultiJoinProjectTransposeRule</a></td> |
| <td class="colLast"> |
| <div class="block">MultiJoinProjectTransposeRule implements the rule for pulling |
| <a href="../../../../../org/apache/calcite/rel/logical/LogicalProject.html" title="org.apache.calcite.rel.logical中的类"><code>LogicalProject</code></a>s that are on top of a |
| <a href="../../../../../org/apache/calcite/rel/rules/MultiJoin.html" title="org.apache.calcite.rel.rules中的类"><code>MultiJoin</code></a> and beneath a |
| <a href="../../../../../org/apache/calcite/rel/logical/LogicalJoin.html" title="org.apache.calcite.rel.logical中的类"><code>LogicalJoin</code></a> so the |
| <a href="../../../../../org/apache/calcite/rel/logical/LogicalProject.html" title="org.apache.calcite.rel.logical中的类"><code>LogicalProject</code></a> appears above the |
| <a href="../../../../../org/apache/calcite/rel/logical/LogicalJoin.html" title="org.apache.calcite.rel.logical中的类"><code>LogicalJoin</code></a>.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/ProjectCalcMergeRule.html" title="org.apache.calcite.rel.rules中的类">ProjectCalcMergeRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule which merges a |
| <a href="../../../../../org/apache/calcite/rel/logical/LogicalProject.html" title="org.apache.calcite.rel.logical中的类"><code>LogicalProject</code></a> and a |
| <a href="../../../../../org/apache/calcite/rel/logical/LogicalCalc.html" title="org.apache.calcite.rel.logical中的类"><code>LogicalCalc</code></a>.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/ProjectCorrelateTransposeRule.html" title="org.apache.calcite.rel.rules中的类">ProjectCorrelateTransposeRule</a></td> |
| <td class="colLast"> |
| <div class="block">Push Project under Correlate to apply on Correlate's left and right child</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/ProjectCorrelateTransposeRule.RelNodesExprsHandler.html" title="org.apache.calcite.rel.rules中的类">ProjectCorrelateTransposeRule.RelNodesExprsHandler</a></td> |
| <td class="colLast"> |
| <div class="block">Visitor for RelNodes which applies specified <a href="../../../../../org/apache/calcite/rex/RexShuttle.html" title="org.apache.calcite.rex中的类"><code>RexShuttle</code></a> visitor |
| for every node in the tree.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/ProjectCorrelateTransposeRule.RexFieldAccessReplacer.html" title="org.apache.calcite.rel.rules中的类">ProjectCorrelateTransposeRule.RexFieldAccessReplacer</a></td> |
| <td class="colLast"> |
| <div class="block">Visitor for RexNodes which replaces <a href="../../../../../org/apache/calcite/rex/RexCorrelVariable.html" title="org.apache.calcite.rex中的类"><code>RexCorrelVariable</code></a> with specified.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/ProjectFilterTransposeRule.html" title="org.apache.calcite.rel.rules中的类">ProjectFilterTransposeRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that pushes a <a href="../../../../../org/apache/calcite/rel/core/Project.html" title="org.apache.calcite.rel.core中的类"><code>Project</code></a> |
| past a <a href="../../../../../org/apache/calcite/rel/core/Filter.html" title="org.apache.calcite.rel.core中的类"><code>Filter</code></a>.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/ProjectJoinJoinRemoveRule.html" title="org.apache.calcite.rel.rules中的类">ProjectJoinJoinRemoveRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that matches an <a href="../../../../../org/apache/calcite/rel/core/Project.html" title="org.apache.calcite.rel.core中的类"><code>Project</code></a> |
| on a <a href="../../../../../org/apache/calcite/rel/core/Join.html" title="org.apache.calcite.rel.core中的类"><code>Join</code></a> and removes the left input |
| of the join provided that the left input is also a left join if possible.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/ProjectJoinRemoveRule.html" title="org.apache.calcite.rel.rules中的类">ProjectJoinRemoveRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that matches an <a href="../../../../../org/apache/calcite/rel/core/Project.html" title="org.apache.calcite.rel.core中的类"><code>Project</code></a> |
| on a <a href="../../../../../org/apache/calcite/rel/core/Join.html" title="org.apache.calcite.rel.core中的类"><code>Join</code></a> and removes the join provided that the join is a left join |
| or right join and the join keys are unique.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/ProjectJoinTransposeRule.html" title="org.apache.calcite.rel.rules中的类">ProjectJoinTransposeRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that pushes a <a href="../../../../../org/apache/calcite/rel/core/Project.html" title="org.apache.calcite.rel.core中的类"><code>Project</code></a> |
| past a <a href="../../../../../org/apache/calcite/rel/core/Join.html" title="org.apache.calcite.rel.core中的类"><code>Join</code></a> |
| by splitting the projection into a projection on top of each child of |
| the join.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/ProjectMergeRule.html" title="org.apache.calcite.rel.rules中的类">ProjectMergeRule</a></td> |
| <td class="colLast"> |
| <div class="block">ProjectMergeRule merges a <a href="../../../../../org/apache/calcite/rel/core/Project.html" title="org.apache.calcite.rel.core中的类"><code>Project</code></a> into |
| another <a href="../../../../../org/apache/calcite/rel/core/Project.html" title="org.apache.calcite.rel.core中的类"><code>Project</code></a>, |
| provided the projects aren't projecting identical sets of input references.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/ProjectMultiJoinMergeRule.html" title="org.apache.calcite.rel.rules中的类">ProjectMultiJoinMergeRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that pushes |
| <a href="../../../../../org/apache/calcite/rel/core/Project.html" title="org.apache.calcite.rel.core中的类"><code>Project</code></a> |
| into a <a href="../../../../../org/apache/calcite/rel/rules/MultiJoin.html" title="org.apache.calcite.rel.rules中的类"><code>MultiJoin</code></a>, |
| creating a richer <code>MultiJoin</code>.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/ProjectRemoveRule.html" title="org.apache.calcite.rel.rules中的类">ProjectRemoveRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that, |
| given a <a href="../../../../../org/apache/calcite/rel/core/Project.html" title="org.apache.calcite.rel.core中的类"><code>Project</code></a> node that |
| merely returns its input, converts the node into its child.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/ProjectSetOpTransposeRule.html" title="org.apache.calcite.rel.rules中的类">ProjectSetOpTransposeRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that pushes |
| a <a href="../../../../../org/apache/calcite/rel/logical/LogicalProject.html" title="org.apache.calcite.rel.logical中的类"><code>LogicalProject</code></a> |
| past a <a href="../../../../../org/apache/calcite/rel/core/SetOp.html" title="org.apache.calcite.rel.core中的类"><code>SetOp</code></a>.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/ProjectSortTransposeRule.html" title="org.apache.calcite.rel.rules中的类">ProjectSortTransposeRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that pushes |
| a <a href="../../../../../org/apache/calcite/rel/core/Project.html" title="org.apache.calcite.rel.core中的类"><code>Project</code></a> |
| past a <a href="../../../../../org/apache/calcite/rel/core/Sort.html" title="org.apache.calcite.rel.core中的类"><code>Sort</code></a>.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/ProjectTableScanRule.html" title="org.apache.calcite.rel.rules中的类">ProjectTableScanRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that converts a <a href="../../../../../org/apache/calcite/rel/core/Project.html" title="org.apache.calcite.rel.core中的类"><code>Project</code></a> |
| on a <a href="../../../../../org/apache/calcite/rel/core/TableScan.html" title="org.apache.calcite.rel.core中的类"><code>TableScan</code></a> |
| of a <a href="../../../../../org/apache/calcite/schema/ProjectableFilterableTable.html" title="org.apache.calcite.schema中的接口"><code>ProjectableFilterableTable</code></a> |
| to a <a href="../../../../../org/apache/calcite/interpreter/Bindables.BindableTableScan.html" title="org.apache.calcite.interpreter中的类"><code>Bindables.BindableTableScan</code></a>.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/ProjectToCalcRule.html" title="org.apache.calcite.rel.rules中的类">ProjectToCalcRule</a></td> |
| <td class="colLast"> |
| <div class="block">Rule to convert a |
| <a href="../../../../../org/apache/calcite/rel/logical/LogicalProject.html" title="org.apache.calcite.rel.logical中的类"><code>LogicalProject</code></a> to a |
| <a href="../../../../../org/apache/calcite/rel/logical/LogicalCalc.html" title="org.apache.calcite.rel.logical中的类"><code>LogicalCalc</code></a> |
| |
| The rule does not fire if the child is a |
| <a href="../../../../../org/apache/calcite/rel/logical/LogicalProject.html" title="org.apache.calcite.rel.logical中的类"><code>LogicalProject</code></a>, |
| <a href="../../../../../org/apache/calcite/rel/logical/LogicalFilter.html" title="org.apache.calcite.rel.logical中的类"><code>LogicalFilter</code></a> or |
| <a href="../../../../../org/apache/calcite/rel/logical/LogicalCalc.html" title="org.apache.calcite.rel.logical中的类"><code>LogicalCalc</code></a>.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/ProjectToWindowRule.html" title="org.apache.calcite.rel.rules中的类">ProjectToWindowRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that slices a |
| <a href="../../../../../org/apache/calcite/rel/core/Project.html" title="org.apache.calcite.rel.core中的类"><code>Project</code></a> |
| into sections which contain windowed |
| aggregate functions and sections which do not.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/ProjectToWindowRule.CalcToWindowRule.html" title="org.apache.calcite.rel.rules中的类">ProjectToWindowRule.CalcToWindowRule</a></td> |
| <td class="colLast"> |
| <div class="block">Instance of the rule that applies to a |
| <a href="../../../../../org/apache/calcite/rel/core/Calc.html" title="org.apache.calcite.rel.core中的类"><code>Calc</code></a> that contains |
| windowed aggregates and converts it into a mixture of |
| <a href="../../../../../org/apache/calcite/rel/logical/LogicalWindow.html" title="org.apache.calcite.rel.logical中的类"><code>LogicalWindow</code></a> and <code>Calc</code>.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/ProjectToWindowRule.ProjectToLogicalProjectAndWindowRule.html" title="org.apache.calcite.rel.rules中的类">ProjectToWindowRule.ProjectToLogicalProjectAndWindowRule</a></td> |
| <td class="colLast"> |
| <div class="block">Instance of the rule that can be applied to a |
| <a href="../../../../../org/apache/calcite/rel/core/Project.html" title="org.apache.calcite.rel.core中的类"><code>Project</code></a> and that produces, in turn, |
| a mixture of <code>LogicalProject</code> |
| and <a href="../../../../../org/apache/calcite/rel/logical/LogicalWindow.html" title="org.apache.calcite.rel.logical中的类"><code>LogicalWindow</code></a>.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/ProjectWindowTransposeRule.html" title="org.apache.calcite.rel.rules中的类">ProjectWindowTransposeRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that pushes |
| a <a href="../../../../../org/apache/calcite/rel/logical/LogicalProject.html" title="org.apache.calcite.rel.logical中的类"><code>LogicalProject</code></a> |
| past a <a href="../../../../../org/apache/calcite/rel/logical/LogicalWindow.html" title="org.apache.calcite.rel.logical中的类"><code>LogicalWindow</code></a>.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/PruneEmptyRules.html" title="org.apache.calcite.rel.rules中的类">PruneEmptyRules</a></td> |
| <td class="colLast"> |
| <div class="block">Collection of rules which remove sections of a query plan known never to |
| produce any rows.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/PruneEmptyRules.RemoveEmptySingleRule.html" title="org.apache.calcite.rel.rules中的类">PruneEmptyRules.RemoveEmptySingleRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that converts a single-rel (e.g. project, sort, aggregate or |
| filter) on top of the empty relational expression into empty.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/PushProjector.html" title="org.apache.calcite.rel.rules中的类">PushProjector</a></td> |
| <td class="colLast"> |
| <div class="block">PushProjector is a utility class used to perform operations used in push |
| projection rules.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/ReduceDecimalsRule.html" title="org.apache.calcite.rel.rules中的类">ReduceDecimalsRule</a></td> |
| <td class="colLast"> |
| <div class="block">ReduceDecimalsRule is a rule which reduces decimal operations (such as casts |
| or arithmetic) into operations involving more primitive types (such as longs |
| and doubles).</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/ReduceExpressionsRule.html" title="org.apache.calcite.rel.rules中的类">ReduceExpressionsRule</a></td> |
| <td class="colLast"> |
| <div class="block">Collection of planner rules that apply various simplifying transformations on |
| RexNode trees.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/ReduceExpressionsRule.CalcReduceExpressionsRule.html" title="org.apache.calcite.rel.rules中的类">ReduceExpressionsRule.CalcReduceExpressionsRule</a></td> |
| <td class="colLast"> |
| <div class="block">Rule that reduces constants inside a <a href="../../../../../org/apache/calcite/rel/core/Calc.html" title="org.apache.calcite.rel.core中的类"><code>Calc</code></a>.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/ReduceExpressionsRule.CaseShuttle.html" title="org.apache.calcite.rel.rules中的类">ReduceExpressionsRule.CaseShuttle</a></td> |
| <td class="colLast"> |
| <div class="block">Shuttle that pushes predicates into a CASE.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/ReduceExpressionsRule.FilterReduceExpressionsRule.html" title="org.apache.calcite.rel.rules中的类">ReduceExpressionsRule.FilterReduceExpressionsRule</a></td> |
| <td class="colLast"> |
| <div class="block">Rule that reduces constants inside a <a href="../../../../../org/apache/calcite/rel/core/Filter.html" title="org.apache.calcite.rel.core中的类"><code>Filter</code></a>.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/ReduceExpressionsRule.JoinReduceExpressionsRule.html" title="org.apache.calcite.rel.rules中的类">ReduceExpressionsRule.JoinReduceExpressionsRule</a></td> |
| <td class="colLast"> |
| <div class="block">Rule that reduces constants inside a <a href="../../../../../org/apache/calcite/rel/core/Join.html" title="org.apache.calcite.rel.core中的类"><code>Join</code></a>.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/ReduceExpressionsRule.ProjectReduceExpressionsRule.html" title="org.apache.calcite.rel.rules中的类">ReduceExpressionsRule.ProjectReduceExpressionsRule</a></td> |
| <td class="colLast"> |
| <div class="block">Rule that reduces constants inside a <a href="../../../../../org/apache/calcite/rel/core/Project.html" title="org.apache.calcite.rel.core中的类"><code>Project</code></a>.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/ReduceExpressionsRule.ReducibleExprLocator.html" title="org.apache.calcite.rel.rules中的类">ReduceExpressionsRule.ReducibleExprLocator</a></td> |
| <td class="colLast"> |
| <div class="block">Helper class used to locate expressions that either can be reduced to |
| literals or contain redundant casts.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/ReduceExpressionsRule.RexReplacer.html" title="org.apache.calcite.rel.rules中的类">ReduceExpressionsRule.RexReplacer</a></td> |
| <td class="colLast"> |
| <div class="block">Replaces expressions with their reductions.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/ReduceExpressionsRule.WindowReduceExpressionsRule.html" title="org.apache.calcite.rel.rules中的类">ReduceExpressionsRule.WindowReduceExpressionsRule</a></td> |
| <td class="colLast"> |
| <div class="block">Rule that reduces constants inside a <a href="../../../../../org/apache/calcite/rel/core/Window.html" title="org.apache.calcite.rel.core中的类"><code>Window</code></a>.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/SemiJoinFilterTransposeRule.html" title="org.apache.calcite.rel.rules中的类">SemiJoinFilterTransposeRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that pushes <code>SemiJoin</code>s down in a tree past |
| a <a href="../../../../../org/apache/calcite/rel/core/Filter.html" title="org.apache.calcite.rel.core中的类"><code>Filter</code></a>.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/SemiJoinJoinTransposeRule.html" title="org.apache.calcite.rel.rules中的类">SemiJoinJoinTransposeRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that pushes a <code>SemiJoin</code> |
| down in a tree past a <a href="../../../../../org/apache/calcite/rel/core/Join.html" title="org.apache.calcite.rel.core中的类"><code>Join</code></a> |
| in order to trigger other rules that will convert <code>SemiJoin</code>s.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/SemiJoinProjectTransposeRule.html" title="org.apache.calcite.rel.rules中的类">SemiJoinProjectTransposeRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that pushes |
| a <code>SemiJoin</code> down in a tree past |
| a <a href="../../../../../org/apache/calcite/rel/core/Project.html" title="org.apache.calcite.rel.core中的类"><code>Project</code></a>.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/SemiJoinRemoveRule.html" title="org.apache.calcite.rel.rules中的类">SemiJoinRemoveRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that removes a <code>SemiJoin</code>s from a join tree.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/SemiJoinRule.html" title="org.apache.calcite.rel.rules中的类">SemiJoinRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that creates a <code>SemiJoin</code> from a |
| <a href="../../../../../org/apache/calcite/rel/core/Join.html" title="org.apache.calcite.rel.core中的类"><code>Join</code></a> on top of a |
| <a href="../../../../../org/apache/calcite/rel/logical/LogicalAggregate.html" title="org.apache.calcite.rel.logical中的类"><code>LogicalAggregate</code></a>.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/SemiJoinRule.JoinToSemiJoinRule.html" title="org.apache.calcite.rel.rules中的类">SemiJoinRule.JoinToSemiJoinRule</a></td> |
| <td class="colLast"> |
| <div class="block">SemiJoinRule that matches a Join with an empty Aggregate as its right |
| child.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/SemiJoinRule.ProjectToSemiJoinRule.html" title="org.apache.calcite.rel.rules中的类">SemiJoinRule.ProjectToSemiJoinRule</a></td> |
| <td class="colLast"> |
| <div class="block">SemiJoinRule that matches a Project on top of a Join with an Aggregate |
| as its right child.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/SortJoinCopyRule.html" title="org.apache.calcite.rel.rules中的类">SortJoinCopyRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that copies a <a href="../../../../../org/apache/calcite/rel/core/Sort.html" title="org.apache.calcite.rel.core中的类"><code>Sort</code></a> past a |
| <a href="../../../../../org/apache/calcite/rel/core/Join.html" title="org.apache.calcite.rel.core中的类"><code>Join</code></a> without its limit and offset.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/SortJoinTransposeRule.html" title="org.apache.calcite.rel.rules中的类">SortJoinTransposeRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that pushes a <a href="../../../../../org/apache/calcite/rel/core/Sort.html" title="org.apache.calcite.rel.core中的类"><code>Sort</code></a> past a |
| <a href="../../../../../org/apache/calcite/rel/core/Join.html" title="org.apache.calcite.rel.core中的类"><code>Join</code></a>.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/SortProjectTransposeRule.html" title="org.apache.calcite.rel.rules中的类">SortProjectTransposeRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that pushes |
| a <a href="../../../../../org/apache/calcite/rel/core/Sort.html" title="org.apache.calcite.rel.core中的类"><code>Sort</code></a> |
| past a <a href="../../../../../org/apache/calcite/rel/core/Project.html" title="org.apache.calcite.rel.core中的类"><code>Project</code></a>.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/SortRemoveConstantKeysRule.html" title="org.apache.calcite.rel.rules中的类">SortRemoveConstantKeysRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that removes keys from a |
| a <a href="../../../../../org/apache/calcite/rel/core/Sort.html" title="org.apache.calcite.rel.core中的类"><code>Sort</code></a> if those keys are known to be |
| constant, or removes the entire Sort if all keys are constant.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/SortRemoveRule.html" title="org.apache.calcite.rel.rules中的类">SortRemoveRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that removes |
| a <a href="../../../../../org/apache/calcite/rel/core/Sort.html" title="org.apache.calcite.rel.core中的类"><code>Sort</code></a> if its input is already sorted.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/SortUnionTransposeRule.html" title="org.apache.calcite.rel.rules中的类">SortUnionTransposeRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that pushes a <a href="../../../../../org/apache/calcite/rel/core/Sort.html" title="org.apache.calcite.rel.core中的类"><code>Sort</code></a> past a |
| <a href="../../../../../org/apache/calcite/rel/core/Union.html" title="org.apache.calcite.rel.core中的类"><code>Union</code></a>.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/SubQueryRemoveRule.html" title="org.apache.calcite.rel.rules中的类">SubQueryRemoveRule</a></td> |
| <td class="colLast"> |
| <div class="block">Transform that converts IN, EXISTS and scalar sub-queries into joins.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/SubQueryRemoveRule.SubQueryFilterRemoveRule.html" title="org.apache.calcite.rel.rules中的类">SubQueryRemoveRule.SubQueryFilterRemoveRule</a></td> |
| <td class="colLast"> |
| <div class="block">Rule that converts a sub-queries from filter expressions into |
| <a href="../../../../../org/apache/calcite/rel/core/Correlate.html" title="org.apache.calcite.rel.core中的类"><code>Correlate</code></a> instances.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/SubQueryRemoveRule.SubQueryJoinRemoveRule.html" title="org.apache.calcite.rel.rules中的类">SubQueryRemoveRule.SubQueryJoinRemoveRule</a></td> |
| <td class="colLast"> |
| <div class="block">Rule that converts sub-queries from join expressions into |
| <a href="../../../../../org/apache/calcite/rel/core/Correlate.html" title="org.apache.calcite.rel.core中的类"><code>Correlate</code></a> instances.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/SubQueryRemoveRule.SubQueryProjectRemoveRule.html" title="org.apache.calcite.rel.rules中的类">SubQueryRemoveRule.SubQueryProjectRemoveRule</a></td> |
| <td class="colLast"> |
| <div class="block">Rule that converts sub-queries from project expressions into |
| <a href="../../../../../org/apache/calcite/rel/core/Correlate.html" title="org.apache.calcite.rel.core中的类"><code>Correlate</code></a> instances.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/TableScanRule.html" title="org.apache.calcite.rel.rules中的类">TableScanRule</a></td> |
| <td class="colLast">已过时 |
| <div class="block"><span class="deprecationComment"><code>org.apache.calcite.rel.core.RelFactories.TableScanFactoryImpl</code> |
| has called <a href="../../../../../org/apache/calcite/plan/RelOptTable.html#toRel-org.apache.calcite.plan.RelOptTable.ToRelContext-"><code>RelOptTable.toRel(RelOptTable.ToRelContext)</code></a>.</span></div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/UnionEliminatorRule.html" title="org.apache.calcite.rel.rules中的类">UnionEliminatorRule</a></td> |
| <td class="colLast"> |
| <div class="block"><code>UnionEliminatorRule</code> checks to see if its possible to optimize a |
| Union call by eliminating the Union operator altogether in the case the call |
| consists of only one input.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/UnionMergeRule.html" title="org.apache.calcite.rel.rules中的类">UnionMergeRule</a></td> |
| <td class="colLast"> |
| <div class="block">UnionMergeRule implements the rule for combining two |
| non-distinct <a href="../../../../../org/apache/calcite/rel/core/SetOp.html" title="org.apache.calcite.rel.core中的类"><code>SetOp</code></a>s |
| into a single <a href="../../../../../org/apache/calcite/rel/core/SetOp.html" title="org.apache.calcite.rel.core中的类"><code>SetOp</code></a>.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/UnionPullUpConstantsRule.html" title="org.apache.calcite.rel.rules中的类">UnionPullUpConstantsRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that pulls up constants through a Union operator.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/UnionToDistinctRule.html" title="org.apache.calcite.rel.rules中的类">UnionToDistinctRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that translates a distinct |
| <a href="../../../../../org/apache/calcite/rel/core/Union.html" title="org.apache.calcite.rel.core中的类"><code>Union</code></a> |
| (<code>all</code> = <code>false</code>) |
| into an <a href="../../../../../org/apache/calcite/rel/core/Aggregate.html" title="org.apache.calcite.rel.core中的类"><code>Aggregate</code></a> |
| on top of a non-distinct <a href="../../../../../org/apache/calcite/rel/core/Union.html" title="org.apache.calcite.rel.core中的类"><code>Union</code></a> |
| (<code>all</code> = <code>true</code>).</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><a href="../../../../../org/apache/calcite/rel/rules/ValuesReduceRule.html" title="org.apache.calcite.rel.rules中的类">ValuesReduceRule</a></td> |
| <td class="colLast"> |
| <div class="block">Planner rule that folds projections and filters into an underlying |
| <a href="../../../../../org/apache/calcite/rel/logical/LogicalValues.html" title="org.apache.calcite.rel.logical中的类"><code>LogicalValues</code></a>.</div> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| </li> |
| </ul> |
| <a name="package.description"> |
| <!-- --> |
| </a> |
| <h2 title="程序包org.apache.calcite.rel.rules的说明">程序包org.apache.calcite.rel.rules的说明</h2> |
| <div class="block">Provides a core set of planner rules. |
| |
| <p>Consider this package to be the "standard library" of planner rules. |
| Most of the common rewrites that you would want to perform on logical |
| relational expressions, or generically on any data source, are present, |
| and have been well tested. |
| |
| <p>Of course, the library is never complete, and contributions are welcome. |
| |
| <p>Not present are rules specific to a particular data source: look in that |
| data source's adapter. |
| |
| <p>Also out of the scope of this package are rules that support a particular |
| operation, such as decorrelation or recognizing materialized views. Those are |
| defined along with the algorithm. |
| |
| <p>For |
| |
| <h2>Related packages and classes</h2> |
| <ul> |
| <li>Package<code> <a href="../../sql/package-summary.html"> |
| org.apache.calcite.sql</a></code> |
| is an object model for SQL expressions</li> |
| <li>Package<code> <a href="../../rex/package-summary.html"> |
| org.apache.calcite.rex</a></code> |
| is an object model for relational row expressions</li> |
| <li>Package<code> <a href="../../plan/package-summary.html"> |
| org.apache.calcite.plan</a></code> |
| provides an optimizer interface.</li> |
| </ul></div> |
| </div> |
| <!-- ======= START OF BOTTOM NAVBAR ====== --> |
| <div class="bottomNav"><a name="navbar.bottom"> |
| <!-- --> |
| </a> |
| <div class="skipNav"><a href="#skip.navbar.bottom" title="跳过导航链接">跳过导航链接</a></div> |
| <a name="navbar.bottom.firstrow"> |
| <!-- --> |
| </a> |
| <ul class="navList" title="导航"> |
| <li><a href="../../../../../overview-summary.html">概览</a></li> |
| <li class="navBarCell1Rev">程序包</li> |
| <li>类</li> |
| <li><a href="package-tree.html">树</a></li> |
| <li><a href="../../../../../deprecated-list.html">已过时</a></li> |
| <li><a href="../../../../../index-all.html">索引</a></li> |
| <li><a href="../../../../../help-doc.html">帮助</a></li> |
| </ul> |
| <div class="aboutLanguage"><b>Apache Calcite</b></div> |
| </div> |
| <div class="subNav"> |
| <ul class="navList"> |
| <li><a href="../../../../../org/apache/calcite/rel/rel2sql/package-summary.html">上一个程序包</a></li> |
| <li><a href="../../../../../org/apache/calcite/rel/rules/materialize/package-summary.html">下一个程序包</a></li> |
| </ul> |
| <ul class="navList"> |
| <li><a href="../../../../../index.html?org/apache/calcite/rel/rules/package-summary.html" target="_top">框架</a></li> |
| <li><a href="package-summary.html" target="_top">无框架</a></li> |
| </ul> |
| <ul class="navList" id="allclasses_navbar_bottom"> |
| <li><a href="../../../../../allclasses-noframe.html">所有类</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> |
| </div> |
| <a name="skip.navbar.bottom"> |
| <!-- --> |
| </a></div> |
| <!-- ======== END OF BOTTOM NAVBAR ======= --> |
| <p class="legalCopy"><small>Copyright © 2012-2020 Apache Software Foundation. All Rights Reserved.</small></p> |
| </body> |
| </html> |