| <!DOCTYPE HTML> |
| <!-- NewPage --> |
| <html lang="en"> |
| <head> |
| <!-- Generated by javadoc --> |
| <title>RelOptRulesTest (Calcite 1.20.0 Test API)</title> |
| <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
| <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style"> |
| <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style"> |
| <script type="text/javascript" src="../../../../script.js"></script> |
| <script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script> |
| <script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script> |
| <!--[if IE]> |
| <script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script> |
| <![endif]--> |
| <script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script> |
| <script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script> |
| <script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script> |
| </head> |
| <body> |
| <script type="text/javascript"><!-- |
| try { |
| if (location.href.indexOf('is-external=true') == -1) { |
| parent.document.title="RelOptRulesTest (Calcite 1.20.0 Test API)"; |
| } |
| } |
| catch(err) { |
| } |
| //--> |
| var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":10,"i75":10,"i76":10,"i77":10,"i78":10,"i79":10,"i80":10,"i81":10,"i82":10,"i83":10,"i84":10,"i85":10,"i86":10,"i87":10,"i88":10,"i89":10,"i90":10,"i91":10,"i92":10,"i93":10,"i94":10,"i95":10,"i96":10,"i97":10,"i98":10,"i99":10,"i100":10,"i101":10,"i102":10,"i103":10,"i104":10,"i105":10,"i106":10,"i107":10,"i108":10,"i109":10,"i110":10,"i111":10,"i112":10,"i113":10,"i114":10,"i115":10,"i116":10,"i117":10,"i118":10,"i119":10,"i120":10,"i121":10,"i122":10,"i123":10,"i124":10,"i125":10,"i126":10,"i127":10,"i128":10,"i129":10,"i130":10,"i131":10,"i132":10,"i133":10,"i134":10,"i135":10,"i136":10,"i137":10,"i138":10,"i139":10,"i140":10,"i141":10,"i142":10,"i143":10,"i144":10,"i145":10,"i146":10,"i147":10,"i148":10,"i149":10,"i150":10,"i151":10,"i152":10,"i153":10,"i154":10,"i155":10,"i156":10,"i157":10,"i158":10,"i159":10,"i160":10,"i161":10,"i162":10,"i163":10,"i164":10,"i165":10,"i166":10,"i167":10,"i168":10,"i169":10,"i170":10,"i171":10,"i172":10,"i173":10,"i174":10,"i175":10,"i176":10,"i177":10,"i178":10,"i179":10,"i180":10,"i181":10,"i182":10,"i183":10,"i184":10,"i185":10,"i186":10,"i187":10,"i188":10,"i189":10,"i190":10,"i191":10,"i192":10,"i193":10,"i194":10,"i195":10,"i196":10,"i197":10,"i198":10,"i199":10,"i200":10,"i201":10,"i202":10,"i203":10,"i204":10,"i205":10,"i206":10,"i207":10,"i208":10,"i209":10,"i210":10,"i211":10,"i212":10,"i213":10,"i214":10,"i215":10,"i216":10,"i217":10,"i218":10,"i219":10,"i220":10,"i221":10,"i222":10,"i223":10,"i224":10,"i225":10,"i226":10,"i227":10,"i228":10,"i229":10,"i230":10,"i231":10,"i232":10,"i233":10,"i234":10,"i235":10,"i236":10,"i237":10,"i238":10,"i239":10,"i240":10,"i241":10,"i242":10,"i243":10,"i244":10,"i245":10,"i246":10,"i247":10,"i248":10,"i249":10,"i250":10,"i251":10,"i252":10,"i253":10,"i254":10,"i255":10,"i256":10,"i257":10,"i258":10,"i259":10,"i260":10,"i261":10,"i262":10,"i263":10,"i264":10,"i265":10,"i266":10,"i267":10,"i268":10,"i269":10,"i270":10,"i271":10,"i272":10,"i273":10,"i274":10,"i275":10,"i276":10,"i277":10,"i278":10,"i279":10,"i280":10,"i281":10,"i282":10,"i283":10,"i284":10,"i285":10,"i286":10,"i287":10,"i288":10,"i289":10,"i290":10,"i291":10,"i292":10,"i293":10,"i294":10,"i295":10,"i296":10,"i297":10,"i298":10,"i299":10,"i300":10,"i301":10,"i302":10,"i303":10,"i304":10,"i305":10,"i306":10,"i307":10,"i308":10,"i309":10,"i310":10,"i311":10,"i312":10,"i313":10,"i314":10,"i315":10,"i316":10,"i317":10,"i318":10,"i319":10,"i320":10,"i321":10,"i322":10,"i323":10,"i324":10,"i325":10,"i326":10,"i327":10,"i328":10,"i329":10,"i330":10,"i331":10,"i332":10,"i333":10,"i334":10,"i335":10,"i336":10,"i337":10,"i338":10,"i339":10,"i340":10,"i341":10,"i342":10,"i343":10,"i344":10,"i345":10,"i346":10,"i347":10,"i348":10,"i349":10,"i350":10,"i351":10,"i352":10,"i353":10,"i354":10,"i355":10,"i356":10,"i357":10,"i358":10,"i359":10,"i360":10,"i361":10,"i362":10,"i363":10,"i364":10,"i365":10,"i366":10,"i367":10,"i368":10,"i369":10,"i370":10,"i371":10,"i372":10,"i373":10,"i374":10,"i375":10,"i376":10,"i377":10,"i378":10,"i379":10,"i380":10,"i381":10,"i382":10,"i383":10,"i384":10,"i385":10,"i386":10,"i387":10,"i388":10,"i389":10,"i390":10,"i391":10,"i392":10,"i393":10,"i394":10,"i395":10,"i396":10,"i397":10,"i398":10,"i399":10,"i400":10,"i401":10,"i402":10,"i403":10,"i404":10,"i405":10,"i406":10}; |
| var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; |
| var altColor = "altColor"; |
| var rowColor = "rowColor"; |
| var tableTab = "tableTab"; |
| var activeTableTab = "activeTableTab"; |
| var pathtoroot = "../../../../"; |
| var useModuleDirectories = true; |
| loadScripts(document, 'script');</script> |
| <noscript> |
| <div>JavaScript is disabled on your browser.</div> |
| </noscript> |
| <header role="banner"> |
| <nav role="navigation"> |
| <div class="fixedNav"> |
| <!-- ========= START OF TOP NAVBAR ======= --> |
| <div class="topNav"><a id="navbar.top"> |
| <!-- --> |
| </a> |
| <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> |
| <a id="navbar.top.firstrow"> |
| <!-- --> |
| </a> |
| <ul class="navList" title="Navigation"> |
| <li><a href="../../../../index.html">Overview</a></li> |
| <li><a href="package-summary.html">Package</a></li> |
| <li class="navBarCell1Rev">Class</li> |
| <li><a href="class-use/RelOptRulesTest.html">Use</a></li> |
| <li><a href="package-tree.html">Tree</a></li> |
| <li><a href="../../../../deprecated-list.html">Deprecated</a></li> |
| <li><a href="../../../../index-all.html">Index</a></li> |
| <li><a href="../../../../help-doc.html">Help</a></li> |
| </ul> |
| </div> |
| <div class="subNav"> |
| <ul class="navList" id="allclasses_navbar_top"> |
| <li><a href="../../../../allclasses.html">All Classes</a></li> |
| </ul> |
| <ul class="navListSearch"> |
| <li><label for="search">SEARCH:</label> |
| <input type="text" id="search" value="search" disabled="disabled"> |
| <input type="reset" id="reset" value="reset" disabled="disabled"> |
| </li> |
| </ul> |
| <div> |
| <script type="text/javascript"><!-- |
| allClassesLink = document.getElementById("allclasses_navbar_top"); |
| if(window==top) { |
| allClassesLink.style.display = "block"; |
| } |
| else { |
| allClassesLink.style.display = "none"; |
| } |
| //--> |
| </script> |
| <noscript> |
| <div>JavaScript is disabled on your browser.</div> |
| </noscript> |
| </div> |
| <div> |
| <ul class="subNavList"> |
| <li>Summary: </li> |
| <li><a href="#nested.class.summary">Nested</a> | </li> |
| <li><a href="#field.summary">Field</a> | </li> |
| <li><a href="#constructor.summary">Constr</a> | </li> |
| <li><a href="#method.summary">Method</a></li> |
| </ul> |
| <ul class="subNavList"> |
| <li>Detail: </li> |
| <li><a href="#field.detail">Field</a> | </li> |
| <li><a href="#constructor.detail">Constr</a> | </li> |
| <li><a href="#method.detail">Method</a></li> |
| </ul> |
| </div> |
| <a id="skip.navbar.top"> |
| <!-- --> |
| </a></div> |
| <!-- ========= END OF TOP NAVBAR ========= --> |
| </div> |
| <div class="navPadding"> </div> |
| <script type="text/javascript"><!-- |
| $('.navPadding').css('padding-top', $('.fixedNav').css("height")); |
| //--> |
| </script> |
| </nav> |
| </header> |
| <!-- ======== START OF CLASS DATA ======== --> |
| <main role="main"> |
| <div class="header"> |
| <div class="subTitle"><span class="packageLabelInType">Package</span> <a href="package-summary.html">org.apache.calcite.test</a></div> |
| <h2 title="Class RelOptRulesTest" class="title">Class RelOptRulesTest</h2> |
| </div> |
| <div class="contentContainer"> |
| <ul class="inheritance"> |
| <li>java.lang.Object</li> |
| <li> |
| <ul class="inheritance"> |
| <li><a href="SqlToRelTestBase.html" title="class in org.apache.calcite.test">org.apache.calcite.test.SqlToRelTestBase</a></li> |
| <li> |
| <ul class="inheritance"> |
| <li><a href="RelOptTestBase.html" title="class in org.apache.calcite.test">org.apache.calcite.test.RelOptTestBase</a></li> |
| <li> |
| <ul class="inheritance"> |
| <li>org.apache.calcite.test.RelOptRulesTest</li> |
| </ul> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| <div class="description"> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <hr> |
| <pre>public class <span class="typeNameLabel">RelOptRulesTest</span> |
| extends <a href="RelOptTestBase.html" title="class in org.apache.calcite.test">RelOptTestBase</a></pre> |
| <div class="block">Unit test for rules in <code>org.apache.calcite.rel</code> and subpackages. |
| |
| <p>As input, the test supplies a SQL statement and a single rule; the SQL is |
| translated into relational algebra and then fed into a |
| <code>HepPlanner</code>. The planner fires the rule on |
| every |
| pattern match in a depth-first left-to-right pre-order traversal of the tree |
| for as long as the rule continues to succeed in applying its transform. (For |
| rules which call transformTo more than once, only the last result is used.) |
| The plan before and after "optimization" is diffed against a .ref file using |
| <a href="DiffRepository.html" title="class in org.apache.calcite.test"><code>DiffRepository</code></a>. |
| |
| <p>Procedure for adding a new test case: |
| |
| <ol> |
| <li>Add a new public test method for your rule, following the existing |
| examples. You'll have to come up with an SQL statement to which your rule |
| will apply in a meaningful way. See <a href="SqlToRelTestBase.html" title="class in org.apache.calcite.test"><code>SqlToRelTestBase</code></a> class comments |
| for details on the schema. |
| |
| <li>Run the test. It should fail. Inspect the output in |
| <code>target/surefire/.../RelOptRulesTest.xml</code>. |
| (If you are running using maven and this file does not exist, add a |
| <code>-X</code> flag to the maven command line.) |
| |
| <li>Verify that the "planBefore" is the correct |
| translation of your SQL, and that it contains the pattern on which your rule |
| is supposed to fire. If all is well, replace |
| <code>src/test/resources/.../RelOptRulesTest.xml</code> and |
| with the new <code>target/surefire/.../RelOptRulesTest.xml</code>. |
| |
| <li>Run the test again. It should fail again, but this time it should contain |
| a "planAfter" entry for your rule. Verify that your rule applied its |
| transformation correctly, and then update the |
| <code>src/test/resources/.../RelOptRulesTest.xml</code> file again. |
| |
| <li>Run the test one last time; this time it should pass. |
| </ol></div> |
| </li> |
| </ul> |
| </div> |
| <div class="summary"> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <!-- ======== NESTED CLASS SUMMARY ======== --> |
| <section role="region"> |
| <ul class="blockList"> |
| <li class="blockList"><a id="nested.class.summary"> |
| <!-- --> |
| </a> |
| <h3>Nested Class Summary</h3> |
| <table class="memberSummary"> |
| <caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> |
| <tr> |
| <th class="colFirst" scope="col">Modifier and Type</th> |
| <th class="colSecond" scope="col">Class</th> |
| <th class="colLast" scope="col">Description</th> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><code>private static class </code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RelOptRulesTest.MyFilter.html" title="class in org.apache.calcite.test">RelOptRulesTest.MyFilter</a></span></code></th> |
| <td class="colLast"> |
| <div class="block">Custom implementation of <code>Filter</code> for use |
| in test case to verify that <code>FilterMultiJoinMergeRule</code> |
| can be created with any <code>Filter</code> and not limited to |
| <code>LogicalFilter</code></div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><code>private static class </code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RelOptRulesTest.MyFilterRule.html" title="class in org.apache.calcite.test">RelOptRulesTest.MyFilterRule</a></span></code></th> |
| <td class="colLast"> |
| <div class="block">Rule to transform <code>LogicalFilter</code> into |
| custom MyFilter</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><code>private static class </code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RelOptRulesTest.MyProject.html" title="class in org.apache.calcite.test">RelOptRulesTest.MyProject</a></span></code></th> |
| <td class="colLast"> |
| <div class="block">Custom implementation of <code>Project</code> for use |
| in test case to verify that <code>ProjectMultiJoinMergeRule</code> |
| can be created with any <code>Project</code> and not limited to |
| <code>LogicalProject</code></div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><code>private static class </code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RelOptRulesTest.MyProjectRule.html" title="class in org.apache.calcite.test">RelOptRulesTest.MyProjectRule</a></span></code></th> |
| <td class="colLast"> |
| <div class="block">Rule to transform <code>LogicalProject</code> into custom |
| MyProject</div> |
| </td> |
| </tr> |
| </table> |
| <ul class="blockList"> |
| <li class="blockList"><a id="nested.classes.inherited.from.class.org.apache.calcite.test.RelOptTestBase"> |
| <!-- --> |
| </a> |
| <h3>Nested classes/interfaces inherited from class org.apache.calcite.test.<a href="RelOptTestBase.html" title="class in org.apache.calcite.test">RelOptTestBase</a></h3> |
| <code><a href="RelOptTestBase.Sql.html" title="class in org.apache.calcite.test">RelOptTestBase.Sql</a></code></li> |
| </ul> |
| <ul class="blockList"> |
| <li class="blockList"><a id="nested.classes.inherited.from.class.org.apache.calcite.test.SqlToRelTestBase"> |
| <!-- --> |
| </a> |
| <h3>Nested classes/interfaces inherited from class org.apache.calcite.test.<a href="SqlToRelTestBase.html" title="class in org.apache.calcite.test">SqlToRelTestBase</a></h3> |
| <code><a href="SqlToRelTestBase.MockRelOptSchema.html" title="class in org.apache.calcite.test">SqlToRelTestBase.MockRelOptSchema</a>, <a href="SqlToRelTestBase.Tester.html" title="interface in org.apache.calcite.test">SqlToRelTestBase.Tester</a>, <a href="SqlToRelTestBase.TesterImpl.html" title="class in org.apache.calcite.test">SqlToRelTestBase.TesterImpl</a></code></li> |
| </ul> |
| </li> |
| </ul> |
| </section> |
| <!-- =========== FIELD SUMMARY =========== --> |
| <section role="region"> |
| <ul class="blockList"> |
| <li class="blockList"><a id="field.summary"> |
| <!-- --> |
| </a> |
| <h3>Field Summary</h3> |
| <table class="memberSummary"> |
| <caption><span>Fields</span><span class="tabEnd"> </span></caption> |
| <tr> |
| <th class="colFirst" scope="col">Modifier and Type</th> |
| <th class="colSecond" scope="col">Field</th> |
| <th class="colLast" scope="col">Description</th> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><code>private static java.lang.String</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#NOT_STRONG_EXPR">NOT_STRONG_EXPR</a></span></code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><code>private org.apache.calcite.rel.rules.PushProjector.ExprCondition</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#skipItem">skipItem</a></span></code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><code>private static java.lang.String</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#STRONG_EXPR">STRONG_EXPR</a></span></code></th> |
| <td class="colLast"> </td> |
| </tr> |
| </table> |
| <ul class="blockList"> |
| <li class="blockList"><a id="fields.inherited.from.class.org.apache.calcite.test.SqlToRelTestBase"> |
| <!-- --> |
| </a> |
| <h3>Fields inherited from class org.apache.calcite.test.<a href="SqlToRelTestBase.html" title="class in org.apache.calcite.test">SqlToRelTestBase</a></h3> |
| <code><a href="SqlToRelTestBase.html#NL">NL</a>, <a href="SqlToRelTestBase.html#tester">tester</a></code></li> |
| </ul> |
| </li> |
| </ul> |
| </section> |
| <!-- ======== CONSTRUCTOR SUMMARY ======== --> |
| <section role="region"> |
| <ul class="blockList"> |
| <li class="blockList"><a id="constructor.summary"> |
| <!-- --> |
| </a> |
| <h3>Constructor Summary</h3> |
| <table class="memberSummary"> |
| <caption><span>Constructors</span><span class="tabEnd"> </span></caption> |
| <tr> |
| <th class="colFirst" scope="col">Constructor</th> |
| <th class="colLast" scope="col">Description</th> |
| </tr> |
| <tr class="altColor"> |
| <th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">RelOptRulesTest</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| </table> |
| </li> |
| </ul> |
| </section> |
| <!-- ========== METHOD SUMMARY =========== --> |
| <section role="region"> |
| <ul class="blockList"> |
| <li class="blockList"><a id="method.summary"> |
| <!-- --> |
| </a> |
| <h3>Method Summary</h3> |
| <table class="memberSummary"> |
| <caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> |
| <tr> |
| <th class="colFirst" scope="col">Modifier and Type</th> |
| <th class="colSecond" scope="col">Method</th> |
| <th class="colLast" scope="col">Description</th> |
| </tr> |
| <tr id="i0" class="altColor"> |
| <td class="colFirst"><code>private void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#basePullConstantTroughAggregate()">basePullConstantTroughAggregate</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i1" class="rowColor"> |
| <td class="colFirst"><code>private void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#basePushAggThroughUnion()">basePushAggThroughUnion</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i2" class="altColor"> |
| <td class="colFirst"><code>private void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#basePushFilterPastAggWithGroupingSets(boolean)">basePushFilterPastAggWithGroupingSets</a></span>​(boolean unchanged)</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i3" class="rowColor"> |
| <td class="colFirst"><code>private void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkPlanning(java.lang.String)">checkPlanning</a></span>​(java.lang.String query)</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i4" class="altColor"> |
| <td class="colFirst"><code>private void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkReduceNullableToNotNull(org.apache.calcite.rel.rules.ReduceExpressionsRule)">checkReduceNullableToNotNull</a></span>​(org.apache.calcite.rel.rules.ReduceExpressionsRule rule)</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i5" class="rowColor"> |
| <td class="colFirst"><code>private <a href="RelOptTestBase.Sql.html" title="class in org.apache.calcite.test">RelOptTestBase.Sql</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkSubQuery(java.lang.String)">checkSubQuery</a></span>​(java.lang.String sql)</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i6" class="altColor"> |
| <td class="colFirst"><code>protected <a href="DiffRepository.html" title="class in org.apache.calcite.test">DiffRepository</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDiffRepos()">getDiffRepos</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Returns the default diff repository for this test, or null if there is |
| no repository.</div> |
| </td> |
| </tr> |
| <tr id="i7" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAddRedundantSemiJoinRule()">testAddRedundantSemiJoinRule</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i8" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregateConstantKeyRule()">testAggregateConstantKeyRule</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-1023">[CALCITE-1023] |
| Planner rule that removes Aggregate keys that are constant</a>.</div> |
| </td> |
| </tr> |
| <tr id="i9" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregateConstantKeyRule2()">testAggregateConstantKeyRule2</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Tests <code>AggregateProjectPullUpConstantsRule</code> where reduction is not |
| possible because "deptno" is the only key.</div> |
| </td> |
| </tr> |
| <tr id="i10" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregateConstantKeyRule3()">testAggregateConstantKeyRule3</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Tests <code>AggregateProjectPullUpConstantsRule</code> where both keys are |
| constants but only one can be removed.</div> |
| </td> |
| </tr> |
| <tr id="i11" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregateExtractProjectRule()">testAggregateExtractProjectRule</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i12" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregateExtractProjectRuleWithFilter()">testAggregateExtractProjectRuleWithFilter</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i13" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregateExtractProjectRuleWithGroupingSets()">testAggregateExtractProjectRuleWithGroupingSets</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i14" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregateExtractProjectRuleWithGroupingSets2()">testAggregateExtractProjectRuleWithGroupingSets2</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test with column used in both grouping set and argument to aggregate |
| function.</div> |
| </td> |
| </tr> |
| <tr id="i15" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregateGroupingSetsProjectMerge()">testAggregateGroupingSetsProjectMerge</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i16" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregateJoinRemove1()">testAggregateJoinRemove1</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-2712">[CALCITE-2712] |
| Should remove the left join since the aggregate has no call and |
| only uses column in the left input of the bottom join as group key.</a>.</div> |
| </td> |
| </tr> |
| <tr id="i17" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregateJoinRemove10()">testAggregateJoinRemove10</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Similar to <a href="#testAggregateJoinRemove1()"><code>testAggregateJoinRemove1()</code></a>; |
| Should not remove the bottom join since the aggregate uses column in the |
| right input of bottom join.</div> |
| </td> |
| </tr> |
| <tr id="i18" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregateJoinRemove2()">testAggregateJoinRemove2</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Similar to <a href="#testAggregateJoinRemove1()"><code>testAggregateJoinRemove1()</code></a> but has aggregate |
| call with distinct.</div> |
| </td> |
| </tr> |
| <tr id="i19" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregateJoinRemove3()">testAggregateJoinRemove3</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Similar to <a href="#testAggregateJoinRemove1()"><code>testAggregateJoinRemove1()</code></a> but should not |
| remove the left join since the aggregate uses column in the right |
| input of the bottom join.</div> |
| </td> |
| </tr> |
| <tr id="i20" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregateJoinRemove4()">testAggregateJoinRemove4</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Similar to <a href="#testAggregateJoinRemove1()"><code>testAggregateJoinRemove1()</code></a> but right join.</div> |
| </td> |
| </tr> |
| <tr id="i21" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregateJoinRemove5()">testAggregateJoinRemove5</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Similar to <a href="#testAggregateJoinRemove2()"><code>testAggregateJoinRemove2()</code></a> but right join.</div> |
| </td> |
| </tr> |
| <tr id="i22" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregateJoinRemove6()">testAggregateJoinRemove6</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Similar to <a href="#testAggregateJoinRemove3()"><code>testAggregateJoinRemove3()</code></a> but right join.</div> |
| </td> |
| </tr> |
| <tr id="i23" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregateJoinRemove7()">testAggregateJoinRemove7</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Similar to <a href="#testAggregateJoinRemove1()"><code>testAggregateJoinRemove1()</code></a>; |
| Should remove the bottom join since the aggregate has no aggregate |
| call.</div> |
| </td> |
| </tr> |
| <tr id="i24" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregateJoinRemove8()">testAggregateJoinRemove8</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Similar to <a href="#testAggregateJoinRemove7()"><code>testAggregateJoinRemove7()</code></a> but has aggregate |
| call.</div> |
| </td> |
| </tr> |
| <tr id="i25" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregateJoinRemove9()">testAggregateJoinRemove9</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Similar to <a href="#testAggregateJoinRemove7()"><code>testAggregateJoinRemove7()</code></a> but use columns in |
| the right input of the top join.</div> |
| </td> |
| </tr> |
| <tr id="i26" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregateMerge1()">testAggregateMerge1</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for AggregateMergeRule, should merge 2 aggregates |
| into a single aggregate.</div> |
| </td> |
| </tr> |
| <tr id="i27" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregateMerge2()">testAggregateMerge2</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for AggregateMergeRule, should merge 2 aggregates |
| into a single aggregate, top aggregate is not simple aggregate.</div> |
| </td> |
| </tr> |
| <tr id="i28" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregateMerge3()">testAggregateMerge3</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for AggregateMergeRule, should not merge 2 aggregates |
| into a single aggregate, since lower aggregate is not simple aggregate.</div> |
| </td> |
| </tr> |
| <tr id="i29" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregateMerge4()">testAggregateMerge4</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for AggregateMergeRule, should not merge 2 aggregates |
| into a single aggregate, since it contains distinct aggregate |
| function.</div> |
| </td> |
| </tr> |
| <tr id="i30" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregateMerge5()">testAggregateMerge5</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for AggregateMergeRule, should not merge 2 aggregates |
| into a single aggregate, since AVG doesn't support splitting.</div> |
| </td> |
| </tr> |
| <tr id="i31" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregateMerge6()">testAggregateMerge6</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for AggregateMergeRule, should not merge 2 aggregates |
| into a single aggregate, since top agg has no group key, and |
| lower agg function is COUNT.</div> |
| </td> |
| </tr> |
| <tr id="i32" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregateMerge7()">testAggregateMerge7</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for AggregateMergeRule, should not merge 2 aggregates |
| into a single aggregate, since top agg contains empty grouping set, |
| and lower agg function is COUNT.</div> |
| </td> |
| </tr> |
| <tr id="i33" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregateMerge8()">testAggregateMerge8</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for AggregateMergeRule, should merge 2 aggregates |
| into a single aggregate, since both top and bottom aggregates |
| contains empty grouping set and they are mergable.</div> |
| </td> |
| </tr> |
| <tr id="i34" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregateProjectMerge()">testAggregateProjectMerge</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i35" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregateProjectPullUpConstants()">testAggregateProjectPullUpConstants</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i36" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregateProjectPullUpConstants2()">testAggregateProjectPullUpConstants2</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i37" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregateRemove1()">testAggregateRemove1</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for AggregateRemoveRule, should remove aggregates since |
| empno is unique and all aggregate functions are splittable.</div> |
| </td> |
| </tr> |
| <tr id="i38" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregateRemove2()">testAggregateRemove2</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for AggregateRemoveRule, should remove aggregates since |
| empno is unique and there are no aggregate functions.</div> |
| </td> |
| </tr> |
| <tr id="i39" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregateRemove3()">testAggregateRemove3</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for AggregateRemoveRule, should remove aggregates since |
| empno is unique and all aggregate functions are splittable.</div> |
| </td> |
| </tr> |
| <tr id="i40" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregateRemove4()">testAggregateRemove4</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Negative test case for AggregateRemoveRule, should not |
| remove aggregate because avg is not splittable.</div> |
| </td> |
| </tr> |
| <tr id="i41" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregateRemove5()">testAggregateRemove5</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Negative test case for AggregateRemoveRule, should not |
| remove non-simple aggregates.</div> |
| </td> |
| </tr> |
| <tr id="i42" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAggregateRemove6()">testAggregateRemove6</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Negative test case for AggregateRemoveRule, should not |
| remove aggregate because deptno is not unique.</div> |
| </td> |
| </tr> |
| <tr id="i43" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAll()">testAll</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i44" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAlreadyFalseEliminatesFilter()">testAlreadyFalseEliminatesFilter</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i45" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAnyInProjectNonNullable()">testAnyInProjectNonNullable</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for testing type created by SubQueryRemoveRule: an |
| ANY sub-query is non-nullable therefore plan should have cast.</div> |
| </td> |
| </tr> |
| <tr id="i46" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testAnyInProjectNullable()">testAnyInProjectNullable</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for testing type created by SubQueryRemoveRule; an |
| ANY sub-query is nullable therefore plan should not have cast.</div> |
| </td> |
| </tr> |
| <tr id="i47" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testCasePushIsAlwaysWorking()">testCasePushIsAlwaysWorking</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i48" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testCastInAggregateExpandDistinctAggregatesRule()">testCastInAggregateExpandDistinctAggregatesRule</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-1621">[CALCITE-1621] |
| Adding a cast around the null literal in aggregate rules</a>.</div> |
| </td> |
| </tr> |
| <tr id="i49" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testCastInAggregateReduceFunctions()">testCastInAggregateReduceFunctions</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-1621">[CALCITE-1621] |
| Adding a cast around the null literal in aggregate rules</a>.</div> |
| </td> |
| </tr> |
| <tr id="i50" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testConvertMultiJoinRule()">testConvertMultiJoinRule</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i51" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testConvertMultiJoinRuleOuterJoins()">testConvertMultiJoinRuleOuterJoins</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i52" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testConvertMultiJoinRuleOuterJoins2()">testConvertMultiJoinRuleOuterJoins2</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i53" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testConvertMultiJoinRuleOuterJoins3()">testConvertMultiJoinRuleOuterJoins3</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i54" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testConvertMultiJoinRuleOuterJoins4()">testConvertMultiJoinRuleOuterJoins4</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i55" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testCorrelationScalarAggAndFilter()">testCorrelationScalarAggAndFilter</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-2110">[CALCITE-2110] |
| ArrayIndexOutOfBoundsException in RexSimplify when using |
| ReduceExpressionsRule.JOIN_INSTANCE</a>.</div> |
| </td> |
| </tr> |
| <tr id="i56" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testCustomColumnResolvingInCorrelatedSubQuery()">testCustomColumnResolvingInCorrelatedSubQuery</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i57" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testCustomColumnResolvingInCorrelatedSubQuery2()">testCustomColumnResolvingInCorrelatedSubQuery2</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i58" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testCustomColumnResolvingInNonCorrelatedSubQuery()">testCustomColumnResolvingInNonCorrelatedSubQuery</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i59" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testDecorrelateAggWithConstantGroupKey()">testDecorrelateAggWithConstantGroupKey</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-2744">[CALCITE-2744] |
| RelDecorrelator use wrong output map for LogicalAggregate decorrelate</a>.</div> |
| </td> |
| </tr> |
| <tr id="i60" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testDecorrelateAggWithMultiParamsAggCall()">testDecorrelateAggWithMultiParamsAggCall</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for CALCITE-2744 for aggregate decorrelate with multi-param agg call |
| but without group key.</div> |
| </td> |
| </tr> |
| <tr id="i61" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testDecorrelateAggWithMultiParamsAggCall2()">testDecorrelateAggWithMultiParamsAggCall2</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Same as <a href="#testDecorrelateAggWithMultiParamsAggCall()"><code>testDecorrelateAggWithMultiParamsAggCall()</code></a> |
| but with a constant group key.</div> |
| </td> |
| </tr> |
| <tr id="i62" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testDecorrelateExists()">testDecorrelateExists</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i63" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testDecorrelateTwoExists()">testDecorrelateTwoExists</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-1511">[CALCITE-1511] |
| AssertionError while decorrelating query with two EXISTS |
| sub-queries</a>.</div> |
| </td> |
| </tr> |
| <tr id="i64" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testDecorrelateTwoIn()">testDecorrelateTwoIn</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-1537">[CALCITE-1537] |
| Unnecessary project expression in multi-sub-query plan</a>.</div> |
| </td> |
| </tr> |
| <tr id="i65" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testDecorrelateTwoScalar()">testDecorrelateTwoScalar</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-1045">[CALCITE-1045] |
| Decorrelate sub-queries in Project and Join</a>, with the added |
| complication that there are two sub-queries.</div> |
| </td> |
| </tr> |
| <tr id="i66" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testDecorrelateUncorrelatedInAndCorrelatedExists()">testDecorrelateUncorrelatedInAndCorrelatedExists</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-2028">[CALCITE-2028] |
| Un-correlated IN sub-query should be converted into a Join, |
| rather than a Correlate without correlation variables </a>.</div> |
| </td> |
| </tr> |
| <tr id="i67" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testDistinctCount1()">testDistinctCount1</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i68" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testDistinctCount2()">testDistinctCount2</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i69" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testDistinctCount3()">testDistinctCount3</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-1293">[CALCITE-1293] |
| Bad code generated when argument to COUNT(DISTINCT) is a # GROUP BY |
| column</a>.</div> |
| </td> |
| </tr> |
| <tr id="i70" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testDistinctCountGroupingSets1()">testDistinctCountGroupingSets1</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i71" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testDistinctCountGroupingSets2()">testDistinctCountGroupingSets2</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i72" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testDistinctCountMixed()">testDistinctCountMixed</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i73" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testDistinctCountMixed2()">testDistinctCountMixed2</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i74" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testDistinctCountMixedJoin()">testDistinctCountMixedJoin</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i75" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testDistinctCountMultiple()">testDistinctCountMultiple</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Tests implementing multiple distinct count the new way, using GROUPING |
| SETS.</div> |
| </td> |
| </tr> |
| <tr id="i76" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testDistinctCountMultipleNoGroup()">testDistinctCountMultipleNoGroup</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i77" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testDistinctCountMultipleViaJoin()">testDistinctCountMultipleViaJoin</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Tests implementing multiple distinct count the old way, using a join.</div> |
| </td> |
| </tr> |
| <tr id="i78" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testDistinctCountWithoutGroupBy()">testDistinctCountWithoutGroupBy</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i79" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testDistinctNonDistinctAggregates()">testDistinctNonDistinctAggregates</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i80" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testDistinctNonDistinctAggregatesWithGrouping1()">testDistinctNonDistinctAggregatesWithGrouping1</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-1558">[CALCITE-1558] |
| AggregateExpandDistinctAggregatesRule gets field mapping wrong if groupKey |
| is used in aggregate function</a>.</div> |
| </td> |
| </tr> |
| <tr id="i81" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testDistinctNonDistinctAggregatesWithGrouping2()">testDistinctNonDistinctAggregatesWithGrouping2</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i82" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testDistinctNonDistinctTwoAggregatesWithGrouping()">testDistinctNonDistinctTwoAggregatesWithGrouping</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i83" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testDistinctWithGrouping()">testDistinctWithGrouping</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i84" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testDistinctWithMultipleInputs()">testDistinctWithMultipleInputs</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i85" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testDistinctWithMultipleInputsAndGroupby()">testDistinctWithMultipleInputsAndGroupby</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i86" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testDynamicStarWithUnion()">testDynamicStarWithUnion</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i87" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testEmptyAggregate()">testEmptyAggregate</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i88" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testEmptyAggregateEmptyKey()">testEmptyAggregateEmptyKey</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i89" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testEmptyAggregateEmptyKeyWithAggregateValuesRule()">testEmptyAggregateEmptyKeyWithAggregateValuesRule</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i90" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testEmptyFilterProjectUnion()">testEmptyFilterProjectUnion</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i91" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testEmptyIntersect()">testEmptyIntersect</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i92" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testEmptyJoin()">testEmptyJoin</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i93" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testEmptyJoinLeft()">testEmptyJoinLeft</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i94" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testEmptyJoinRight()">testEmptyJoinRight</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i95" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testEmptyMinus()">testEmptyMinus</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i96" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testEmptyMinus2()">testEmptyMinus2</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i97" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testEmptyProject()">testEmptyProject</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-1488">[CALCITE-1488] |
| ValuesReduceRule should ignore empty Values</a>.</div> |
| </td> |
| </tr> |
| <tr id="i98" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testEmptyProject2()">testEmptyProject2</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Same query as <a href="#testEmptyProject()"><code>testEmptyProject()</code></a>, and <code>PruneEmptyRules</code> |
| is able to do the job that <code>ValuesReduceRule</code> cannot do.</div> |
| </td> |
| </tr> |
| <tr id="i99" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testEmptySort()">testEmptySort</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i100" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testEmptySortLimitZero()">testEmptySortLimitZero</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i101" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testExchangeRemoveConstantKeysRule()">testExchangeRemoveConstantKeysRule</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i102" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testExpandFilterExists()">testExpandFilterExists</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">An EXISTS filter that can be converted into true/false.</div> |
| </td> |
| </tr> |
| <tr id="i103" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testExpandFilterExistsSimple()">testExpandFilterExistsSimple</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">An EXISTS filter that can be converted into a semi-join.</div> |
| </td> |
| </tr> |
| <tr id="i104" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testExpandFilterExistsSimpleAnd()">testExpandFilterExistsSimpleAnd</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">An EXISTS filter that can be converted into a semi-join.</div> |
| </td> |
| </tr> |
| <tr id="i105" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testExpandFilterIn()">testExpandFilterIn</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i106" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testExpandFilterIn3Value()">testExpandFilterIn3Value</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">An IN filter that requires full 3-value logic (true, false, unknown).</div> |
| </td> |
| </tr> |
| <tr id="i107" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testExpandFilterInComposite()">testExpandFilterInComposite</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i108" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testExpandFilterScalar()">testExpandFilterScalar</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i109" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testExpandJoinExists()">testExpandJoinExists</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i110" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testExpandJoinIn()">testExpandJoinIn</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i111" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testExpandJoinInComposite()">testExpandJoinInComposite</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i112" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testExpandJoinScalar()">testExpandJoinScalar</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i113" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testExpandProjectExists()">testExpandProjectExists</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i114" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testExpandProjectIn()">testExpandProjectIn</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i115" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testExpandProjectInComposite()">testExpandProjectInComposite</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i116" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testExpandProjectInNullable()">testExpandProjectInNullable</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i117" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testExpandProjectScalar()">testExpandProjectScalar</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Tests expanding a sub-query, specifically an uncorrelated scalar |
| sub-query in a project (SELECT clause).</div> |
| </td> |
| </tr> |
| <tr id="i118" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testExpandWhereComparisonCorrelated()">testExpandWhereComparisonCorrelated</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i119" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testExpressionInWindowFunction()">testExpressionInWindowFunction</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-841">[CALCITE-841] |
| Redundant windows when window function arguments are expressions</a>.</div> |
| </td> |
| </tr> |
| <tr id="i120" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testExtractJoinFilterRule()">testExtractJoinFilterRule</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i121" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testExtractYearMonthToRange()">testExtractYearMonthToRange</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i122" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testExtractYearToRange()">testExtractYearToRange</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-434">[CALCITE-434] |
| Converting predicates on date dimension columns into date ranges</a>, |
| specifically a rule that converts <code>EXTRACT(YEAR FROM ...) = constant</code> |
| to a range.</div> |
| </td> |
| </tr> |
| <tr id="i123" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testFilterAndProjectWithMultiJoin()">testFilterAndProjectWithMultiJoin</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i124" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testFilterProjectTranspose()">testFilterProjectTranspose</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Tests a variant of <code>FilterProjectTransposeRule</code> |
| that pushes a Filter that contains a correlating variable.</div> |
| </td> |
| </tr> |
| <tr id="i125" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testFilterProjectTransposePreventedByCorrelation()">testFilterProjectTransposePreventedByCorrelation</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Tests that the default instance of <code>FilterProjectTransposeRule</code> |
| does not push a Filter that contains a correlating variable.</div> |
| </td> |
| </tr> |
| <tr id="i126" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testFilterProjectTransposeRule()">testFilterProjectTransposeRule</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-2865">[CALCITE-2865] |
| FilterProjectTransposeRule generates wrong traitSet when copyFilter/Project is true</a>.</div> |
| </td> |
| </tr> |
| <tr id="i127" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testFilterRemoveIsNotDistinctFromRule()">testFilterRemoveIsNotDistinctFromRule</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i128" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testFullOuterJoinSimplificationToInner()">testFullOuterJoinSimplificationToInner</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i129" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testFullOuterJoinSimplificationToLeftOuter()">testFullOuterJoinSimplificationToLeftOuter</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i130" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testFullOuterJoinSimplificationToRightOuter()">testFullOuterJoinSimplificationToRightOuter</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i131" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testHeterogeneousConversion()">testHeterogeneousConversion</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i132" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testInferringPredicatesWithNotOperatorInJoinCondition()">testInferringPredicatesWithNotOperatorInJoinCondition</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-2275">[CALCITE-2275] |
| JoinPushTransitivePredicatesRule wrongly pushes down NOT condition</a>.</div> |
| </td> |
| </tr> |
| <tr id="i133" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testIntersectToDistinct()">testIntersectToDistinct</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Tests <code>IntersectToDistinctRule</code>, |
| which rewrites an <code>Intersect</code> operator with 3 inputs.</div> |
| </td> |
| </tr> |
| <tr id="i134" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testIntersectToDistinctAll()">testIntersectToDistinctAll</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Tests that <code>IntersectToDistinctRule</code> |
| correctly ignores an <code>INTERSECT ALL</code>.</div> |
| </td> |
| </tr> |
| <tr id="i135" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testIsNullPushDown()">testIsNullPushDown</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for DX-11490 |
| Make sure the planner doesn't fail over wrong push down |
| of is null</div> |
| </td> |
| </tr> |
| <tr id="i136" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testIsNullPushDown2()">testIsNullPushDown2</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i137" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testJoinProjectTranspose1()">testJoinProjectTranspose1</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i138" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testJoinProjectTranspose2()">testJoinProjectTranspose2</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-1338">[CALCITE-1338] |
| JoinProjectTransposeRule should not pull a literal above the |
| null-generating side of a join</a>.</div> |
| </td> |
| </tr> |
| <tr id="i139" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testJoinProjectTranspose3()">testJoinProjectTranspose3</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">As <a href="#testJoinProjectTranspose2()"><code>testJoinProjectTranspose2()</code></a>; |
| should not transpose since the left project of right join has literal.</div> |
| </td> |
| </tr> |
| <tr id="i140" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testJoinProjectTranspose4()">testJoinProjectTranspose4</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">As <a href="#testJoinProjectTranspose2()"><code>testJoinProjectTranspose2()</code></a>; |
| should not transpose since the right project of left join has not-strong |
| expression <code>y is not null</code>.</div> |
| </td> |
| </tr> |
| <tr id="i141" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testJoinProjectTranspose5()">testJoinProjectTranspose5</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">As <a href="#testJoinProjectTranspose2()"><code>testJoinProjectTranspose2()</code></a>; |
| should not transpose since the right project of left join has not-strong |
| expression <code>1 + 1</code>.</div> |
| </td> |
| </tr> |
| <tr id="i142" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testJoinProjectTranspose6()">testJoinProjectTranspose6</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">As <a href="#testJoinProjectTranspose2()"><code>testJoinProjectTranspose2()</code></a>; |
| should not transpose since both the left project and right project have |
| literal.</div> |
| </td> |
| </tr> |
| <tr id="i143" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testJoinProjectTranspose7()">testJoinProjectTranspose7</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">As <a href="#testJoinProjectTranspose2()"><code>testJoinProjectTranspose2()</code></a>; |
| Should transpose since all expressions in the right project of left join |
| are strong.</div> |
| </td> |
| </tr> |
| <tr id="i144" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testJoinProjectTranspose8()">testJoinProjectTranspose8</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">As <a href="#testJoinProjectTranspose2()"><code>testJoinProjectTranspose2()</code></a>; |
| should transpose since all expressions including |
| <code>deptno > 10 and cast(null as boolean)</code> in the right project of left |
| join are strong.</div> |
| </td> |
| </tr> |
| <tr id="i145" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testJoinPushTransitivePredicatesRule()">testJoinPushTransitivePredicatesRule</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-2200">[CALCITE-2200] |
| Infinite loop for JoinPushTransitivePredicatesRule</a>.</div> |
| </td> |
| </tr> |
| <tr id="i146" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testJoinPushTransitivePredicatesRule2()">testJoinPushTransitivePredicatesRule2</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-2205">[CALCITE-2205] |
| One more infinite loop for JoinPushTransitivePredicatesRule</a>.</div> |
| </td> |
| </tr> |
| <tr id="i147" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testLeftOuterJoinSimplificationToInner()">testLeftOuterJoinSimplificationToInner</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i148" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testManyFiltersOnTopOfMultiJoinShouldCollapse()">testManyFiltersOnTopOfMultiJoinShouldCollapse</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i149" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testMergeFilter()">testMergeFilter</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Tests that filters are combined if they are identical.</div> |
| </td> |
| </tr> |
| <tr id="i150" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testMergeFilterWithJoinCondition()">testMergeFilterWithJoinCondition</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i151" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testMergeIntersect()">testMergeIntersect</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Tests <code>UnionMergeRule.INTERSECT_INSTANCE</code>, which merges 2 |
| <code>Intersect</code> operators into a single <code>Intersect</code> with 3 |
| inputs.</div> |
| </td> |
| </tr> |
| <tr id="i152" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testMergeJoinFilter()">testMergeJoinFilter</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Tests that a filters is combined are combined if they are identical, |
| even if one of them originates in an ON clause of a JOIN.</div> |
| </td> |
| </tr> |
| <tr id="i153" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testMergeMinus()">testMergeMinus</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Tests <code>UnionMergeRule.MINUS_INSTANCE</code>, which merges 2 |
| <code>Minus</code> operators into a single <code>Minus</code> with 3 |
| inputs.</div> |
| </td> |
| </tr> |
| <tr id="i154" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testMergeMinusRightDeep()">testMergeMinusRightDeep</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Tests <code>UnionMergeRule.MINUS_INSTANCE</code> |
| does not merge <code>Minus(a, Minus(b, c))</code> |
| into <code>Minus(a, b, c)</code>, which would be incorrect.</div> |
| </td> |
| </tr> |
| <tr id="i155" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testMergeSetOpMixed()">testMergeSetOpMixed</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Tests that <code>UnionMergeRule</code> does nothing if its arguments have |
| are different set operators, <code>Union</code> and <code>Intersect</code>.</div> |
| </td> |
| </tr> |
| <tr id="i156" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testMergeUnionAll()">testMergeUnionAll</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Tests <code>UnionMergeRule</code>, which merges 2 <code>Union</code> operators into |
| a single <code>Union</code> with 3 inputs.</div> |
| </td> |
| </tr> |
| <tr id="i157" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testMergeUnionDistinct()">testMergeUnionDistinct</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Tests <code>UnionMergeRule</code>, which merges 2 <code>Union</code> |
| <code>DISTINCT</code> (not <code>ALL</code>) operators into a single |
| <code>Union</code> with 3 inputs.</div> |
| </td> |
| </tr> |
| <tr id="i158" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testMergeUnionMixed()">testMergeUnionMixed</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Tests that <code>UnionMergeRule</code> does nothing if its arguments have |
| different <code>ALL</code> settings.</div> |
| </td> |
| </tr> |
| <tr id="i159" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testMergeUnionMixed2()">testMergeUnionMixed2</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Tests that <code>UnionMergeRule</code> converts all inputs to DISTINCT |
| if the top one is DISTINCT.</div> |
| </td> |
| </tr> |
| <tr id="i160" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testMinusMergeRule()">testMinusMergeRule</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i161" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testMultipleDistinctWithGrouping()">testMultipleDistinctWithGrouping</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i162" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testNestedAggregates()">testNestedAggregates</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-750">[CALCITE-750] |
| Allow windowed aggregate on top of regular aggregate</a>.</div> |
| </td> |
| </tr> |
| <tr id="i163" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testNoOversimplificationBelowIsNull()">testNoOversimplificationBelowIsNull</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-2726">[CALCITE-2726] |
| ReduceExpressionRule may oversimplify filter conditions containing nulls</a>.</div> |
| </td> |
| </tr> |
| <tr id="i164" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testNoReduceAverage()">testNoReduceAverage</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i165" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testNoReduceSum()">testNoReduceSum</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i166" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testOrAlwaysTrue()">testOrAlwaysTrue</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i167" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testOrAlwaysTrue2()">testOrAlwaysTrue2</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i168" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testOversimplifiedCaseStatement()">testOversimplifiedCaseStatement</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i169" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testProjectCorrelateTranspose()">testProjectCorrelateTranspose</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i170" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testProjectCorrelateTransposeDynamic()">testProjectCorrelateTransposeDynamic</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i171" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testProjectCorrelateTransposeRuleAntiCorrelate()">testProjectCorrelateTransposeRuleAntiCorrelate</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i172" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testProjectCorrelateTransposeRuleLeftCorrelate()">testProjectCorrelateTransposeRuleLeftCorrelate</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i173" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testProjectCorrelateTransposeRuleSemiCorrelate()">testProjectCorrelateTransposeRuleSemiCorrelate</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i174" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testProjectCorrelateTransposeWithExprCond()">testProjectCorrelateTransposeWithExprCond</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i175" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testProjectCorrelateTransposeWithOver()">testProjectCorrelateTransposeWithOver</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">As <a href="#testProjectSetOpTranspose()"><code>testProjectSetOpTranspose()</code></a>; |
| should not push over past correlate but its operands can since correlate |
| will affect row count.</div> |
| </td> |
| </tr> |
| <tr id="i176" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testProjectJoinRemove1()">testProjectJoinRemove1</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Similar to <a href="#testAggregateJoinRemove1()"><code>testAggregateJoinRemove1()</code></a>; |
| Should remove the bottom join since the project uses column in the |
| right input of bottom join.</div> |
| </td> |
| </tr> |
| <tr id="i177" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testProjectJoinRemove2()">testProjectJoinRemove2</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Similar to <a href="#testAggregateJoinRemove1()"><code>testAggregateJoinRemove1()</code></a>; |
| Should not remove the bottom join since the project uses column in the |
| left input of bottom join.</div> |
| </td> |
| </tr> |
| <tr id="i178" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testProjectJoinRemove3()">testProjectJoinRemove3</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Similar to <a href="#testAggregateJoinRemove1()"><code>testAggregateJoinRemove1()</code></a>; |
| Should not remove the bottom join since the right join keys of bottom |
| join are not unique.</div> |
| </td> |
| </tr> |
| <tr id="i179" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testProjectJoinRemove4()">testProjectJoinRemove4</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Similar to <a href="#testAggregateJoinRemove1()"><code>testAggregateJoinRemove1()</code></a>; |
| Should remove the left join since the join key of the right input is |
| unique.</div> |
| </td> |
| </tr> |
| <tr id="i180" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testProjectJoinRemove5()">testProjectJoinRemove5</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Similar to <a href="#testAggregateJoinRemove1()"><code>testAggregateJoinRemove1()</code></a>; |
| Should not remove the left join since the join key of the right input is |
| not unique.</div> |
| </td> |
| </tr> |
| <tr id="i181" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testProjectJoinRemove6()">testProjectJoinRemove6</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Similar to <a href="#testAggregateJoinRemove1()"><code>testAggregateJoinRemove1()</code></a>; |
| Should not remove the left join since the project use columns in the right |
| input of the join.</div> |
| </td> |
| </tr> |
| <tr id="i182" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testProjectJoinRemove7()">testProjectJoinRemove7</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Similar to <a href="#testAggregateJoinRemove1()"><code>testAggregateJoinRemove1()</code></a>; |
| Should remove the right join since the join key of the left input is |
| unique.</div> |
| </td> |
| </tr> |
| <tr id="i183" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testProjectJoinRemove8()">testProjectJoinRemove8</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Similar to <a href="#testAggregateJoinRemove1()"><code>testAggregateJoinRemove1()</code></a>; |
| Should not remove the right join since the join key of the left input is |
| not unique.</div> |
| </td> |
| </tr> |
| <tr id="i184" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testProjectJoinRemove9()">testProjectJoinRemove9</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Similar to <a href="#testAggregateJoinRemove1()"><code>testAggregateJoinRemove1()</code></a>; |
| Should not remove the right join since the project uses columns in the |
| left input of the join.</div> |
| </td> |
| </tr> |
| <tr id="i185" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testProjectSetOpTranspose()">testProjectSetOpTranspose</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-3004">[CALCITE-3004] |
| Should not push over past union but its operands can since setop |
| will affect row count</a>.</div> |
| </td> |
| </tr> |
| <tr id="i186" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testProjectToWindowRuleForMultipleWindows()">testProjectToWindowRuleForMultipleWindows</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i187" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testProjectWindowTransposeRule()">testProjectWindowTransposeRule</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i188" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testProjectWindowTransposeRuleWithConstants()">testProjectWindowTransposeRuleWithConstants</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i189" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPullAggregateThroughUnion()">testPullAggregateThroughUnion</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i190" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPullAggregateThroughUnion2()">testPullAggregateThroughUnion2</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i191" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPullConstantIntoFilter()">testPullConstantIntoFilter</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i192" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPullConstantIntoJoin()">testPullConstantIntoJoin</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i193" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPullConstantIntoJoin2()">testPullConstantIntoJoin2</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i194" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPullConstantIntoProject()">testPullConstantIntoProject</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i195" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPullConstantThroughAggregateAllConst()">testPullConstantThroughAggregateAllConst</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i196" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPullConstantThroughAggregateAllLiterals()">testPullConstantThroughAggregateAllLiterals</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i197" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPullConstantThroughAggregateConstGroupBy()">testPullConstantThroughAggregateConstGroupBy</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i198" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPullConstantThroughAggregatePermuted()">testPullConstantThroughAggregatePermuted</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i199" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPullConstantThroughAggregatePermutedConstFirst()">testPullConstantThroughAggregatePermutedConstFirst</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i200" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPullConstantThroughAggregatePermutedConstGroupBy()">testPullConstantThroughAggregatePermutedConstGroupBy</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i201" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPullConstantThroughAggregateSimpleNonNullable()">testPullConstantThroughAggregateSimpleNonNullable</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i202" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPullConstantThroughConstLast()">testPullConstantThroughConstLast</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i203" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPullConstantThroughUnion()">testPullConstantThroughUnion</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i204" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPullConstantThroughUnion2()">testPullConstantThroughUnion2</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i205" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPullConstantThroughUnion3()">testPullConstantThroughUnion3</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i206" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPullFilterThroughAggregate()">testPullFilterThroughAggregate</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i207" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPullFilterThroughAggregateGroupingSets()">testPullFilterThroughAggregateGroupingSets</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i208" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPullNull()">testPullNull</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i209" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushAggregateFunctionsThroughJoin()">testPushAggregateFunctionsThroughJoin</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Push a variety of aggregate functions.</div> |
| </td> |
| </tr> |
| <tr id="i210" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushAggregateSumNoGroup()">testPushAggregateSumNoGroup</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Push count(*) through join, no GROUP BY.</div> |
| </td> |
| </tr> |
| <tr id="i211" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushAggregateSumThroughJoin()">testPushAggregateSumThroughJoin</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">SUM is the easiest aggregate function to split.</div> |
| </td> |
| </tr> |
| <tr id="i212" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushAggregateSumThroughJoinAfterAggregateReduce()">testPushAggregateSumThroughJoinAfterAggregateReduce</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-2108">[CALCITE-2108] |
| AggregateJoinTransposeRule incorrectly splits a SUM0 call when Aggregate |
| has no group keys</a>.</div> |
| </td> |
| </tr> |
| <tr id="i213" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushAggregateSumWithoutGroupKeyThroughJoin()">testPushAggregateSumWithoutGroupKeyThroughJoin</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-2105">[CALCITE-2105] |
| AggregateJoinTransposeRule incorrectly makes a SUM NOT NULL when Aggregate |
| has no group keys</a>.</div> |
| </td> |
| </tr> |
| <tr id="i214" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushAggregateThroughJoin1()">testPushAggregateThroughJoin1</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i215" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushAggregateThroughJoin2()">testPushAggregateThroughJoin2</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i216" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushAggregateThroughJoin3()">testPushAggregateThroughJoin3</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i217" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushAggregateThroughJoin4()">testPushAggregateThroughJoin4</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-1544">[CALCITE-1544] |
| AggregateJoinTransposeRule fails to preserve row type</a>.</div> |
| </td> |
| </tr> |
| <tr id="i218" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushAggregateThroughJoin5()">testPushAggregateThroughJoin5</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i219" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushAggregateThroughJoin6()">testPushAggregateThroughJoin6</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-2195">[CALCITE-2195] |
| AggregateJoinTransposeRule fails to aggregate over unique column</a>.</div> |
| </td> |
| </tr> |
| <tr id="i220" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushAggregateThroughJoinDistinct()">testPushAggregateThroughJoinDistinct</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Push a aggregate functions into a relation that is unique on the join |
| key.</div> |
| </td> |
| </tr> |
| <tr id="i221" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushAggregateThroughJoinOnEmptyLogicalValues()">testPushAggregateThroughJoinOnEmptyLogicalValues</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-3076">[CALCITE-3076] |
| AggregateJoinTransposeRule throws error for unique under aggregate keys when |
| generating merged calls</a>.</div> |
| </td> |
| </tr> |
| <tr id="i222" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushAggregateThroughJoinWithUniqueInput()">testPushAggregateThroughJoinWithUniqueInput</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-2278">[CALCITE-2278] |
| AggregateJoinTransposeRule fails to split aggregate call if input contains |
| an aggregate call and has distinct rows</a>.</div> |
| </td> |
| </tr> |
| <tr id="i223" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushAggregateThroughOuterJoin1()">testPushAggregateThroughOuterJoin1</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| outer join, group by on non-join keys, group by on non-null generating side only</div> |
| </td> |
| </tr> |
| <tr id="i224" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushAggregateThroughOuterJoin10()">testPushAggregateThroughOuterJoin10</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| outer join, with aggregate functions</div> |
| </td> |
| </tr> |
| <tr id="i225" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushAggregateThroughOuterJoin11()">testPushAggregateThroughOuterJoin11</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| non-equi outer join</div> |
| </td> |
| </tr> |
| <tr id="i226" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushAggregateThroughOuterJoin12()">testPushAggregateThroughOuterJoin12</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| right outer join, group by on key same as join key, group by on (left)null generating side</div> |
| </td> |
| </tr> |
| <tr id="i227" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushAggregateThroughOuterJoin13()">testPushAggregateThroughOuterJoin13</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| full outer join, group by on key same as join key, group by on one side</div> |
| </td> |
| </tr> |
| <tr id="i228" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushAggregateThroughOuterJoin14()">testPushAggregateThroughOuterJoin14</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| full outer join, group by on key same as join key, group by on both side</div> |
| </td> |
| </tr> |
| <tr id="i229" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushAggregateThroughOuterJoin15()">testPushAggregateThroughOuterJoin15</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| full outer join, group by on both side on non-join keys</div> |
| </td> |
| </tr> |
| <tr id="i230" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushAggregateThroughOuterJoin16()">testPushAggregateThroughOuterJoin16</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| full outer join, group by key is susbset of join keys</div> |
| </td> |
| </tr> |
| <tr id="i231" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushAggregateThroughOuterJoin2()">testPushAggregateThroughOuterJoin2</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| outer join, group by on non-join keys, on null generating side only</div> |
| </td> |
| </tr> |
| <tr id="i232" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushAggregateThroughOuterJoin3()">testPushAggregateThroughOuterJoin3</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| outer join, group by on both side on non-join keys</div> |
| </td> |
| </tr> |
| <tr id="i233" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushAggregateThroughOuterJoin4()">testPushAggregateThroughOuterJoin4</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| outer join, group by on key same as join key, group by on non-null generating side</div> |
| </td> |
| </tr> |
| <tr id="i234" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushAggregateThroughOuterJoin5()">testPushAggregateThroughOuterJoin5</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| outer join, group by on key same as join key, group by on null generating side</div> |
| </td> |
| </tr> |
| <tr id="i235" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushAggregateThroughOuterJoin6()">testPushAggregateThroughOuterJoin6</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| outer join, group by on key same as join key, group by on both side</div> |
| </td> |
| </tr> |
| <tr id="i236" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushAggregateThroughOuterJoin7()">testPushAggregateThroughOuterJoin7</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| outer join, group by key is susbset of join keys, group by on non-null generating side</div> |
| </td> |
| </tr> |
| <tr id="i237" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushAggregateThroughOuterJoin8()">testPushAggregateThroughOuterJoin8</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| outer join, group by key is susbset of join keys, group by on null generating side</div> |
| </td> |
| </tr> |
| <tr id="i238" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushAggregateThroughOuterJoin9()">testPushAggregateThroughOuterJoin9</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| outer join, group by key is susbset of join keys, group by on both sides</div> |
| </td> |
| </tr> |
| <tr id="i239" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushAvgGroupingSetsThroughUnion()">testPushAvgGroupingSetsThroughUnion</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i240" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushAvgThroughUnion()">testPushAvgThroughUnion</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i241" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushCountFilterThroughUnion()">testPushCountFilterThroughUnion</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i242" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushCountNullableGroupingSetsThroughUnion()">testPushCountNullableGroupingSetsThroughUnion</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i243" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushCountNullableThroughUnion()">testPushCountNullableThroughUnion</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i244" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushCountStarGroupingSetsThroughUnion()">testPushCountStarGroupingSetsThroughUnion</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i245" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushCountStarThroughUnion()">testPushCountStarThroughUnion</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i246" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushDistinctAggregateIntoJoin()">testPushDistinctAggregateIntoJoin</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-2249">[CALCITE-2249] |
| AggregateJoinTransposeRule generates inequivalent nodes if Aggregate relNode contains |
| distinct aggregate function.</a>.</div> |
| </td> |
| </tr> |
| <tr id="i247" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushFilterPastAgg()">testPushFilterPastAgg</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i248" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushFilterPastAggFour()">testPushFilterPastAggFour</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-1109">[CALCITE-1109] |
| FilterAggregateTransposeRule pushes down incorrect condition</a>.</div> |
| </td> |
| </tr> |
| <tr id="i249" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushFilterPastAggThree()">testPushFilterPastAggThree</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-799">[CALCITE-799] |
| Incorrect result for <code>HAVING count(*) > 1</code></a>.</div> |
| </td> |
| </tr> |
| <tr id="i250" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushFilterPastAggTwo()">testPushFilterPastAggTwo</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-434">[CALCITE-434] |
| FilterAggregateTransposeRule loses conditions that cannot be pushed</a>.</div> |
| </td> |
| </tr> |
| <tr id="i251" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushFilterPastAggWithGroupingSets1()">testPushFilterPastAggWithGroupingSets1</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i252" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushFilterPastAggWithGroupingSets2()">testPushFilterPastAggWithGroupingSets2</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i253" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushFilterPastProject()">testPushFilterPastProject</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-448">[CALCITE-448] |
| FilterIntoJoinRule creates filters containing invalid RexInputRef</a>.</div> |
| </td> |
| </tr> |
| <tr id="i254" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushFilterThroughSemiJoin()">testPushFilterThroughSemiJoin</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-438">[CALCITE-438] |
| Push predicates through SemiJoin</a>.</div> |
| </td> |
| </tr> |
| <tr id="i255" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushFilterWithRank()">testPushFilterWithRank</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i256" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushFilterWithRankExpr()">testPushFilterWithRankExpr</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i257" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushJoinCondDownToProject()">testPushJoinCondDownToProject</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i258" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushJoinThroughUnionOnLeft()">testPushJoinThroughUnionOnLeft</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i259" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushJoinThroughUnionOnRight()">testPushJoinThroughUnionOnRight</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i260" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushMaxNullableGroupingSetsThroughUnion()">testPushMaxNullableGroupingSetsThroughUnion</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i261" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushMaxNullableThroughUnion()">testPushMaxNullableThroughUnion</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i262" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushMinGroupingSetsThroughUnion()">testPushMinGroupingSetsThroughUnion</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i263" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushMinThroughUnion()">testPushMinThroughUnion</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i264" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushProjectPastFilter()">testPushProjectPastFilter</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i265" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushProjectPastFilter2()">testPushProjectPastFilter2</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-1778">[CALCITE-1778] |
| Query with "WHERE CASE" throws AssertionError "Cast for just nullability |
| not allowed"</a>.</div> |
| </td> |
| </tr> |
| <tr id="i266" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushProjectPastFullJoin()">testPushProjectPastFullJoin</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i267" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushProjectPastFullJoinStrong()">testPushProjectPastFullJoinStrong</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i268" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushProjectPastInnerJoin()">testPushProjectPastInnerJoin</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-1753">[CALCITE-1753] |
| PushProjector should only preserve expressions if the expression is strong |
| when pushing into the nullable-side of outer join</a>.</div> |
| </td> |
| </tr> |
| <tr id="i269" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushProjectPastInnerJoinStrong()">testPushProjectPastInnerJoinStrong</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i270" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushProjectPastJoin()">testPushProjectPastJoin</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i271" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushProjectPastLeftJoin()">testPushProjectPastLeftJoin</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i272" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushProjectPastLeftJoinSwap()">testPushProjectPastLeftJoinSwap</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i273" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushProjectPastLeftJoinSwapStrong()">testPushProjectPastLeftJoinSwapStrong</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i274" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushProjectPastRightJoin()">testPushProjectPastRightJoin</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i275" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushProjectPastRightJoinStrong()">testPushProjectPastRightJoinStrong</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i276" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushProjectPastRightJoinSwap()">testPushProjectPastRightJoinSwap</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i277" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushProjectPastRightJoinSwapStrong()">testPushProjectPastRightJoinSwapStrong</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i278" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushProjectPastSetOp()">testPushProjectPastSetOp</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i279" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushProjectWithIsNotDistinctFromPastJoin()">testPushProjectWithIsNotDistinctFromPastJoin</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-2803">[CALCITE-2803] |
| Identify expanded IS NOT DISTINCT FROM expression when pushing project past join</a>.</div> |
| </td> |
| </tr> |
| <tr id="i280" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushProjectWithOverPastJoin1()">testPushProjectWithOverPastJoin1</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-2343">[CALCITE-2343] |
| Should not push over whose columns are all from left child past join since |
| join will affect row count.</a>.</div> |
| </td> |
| </tr> |
| <tr id="i281" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushProjectWithOverPastJoin2()">testPushProjectWithOverPastJoin2</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">As <a href="#testPushProjectWithOverPastJoin1()"><code>testPushProjectWithOverPastJoin1()</code></a>; |
| should not push over whose columns are all from right child past join since |
| join will affect row count.</div> |
| </td> |
| </tr> |
| <tr id="i282" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushProjectWithOverPastJoin3()">testPushProjectWithOverPastJoin3</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">As <a href="#testPushProjectWithOverPastJoin2()"><code>testPushProjectWithOverPastJoin2()</code></a>; |
| should not push over past join but should push the operands of over past |
| join.</div> |
| </td> |
| </tr> |
| <tr id="i283" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushSemiJoinPastFilter()">testPushSemiJoinPastFilter</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i284" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushSemiJoinPastJoinRuleLeft()">testPushSemiJoinPastJoinRuleLeft</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i285" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushSemiJoinPastJoinRuleRight()">testPushSemiJoinPastJoinRuleRight</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i286" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushSemiJoinPastProject()">testPushSemiJoinPastProject</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i287" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushSumConstantGroupingSetsThroughUnion()">testPushSumConstantGroupingSetsThroughUnion</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i288" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushSumConstantThroughUnion()">testPushSumConstantThroughUnion</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i289" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushSumCountStarGroupingSetsThroughUnion()">testPushSumCountStarGroupingSetsThroughUnion</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i290" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushSumCountStarThroughUnion()">testPushSumCountStarThroughUnion</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i291" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushSumNullableGroupingSetsThroughUnion()">testPushSumNullableGroupingSetsThroughUnion</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i292" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushSumNullableNOGBYThroughUnion()">testPushSumNullableNOGBYThroughUnion</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i293" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushSumNullableThroughUnion()">testPushSumNullableThroughUnion</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i294" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushSumNullConstantGroupingSetsThroughUnion()">testPushSumNullConstantGroupingSetsThroughUnion</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i295" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testPushSumNullConstantThroughUnion()">testPushSumNullConstantThroughUnion</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i296" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testReduceAllAggregateFunctions()">testReduceAllAggregateFunctions</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i297" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testReduceAverage()">testReduceAverage</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i298" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testReduceAverageAndSumWithNoReduceStddevAndVar()">testReduceAverageAndSumWithNoReduceStddevAndVar</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i299" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testReduceAverageAndVarWithNoReduceStddev()">testReduceAverageAndVarWithNoReduceStddev</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i300" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testReduceAverageWithNoReduceSum()">testReduceAverageWithNoReduceSum</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i301" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testReduceCase()">testReduceCase</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-1439">[CALCITE-1439] |
| Handling errors during constant reduction</a>.</div> |
| </td> |
| </tr> |
| <tr id="i302" class="altColor"> |
| <td class="colFirst"><code><T> void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testReduceCaseNullabilityChange()">testReduceCaseNullabilityChange</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i303" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testReduceCastAndConsts()">testReduceCastAndConsts</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i304" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testReduceCasts()">testReduceCasts</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i305" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testReduceCastsNullable()">testReduceCastsNullable</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i306" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testReduceCastTimeUnchanged()">testReduceCastTimeUnchanged</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Tests that a cast from a TIME to a TIMESTAMP is not reduced.</div> |
| </td> |
| </tr> |
| <tr id="i307" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testReduceCompositeInSubQuery()">testReduceCompositeInSubQuery</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-1479">[CALCITE-1479] |
| AssertionError in ReduceExpressionsRule on multi-column IN |
| sub-query</a>.</div> |
| </td> |
| </tr> |
| <tr id="i308" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testReduceConstants()">testReduceConstants</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i309" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testReduceConstants2()">testReduceConstants2</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i310" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testReduceConstants3()">testReduceConstants3</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i311" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testReduceConstantsCalc()">testReduceConstantsCalc</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i312" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testReduceConstantsCaseEquals()">testReduceConstantsCaseEquals</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i313" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testReduceConstantsCaseEquals2()">testReduceConstantsCaseEquals2</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i314" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testReduceConstantsCaseEquals3()">testReduceConstantsCaseEquals3</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i315" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testReduceConstantsDup()">testReduceConstantsDup</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-570">[CALCITE-570] |
| ReduceExpressionsRule throws "duplicate key" exception</a>.</div> |
| </td> |
| </tr> |
| <tr id="i316" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testReduceConstantsDup2()">testReduceConstantsDup2</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-935">[CALCITE-935] |
| Improve how ReduceExpressionsRule handles duplicate constraints</a>.</div> |
| </td> |
| </tr> |
| <tr id="i317" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testReduceConstantsDynamicFunction()">testReduceConstantsDynamicFunction</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Checks that constant reducer duplicates calls to dynamic functions, if |
| appropriate.</div> |
| </td> |
| </tr> |
| <tr id="i318" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testReduceConstantsEliminatesFilter()">testReduceConstantsEliminatesFilter</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i319" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testReduceConstantsIsNotNull()">testReduceConstantsIsNotNull</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i320" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testReduceConstantsIsNull()">testReduceConstantsIsNull</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i321" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testReduceConstantsNegated()">testReduceConstantsNegated</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i322" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testReduceConstantsNegatedInverted()">testReduceConstantsNegatedInverted</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i323" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testReduceConstantsNonDeterministicFunction()">testReduceConstantsNonDeterministicFunction</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-2638">[CALCITE-2638] |
| Constant reducer must not duplicate calls to non-deterministic |
| functions</a>.</div> |
| </td> |
| </tr> |
| <tr id="i324" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testReduceConstantsNull()">testReduceConstantsNull</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-1860">[CALCITE-1860] |
| Duplicate null predicates cause NullPointerException in RexUtil</a>.</div> |
| </td> |
| </tr> |
| <tr id="i325" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testReduceConstantsNullEqualsOne()">testReduceConstantsNullEqualsOne</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i326" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testReduceConstantsProjectNullable()">testReduceConstantsProjectNullable</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-902">[CALCITE-902] |
| Match nullability when reducing expressions in a Project</a>.</div> |
| </td> |
| </tr> |
| <tr id="i327" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testReduceConstantsRequiresExecutor()">testReduceConstantsRequiresExecutor</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-566">[CALCITE-566] |
| ReduceExpressionsRule requires planner to have an Executor</a>.</div> |
| </td> |
| </tr> |
| <tr id="i328" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testReduceConstantsWindow()">testReduceConstantsWindow</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i329" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testReduceExpressionsNot()">testReduceExpressionsNot</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i330" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testReduceNestedCaseWhen()">testReduceNestedCaseWhen</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i331" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testReduceNot()">testReduceNot</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i332" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testReduceNullableCase()">testReduceNullableCase</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i333" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testReduceNullableCase2()">testReduceNullableCase2</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i334" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testReduceNullableToNotNull()">testReduceNullableToNotNull</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case that reduces a nullable expression to a NOT NULL literal that |
| is cast to nullable.</div> |
| </td> |
| </tr> |
| <tr id="i335" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testReduceNullableToNotNull2()">testReduceNullableToNotNull2</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case that reduces a nullable expression to a NOT NULL literal.</div> |
| </td> |
| </tr> |
| <tr id="i336" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testReduceOrCaseWhen()">testReduceOrCaseWhen</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i337" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testReduceValuesNull()">testReduceValuesNull</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i338" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testReduceValuesToEmpty()">testReduceValuesToEmpty</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i339" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testReduceValuesUnderFilter()">testReduceValuesUnderFilter</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i340" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testReduceValuesUnderProject()">testReduceValuesUnderProject</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i341" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testReduceValuesUnderProjectFilter()">testReduceValuesUnderProjectFilter</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i342" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testRemoveSemiJoin()">testRemoveSemiJoin</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i343" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testRemoveSemiJoinRight()">testRemoveSemiJoinRight</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i344" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testRemoveSemiJoinRightWithFilter()">testRemoveSemiJoinRightWithFilter</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i345" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testRemoveSemiJoinWithFilter()">testRemoveSemiJoinWithFilter</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i346" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testRightOuterJoinSimplificationToInner()">testRightOuterJoinSimplificationToInner</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i347" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSelectNotInCorrelated()">testSelectNotInCorrelated</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i348" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSemiJoinReduceConstants()">testSemiJoinReduceConstants</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-571">[CALCITE-571] |
| ReduceExpressionsRule tries to reduce SemiJoin condition to non-equi |
| condition</a>.</div> |
| </td> |
| </tr> |
| <tr id="i349" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSemiJoinRule()">testSemiJoinRule</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i350" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSemiJoinRuleExists()">testSemiJoinRuleExists</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i351" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSemiJoinRuleFull()">testSemiJoinRuleFull</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Similar to <a href="#testSemiJoinRuleRight()"><code>testSemiJoinRuleRight()</code></a> but FULL.</div> |
| </td> |
| </tr> |
| <tr id="i352" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSemiJoinRuleLeft()">testSemiJoinRuleLeft</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Similar to <a href="#testSemiJoinRule()"><code>testSemiJoinRule()</code></a> but LEFT.</div> |
| </td> |
| </tr> |
| <tr id="i353" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSemiJoinRuleRight()">testSemiJoinRuleRight</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-1495">[CALCITE-1495] |
| SemiJoinRule should not apply to RIGHT and FULL JOIN</a>.</div> |
| </td> |
| </tr> |
| <tr id="i354" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSemiJoinTrim()">testSemiJoinTrim</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i355" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSimplifyFilter()">testSimplifyFilter</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-1995">[CALCITE-1995] |
| Remove predicates from Filter if they can be proved to be always true or |
| false</a>.</div> |
| </td> |
| </tr> |
| <tr id="i356" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSkipReduceConstantsCaseEquals()">testSkipReduceConstantsCaseEquals</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i357" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSome()">testSome</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i358" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSomeWithEquality()">testSomeWithEquality</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i359" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSomeWithEquality2()">testSomeWithEquality2</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i360" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSortJoinTranspose1()">testSortJoinTranspose1</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i361" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSortJoinTranspose2()">testSortJoinTranspose2</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i362" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSortJoinTranspose3()">testSortJoinTranspose3</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i363" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSortJoinTranspose4()">testSortJoinTranspose4</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-931">[CALCITE-931] |
| Wrong collation trait in SortJoinTransposeRule for right joins</a>.</div> |
| </td> |
| </tr> |
| <tr id="i364" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSortJoinTranspose5()">testSortJoinTranspose5</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-1498">[CALCITE-1498] |
| Avoid LIMIT with trivial ORDER BY being pushed through JOIN endlessly</a>.</div> |
| </td> |
| </tr> |
| <tr id="i365" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSortJoinTranspose6()">testSortJoinTranspose6</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-1507">[CALCITE-1507] |
| OFFSET cannot be pushed through a JOIN if the non-preserved side of outer |
| join is not count-preserving</a>.</div> |
| </td> |
| </tr> |
| <tr id="i366" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSortJoinTranspose7()">testSortJoinTranspose7</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-1507">[CALCITE-1507] |
| OFFSET cannot be pushed through a JOIN if the non-preserved side of outer |
| join is not count-preserving</a>.</div> |
| </td> |
| </tr> |
| <tr id="i367" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSortProjectTranspose1()">testSortProjectTranspose1</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i368" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSortProjectTranspose2()">testSortProjectTranspose2</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i369" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSortProjectTranspose3()">testSortProjectTranspose3</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i370" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSortRemovalAllKeysConstant()">testSortRemovalAllKeysConstant</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i371" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSortRemovalOneKeyConstant()">testSortRemovalOneKeyConstant</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i372" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSortUnionTranspose()">testSortUnionTranspose</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-889">[CALCITE-889] |
| Implement SortUnionTransposeRule</a>.</div> |
| </td> |
| </tr> |
| <tr id="i373" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSortUnionTranspose2()">testSortUnionTranspose2</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-889">[CALCITE-889] |
| Implement SortUnionTransposeRule</a>.</div> |
| </td> |
| </tr> |
| <tr id="i374" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSortUnionTranspose3()">testSortUnionTranspose3</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-987">[CALCITE-987] |
| Push limit 0 will result in an infinite loop</a>.</div> |
| </td> |
| </tr> |
| <tr id="i375" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testStrengthenJoinType()">testStrengthenJoinType</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i376" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testSwapOuterJoin()">testSwapOuterJoin</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i377" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testTransitiveInferenceAggregate()">testTransitiveInferenceAggregate</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i378" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testTransitiveInferenceComplexPredicate()">testTransitiveInferenceComplexPredicate</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i379" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testTransitiveInferenceConjunctInPullUp()">testTransitiveInferenceConjunctInPullUp</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i380" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testTransitiveInferenceConstantEquiPredicate()">testTransitiveInferenceConstantEquiPredicate</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i381" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testTransitiveInferenceFullOuterJoin()">testTransitiveInferenceFullOuterJoin</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i382" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testTransitiveInferenceJoin()">testTransitiveInferenceJoin</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i383" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testTransitiveInferenceJoin3way()">testTransitiveInferenceJoin3way</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i384" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testTransitiveInferenceJoin3wayAgg()">testTransitiveInferenceJoin3wayAgg</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i385" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testTransitiveInferenceLeftOuterJoin()">testTransitiveInferenceLeftOuterJoin</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i386" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testTransitiveInferenceNoPullUpExprs()">testTransitiveInferenceNoPullUpExprs</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i387" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testTransitiveInferencePreventProjectPullUp()">testTransitiveInferencePreventProjectPullUp</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i388" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testTransitiveInferenceProject()">testTransitiveInferenceProject</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i389" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testTransitiveInferencePullUpThruAlias()">testTransitiveInferencePullUpThruAlias</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i390" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testTransitiveInferenceRightOuterJoin()">testTransitiveInferenceRightOuterJoin</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i391" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testTransitiveInferenceUnion()">testTransitiveInferenceUnion</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i392" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testTransitiveInferenceUnion3way()">testTransitiveInferenceUnion3way</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i393" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testTransitiveInferenceUnion3wayOr()">testTransitiveInferenceUnion3wayOr</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i394" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testTransitiveInferenceUnionAlwaysTrue()">testTransitiveInferenceUnionAlwaysTrue</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-443">[CALCITE-443] |
| getPredicates from a union is not correct</a>.</div> |
| </td> |
| </tr> |
| <tr id="i395" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testUnionMergeRule()">testUnionMergeRule</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Tests to see if the final branch of union is missed</div> |
| </td> |
| </tr> |
| <tr id="i396" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testUnionToDistinctRule()">testUnionToDistinctRule</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i397" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testWhereExpressionInCorrelated()">testWhereExpressionInCorrelated</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i398" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testWhereExpressionInCorrelated2()">testWhereExpressionInCorrelated2</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i399" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testWhereInCorrelated()">testWhereInCorrelated</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-1494">[CALCITE-1494] |
| Inefficient plan for correlated sub-queries</a>.</div> |
| </td> |
| </tr> |
| <tr id="i400" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testWhereInJoinCorrelated()">testWhereInJoinCorrelated</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i401" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testWhereNotInCorrelated()">testWhereNotInCorrelated</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-1493">[CALCITE-1493] |
| Wrong plan for NOT IN correlated queries</a>.</div> |
| </td> |
| </tr> |
| <tr id="i402" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testWhereNotInCorrelated2()">testWhereNotInCorrelated2</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i403" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testWhereOrSubQuery()">testWhereOrSubQuery</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-1546">[CALCITE-1546] |
| Sub-queries connected by OR</a>.</div> |
| </td> |
| </tr> |
| <tr id="i404" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testWindowFunctionOnAggregations()">testWindowFunctionOnAggregations</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-2078">[CALCITE-2078] |
| Aggregate functions in OVER clause</a>.</div> |
| </td> |
| </tr> |
| <tr id="i405" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#testWindowInParenthesis()">testWindowInParenthesis</a></span>()</code></th> |
| <td class="colLast"> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-888">[CALCITE-888] |
| Overlay window loses PARTITION BY list</a>.</div> |
| </td> |
| </tr> |
| <tr id="i406" class="altColor"> |
| <td class="colFirst"><code>private void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#transitiveInference(org.apache.calcite.plan.RelOptRule...)">transitiveInference</a></span>​(org.apache.calcite.plan.RelOptRule... extraRules)</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| </table> |
| <ul class="blockList"> |
| <li class="blockList"><a id="methods.inherited.from.class.org.apache.calcite.test.RelOptTestBase"> |
| <!-- --> |
| </a> |
| <h3>Methods inherited from class org.apache.calcite.test.<a href="RelOptTestBase.html" title="class in org.apache.calcite.test">RelOptTestBase</a></h3> |
| <code><a href="RelOptTestBase.html#checkPlanning(org.apache.calcite.plan.hep.HepProgram,java.lang.String)">checkPlanning</a>, <a href="RelOptTestBase.html#checkPlanning(org.apache.calcite.plan.RelOptPlanner,java.lang.String)">checkPlanning</a>, <a href="RelOptTestBase.html#checkPlanning(org.apache.calcite.plan.RelOptRule,java.lang.String)">checkPlanning</a>, <a href="RelOptTestBase.html#checkPlanning(org.apache.calcite.test.SqlToRelTestBase.Tester,org.apache.calcite.plan.hep.HepProgram,org.apache.calcite.plan.RelOptPlanner,java.lang.String)">checkPlanning</a>, <a href="RelOptTestBase.html#checkPlanning(org.apache.calcite.test.SqlToRelTestBase.Tester,org.apache.calcite.plan.hep.HepProgram,org.apache.calcite.plan.RelOptPlanner,java.lang.String,boolean)">checkPlanning</a>, <a href="RelOptTestBase.html#checkPlanningDynamic(java.lang.String)">checkPlanningDynamic</a>, <a href="RelOptTestBase.html#checkPlanningDynamic(org.apache.calcite.plan.RelOptRule,java.lang.String)">checkPlanningDynamic</a>, <a href="RelOptTestBase.html#checkPlanUnchanged(org.apache.calcite.plan.RelOptPlanner,java.lang.String)">checkPlanUnchanged</a>, <a href="RelOptTestBase.html#createDynamicTester()">createDynamicTester</a>, <a href="RelOptTestBase.html#createTester()">createTester</a>, <a href="RelOptTestBase.html#sql(java.lang.String)">sql</a></code></li> |
| </ul> |
| <ul class="blockList"> |
| <li class="blockList"><a id="methods.inherited.from.class.org.apache.calcite.test.SqlToRelTestBase"> |
| <!-- --> |
| </a> |
| <h3>Methods inherited from class org.apache.calcite.test.<a href="SqlToRelTestBase.html" title="class in org.apache.calcite.test">SqlToRelTestBase</a></h3> |
| <code><a href="SqlToRelTestBase.html#assertValid(org.apache.calcite.rel.RelNode)">assertValid</a>, <a href="SqlToRelTestBase.html#createTester(org.apache.calcite.sql.validate.SqlConformance)">createTester</a>, <a href="SqlToRelTestBase.html#getTesterWithDynamicTable()">getTesterWithDynamicTable</a></code></li> |
| </ul> |
| <ul class="blockList"> |
| <li class="blockList"><a id="methods.inherited.from.class.java.lang.Object"> |
| <!-- --> |
| </a> |
| <h3>Methods inherited from class java.lang.Object</h3> |
| <code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li> |
| </ul> |
| </li> |
| </ul> |
| </section> |
| </li> |
| </ul> |
| </div> |
| <div class="details"> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <!-- ============ FIELD DETAIL =========== --> |
| <section role="region"> |
| <ul class="blockList"> |
| <li class="blockList"><a id="field.detail"> |
| <!-- --> |
| </a> |
| <h3>Field Detail</h3> |
| <a id="skipItem"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>skipItem</h4> |
| <pre>private final org.apache.calcite.rel.rules.PushProjector.ExprCondition skipItem</pre> |
| </li> |
| </ul> |
| <a id="NOT_STRONG_EXPR"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>NOT_STRONG_EXPR</h4> |
| <pre>private static final java.lang.String NOT_STRONG_EXPR</pre> |
| <dl> |
| <dt><span class="seeLabel">See Also:</span></dt> |
| <dd><a href="../../../../constant-values.html#org.apache.calcite.test.RelOptRulesTest.NOT_STRONG_EXPR">Constant Field Values</a></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="STRONG_EXPR"> |
| <!-- --> |
| </a> |
| <ul class="blockListLast"> |
| <li class="blockList"> |
| <h4>STRONG_EXPR</h4> |
| <pre>private static final java.lang.String STRONG_EXPR</pre> |
| <dl> |
| <dt><span class="seeLabel">See Also:</span></dt> |
| <dd><a href="../../../../constant-values.html#org.apache.calcite.test.RelOptRulesTest.STRONG_EXPR">Constant Field Values</a></dd> |
| </dl> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| </section> |
| <!-- ========= CONSTRUCTOR DETAIL ======== --> |
| <section role="region"> |
| <ul class="blockList"> |
| <li class="blockList"><a id="constructor.detail"> |
| <!-- --> |
| </a> |
| <h3>Constructor Detail</h3> |
| <a id="<init>()"> |
| <!-- --> |
| </a> |
| <ul class="blockListLast"> |
| <li class="blockList"> |
| <h4>RelOptRulesTest</h4> |
| <pre>public RelOptRulesTest()</pre> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| </section> |
| <!-- ============ METHOD DETAIL ========== --> |
| <section role="region"> |
| <ul class="blockList"> |
| <li class="blockList"><a id="method.detail"> |
| <!-- --> |
| </a> |
| <h3>Method Detail</h3> |
| <a id="getDiffRepos()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>getDiffRepos</h4> |
| <pre class="methodSignature">protected <a href="DiffRepository.html" title="class in org.apache.calcite.test">DiffRepository</a> getDiffRepos()</pre> |
| <div class="block"><span class="descfrmTypeLabel">Description copied from class: <code><a href="SqlToRelTestBase.html#getDiffRepos()">SqlToRelTestBase</a></code></span></div> |
| <div class="block">Returns the default diff repository for this test, or null if there is |
| no repository. |
| |
| <p>The default implementation returns null. |
| |
| <p>Sub-classes that want to use a diff repository can override. |
| Sub-sub-classes can override again, inheriting test cases and overriding |
| selected test results. |
| |
| <p>And individual test cases can override by providing a different |
| tester object.</div> |
| <dl> |
| <dt><span class="overrideSpecifyLabel">Overrides:</span></dt> |
| <dd><code><a href="SqlToRelTestBase.html#getDiffRepos()">getDiffRepos</a></code> in class <code><a href="SqlToRelTestBase.html" title="class in org.apache.calcite.test">SqlToRelTestBase</a></code></dd> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>Diff repository</dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testReduceNot()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testReduceNot</h4> |
| <pre class="methodSignature">public void testReduceNot()</pre> |
| </li> |
| </ul> |
| <a id="testReduceNestedCaseWhen()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testReduceNestedCaseWhen</h4> |
| <pre class="methodSignature">public void testReduceNestedCaseWhen()</pre> |
| </li> |
| </ul> |
| <a id="testReduceCompositeInSubQuery()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testReduceCompositeInSubQuery</h4> |
| <pre class="methodSignature">public void testReduceCompositeInSubQuery()</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-1479">[CALCITE-1479] |
| AssertionError in ReduceExpressionsRule on multi-column IN |
| sub-query</a>.</div> |
| </li> |
| </ul> |
| <a id="testFilterProjectTransposeRule()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testFilterProjectTransposeRule</h4> |
| <pre class="methodSignature">public void testFilterProjectTransposeRule()</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-2865">[CALCITE-2865] |
| FilterProjectTransposeRule generates wrong traitSet when copyFilter/Project is true</a>.</div> |
| </li> |
| </ul> |
| <a id="testReduceOrCaseWhen()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testReduceOrCaseWhen</h4> |
| <pre class="methodSignature">public void testReduceOrCaseWhen()</pre> |
| </li> |
| </ul> |
| <a id="testReduceNullableCase()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testReduceNullableCase</h4> |
| <pre class="methodSignature">public void testReduceNullableCase()</pre> |
| </li> |
| </ul> |
| <a id="testReduceNullableCase2()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testReduceNullableCase2</h4> |
| <pre class="methodSignature">public void testReduceNullableCase2()</pre> |
| </li> |
| </ul> |
| <a id="testProjectToWindowRuleForMultipleWindows()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testProjectToWindowRuleForMultipleWindows</h4> |
| <pre class="methodSignature">public void testProjectToWindowRuleForMultipleWindows()</pre> |
| </li> |
| </ul> |
| <a id="testUnionToDistinctRule()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testUnionToDistinctRule</h4> |
| <pre class="methodSignature">public void testUnionToDistinctRule()</pre> |
| </li> |
| </ul> |
| <a id="testExtractJoinFilterRule()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testExtractJoinFilterRule</h4> |
| <pre class="methodSignature">public void testExtractJoinFilterRule()</pre> |
| </li> |
| </ul> |
| <a id="testAddRedundantSemiJoinRule()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testAddRedundantSemiJoinRule</h4> |
| <pre class="methodSignature">public void testAddRedundantSemiJoinRule()</pre> |
| </li> |
| </ul> |
| <a id="testStrengthenJoinType()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testStrengthenJoinType</h4> |
| <pre class="methodSignature">public void testStrengthenJoinType()</pre> |
| </li> |
| </ul> |
| <a id="testFullOuterJoinSimplificationToLeftOuter()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testFullOuterJoinSimplificationToLeftOuter</h4> |
| <pre class="methodSignature">public void testFullOuterJoinSimplificationToLeftOuter()</pre> |
| </li> |
| </ul> |
| <a id="testFullOuterJoinSimplificationToRightOuter()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testFullOuterJoinSimplificationToRightOuter</h4> |
| <pre class="methodSignature">public void testFullOuterJoinSimplificationToRightOuter()</pre> |
| </li> |
| </ul> |
| <a id="testFullOuterJoinSimplificationToInner()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testFullOuterJoinSimplificationToInner</h4> |
| <pre class="methodSignature">public void testFullOuterJoinSimplificationToInner()</pre> |
| </li> |
| </ul> |
| <a id="testLeftOuterJoinSimplificationToInner()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testLeftOuterJoinSimplificationToInner</h4> |
| <pre class="methodSignature">public void testLeftOuterJoinSimplificationToInner()</pre> |
| </li> |
| </ul> |
| <a id="testRightOuterJoinSimplificationToInner()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testRightOuterJoinSimplificationToInner</h4> |
| <pre class="methodSignature">public void testRightOuterJoinSimplificationToInner()</pre> |
| </li> |
| </ul> |
| <a id="testPushFilterPastAgg()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushFilterPastAgg</h4> |
| <pre class="methodSignature">public void testPushFilterPastAgg()</pre> |
| </li> |
| </ul> |
| <a id="basePushFilterPastAggWithGroupingSets(boolean)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>basePushFilterPastAggWithGroupingSets</h4> |
| <pre class="methodSignature">private void basePushFilterPastAggWithGroupingSets​(boolean unchanged) |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testPushFilterPastAggWithGroupingSets1()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushFilterPastAggWithGroupingSets1</h4> |
| <pre class="methodSignature">public void testPushFilterPastAggWithGroupingSets1() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testPushFilterPastAggWithGroupingSets2()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushFilterPastAggWithGroupingSets2</h4> |
| <pre class="methodSignature">public void testPushFilterPastAggWithGroupingSets2() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testPushFilterPastAggTwo()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushFilterPastAggTwo</h4> |
| <pre class="methodSignature">public void testPushFilterPastAggTwo()</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-434">[CALCITE-434] |
| FilterAggregateTransposeRule loses conditions that cannot be pushed</a>.</div> |
| </li> |
| </ul> |
| <a id="testPushFilterPastAggThree()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushFilterPastAggThree</h4> |
| <pre class="methodSignature">public void testPushFilterPastAggThree()</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-799">[CALCITE-799] |
| Incorrect result for <code>HAVING count(*) > 1</code></a>.</div> |
| </li> |
| </ul> |
| <a id="testPushFilterPastAggFour()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushFilterPastAggFour</h4> |
| <pre class="methodSignature">public void testPushFilterPastAggFour()</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-1109">[CALCITE-1109] |
| FilterAggregateTransposeRule pushes down incorrect condition</a>.</div> |
| </li> |
| </ul> |
| <a id="testPushFilterPastProject()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushFilterPastProject</h4> |
| <pre class="methodSignature">public void testPushFilterPastProject()</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-448">[CALCITE-448] |
| FilterIntoJoinRule creates filters containing invalid RexInputRef</a>.</div> |
| </li> |
| </ul> |
| <a id="testJoinProjectTranspose1()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testJoinProjectTranspose1</h4> |
| <pre class="methodSignature">public void testJoinProjectTranspose1()</pre> |
| </li> |
| </ul> |
| <a id="testJoinProjectTranspose2()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testJoinProjectTranspose2</h4> |
| <pre class="methodSignature">public void testJoinProjectTranspose2()</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-1338">[CALCITE-1338] |
| JoinProjectTransposeRule should not pull a literal above the |
| null-generating side of a join</a>.</div> |
| </li> |
| </ul> |
| <a id="testJoinProjectTranspose3()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testJoinProjectTranspose3</h4> |
| <pre class="methodSignature">public void testJoinProjectTranspose3()</pre> |
| <div class="block">As <a href="#testJoinProjectTranspose2()"><code>testJoinProjectTranspose2()</code></a>; |
| should not transpose since the left project of right join has literal.</div> |
| </li> |
| </ul> |
| <a id="testJoinProjectTranspose4()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testJoinProjectTranspose4</h4> |
| <pre class="methodSignature">public void testJoinProjectTranspose4()</pre> |
| <div class="block">As <a href="#testJoinProjectTranspose2()"><code>testJoinProjectTranspose2()</code></a>; |
| should not transpose since the right project of left join has not-strong |
| expression <code>y is not null</code>.</div> |
| </li> |
| </ul> |
| <a id="testJoinProjectTranspose5()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testJoinProjectTranspose5</h4> |
| <pre class="methodSignature">public void testJoinProjectTranspose5()</pre> |
| <div class="block">As <a href="#testJoinProjectTranspose2()"><code>testJoinProjectTranspose2()</code></a>; |
| should not transpose since the right project of left join has not-strong |
| expression <code>1 + 1</code>.</div> |
| </li> |
| </ul> |
| <a id="testJoinProjectTranspose6()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testJoinProjectTranspose6</h4> |
| <pre class="methodSignature">public void testJoinProjectTranspose6()</pre> |
| <div class="block">As <a href="#testJoinProjectTranspose2()"><code>testJoinProjectTranspose2()</code></a>; |
| should not transpose since both the left project and right project have |
| literal.</div> |
| </li> |
| </ul> |
| <a id="testJoinProjectTranspose7()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testJoinProjectTranspose7</h4> |
| <pre class="methodSignature">public void testJoinProjectTranspose7()</pre> |
| <div class="block">As <a href="#testJoinProjectTranspose2()"><code>testJoinProjectTranspose2()</code></a>; |
| Should transpose since all expressions in the right project of left join |
| are strong.</div> |
| </li> |
| </ul> |
| <a id="testJoinProjectTranspose8()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testJoinProjectTranspose8</h4> |
| <pre class="methodSignature">public void testJoinProjectTranspose8()</pre> |
| <div class="block">As <a href="#testJoinProjectTranspose2()"><code>testJoinProjectTranspose2()</code></a>; |
| should transpose since all expressions including |
| <code>deptno > 10 and cast(null as boolean)</code> in the right project of left |
| join are strong.</div> |
| </li> |
| </ul> |
| <a id="testSortUnionTranspose()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testSortUnionTranspose</h4> |
| <pre class="methodSignature">public void testSortUnionTranspose()</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-889">[CALCITE-889] |
| Implement SortUnionTransposeRule</a>.</div> |
| </li> |
| </ul> |
| <a id="testSortUnionTranspose2()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testSortUnionTranspose2</h4> |
| <pre class="methodSignature">public void testSortUnionTranspose2()</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-889">[CALCITE-889] |
| Implement SortUnionTransposeRule</a>.</div> |
| </li> |
| </ul> |
| <a id="testSortUnionTranspose3()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testSortUnionTranspose3</h4> |
| <pre class="methodSignature">public void testSortUnionTranspose3()</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-987">[CALCITE-987] |
| Push limit 0 will result in an infinite loop</a>.</div> |
| </li> |
| </ul> |
| <a id="testSortRemovalAllKeysConstant()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testSortRemovalAllKeysConstant</h4> |
| <pre class="methodSignature">public void testSortRemovalAllKeysConstant()</pre> |
| </li> |
| </ul> |
| <a id="testSortRemovalOneKeyConstant()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testSortRemovalOneKeyConstant</h4> |
| <pre class="methodSignature">public void testSortRemovalOneKeyConstant()</pre> |
| </li> |
| </ul> |
| <a id="testSemiJoinRuleExists()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testSemiJoinRuleExists</h4> |
| <pre class="methodSignature">public void testSemiJoinRuleExists()</pre> |
| </li> |
| </ul> |
| <a id="testSemiJoinRule()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testSemiJoinRule</h4> |
| <pre class="methodSignature">public void testSemiJoinRule()</pre> |
| </li> |
| </ul> |
| <a id="testSemiJoinRuleRight()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testSemiJoinRuleRight</h4> |
| <pre class="methodSignature">public void testSemiJoinRuleRight()</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-1495">[CALCITE-1495] |
| SemiJoinRule should not apply to RIGHT and FULL JOIN</a>.</div> |
| </li> |
| </ul> |
| <a id="testSemiJoinRuleFull()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testSemiJoinRuleFull</h4> |
| <pre class="methodSignature">public void testSemiJoinRuleFull()</pre> |
| <div class="block">Similar to <a href="#testSemiJoinRuleRight()"><code>testSemiJoinRuleRight()</code></a> but FULL.</div> |
| </li> |
| </ul> |
| <a id="testSemiJoinRuleLeft()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testSemiJoinRuleLeft</h4> |
| <pre class="methodSignature">public void testSemiJoinRuleLeft()</pre> |
| <div class="block">Similar to <a href="#testSemiJoinRule()"><code>testSemiJoinRule()</code></a> but LEFT.</div> |
| </li> |
| </ul> |
| <a id="testPushFilterThroughSemiJoin()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushFilterThroughSemiJoin</h4> |
| <pre class="methodSignature">public void testPushFilterThroughSemiJoin()</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-438">[CALCITE-438] |
| Push predicates through SemiJoin</a>.</div> |
| </li> |
| </ul> |
| <a id="testSemiJoinReduceConstants()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testSemiJoinReduceConstants</h4> |
| <pre class="methodSignature">public void testSemiJoinReduceConstants()</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-571">[CALCITE-571] |
| ReduceExpressionsRule tries to reduce SemiJoin condition to non-equi |
| condition</a>.</div> |
| </li> |
| </ul> |
| <a id="testSemiJoinTrim()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testSemiJoinTrim</h4> |
| <pre class="methodSignature">public void testSemiJoinTrim() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testReduceAverage()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testReduceAverage</h4> |
| <pre class="methodSignature">public void testReduceAverage()</pre> |
| </li> |
| </ul> |
| <a id="testCastInAggregateReduceFunctions()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testCastInAggregateReduceFunctions</h4> |
| <pre class="methodSignature">public void testCastInAggregateReduceFunctions()</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-1621">[CALCITE-1621] |
| Adding a cast around the null literal in aggregate rules</a>.</div> |
| </li> |
| </ul> |
| <a id="testDistinctCountWithoutGroupBy()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testDistinctCountWithoutGroupBy</h4> |
| <pre class="methodSignature">public void testDistinctCountWithoutGroupBy()</pre> |
| </li> |
| </ul> |
| <a id="testDistinctCount1()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testDistinctCount1</h4> |
| <pre class="methodSignature">public void testDistinctCount1()</pre> |
| </li> |
| </ul> |
| <a id="testDistinctCount2()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testDistinctCount2</h4> |
| <pre class="methodSignature">public void testDistinctCount2()</pre> |
| </li> |
| </ul> |
| <a id="testDistinctCount3()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testDistinctCount3</h4> |
| <pre class="methodSignature">public void testDistinctCount3()</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-1293">[CALCITE-1293] |
| Bad code generated when argument to COUNT(DISTINCT) is a # GROUP BY |
| column</a>.</div> |
| </li> |
| </ul> |
| <a id="testDistinctCountMultipleViaJoin()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testDistinctCountMultipleViaJoin</h4> |
| <pre class="methodSignature">public void testDistinctCountMultipleViaJoin()</pre> |
| <div class="block">Tests implementing multiple distinct count the old way, using a join.</div> |
| </li> |
| </ul> |
| <a id="testDistinctCountMultiple()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testDistinctCountMultiple</h4> |
| <pre class="methodSignature">public void testDistinctCountMultiple()</pre> |
| <div class="block">Tests implementing multiple distinct count the new way, using GROUPING |
| SETS.</div> |
| </li> |
| </ul> |
| <a id="testDistinctCountMultipleNoGroup()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testDistinctCountMultipleNoGroup</h4> |
| <pre class="methodSignature">public void testDistinctCountMultipleNoGroup()</pre> |
| </li> |
| </ul> |
| <a id="testDistinctCountMixedJoin()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testDistinctCountMixedJoin</h4> |
| <pre class="methodSignature">public void testDistinctCountMixedJoin()</pre> |
| </li> |
| </ul> |
| <a id="testDistinctCountMixed()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testDistinctCountMixed</h4> |
| <pre class="methodSignature">public void testDistinctCountMixed()</pre> |
| </li> |
| </ul> |
| <a id="testDistinctCountMixed2()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testDistinctCountMixed2</h4> |
| <pre class="methodSignature">public void testDistinctCountMixed2()</pre> |
| </li> |
| </ul> |
| <a id="testDistinctCountGroupingSets1()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testDistinctCountGroupingSets1</h4> |
| <pre class="methodSignature">public void testDistinctCountGroupingSets1()</pre> |
| </li> |
| </ul> |
| <a id="testDistinctCountGroupingSets2()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testDistinctCountGroupingSets2</h4> |
| <pre class="methodSignature">public void testDistinctCountGroupingSets2()</pre> |
| </li> |
| </ul> |
| <a id="testDistinctNonDistinctAggregates()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testDistinctNonDistinctAggregates</h4> |
| <pre class="methodSignature">public void testDistinctNonDistinctAggregates()</pre> |
| </li> |
| </ul> |
| <a id="testCastInAggregateExpandDistinctAggregatesRule()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testCastInAggregateExpandDistinctAggregatesRule</h4> |
| <pre class="methodSignature">public void testCastInAggregateExpandDistinctAggregatesRule()</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-1621">[CALCITE-1621] |
| Adding a cast around the null literal in aggregate rules</a>.</div> |
| </li> |
| </ul> |
| <a id="testDistinctNonDistinctAggregatesWithGrouping1()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testDistinctNonDistinctAggregatesWithGrouping1</h4> |
| <pre class="methodSignature">public void testDistinctNonDistinctAggregatesWithGrouping1()</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-1558">[CALCITE-1558] |
| AggregateExpandDistinctAggregatesRule gets field mapping wrong if groupKey |
| is used in aggregate function</a>.</div> |
| </li> |
| </ul> |
| <a id="testDistinctNonDistinctAggregatesWithGrouping2()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testDistinctNonDistinctAggregatesWithGrouping2</h4> |
| <pre class="methodSignature">public void testDistinctNonDistinctAggregatesWithGrouping2()</pre> |
| </li> |
| </ul> |
| <a id="testDistinctNonDistinctTwoAggregatesWithGrouping()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testDistinctNonDistinctTwoAggregatesWithGrouping</h4> |
| <pre class="methodSignature">public void testDistinctNonDistinctTwoAggregatesWithGrouping()</pre> |
| </li> |
| </ul> |
| <a id="testDistinctWithGrouping()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testDistinctWithGrouping</h4> |
| <pre class="methodSignature">public void testDistinctWithGrouping()</pre> |
| </li> |
| </ul> |
| <a id="testMultipleDistinctWithGrouping()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testMultipleDistinctWithGrouping</h4> |
| <pre class="methodSignature">public void testMultipleDistinctWithGrouping()</pre> |
| </li> |
| </ul> |
| <a id="testDistinctWithMultipleInputs()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testDistinctWithMultipleInputs</h4> |
| <pre class="methodSignature">public void testDistinctWithMultipleInputs()</pre> |
| </li> |
| </ul> |
| <a id="testDistinctWithMultipleInputsAndGroupby()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testDistinctWithMultipleInputsAndGroupby</h4> |
| <pre class="methodSignature">public void testDistinctWithMultipleInputsAndGroupby()</pre> |
| </li> |
| </ul> |
| <a id="testPushProjectPastFilter()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushProjectPastFilter</h4> |
| <pre class="methodSignature">public void testPushProjectPastFilter()</pre> |
| </li> |
| </ul> |
| <a id="testPushProjectPastFilter2()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushProjectPastFilter2</h4> |
| <pre class="methodSignature">public void testPushProjectPastFilter2()</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-1778">[CALCITE-1778] |
| Query with "WHERE CASE" throws AssertionError "Cast for just nullability |
| not allowed"</a>.</div> |
| </li> |
| </ul> |
| <a id="testPushProjectPastJoin()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushProjectPastJoin</h4> |
| <pre class="methodSignature">public void testPushProjectPastJoin()</pre> |
| </li> |
| </ul> |
| <a id="testProjectSetOpTranspose()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testProjectSetOpTranspose</h4> |
| <pre class="methodSignature">public void testProjectSetOpTranspose()</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-3004">[CALCITE-3004] |
| Should not push over past union but its operands can since setop |
| will affect row count</a>.</div> |
| </li> |
| </ul> |
| <a id="testProjectCorrelateTransposeDynamic()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testProjectCorrelateTransposeDynamic</h4> |
| <pre class="methodSignature">public void testProjectCorrelateTransposeDynamic()</pre> |
| </li> |
| </ul> |
| <a id="testProjectCorrelateTransposeRuleLeftCorrelate()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testProjectCorrelateTransposeRuleLeftCorrelate</h4> |
| <pre class="methodSignature">public void testProjectCorrelateTransposeRuleLeftCorrelate()</pre> |
| </li> |
| </ul> |
| <a id="testProjectCorrelateTransposeRuleSemiCorrelate()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testProjectCorrelateTransposeRuleSemiCorrelate</h4> |
| <pre class="methodSignature">public void testProjectCorrelateTransposeRuleSemiCorrelate()</pre> |
| </li> |
| </ul> |
| <a id="testProjectCorrelateTransposeRuleAntiCorrelate()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testProjectCorrelateTransposeRuleAntiCorrelate</h4> |
| <pre class="methodSignature">public void testProjectCorrelateTransposeRuleAntiCorrelate()</pre> |
| </li> |
| </ul> |
| <a id="testProjectCorrelateTransposeWithExprCond()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testProjectCorrelateTransposeWithExprCond</h4> |
| <pre class="methodSignature">public void testProjectCorrelateTransposeWithExprCond()</pre> |
| </li> |
| </ul> |
| <a id="testProjectCorrelateTranspose()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testProjectCorrelateTranspose</h4> |
| <pre class="methodSignature">public void testProjectCorrelateTranspose()</pre> |
| </li> |
| </ul> |
| <a id="testProjectCorrelateTransposeWithOver()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testProjectCorrelateTransposeWithOver</h4> |
| <pre class="methodSignature">public void testProjectCorrelateTransposeWithOver()</pre> |
| <div class="block">As <a href="#testProjectSetOpTranspose()"><code>testProjectSetOpTranspose()</code></a>; |
| should not push over past correlate but its operands can since correlate |
| will affect row count.</div> |
| </li> |
| </ul> |
| <a id="testFilterProjectTransposePreventedByCorrelation()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testFilterProjectTransposePreventedByCorrelation</h4> |
| <pre class="methodSignature">public void testFilterProjectTransposePreventedByCorrelation()</pre> |
| <div class="block">Tests that the default instance of <code>FilterProjectTransposeRule</code> |
| does not push a Filter that contains a correlating variable.</div> |
| <dl> |
| <dt><span class="seeLabel">See Also:</span></dt> |
| <dd><a href="#testFilterProjectTranspose()"><code>testFilterProjectTranspose()</code></a></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testFilterProjectTranspose()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testFilterProjectTranspose</h4> |
| <pre class="methodSignature">public void testFilterProjectTranspose()</pre> |
| <div class="block">Tests a variant of <code>FilterProjectTransposeRule</code> |
| that pushes a Filter that contains a correlating variable.</div> |
| </li> |
| </ul> |
| <a id="testPushProjectPastInnerJoin()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushProjectPastInnerJoin</h4> |
| <pre class="methodSignature">public void testPushProjectPastInnerJoin()</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-1753">[CALCITE-1753] |
| PushProjector should only preserve expressions if the expression is strong |
| when pushing into the nullable-side of outer join</a>.</div> |
| </li> |
| </ul> |
| <a id="testPushProjectPastInnerJoinStrong()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushProjectPastInnerJoinStrong</h4> |
| <pre class="methodSignature">public void testPushProjectPastInnerJoinStrong()</pre> |
| </li> |
| </ul> |
| <a id="testPushProjectPastLeftJoin()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushProjectPastLeftJoin</h4> |
| <pre class="methodSignature">public void testPushProjectPastLeftJoin()</pre> |
| </li> |
| </ul> |
| <a id="testPushProjectPastLeftJoinSwap()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushProjectPastLeftJoinSwap</h4> |
| <pre class="methodSignature">public void testPushProjectPastLeftJoinSwap()</pre> |
| </li> |
| </ul> |
| <a id="testPushProjectPastLeftJoinSwapStrong()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushProjectPastLeftJoinSwapStrong</h4> |
| <pre class="methodSignature">public void testPushProjectPastLeftJoinSwapStrong()</pre> |
| </li> |
| </ul> |
| <a id="testPushProjectPastRightJoin()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushProjectPastRightJoin</h4> |
| <pre class="methodSignature">public void testPushProjectPastRightJoin()</pre> |
| </li> |
| </ul> |
| <a id="testPushProjectPastRightJoinStrong()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushProjectPastRightJoinStrong</h4> |
| <pre class="methodSignature">public void testPushProjectPastRightJoinStrong()</pre> |
| </li> |
| </ul> |
| <a id="testPushProjectPastRightJoinSwap()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushProjectPastRightJoinSwap</h4> |
| <pre class="methodSignature">public void testPushProjectPastRightJoinSwap()</pre> |
| </li> |
| </ul> |
| <a id="testPushProjectPastRightJoinSwapStrong()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushProjectPastRightJoinSwapStrong</h4> |
| <pre class="methodSignature">public void testPushProjectPastRightJoinSwapStrong()</pre> |
| </li> |
| </ul> |
| <a id="testPushProjectPastFullJoin()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushProjectPastFullJoin</h4> |
| <pre class="methodSignature">public void testPushProjectPastFullJoin()</pre> |
| </li> |
| </ul> |
| <a id="testPushProjectPastFullJoinStrong()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushProjectPastFullJoinStrong</h4> |
| <pre class="methodSignature">public void testPushProjectPastFullJoinStrong()</pre> |
| </li> |
| </ul> |
| <a id="testPushProjectWithOverPastJoin1()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushProjectWithOverPastJoin1</h4> |
| <pre class="methodSignature">public void testPushProjectWithOverPastJoin1()</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-2343">[CALCITE-2343] |
| Should not push over whose columns are all from left child past join since |
| join will affect row count.</a>.</div> |
| </li> |
| </ul> |
| <a id="testPushProjectWithOverPastJoin2()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushProjectWithOverPastJoin2</h4> |
| <pre class="methodSignature">public void testPushProjectWithOverPastJoin2()</pre> |
| <div class="block">As <a href="#testPushProjectWithOverPastJoin1()"><code>testPushProjectWithOverPastJoin1()</code></a>; |
| should not push over whose columns are all from right child past join since |
| join will affect row count.</div> |
| </li> |
| </ul> |
| <a id="testPushProjectWithOverPastJoin3()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushProjectWithOverPastJoin3</h4> |
| <pre class="methodSignature">public void testPushProjectWithOverPastJoin3()</pre> |
| <div class="block">As <a href="#testPushProjectWithOverPastJoin2()"><code>testPushProjectWithOverPastJoin2()</code></a>; |
| should not push over past join but should push the operands of over past |
| join.</div> |
| </li> |
| </ul> |
| <a id="testPushProjectPastSetOp()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushProjectPastSetOp</h4> |
| <pre class="methodSignature">public void testPushProjectPastSetOp()</pre> |
| </li> |
| </ul> |
| <a id="testPushJoinThroughUnionOnLeft()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushJoinThroughUnionOnLeft</h4> |
| <pre class="methodSignature">public void testPushJoinThroughUnionOnLeft()</pre> |
| </li> |
| </ul> |
| <a id="testPushJoinThroughUnionOnRight()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushJoinThroughUnionOnRight</h4> |
| <pre class="methodSignature">public void testPushJoinThroughUnionOnRight()</pre> |
| </li> |
| </ul> |
| <a id="testMergeFilterWithJoinCondition()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testMergeFilterWithJoinCondition</h4> |
| <pre class="methodSignature">public void testMergeFilterWithJoinCondition() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testMergeFilter()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testMergeFilter</h4> |
| <pre class="methodSignature">public void testMergeFilter() |
| throws java.lang.Exception</pre> |
| <div class="block">Tests that filters are combined if they are identical.</div> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testUnionMergeRule()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testUnionMergeRule</h4> |
| <pre class="methodSignature">public void testUnionMergeRule() |
| throws java.lang.Exception</pre> |
| <div class="block">Tests to see if the final branch of union is missed</div> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testMinusMergeRule()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testMinusMergeRule</h4> |
| <pre class="methodSignature">public void testMinusMergeRule() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testMergeJoinFilter()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testMergeJoinFilter</h4> |
| <pre class="methodSignature">public void testMergeJoinFilter() |
| throws java.lang.Exception</pre> |
| <div class="block">Tests that a filters is combined are combined if they are identical, |
| even if one of them originates in an ON clause of a JOIN.</div> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testMergeUnionAll()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testMergeUnionAll</h4> |
| <pre class="methodSignature">public void testMergeUnionAll() |
| throws java.lang.Exception</pre> |
| <div class="block">Tests <code>UnionMergeRule</code>, which merges 2 <code>Union</code> operators into |
| a single <code>Union</code> with 3 inputs.</div> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testMergeUnionDistinct()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testMergeUnionDistinct</h4> |
| <pre class="methodSignature">public void testMergeUnionDistinct() |
| throws java.lang.Exception</pre> |
| <div class="block">Tests <code>UnionMergeRule</code>, which merges 2 <code>Union</code> |
| <code>DISTINCT</code> (not <code>ALL</code>) operators into a single |
| <code>Union</code> with 3 inputs.</div> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testMergeUnionMixed()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testMergeUnionMixed</h4> |
| <pre class="methodSignature">public void testMergeUnionMixed() |
| throws java.lang.Exception</pre> |
| <div class="block">Tests that <code>UnionMergeRule</code> does nothing if its arguments have |
| different <code>ALL</code> settings.</div> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testMergeUnionMixed2()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testMergeUnionMixed2</h4> |
| <pre class="methodSignature">public void testMergeUnionMixed2() |
| throws java.lang.Exception</pre> |
| <div class="block">Tests that <code>UnionMergeRule</code> converts all inputs to DISTINCT |
| if the top one is DISTINCT. |
| (Since UNION is left-associative, the "top one" is the rightmost.)</div> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testMergeSetOpMixed()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testMergeSetOpMixed</h4> |
| <pre class="methodSignature">public void testMergeSetOpMixed() |
| throws java.lang.Exception</pre> |
| <div class="block">Tests that <code>UnionMergeRule</code> does nothing if its arguments have |
| are different set operators, <code>Union</code> and <code>Intersect</code>.</div> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testMergeIntersect()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testMergeIntersect</h4> |
| <pre class="methodSignature">public void testMergeIntersect() |
| throws java.lang.Exception</pre> |
| <div class="block">Tests <code>UnionMergeRule.INTERSECT_INSTANCE</code>, which merges 2 |
| <code>Intersect</code> operators into a single <code>Intersect</code> with 3 |
| inputs.</div> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testIntersectToDistinct()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testIntersectToDistinct</h4> |
| <pre class="methodSignature">public void testIntersectToDistinct() |
| throws java.lang.Exception</pre> |
| <div class="block">Tests <code>IntersectToDistinctRule</code>, |
| which rewrites an <code>Intersect</code> operator with 3 inputs.</div> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testIntersectToDistinctAll()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testIntersectToDistinctAll</h4> |
| <pre class="methodSignature">public void testIntersectToDistinctAll() |
| throws java.lang.Exception</pre> |
| <div class="block">Tests that <code>IntersectToDistinctRule</code> |
| correctly ignores an <code>INTERSECT ALL</code>. It can only handle |
| <code>INTERSECT DISTINCT</code>.</div> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testMergeMinus()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testMergeMinus</h4> |
| <pre class="methodSignature">public void testMergeMinus() |
| throws java.lang.Exception</pre> |
| <div class="block">Tests <code>UnionMergeRule.MINUS_INSTANCE</code>, which merges 2 |
| <code>Minus</code> operators into a single <code>Minus</code> with 3 |
| inputs.</div> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testMergeMinusRightDeep()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testMergeMinusRightDeep</h4> |
| <pre class="methodSignature">public void testMergeMinusRightDeep() |
| throws java.lang.Exception</pre> |
| <div class="block">Tests <code>UnionMergeRule.MINUS_INSTANCE</code> |
| does not merge <code>Minus(a, Minus(b, c))</code> |
| into <code>Minus(a, b, c)</code>, which would be incorrect.</div> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testHeterogeneousConversion()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testHeterogeneousConversion</h4> |
| <pre class="methodSignature">public void testHeterogeneousConversion() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testPushSemiJoinPastJoinRuleLeft()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushSemiJoinPastJoinRuleLeft</h4> |
| <pre class="methodSignature">public void testPushSemiJoinPastJoinRuleLeft() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testPushSemiJoinPastJoinRuleRight()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushSemiJoinPastJoinRuleRight</h4> |
| <pre class="methodSignature">public void testPushSemiJoinPastJoinRuleRight() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testPushSemiJoinPastFilter()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushSemiJoinPastFilter</h4> |
| <pre class="methodSignature">public void testPushSemiJoinPastFilter() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testConvertMultiJoinRule()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testConvertMultiJoinRule</h4> |
| <pre class="methodSignature">public void testConvertMultiJoinRule() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testManyFiltersOnTopOfMultiJoinShouldCollapse()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testManyFiltersOnTopOfMultiJoinShouldCollapse</h4> |
| <pre class="methodSignature">public void testManyFiltersOnTopOfMultiJoinShouldCollapse() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testReduceConstants()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testReduceConstants</h4> |
| <pre class="methodSignature">public void testReduceConstants() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testReduceConstantsDup()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testReduceConstantsDup</h4> |
| <pre class="methodSignature">public void testReduceConstantsDup() |
| throws java.lang.Exception</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-570">[CALCITE-570] |
| ReduceExpressionsRule throws "duplicate key" exception</a>.</div> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testReduceConstantsDup2()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testReduceConstantsDup2</h4> |
| <pre class="methodSignature">public void testReduceConstantsDup2() |
| throws java.lang.Exception</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-935">[CALCITE-935] |
| Improve how ReduceExpressionsRule handles duplicate constraints</a>.</div> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testPullNull()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPullNull</h4> |
| <pre class="methodSignature">public void testPullNull() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testOrAlwaysTrue()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testOrAlwaysTrue</h4> |
| <pre class="methodSignature">public void testOrAlwaysTrue()</pre> |
| </li> |
| </ul> |
| <a id="testOrAlwaysTrue2()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testOrAlwaysTrue2</h4> |
| <pre class="methodSignature">public void testOrAlwaysTrue2()</pre> |
| </li> |
| </ul> |
| <a id="testReduceConstants2()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testReduceConstants2</h4> |
| <pre class="methodSignature">public void testReduceConstants2() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testReduceConstants3()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testReduceConstants3</h4> |
| <pre class="methodSignature">public void testReduceConstants3() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testReduceConstantsProjectNullable()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testReduceConstantsProjectNullable</h4> |
| <pre class="methodSignature">public void testReduceConstantsProjectNullable() |
| throws java.lang.Exception</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-902">[CALCITE-902] |
| Match nullability when reducing expressions in a Project</a>.</div> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testReduceConstantsNullEqualsOne()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testReduceConstantsNullEqualsOne</h4> |
| <pre class="methodSignature">public void testReduceConstantsNullEqualsOne() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testReduceConstantsCaseEquals()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testReduceConstantsCaseEquals</h4> |
| <pre class="methodSignature">public void testReduceConstantsCaseEquals() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testReduceConstantsCaseEquals2()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testReduceConstantsCaseEquals2</h4> |
| <pre class="methodSignature">public void testReduceConstantsCaseEquals2() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testReduceConstantsCaseEquals3()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testReduceConstantsCaseEquals3</h4> |
| <pre class="methodSignature">public void testReduceConstantsCaseEquals3() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testSkipReduceConstantsCaseEquals()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testSkipReduceConstantsCaseEquals</h4> |
| <pre class="methodSignature">public void testSkipReduceConstantsCaseEquals() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testReduceConstantsEliminatesFilter()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testReduceConstantsEliminatesFilter</h4> |
| <pre class="methodSignature">public void testReduceConstantsEliminatesFilter() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testReduceConstantsNull()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testReduceConstantsNull</h4> |
| <pre class="methodSignature">public void testReduceConstantsNull() |
| throws java.lang.Exception</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-1860">[CALCITE-1860] |
| Duplicate null predicates cause NullPointerException in RexUtil</a>.</div> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testReduceConstantsRequiresExecutor()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testReduceConstantsRequiresExecutor</h4> |
| <pre class="methodSignature">public void testReduceConstantsRequiresExecutor() |
| throws java.lang.Exception</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-566">[CALCITE-566] |
| ReduceExpressionsRule requires planner to have an Executor</a>.</div> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testAlreadyFalseEliminatesFilter()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testAlreadyFalseEliminatesFilter</h4> |
| <pre class="methodSignature">public void testAlreadyFalseEliminatesFilter() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testReduceConstantsCalc()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testReduceConstantsCalc</h4> |
| <pre class="methodSignature">public void testReduceConstantsCalc() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testRemoveSemiJoin()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testRemoveSemiJoin</h4> |
| <pre class="methodSignature">public void testRemoveSemiJoin() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testRemoveSemiJoinWithFilter()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testRemoveSemiJoinWithFilter</h4> |
| <pre class="methodSignature">public void testRemoveSemiJoinWithFilter() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testRemoveSemiJoinRight()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testRemoveSemiJoinRight</h4> |
| <pre class="methodSignature">public void testRemoveSemiJoinRight() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testRemoveSemiJoinRightWithFilter()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testRemoveSemiJoinRightWithFilter</h4> |
| <pre class="methodSignature">public void testRemoveSemiJoinRightWithFilter() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="checkPlanning(java.lang.String)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>checkPlanning</h4> |
| <pre class="methodSignature">private void checkPlanning​(java.lang.String query) |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testConvertMultiJoinRuleOuterJoins()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testConvertMultiJoinRuleOuterJoins</h4> |
| <pre class="methodSignature">public void testConvertMultiJoinRuleOuterJoins() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testConvertMultiJoinRuleOuterJoins2()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testConvertMultiJoinRuleOuterJoins2</h4> |
| <pre class="methodSignature">public void testConvertMultiJoinRuleOuterJoins2() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testConvertMultiJoinRuleOuterJoins3()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testConvertMultiJoinRuleOuterJoins3</h4> |
| <pre class="methodSignature">public void testConvertMultiJoinRuleOuterJoins3() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testConvertMultiJoinRuleOuterJoins4()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testConvertMultiJoinRuleOuterJoins4</h4> |
| <pre class="methodSignature">public void testConvertMultiJoinRuleOuterJoins4() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testPushSemiJoinPastProject()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushSemiJoinPastProject</h4> |
| <pre class="methodSignature">public void testPushSemiJoinPastProject() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testReduceValuesUnderFilter()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testReduceValuesUnderFilter</h4> |
| <pre class="methodSignature">public void testReduceValuesUnderFilter() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testReduceValuesUnderProject()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testReduceValuesUnderProject</h4> |
| <pre class="methodSignature">public void testReduceValuesUnderProject() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testReduceValuesUnderProjectFilter()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testReduceValuesUnderProjectFilter</h4> |
| <pre class="methodSignature">public void testReduceValuesUnderProjectFilter() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testReduceCase()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testReduceCase</h4> |
| <pre class="methodSignature">public void testReduceCase() |
| throws java.lang.Exception</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-1439">[CALCITE-1439] |
| Handling errors during constant reduction</a>.</div> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="checkReduceNullableToNotNull(org.apache.calcite.rel.rules.ReduceExpressionsRule)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>checkReduceNullableToNotNull</h4> |
| <pre class="methodSignature">private void checkReduceNullableToNotNull​(org.apache.calcite.rel.rules.ReduceExpressionsRule rule)</pre> |
| </li> |
| </ul> |
| <a id="testReduceNullableToNotNull()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testReduceNullableToNotNull</h4> |
| <pre class="methodSignature">public void testReduceNullableToNotNull() |
| throws java.lang.Exception</pre> |
| <div class="block">Test case that reduces a nullable expression to a NOT NULL literal that |
| is cast to nullable.</div> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testReduceNullableToNotNull2()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testReduceNullableToNotNull2</h4> |
| <pre class="methodSignature">public void testReduceNullableToNotNull2() |
| throws java.lang.Exception</pre> |
| <div class="block">Test case that reduces a nullable expression to a NOT NULL literal.</div> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testReduceConstantsIsNull()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testReduceConstantsIsNull</h4> |
| <pre class="methodSignature">public void testReduceConstantsIsNull() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testReduceConstantsIsNotNull()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testReduceConstantsIsNotNull</h4> |
| <pre class="methodSignature">public void testReduceConstantsIsNotNull() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testReduceConstantsNegated()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testReduceConstantsNegated</h4> |
| <pre class="methodSignature">public void testReduceConstantsNegated() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testReduceConstantsNegatedInverted()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testReduceConstantsNegatedInverted</h4> |
| <pre class="methodSignature">public void testReduceConstantsNegatedInverted() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testReduceConstantsNonDeterministicFunction()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testReduceConstantsNonDeterministicFunction</h4> |
| <pre class="methodSignature">public void testReduceConstantsNonDeterministicFunction()</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-2638">[CALCITE-2638] |
| Constant reducer must not duplicate calls to non-deterministic |
| functions</a>.</div> |
| </li> |
| </ul> |
| <a id="testReduceConstantsDynamicFunction()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testReduceConstantsDynamicFunction</h4> |
| <pre class="methodSignature">public void testReduceConstantsDynamicFunction()</pre> |
| <div class="block">Checks that constant reducer duplicates calls to dynamic functions, if |
| appropriate. CURRENT_TIMESTAMP is a dynamic function.</div> |
| </li> |
| </ul> |
| <a id="testCasePushIsAlwaysWorking()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testCasePushIsAlwaysWorking</h4> |
| <pre class="methodSignature">public void testCasePushIsAlwaysWorking() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testReduceValuesNull()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testReduceValuesNull</h4> |
| <pre class="methodSignature">public void testReduceValuesNull() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testReduceValuesToEmpty()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testReduceValuesToEmpty</h4> |
| <pre class="methodSignature">public void testReduceValuesToEmpty() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testReduceConstantsWindow()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testReduceConstantsWindow</h4> |
| <pre class="methodSignature">public void testReduceConstantsWindow()</pre> |
| </li> |
| </ul> |
| <a id="testEmptyFilterProjectUnion()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testEmptyFilterProjectUnion</h4> |
| <pre class="methodSignature">public void testEmptyFilterProjectUnion() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testEmptyProject()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testEmptyProject</h4> |
| <pre class="methodSignature">public void testEmptyProject() |
| throws java.lang.Exception</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-1488">[CALCITE-1488] |
| ValuesReduceRule should ignore empty Values</a>.</div> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testEmptyProject2()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testEmptyProject2</h4> |
| <pre class="methodSignature">public void testEmptyProject2() |
| throws java.lang.Exception</pre> |
| <div class="block">Same query as <a href="#testEmptyProject()"><code>testEmptyProject()</code></a>, and <code>PruneEmptyRules</code> |
| is able to do the job that <code>ValuesReduceRule</code> cannot do.</div> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testEmptyIntersect()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testEmptyIntersect</h4> |
| <pre class="methodSignature">public void testEmptyIntersect() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testEmptyMinus()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testEmptyMinus</h4> |
| <pre class="methodSignature">public void testEmptyMinus() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testEmptyMinus2()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testEmptyMinus2</h4> |
| <pre class="methodSignature">public void testEmptyMinus2() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testEmptyJoin()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testEmptyJoin</h4> |
| <pre class="methodSignature">public void testEmptyJoin()</pre> |
| </li> |
| </ul> |
| <a id="testEmptyJoinLeft()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testEmptyJoinLeft</h4> |
| <pre class="methodSignature">public void testEmptyJoinLeft()</pre> |
| </li> |
| </ul> |
| <a id="testEmptyJoinRight()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testEmptyJoinRight</h4> |
| <pre class="methodSignature">public void testEmptyJoinRight()</pre> |
| </li> |
| </ul> |
| <a id="testEmptySort()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testEmptySort</h4> |
| <pre class="methodSignature">public void testEmptySort()</pre> |
| </li> |
| </ul> |
| <a id="testEmptySortLimitZero()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testEmptySortLimitZero</h4> |
| <pre class="methodSignature">public void testEmptySortLimitZero()</pre> |
| </li> |
| </ul> |
| <a id="testEmptyAggregate()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testEmptyAggregate</h4> |
| <pre class="methodSignature">public void testEmptyAggregate()</pre> |
| </li> |
| </ul> |
| <a id="testEmptyAggregateEmptyKey()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testEmptyAggregateEmptyKey</h4> |
| <pre class="methodSignature">public void testEmptyAggregateEmptyKey()</pre> |
| </li> |
| </ul> |
| <a id="testEmptyAggregateEmptyKeyWithAggregateValuesRule()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testEmptyAggregateEmptyKeyWithAggregateValuesRule</h4> |
| <pre class="methodSignature">public void testEmptyAggregateEmptyKeyWithAggregateValuesRule()</pre> |
| </li> |
| </ul> |
| <a id="testReduceCasts()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testReduceCasts</h4> |
| <pre class="methodSignature">public void testReduceCasts() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testReduceCastTimeUnchanged()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testReduceCastTimeUnchanged</h4> |
| <pre class="methodSignature">public void testReduceCastTimeUnchanged() |
| throws java.lang.Exception</pre> |
| <div class="block">Tests that a cast from a TIME to a TIMESTAMP is not reduced. It is not |
| constant because the result depends upon the current date.</div> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testReduceCastAndConsts()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testReduceCastAndConsts</h4> |
| <pre class="methodSignature">public void testReduceCastAndConsts() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testReduceCaseNullabilityChange()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testReduceCaseNullabilityChange</h4> |
| <pre class="methodSignature">public <T> void testReduceCaseNullabilityChange() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testReduceCastsNullable()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testReduceCastsNullable</h4> |
| <pre class="methodSignature">public void testReduceCastsNullable() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="basePushAggThroughUnion()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>basePushAggThroughUnion</h4> |
| <pre class="methodSignature">private void basePushAggThroughUnion() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testPushSumConstantThroughUnion()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushSumConstantThroughUnion</h4> |
| <pre class="methodSignature">public void testPushSumConstantThroughUnion() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testPushSumNullConstantThroughUnion()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushSumNullConstantThroughUnion</h4> |
| <pre class="methodSignature">public void testPushSumNullConstantThroughUnion() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testPushSumNullableThroughUnion()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushSumNullableThroughUnion</h4> |
| <pre class="methodSignature">public void testPushSumNullableThroughUnion() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testPushSumNullableNOGBYThroughUnion()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushSumNullableNOGBYThroughUnion</h4> |
| <pre class="methodSignature">public void testPushSumNullableNOGBYThroughUnion() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testPushCountStarThroughUnion()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushCountStarThroughUnion</h4> |
| <pre class="methodSignature">public void testPushCountStarThroughUnion() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testPushCountNullableThroughUnion()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushCountNullableThroughUnion</h4> |
| <pre class="methodSignature">public void testPushCountNullableThroughUnion() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testPushMaxNullableThroughUnion()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushMaxNullableThroughUnion</h4> |
| <pre class="methodSignature">public void testPushMaxNullableThroughUnion() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testPushMinThroughUnion()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushMinThroughUnion</h4> |
| <pre class="methodSignature">public void testPushMinThroughUnion() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testPushAvgThroughUnion()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushAvgThroughUnion</h4> |
| <pre class="methodSignature">public void testPushAvgThroughUnion() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testPushSumCountStarThroughUnion()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushSumCountStarThroughUnion</h4> |
| <pre class="methodSignature">public void testPushSumCountStarThroughUnion() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testPushSumConstantGroupingSetsThroughUnion()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushSumConstantGroupingSetsThroughUnion</h4> |
| <pre class="methodSignature">public void testPushSumConstantGroupingSetsThroughUnion() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testPushSumNullConstantGroupingSetsThroughUnion()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushSumNullConstantGroupingSetsThroughUnion</h4> |
| <pre class="methodSignature">public void testPushSumNullConstantGroupingSetsThroughUnion() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testPushSumNullableGroupingSetsThroughUnion()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushSumNullableGroupingSetsThroughUnion</h4> |
| <pre class="methodSignature">public void testPushSumNullableGroupingSetsThroughUnion() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testPushCountStarGroupingSetsThroughUnion()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushCountStarGroupingSetsThroughUnion</h4> |
| <pre class="methodSignature">public void testPushCountStarGroupingSetsThroughUnion() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testPushCountNullableGroupingSetsThroughUnion()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushCountNullableGroupingSetsThroughUnion</h4> |
| <pre class="methodSignature">public void testPushCountNullableGroupingSetsThroughUnion() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testPushMaxNullableGroupingSetsThroughUnion()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushMaxNullableGroupingSetsThroughUnion</h4> |
| <pre class="methodSignature">public void testPushMaxNullableGroupingSetsThroughUnion() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testPushMinGroupingSetsThroughUnion()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushMinGroupingSetsThroughUnion</h4> |
| <pre class="methodSignature">public void testPushMinGroupingSetsThroughUnion() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testPushAvgGroupingSetsThroughUnion()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushAvgGroupingSetsThroughUnion</h4> |
| <pre class="methodSignature">public void testPushAvgGroupingSetsThroughUnion() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testPushSumCountStarGroupingSetsThroughUnion()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushSumCountStarGroupingSetsThroughUnion</h4> |
| <pre class="methodSignature">public void testPushSumCountStarGroupingSetsThroughUnion() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testPushCountFilterThroughUnion()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushCountFilterThroughUnion</h4> |
| <pre class="methodSignature">public void testPushCountFilterThroughUnion() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testPullFilterThroughAggregate()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPullFilterThroughAggregate</h4> |
| <pre class="methodSignature">public void testPullFilterThroughAggregate() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testPullFilterThroughAggregateGroupingSets()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPullFilterThroughAggregateGroupingSets</h4> |
| <pre class="methodSignature">public void testPullFilterThroughAggregateGroupingSets() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="basePullConstantTroughAggregate()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>basePullConstantTroughAggregate</h4> |
| <pre class="methodSignature">private void basePullConstantTroughAggregate() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testPullConstantThroughConstLast()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPullConstantThroughConstLast</h4> |
| <pre class="methodSignature">public void testPullConstantThroughConstLast() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testPullConstantThroughAggregateSimpleNonNullable()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPullConstantThroughAggregateSimpleNonNullable</h4> |
| <pre class="methodSignature">public void testPullConstantThroughAggregateSimpleNonNullable() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testPullConstantThroughAggregatePermuted()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPullConstantThroughAggregatePermuted</h4> |
| <pre class="methodSignature">public void testPullConstantThroughAggregatePermuted() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testPullConstantThroughAggregatePermutedConstFirst()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPullConstantThroughAggregatePermutedConstFirst</h4> |
| <pre class="methodSignature">public void testPullConstantThroughAggregatePermutedConstFirst() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testPullConstantThroughAggregatePermutedConstGroupBy()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPullConstantThroughAggregatePermutedConstGroupBy</h4> |
| <pre class="methodSignature">public void testPullConstantThroughAggregatePermutedConstGroupBy() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testPullConstantThroughAggregateConstGroupBy()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPullConstantThroughAggregateConstGroupBy</h4> |
| <pre class="methodSignature">public void testPullConstantThroughAggregateConstGroupBy() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testPullConstantThroughAggregateAllConst()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPullConstantThroughAggregateAllConst</h4> |
| <pre class="methodSignature">public void testPullConstantThroughAggregateAllConst() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testPullConstantThroughAggregateAllLiterals()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPullConstantThroughAggregateAllLiterals</h4> |
| <pre class="methodSignature">public void testPullConstantThroughAggregateAllLiterals() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testPullConstantThroughUnion()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPullConstantThroughUnion</h4> |
| <pre class="methodSignature">public void testPullConstantThroughUnion() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testPullConstantThroughUnion2()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPullConstantThroughUnion2</h4> |
| <pre class="methodSignature">public void testPullConstantThroughUnion2() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testPullConstantThroughUnion3()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPullConstantThroughUnion3</h4> |
| <pre class="methodSignature">public void testPullConstantThroughUnion3() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testAggregateProjectMerge()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testAggregateProjectMerge</h4> |
| <pre class="methodSignature">public void testAggregateProjectMerge()</pre> |
| </li> |
| </ul> |
| <a id="testAggregateGroupingSetsProjectMerge()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testAggregateGroupingSetsProjectMerge</h4> |
| <pre class="methodSignature">public void testAggregateGroupingSetsProjectMerge()</pre> |
| </li> |
| </ul> |
| <a id="testAggregateExtractProjectRule()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testAggregateExtractProjectRule</h4> |
| <pre class="methodSignature">public void testAggregateExtractProjectRule()</pre> |
| </li> |
| </ul> |
| <a id="testAggregateExtractProjectRuleWithGroupingSets()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testAggregateExtractProjectRuleWithGroupingSets</h4> |
| <pre class="methodSignature">public void testAggregateExtractProjectRuleWithGroupingSets()</pre> |
| </li> |
| </ul> |
| <a id="testAggregateExtractProjectRuleWithGroupingSets2()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testAggregateExtractProjectRuleWithGroupingSets2</h4> |
| <pre class="methodSignature">public void testAggregateExtractProjectRuleWithGroupingSets2()</pre> |
| <div class="block">Test with column used in both grouping set and argument to aggregate |
| function.</div> |
| </li> |
| </ul> |
| <a id="testAggregateExtractProjectRuleWithFilter()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testAggregateExtractProjectRuleWithFilter</h4> |
| <pre class="methodSignature">public void testAggregateExtractProjectRuleWithFilter()</pre> |
| </li> |
| </ul> |
| <a id="testPullAggregateThroughUnion()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPullAggregateThroughUnion</h4> |
| <pre class="methodSignature">public void testPullAggregateThroughUnion()</pre> |
| </li> |
| </ul> |
| <a id="testPullAggregateThroughUnion2()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPullAggregateThroughUnion2</h4> |
| <pre class="methodSignature">public void testPullAggregateThroughUnion2()</pre> |
| </li> |
| </ul> |
| <a id="transitiveInference(org.apache.calcite.plan.RelOptRule...)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>transitiveInference</h4> |
| <pre class="methodSignature">private void transitiveInference​(org.apache.calcite.plan.RelOptRule... extraRules) |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testTransitiveInferenceJoin()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testTransitiveInferenceJoin</h4> |
| <pre class="methodSignature">public void testTransitiveInferenceJoin() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testTransitiveInferenceProject()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testTransitiveInferenceProject</h4> |
| <pre class="methodSignature">public void testTransitiveInferenceProject() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testTransitiveInferenceAggregate()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testTransitiveInferenceAggregate</h4> |
| <pre class="methodSignature">public void testTransitiveInferenceAggregate() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testTransitiveInferenceUnion()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testTransitiveInferenceUnion</h4> |
| <pre class="methodSignature">public void testTransitiveInferenceUnion() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testTransitiveInferenceJoin3way()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testTransitiveInferenceJoin3way</h4> |
| <pre class="methodSignature">public void testTransitiveInferenceJoin3way() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testTransitiveInferenceJoin3wayAgg()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testTransitiveInferenceJoin3wayAgg</h4> |
| <pre class="methodSignature">public void testTransitiveInferenceJoin3wayAgg() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testTransitiveInferenceLeftOuterJoin()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testTransitiveInferenceLeftOuterJoin</h4> |
| <pre class="methodSignature">public void testTransitiveInferenceLeftOuterJoin() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testTransitiveInferenceRightOuterJoin()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testTransitiveInferenceRightOuterJoin</h4> |
| <pre class="methodSignature">public void testTransitiveInferenceRightOuterJoin() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testTransitiveInferenceFullOuterJoin()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testTransitiveInferenceFullOuterJoin</h4> |
| <pre class="methodSignature">public void testTransitiveInferenceFullOuterJoin() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testTransitiveInferencePreventProjectPullUp()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testTransitiveInferencePreventProjectPullUp</h4> |
| <pre class="methodSignature">public void testTransitiveInferencePreventProjectPullUp() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testTransitiveInferencePullUpThruAlias()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testTransitiveInferencePullUpThruAlias</h4> |
| <pre class="methodSignature">public void testTransitiveInferencePullUpThruAlias() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testTransitiveInferenceConjunctInPullUp()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testTransitiveInferenceConjunctInPullUp</h4> |
| <pre class="methodSignature">public void testTransitiveInferenceConjunctInPullUp() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testTransitiveInferenceNoPullUpExprs()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testTransitiveInferenceNoPullUpExprs</h4> |
| <pre class="methodSignature">public void testTransitiveInferenceNoPullUpExprs() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testTransitiveInferenceUnion3way()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testTransitiveInferenceUnion3way</h4> |
| <pre class="methodSignature">public void testTransitiveInferenceUnion3way() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testTransitiveInferenceUnion3wayOr()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testTransitiveInferenceUnion3wayOr</h4> |
| <pre class="methodSignature">public void testTransitiveInferenceUnion3wayOr() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testTransitiveInferenceUnionAlwaysTrue()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testTransitiveInferenceUnionAlwaysTrue</h4> |
| <pre class="methodSignature">public void testTransitiveInferenceUnionAlwaysTrue() |
| throws java.lang.Exception</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-443">[CALCITE-443] |
| getPredicates from a union is not correct</a>.</div> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testTransitiveInferenceConstantEquiPredicate()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testTransitiveInferenceConstantEquiPredicate</h4> |
| <pre class="methodSignature">public void testTransitiveInferenceConstantEquiPredicate() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testTransitiveInferenceComplexPredicate()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testTransitiveInferenceComplexPredicate</h4> |
| <pre class="methodSignature">public void testTransitiveInferenceComplexPredicate() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testPullConstantIntoProject()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPullConstantIntoProject</h4> |
| <pre class="methodSignature">public void testPullConstantIntoProject() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testPullConstantIntoFilter()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPullConstantIntoFilter</h4> |
| <pre class="methodSignature">public void testPullConstantIntoFilter() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testSimplifyFilter()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testSimplifyFilter</h4> |
| <pre class="methodSignature">public void testSimplifyFilter() |
| throws java.lang.Exception</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-1995">[CALCITE-1995] |
| Remove predicates from Filter if they can be proved to be always true or |
| false</a>.</div> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testPullConstantIntoJoin()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPullConstantIntoJoin</h4> |
| <pre class="methodSignature">public void testPullConstantIntoJoin() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testPullConstantIntoJoin2()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPullConstantIntoJoin2</h4> |
| <pre class="methodSignature">public void testPullConstantIntoJoin2() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testCorrelationScalarAggAndFilter()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testCorrelationScalarAggAndFilter</h4> |
| <pre class="methodSignature">public void testCorrelationScalarAggAndFilter()</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-2110">[CALCITE-2110] |
| ArrayIndexOutOfBoundsException in RexSimplify when using |
| ReduceExpressionsRule.JOIN_INSTANCE</a>.</div> |
| </li> |
| </ul> |
| <a id="testProjectWindowTransposeRule()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testProjectWindowTransposeRule</h4> |
| <pre class="methodSignature">public void testProjectWindowTransposeRule()</pre> |
| </li> |
| </ul> |
| <a id="testProjectWindowTransposeRuleWithConstants()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testProjectWindowTransposeRuleWithConstants</h4> |
| <pre class="methodSignature">public void testProjectWindowTransposeRuleWithConstants()</pre> |
| </li> |
| </ul> |
| <a id="testAggregateProjectPullUpConstants()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testAggregateProjectPullUpConstants</h4> |
| <pre class="methodSignature">public void testAggregateProjectPullUpConstants()</pre> |
| </li> |
| </ul> |
| <a id="testAggregateProjectPullUpConstants2()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testAggregateProjectPullUpConstants2</h4> |
| <pre class="methodSignature">public void testAggregateProjectPullUpConstants2()</pre> |
| </li> |
| </ul> |
| <a id="testPushFilterWithRank()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushFilterWithRank</h4> |
| <pre class="methodSignature">public void testPushFilterWithRank() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testPushFilterWithRankExpr()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushFilterWithRankExpr</h4> |
| <pre class="methodSignature">public void testPushFilterWithRankExpr() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testExpressionInWindowFunction()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testExpressionInWindowFunction</h4> |
| <pre class="methodSignature">public void testExpressionInWindowFunction()</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-841">[CALCITE-841] |
| Redundant windows when window function arguments are expressions</a>.</div> |
| </li> |
| </ul> |
| <a id="testWindowInParenthesis()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testWindowInParenthesis</h4> |
| <pre class="methodSignature">public void testWindowInParenthesis()</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-888">[CALCITE-888] |
| Overlay window loses PARTITION BY list</a>.</div> |
| </li> |
| </ul> |
| <a id="testIsNullPushDown()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testIsNullPushDown</h4> |
| <pre class="methodSignature">public void testIsNullPushDown()</pre> |
| <div class="block">Test case for DX-11490 |
| Make sure the planner doesn't fail over wrong push down |
| of is null</div> |
| </li> |
| </ul> |
| <a id="testIsNullPushDown2()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testIsNullPushDown2</h4> |
| <pre class="methodSignature">public void testIsNullPushDown2()</pre> |
| </li> |
| </ul> |
| <a id="testNestedAggregates()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testNestedAggregates</h4> |
| <pre class="methodSignature">public void testNestedAggregates()</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-750">[CALCITE-750] |
| Allow windowed aggregate on top of regular aggregate</a>.</div> |
| </li> |
| </ul> |
| <a id="testWindowFunctionOnAggregations()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testWindowFunctionOnAggregations</h4> |
| <pre class="methodSignature">public void testWindowFunctionOnAggregations()</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-2078">[CALCITE-2078] |
| Aggregate functions in OVER clause</a>.</div> |
| </li> |
| </ul> |
| <a id="testPushAggregateThroughJoin1()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushAggregateThroughJoin1</h4> |
| <pre class="methodSignature">public void testPushAggregateThroughJoin1()</pre> |
| </li> |
| </ul> |
| <a id="testPushAggregateThroughOuterJoin1()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushAggregateThroughOuterJoin1</h4> |
| <pre class="methodSignature">public void testPushAggregateThroughOuterJoin1()</pre> |
| <div class="block">Test case for |
| outer join, group by on non-join keys, group by on non-null generating side only</div> |
| </li> |
| </ul> |
| <a id="testPushAggregateThroughOuterJoin2()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushAggregateThroughOuterJoin2</h4> |
| <pre class="methodSignature">public void testPushAggregateThroughOuterJoin2()</pre> |
| <div class="block">Test case for |
| outer join, group by on non-join keys, on null generating side only</div> |
| </li> |
| </ul> |
| <a id="testPushAggregateThroughOuterJoin3()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushAggregateThroughOuterJoin3</h4> |
| <pre class="methodSignature">public void testPushAggregateThroughOuterJoin3()</pre> |
| <div class="block">Test case for |
| outer join, group by on both side on non-join keys</div> |
| </li> |
| </ul> |
| <a id="testPushAggregateThroughOuterJoin4()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushAggregateThroughOuterJoin4</h4> |
| <pre class="methodSignature">public void testPushAggregateThroughOuterJoin4()</pre> |
| <div class="block">Test case for |
| outer join, group by on key same as join key, group by on non-null generating side</div> |
| </li> |
| </ul> |
| <a id="testPushAggregateThroughOuterJoin5()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushAggregateThroughOuterJoin5</h4> |
| <pre class="methodSignature">public void testPushAggregateThroughOuterJoin5()</pre> |
| <div class="block">Test case for |
| outer join, group by on key same as join key, group by on null generating side</div> |
| </li> |
| </ul> |
| <a id="testPushAggregateThroughOuterJoin6()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushAggregateThroughOuterJoin6</h4> |
| <pre class="methodSignature">public void testPushAggregateThroughOuterJoin6()</pre> |
| <div class="block">Test case for |
| outer join, group by on key same as join key, group by on both side</div> |
| </li> |
| </ul> |
| <a id="testPushAggregateThroughOuterJoin7()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushAggregateThroughOuterJoin7</h4> |
| <pre class="methodSignature">public void testPushAggregateThroughOuterJoin7()</pre> |
| <div class="block">Test case for |
| outer join, group by key is susbset of join keys, group by on non-null generating side</div> |
| </li> |
| </ul> |
| <a id="testPushAggregateThroughOuterJoin8()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushAggregateThroughOuterJoin8</h4> |
| <pre class="methodSignature">public void testPushAggregateThroughOuterJoin8()</pre> |
| <div class="block">Test case for |
| outer join, group by key is susbset of join keys, group by on null generating side</div> |
| </li> |
| </ul> |
| <a id="testPushAggregateThroughOuterJoin9()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushAggregateThroughOuterJoin9</h4> |
| <pre class="methodSignature">public void testPushAggregateThroughOuterJoin9()</pre> |
| <div class="block">Test case for |
| outer join, group by key is susbset of join keys, group by on both sides</div> |
| </li> |
| </ul> |
| <a id="testPushAggregateThroughOuterJoin10()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushAggregateThroughOuterJoin10</h4> |
| <pre class="methodSignature">public void testPushAggregateThroughOuterJoin10()</pre> |
| <div class="block">Test case for |
| outer join, with aggregate functions</div> |
| </li> |
| </ul> |
| <a id="testPushAggregateThroughOuterJoin11()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushAggregateThroughOuterJoin11</h4> |
| <pre class="methodSignature">public void testPushAggregateThroughOuterJoin11()</pre> |
| <div class="block">Test case for |
| non-equi outer join</div> |
| </li> |
| </ul> |
| <a id="testPushAggregateThroughOuterJoin12()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushAggregateThroughOuterJoin12</h4> |
| <pre class="methodSignature">public void testPushAggregateThroughOuterJoin12()</pre> |
| <div class="block">Test case for |
| right outer join, group by on key same as join key, group by on (left)null generating side</div> |
| </li> |
| </ul> |
| <a id="testPushAggregateThroughOuterJoin13()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushAggregateThroughOuterJoin13</h4> |
| <pre class="methodSignature">public void testPushAggregateThroughOuterJoin13()</pre> |
| <div class="block">Test case for |
| full outer join, group by on key same as join key, group by on one side</div> |
| </li> |
| </ul> |
| <a id="testPushAggregateThroughOuterJoin14()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushAggregateThroughOuterJoin14</h4> |
| <pre class="methodSignature">public void testPushAggregateThroughOuterJoin14()</pre> |
| <div class="block">Test case for |
| full outer join, group by on key same as join key, group by on both side</div> |
| </li> |
| </ul> |
| <a id="testPushAggregateThroughOuterJoin15()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushAggregateThroughOuterJoin15</h4> |
| <pre class="methodSignature">public void testPushAggregateThroughOuterJoin15()</pre> |
| <div class="block">Test case for |
| full outer join, group by on both side on non-join keys</div> |
| </li> |
| </ul> |
| <a id="testPushAggregateThroughOuterJoin16()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushAggregateThroughOuterJoin16</h4> |
| <pre class="methodSignature">public void testPushAggregateThroughOuterJoin16()</pre> |
| <div class="block">Test case for |
| full outer join, group by key is susbset of join keys</div> |
| </li> |
| </ul> |
| <a id="testPushAggregateThroughJoin2()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushAggregateThroughJoin2</h4> |
| <pre class="methodSignature">public void testPushAggregateThroughJoin2()</pre> |
| </li> |
| </ul> |
| <a id="testPushAggregateThroughJoin3()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushAggregateThroughJoin3</h4> |
| <pre class="methodSignature">public void testPushAggregateThroughJoin3()</pre> |
| </li> |
| </ul> |
| <a id="testPushAggregateThroughJoin4()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushAggregateThroughJoin4</h4> |
| <pre class="methodSignature">public void testPushAggregateThroughJoin4()</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-1544">[CALCITE-1544] |
| AggregateJoinTransposeRule fails to preserve row type</a>.</div> |
| </li> |
| </ul> |
| <a id="testPushAggregateThroughJoin5()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushAggregateThroughJoin5</h4> |
| <pre class="methodSignature">public void testPushAggregateThroughJoin5()</pre> |
| </li> |
| </ul> |
| <a id="testJoinPushTransitivePredicatesRule()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testJoinPushTransitivePredicatesRule</h4> |
| <pre class="methodSignature">public void testJoinPushTransitivePredicatesRule()</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-2200">[CALCITE-2200] |
| Infinite loop for JoinPushTransitivePredicatesRule</a>.</div> |
| </li> |
| </ul> |
| <a id="testJoinPushTransitivePredicatesRule2()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testJoinPushTransitivePredicatesRule2</h4> |
| <pre class="methodSignature">public void testJoinPushTransitivePredicatesRule2()</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-2205">[CALCITE-2205] |
| One more infinite loop for JoinPushTransitivePredicatesRule</a>.</div> |
| </li> |
| </ul> |
| <a id="testInferringPredicatesWithNotOperatorInJoinCondition()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testInferringPredicatesWithNotOperatorInJoinCondition</h4> |
| <pre class="methodSignature">public void testInferringPredicatesWithNotOperatorInJoinCondition()</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-2275">[CALCITE-2275] |
| JoinPushTransitivePredicatesRule wrongly pushes down NOT condition</a>.</div> |
| </li> |
| </ul> |
| <a id="testPushAggregateThroughJoin6()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushAggregateThroughJoin6</h4> |
| <pre class="methodSignature">public void testPushAggregateThroughJoin6()</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-2195">[CALCITE-2195] |
| AggregateJoinTransposeRule fails to aggregate over unique column</a>.</div> |
| </li> |
| </ul> |
| <a id="testPushAggregateThroughJoinWithUniqueInput()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushAggregateThroughJoinWithUniqueInput</h4> |
| <pre class="methodSignature">public void testPushAggregateThroughJoinWithUniqueInput()</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-2278">[CALCITE-2278] |
| AggregateJoinTransposeRule fails to split aggregate call if input contains |
| an aggregate call and has distinct rows</a>.</div> |
| </li> |
| </ul> |
| <a id="testPushAggregateSumThroughJoin()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushAggregateSumThroughJoin</h4> |
| <pre class="methodSignature">public void testPushAggregateSumThroughJoin()</pre> |
| <div class="block">SUM is the easiest aggregate function to split.</div> |
| </li> |
| </ul> |
| <a id="testPushAggregateSumWithoutGroupKeyThroughJoin()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushAggregateSumWithoutGroupKeyThroughJoin</h4> |
| <pre class="methodSignature">public void testPushAggregateSumWithoutGroupKeyThroughJoin()</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-2105">[CALCITE-2105] |
| AggregateJoinTransposeRule incorrectly makes a SUM NOT NULL when Aggregate |
| has no group keys</a>.</div> |
| </li> |
| </ul> |
| <a id="testPushAggregateSumThroughJoinAfterAggregateReduce()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushAggregateSumThroughJoinAfterAggregateReduce</h4> |
| <pre class="methodSignature">public void testPushAggregateSumThroughJoinAfterAggregateReduce()</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-2108">[CALCITE-2108] |
| AggregateJoinTransposeRule incorrectly splits a SUM0 call when Aggregate |
| has no group keys</a>. |
| |
| <p>Similar to <a href="#testPushAggregateSumThroughJoin()"><code>testPushAggregateSumThroughJoin()</code></a>, |
| but also uses <code>AggregateReduceFunctionsRule</code>.</div> |
| </li> |
| </ul> |
| <a id="testPushAggregateFunctionsThroughJoin()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushAggregateFunctionsThroughJoin</h4> |
| <pre class="methodSignature">public void testPushAggregateFunctionsThroughJoin()</pre> |
| <div class="block">Push a variety of aggregate functions.</div> |
| </li> |
| </ul> |
| <a id="testPushAggregateThroughJoinDistinct()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushAggregateThroughJoinDistinct</h4> |
| <pre class="methodSignature">public void testPushAggregateThroughJoinDistinct()</pre> |
| <div class="block">Push a aggregate functions into a relation that is unique on the join |
| key.</div> |
| </li> |
| </ul> |
| <a id="testPushAggregateSumNoGroup()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushAggregateSumNoGroup</h4> |
| <pre class="methodSignature">public void testPushAggregateSumNoGroup()</pre> |
| <div class="block">Push count(*) through join, no GROUP BY.</div> |
| </li> |
| </ul> |
| <a id="testPushAggregateThroughJoinOnEmptyLogicalValues()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushAggregateThroughJoinOnEmptyLogicalValues</h4> |
| <pre class="methodSignature">public void testPushAggregateThroughJoinOnEmptyLogicalValues()</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-3076">[CALCITE-3076] |
| AggregateJoinTransposeRule throws error for unique under aggregate keys when |
| generating merged calls</a>.</div> |
| </li> |
| </ul> |
| <a id="testPushDistinctAggregateIntoJoin()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushDistinctAggregateIntoJoin</h4> |
| <pre class="methodSignature">public void testPushDistinctAggregateIntoJoin() |
| throws java.lang.Exception</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-2249">[CALCITE-2249] |
| AggregateJoinTransposeRule generates inequivalent nodes if Aggregate relNode contains |
| distinct aggregate function.</a>.</div> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testAggregateMerge1()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testAggregateMerge1</h4> |
| <pre class="methodSignature">public void testAggregateMerge1()</pre> |
| <div class="block">Test case for AggregateMergeRule, should merge 2 aggregates |
| into a single aggregate.</div> |
| </li> |
| </ul> |
| <a id="testAggregateMerge2()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testAggregateMerge2</h4> |
| <pre class="methodSignature">public void testAggregateMerge2()</pre> |
| <div class="block">Test case for AggregateMergeRule, should merge 2 aggregates |
| into a single aggregate, top aggregate is not simple aggregate.</div> |
| </li> |
| </ul> |
| <a id="testAggregateMerge3()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testAggregateMerge3</h4> |
| <pre class="methodSignature">public void testAggregateMerge3()</pre> |
| <div class="block">Test case for AggregateMergeRule, should not merge 2 aggregates |
| into a single aggregate, since lower aggregate is not simple aggregate.</div> |
| </li> |
| </ul> |
| <a id="testAggregateMerge4()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testAggregateMerge4</h4> |
| <pre class="methodSignature">public void testAggregateMerge4()</pre> |
| <div class="block">Test case for AggregateMergeRule, should not merge 2 aggregates |
| into a single aggregate, since it contains distinct aggregate |
| function.</div> |
| </li> |
| </ul> |
| <a id="testAggregateMerge5()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testAggregateMerge5</h4> |
| <pre class="methodSignature">public void testAggregateMerge5()</pre> |
| <div class="block">Test case for AggregateMergeRule, should not merge 2 aggregates |
| into a single aggregate, since AVG doesn't support splitting.</div> |
| </li> |
| </ul> |
| <a id="testAggregateMerge6()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testAggregateMerge6</h4> |
| <pre class="methodSignature">public void testAggregateMerge6()</pre> |
| <div class="block">Test case for AggregateMergeRule, should not merge 2 aggregates |
| into a single aggregate, since top agg has no group key, and |
| lower agg function is COUNT.</div> |
| </li> |
| </ul> |
| <a id="testAggregateMerge7()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testAggregateMerge7</h4> |
| <pre class="methodSignature">public void testAggregateMerge7()</pre> |
| <div class="block">Test case for AggregateMergeRule, should not merge 2 aggregates |
| into a single aggregate, since top agg contains empty grouping set, |
| and lower agg function is COUNT.</div> |
| </li> |
| </ul> |
| <a id="testAggregateMerge8()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testAggregateMerge8</h4> |
| <pre class="methodSignature">public void testAggregateMerge8()</pre> |
| <div class="block">Test case for AggregateMergeRule, should merge 2 aggregates |
| into a single aggregate, since both top and bottom aggregates |
| contains empty grouping set and they are mergable.</div> |
| </li> |
| </ul> |
| <a id="testAggregateRemove1()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testAggregateRemove1</h4> |
| <pre class="methodSignature">public void testAggregateRemove1()</pre> |
| <div class="block">Test case for AggregateRemoveRule, should remove aggregates since |
| empno is unique and all aggregate functions are splittable.</div> |
| </li> |
| </ul> |
| <a id="testAggregateRemove2()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testAggregateRemove2</h4> |
| <pre class="methodSignature">public void testAggregateRemove2()</pre> |
| <div class="block">Test case for AggregateRemoveRule, should remove aggregates since |
| empno is unique and there are no aggregate functions.</div> |
| </li> |
| </ul> |
| <a id="testAggregateRemove3()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testAggregateRemove3</h4> |
| <pre class="methodSignature">public void testAggregateRemove3()</pre> |
| <div class="block">Test case for AggregateRemoveRule, should remove aggregates since |
| empno is unique and all aggregate functions are splittable. Count |
| aggregate function should be transformed to CASE function call |
| because mgr is nullable.</div> |
| </li> |
| </ul> |
| <a id="testAggregateRemove4()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testAggregateRemove4</h4> |
| <pre class="methodSignature">public void testAggregateRemove4()</pre> |
| <div class="block">Negative test case for AggregateRemoveRule, should not |
| remove aggregate because avg is not splittable.</div> |
| </li> |
| </ul> |
| <a id="testAggregateRemove5()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testAggregateRemove5</h4> |
| <pre class="methodSignature">public void testAggregateRemove5()</pre> |
| <div class="block">Negative test case for AggregateRemoveRule, should not |
| remove non-simple aggregates.</div> |
| </li> |
| </ul> |
| <a id="testAggregateRemove6()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testAggregateRemove6</h4> |
| <pre class="methodSignature">public void testAggregateRemove6()</pre> |
| <div class="block">Negative test case for AggregateRemoveRule, should not |
| remove aggregate because deptno is not unique.</div> |
| </li> |
| </ul> |
| <a id="testAggregateJoinRemove1()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testAggregateJoinRemove1</h4> |
| <pre class="methodSignature">public void testAggregateJoinRemove1()</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-2712">[CALCITE-2712] |
| Should remove the left join since the aggregate has no call and |
| only uses column in the left input of the bottom join as group key.</a>.</div> |
| </li> |
| </ul> |
| <a id="testAggregateJoinRemove2()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testAggregateJoinRemove2</h4> |
| <pre class="methodSignature">public void testAggregateJoinRemove2()</pre> |
| <div class="block">Similar to <a href="#testAggregateJoinRemove1()"><code>testAggregateJoinRemove1()</code></a> but has aggregate |
| call with distinct.</div> |
| </li> |
| </ul> |
| <a id="testAggregateJoinRemove3()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testAggregateJoinRemove3</h4> |
| <pre class="methodSignature">public void testAggregateJoinRemove3()</pre> |
| <div class="block">Similar to <a href="#testAggregateJoinRemove1()"><code>testAggregateJoinRemove1()</code></a> but should not |
| remove the left join since the aggregate uses column in the right |
| input of the bottom join.</div> |
| </li> |
| </ul> |
| <a id="testAggregateJoinRemove4()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testAggregateJoinRemove4</h4> |
| <pre class="methodSignature">public void testAggregateJoinRemove4()</pre> |
| <div class="block">Similar to <a href="#testAggregateJoinRemove1()"><code>testAggregateJoinRemove1()</code></a> but right join.</div> |
| </li> |
| </ul> |
| <a id="testAggregateJoinRemove5()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testAggregateJoinRemove5</h4> |
| <pre class="methodSignature">public void testAggregateJoinRemove5()</pre> |
| <div class="block">Similar to <a href="#testAggregateJoinRemove2()"><code>testAggregateJoinRemove2()</code></a> but right join.</div> |
| </li> |
| </ul> |
| <a id="testAggregateJoinRemove6()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testAggregateJoinRemove6</h4> |
| <pre class="methodSignature">public void testAggregateJoinRemove6()</pre> |
| <div class="block">Similar to <a href="#testAggregateJoinRemove3()"><code>testAggregateJoinRemove3()</code></a> but right join.</div> |
| </li> |
| </ul> |
| <a id="testAggregateJoinRemove7()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testAggregateJoinRemove7</h4> |
| <pre class="methodSignature">public void testAggregateJoinRemove7()</pre> |
| <div class="block">Similar to <a href="#testAggregateJoinRemove1()"><code>testAggregateJoinRemove1()</code></a>; |
| Should remove the bottom join since the aggregate has no aggregate |
| call.</div> |
| </li> |
| </ul> |
| <a id="testAggregateJoinRemove8()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testAggregateJoinRemove8</h4> |
| <pre class="methodSignature">public void testAggregateJoinRemove8()</pre> |
| <div class="block">Similar to <a href="#testAggregateJoinRemove7()"><code>testAggregateJoinRemove7()</code></a> but has aggregate |
| call.</div> |
| </li> |
| </ul> |
| <a id="testAggregateJoinRemove9()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testAggregateJoinRemove9</h4> |
| <pre class="methodSignature">public void testAggregateJoinRemove9()</pre> |
| <div class="block">Similar to <a href="#testAggregateJoinRemove7()"><code>testAggregateJoinRemove7()</code></a> but use columns in |
| the right input of the top join.</div> |
| </li> |
| </ul> |
| <a id="testAggregateJoinRemove10()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testAggregateJoinRemove10</h4> |
| <pre class="methodSignature">public void testAggregateJoinRemove10()</pre> |
| <div class="block">Similar to <a href="#testAggregateJoinRemove1()"><code>testAggregateJoinRemove1()</code></a>; |
| Should not remove the bottom join since the aggregate uses column in the |
| right input of bottom join.</div> |
| </li> |
| </ul> |
| <a id="testProjectJoinRemove1()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testProjectJoinRemove1</h4> |
| <pre class="methodSignature">public void testProjectJoinRemove1()</pre> |
| <div class="block">Similar to <a href="#testAggregateJoinRemove1()"><code>testAggregateJoinRemove1()</code></a>; |
| Should remove the bottom join since the project uses column in the |
| right input of bottom join.</div> |
| </li> |
| </ul> |
| <a id="testProjectJoinRemove2()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testProjectJoinRemove2</h4> |
| <pre class="methodSignature">public void testProjectJoinRemove2()</pre> |
| <div class="block">Similar to <a href="#testAggregateJoinRemove1()"><code>testAggregateJoinRemove1()</code></a>; |
| Should not remove the bottom join since the project uses column in the |
| left input of bottom join.</div> |
| </li> |
| </ul> |
| <a id="testProjectJoinRemove3()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testProjectJoinRemove3</h4> |
| <pre class="methodSignature">public void testProjectJoinRemove3()</pre> |
| <div class="block">Similar to <a href="#testAggregateJoinRemove1()"><code>testAggregateJoinRemove1()</code></a>; |
| Should not remove the bottom join since the right join keys of bottom |
| join are not unique.</div> |
| </li> |
| </ul> |
| <a id="testProjectJoinRemove4()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testProjectJoinRemove4</h4> |
| <pre class="methodSignature">public void testProjectJoinRemove4()</pre> |
| <div class="block">Similar to <a href="#testAggregateJoinRemove1()"><code>testAggregateJoinRemove1()</code></a>; |
| Should remove the left join since the join key of the right input is |
| unique.</div> |
| </li> |
| </ul> |
| <a id="testProjectJoinRemove5()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testProjectJoinRemove5</h4> |
| <pre class="methodSignature">public void testProjectJoinRemove5()</pre> |
| <div class="block">Similar to <a href="#testAggregateJoinRemove1()"><code>testAggregateJoinRemove1()</code></a>; |
| Should not remove the left join since the join key of the right input is |
| not unique.</div> |
| </li> |
| </ul> |
| <a id="testProjectJoinRemove6()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testProjectJoinRemove6</h4> |
| <pre class="methodSignature">public void testProjectJoinRemove6()</pre> |
| <div class="block">Similar to <a href="#testAggregateJoinRemove1()"><code>testAggregateJoinRemove1()</code></a>; |
| Should not remove the left join since the project use columns in the right |
| input of the join.</div> |
| </li> |
| </ul> |
| <a id="testProjectJoinRemove7()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testProjectJoinRemove7</h4> |
| <pre class="methodSignature">public void testProjectJoinRemove7()</pre> |
| <div class="block">Similar to <a href="#testAggregateJoinRemove1()"><code>testAggregateJoinRemove1()</code></a>; |
| Should remove the right join since the join key of the left input is |
| unique.</div> |
| </li> |
| </ul> |
| <a id="testProjectJoinRemove8()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testProjectJoinRemove8</h4> |
| <pre class="methodSignature">public void testProjectJoinRemove8()</pre> |
| <div class="block">Similar to <a href="#testAggregateJoinRemove1()"><code>testAggregateJoinRemove1()</code></a>; |
| Should not remove the right join since the join key of the left input is |
| not unique.</div> |
| </li> |
| </ul> |
| <a id="testProjectJoinRemove9()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testProjectJoinRemove9</h4> |
| <pre class="methodSignature">public void testProjectJoinRemove9()</pre> |
| <div class="block">Similar to <a href="#testAggregateJoinRemove1()"><code>testAggregateJoinRemove1()</code></a>; |
| Should not remove the right join since the project uses columns in the |
| left input of the join.</div> |
| </li> |
| </ul> |
| <a id="testSwapOuterJoin()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testSwapOuterJoin</h4> |
| <pre class="methodSignature">public void testSwapOuterJoin()</pre> |
| </li> |
| </ul> |
| <a id="testPushJoinCondDownToProject()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushJoinCondDownToProject</h4> |
| <pre class="methodSignature">public void testPushJoinCondDownToProject()</pre> |
| </li> |
| </ul> |
| <a id="testSortJoinTranspose1()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testSortJoinTranspose1</h4> |
| <pre class="methodSignature">public void testSortJoinTranspose1()</pre> |
| </li> |
| </ul> |
| <a id="testSortJoinTranspose2()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testSortJoinTranspose2</h4> |
| <pre class="methodSignature">public void testSortJoinTranspose2()</pre> |
| </li> |
| </ul> |
| <a id="testSortJoinTranspose3()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testSortJoinTranspose3</h4> |
| <pre class="methodSignature">public void testSortJoinTranspose3()</pre> |
| </li> |
| </ul> |
| <a id="testSortJoinTranspose4()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testSortJoinTranspose4</h4> |
| <pre class="methodSignature">public void testSortJoinTranspose4()</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-931">[CALCITE-931] |
| Wrong collation trait in SortJoinTransposeRule for right joins</a>.</div> |
| </li> |
| </ul> |
| <a id="testSortJoinTranspose5()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testSortJoinTranspose5</h4> |
| <pre class="methodSignature">public void testSortJoinTranspose5()</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-1498">[CALCITE-1498] |
| Avoid LIMIT with trivial ORDER BY being pushed through JOIN endlessly</a>.</div> |
| </li> |
| </ul> |
| <a id="testSortJoinTranspose6()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testSortJoinTranspose6</h4> |
| <pre class="methodSignature">public void testSortJoinTranspose6()</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-1507">[CALCITE-1507] |
| OFFSET cannot be pushed through a JOIN if the non-preserved side of outer |
| join is not count-preserving</a>.</div> |
| </li> |
| </ul> |
| <a id="testSortJoinTranspose7()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testSortJoinTranspose7</h4> |
| <pre class="methodSignature">public void testSortJoinTranspose7()</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-1507">[CALCITE-1507] |
| OFFSET cannot be pushed through a JOIN if the non-preserved side of outer |
| join is not count-preserving</a>.</div> |
| </li> |
| </ul> |
| <a id="testSortProjectTranspose1()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testSortProjectTranspose1</h4> |
| <pre class="methodSignature">public void testSortProjectTranspose1()</pre> |
| </li> |
| </ul> |
| <a id="testSortProjectTranspose2()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testSortProjectTranspose2</h4> |
| <pre class="methodSignature">public void testSortProjectTranspose2()</pre> |
| </li> |
| </ul> |
| <a id="testSortProjectTranspose3()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testSortProjectTranspose3</h4> |
| <pre class="methodSignature">public void testSortProjectTranspose3()</pre> |
| </li> |
| </ul> |
| <a id="testAggregateConstantKeyRule()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testAggregateConstantKeyRule</h4> |
| <pre class="methodSignature">public void testAggregateConstantKeyRule()</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-1023">[CALCITE-1023] |
| Planner rule that removes Aggregate keys that are constant</a>.</div> |
| </li> |
| </ul> |
| <a id="testAggregateConstantKeyRule2()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testAggregateConstantKeyRule2</h4> |
| <pre class="methodSignature">public void testAggregateConstantKeyRule2()</pre> |
| <div class="block">Tests <code>AggregateProjectPullUpConstantsRule</code> where reduction is not |
| possible because "deptno" is the only key.</div> |
| </li> |
| </ul> |
| <a id="testAggregateConstantKeyRule3()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testAggregateConstantKeyRule3</h4> |
| <pre class="methodSignature">public void testAggregateConstantKeyRule3()</pre> |
| <div class="block">Tests <code>AggregateProjectPullUpConstantsRule</code> where both keys are |
| constants but only one can be removed.</div> |
| </li> |
| </ul> |
| <a id="testReduceExpressionsNot()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testReduceExpressionsNot</h4> |
| <pre class="methodSignature">public void testReduceExpressionsNot()</pre> |
| </li> |
| </ul> |
| <a id="checkSubQuery(java.lang.String)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>checkSubQuery</h4> |
| <pre class="methodSignature">private <a href="RelOptTestBase.Sql.html" title="class in org.apache.calcite.test">RelOptTestBase.Sql</a> checkSubQuery​(java.lang.String sql)</pre> |
| </li> |
| </ul> |
| <a id="testExpandProjectScalar()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testExpandProjectScalar</h4> |
| <pre class="methodSignature">public void testExpandProjectScalar() |
| throws java.lang.Exception</pre> |
| <div class="block">Tests expanding a sub-query, specifically an uncorrelated scalar |
| sub-query in a project (SELECT clause).</div> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testSelectNotInCorrelated()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testSelectNotInCorrelated</h4> |
| <pre class="methodSignature">public void testSelectNotInCorrelated()</pre> |
| </li> |
| </ul> |
| <a id="testWhereNotInCorrelated()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testWhereNotInCorrelated</h4> |
| <pre class="methodSignature">public void testWhereNotInCorrelated()</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-1493">[CALCITE-1493] |
| Wrong plan for NOT IN correlated queries</a>.</div> |
| </li> |
| </ul> |
| <a id="testWhereNotInCorrelated2()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testWhereNotInCorrelated2</h4> |
| <pre class="methodSignature">public void testWhereNotInCorrelated2()</pre> |
| </li> |
| </ul> |
| <a id="testAll()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testAll</h4> |
| <pre class="methodSignature">public void testAll()</pre> |
| </li> |
| </ul> |
| <a id="testSome()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testSome</h4> |
| <pre class="methodSignature">public void testSome()</pre> |
| </li> |
| </ul> |
| <a id="testAnyInProjectNonNullable()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testAnyInProjectNonNullable</h4> |
| <pre class="methodSignature">public void testAnyInProjectNonNullable()</pre> |
| <div class="block">Test case for testing type created by SubQueryRemoveRule: an |
| ANY sub-query is non-nullable therefore plan should have cast.</div> |
| </li> |
| </ul> |
| <a id="testAnyInProjectNullable()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testAnyInProjectNullable</h4> |
| <pre class="methodSignature">public void testAnyInProjectNullable()</pre> |
| <div class="block">Test case for testing type created by SubQueryRemoveRule; an |
| ANY sub-query is nullable therefore plan should not have cast.</div> |
| </li> |
| </ul> |
| <a id="testSomeWithEquality()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testSomeWithEquality</h4> |
| <pre class="methodSignature">public void testSomeWithEquality()</pre> |
| </li> |
| </ul> |
| <a id="testSomeWithEquality2()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testSomeWithEquality2</h4> |
| <pre class="methodSignature">public void testSomeWithEquality2()</pre> |
| </li> |
| </ul> |
| <a id="testWhereOrSubQuery()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testWhereOrSubQuery</h4> |
| <pre class="methodSignature">public void testWhereOrSubQuery()</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-1546">[CALCITE-1546] |
| Sub-queries connected by OR</a>.</div> |
| </li> |
| </ul> |
| <a id="testExpandProjectIn()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testExpandProjectIn</h4> |
| <pre class="methodSignature">public void testExpandProjectIn() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testExpandProjectInNullable()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testExpandProjectInNullable</h4> |
| <pre class="methodSignature">public void testExpandProjectInNullable() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testExpandProjectInComposite()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testExpandProjectInComposite</h4> |
| <pre class="methodSignature">public void testExpandProjectInComposite() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testExpandProjectExists()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testExpandProjectExists</h4> |
| <pre class="methodSignature">public void testExpandProjectExists() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testExpandFilterScalar()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testExpandFilterScalar</h4> |
| <pre class="methodSignature">public void testExpandFilterScalar() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testExpandFilterIn()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testExpandFilterIn</h4> |
| <pre class="methodSignature">public void testExpandFilterIn() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testExpandFilterInComposite()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testExpandFilterInComposite</h4> |
| <pre class="methodSignature">public void testExpandFilterInComposite() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testExpandFilterIn3Value()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testExpandFilterIn3Value</h4> |
| <pre class="methodSignature">public void testExpandFilterIn3Value() |
| throws java.lang.Exception</pre> |
| <div class="block">An IN filter that requires full 3-value logic (true, false, unknown).</div> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testExpandFilterExists()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testExpandFilterExists</h4> |
| <pre class="methodSignature">public void testExpandFilterExists() |
| throws java.lang.Exception</pre> |
| <div class="block">An EXISTS filter that can be converted into true/false.</div> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testExpandFilterExistsSimple()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testExpandFilterExistsSimple</h4> |
| <pre class="methodSignature">public void testExpandFilterExistsSimple() |
| throws java.lang.Exception</pre> |
| <div class="block">An EXISTS filter that can be converted into a semi-join.</div> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testExpandFilterExistsSimpleAnd()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testExpandFilterExistsSimpleAnd</h4> |
| <pre class="methodSignature">public void testExpandFilterExistsSimpleAnd() |
| throws java.lang.Exception</pre> |
| <div class="block">An EXISTS filter that can be converted into a semi-join.</div> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testExpandJoinScalar()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testExpandJoinScalar</h4> |
| <pre class="methodSignature">public void testExpandJoinScalar() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testExpandJoinIn()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testExpandJoinIn</h4> |
| <pre class="methodSignature">public void testExpandJoinIn() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testExpandJoinInComposite()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testExpandJoinInComposite</h4> |
| <pre class="methodSignature">public void testExpandJoinInComposite() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testExpandJoinExists()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testExpandJoinExists</h4> |
| <pre class="methodSignature">public void testExpandJoinExists() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testDecorrelateExists()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testDecorrelateExists</h4> |
| <pre class="methodSignature">public void testDecorrelateExists() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testDecorrelateTwoExists()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testDecorrelateTwoExists</h4> |
| <pre class="methodSignature">public void testDecorrelateTwoExists() |
| throws java.lang.Exception</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-1511">[CALCITE-1511] |
| AssertionError while decorrelating query with two EXISTS |
| sub-queries</a>.</div> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testDecorrelateUncorrelatedInAndCorrelatedExists()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testDecorrelateUncorrelatedInAndCorrelatedExists</h4> |
| <pre class="methodSignature">public void testDecorrelateUncorrelatedInAndCorrelatedExists() |
| throws java.lang.Exception</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-2028">[CALCITE-2028] |
| Un-correlated IN sub-query should be converted into a Join, |
| rather than a Correlate without correlation variables </a>.</div> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testDecorrelateTwoIn()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testDecorrelateTwoIn</h4> |
| <pre class="methodSignature">public void testDecorrelateTwoIn() |
| throws java.lang.Exception</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-1537">[CALCITE-1537] |
| Unnecessary project expression in multi-sub-query plan</a>.</div> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testDecorrelateTwoScalar()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testDecorrelateTwoScalar</h4> |
| <pre class="methodSignature">public void testDecorrelateTwoScalar() |
| throws java.lang.Exception</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-1045">[CALCITE-1045] |
| Decorrelate sub-queries in Project and Join</a>, with the added |
| complication that there are two sub-queries.</div> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testWhereInJoinCorrelated()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testWhereInJoinCorrelated</h4> |
| <pre class="methodSignature">public void testWhereInJoinCorrelated()</pre> |
| </li> |
| </ul> |
| <a id="testWhereInCorrelated()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testWhereInCorrelated</h4> |
| <pre class="methodSignature">public void testWhereInCorrelated()</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-1494">[CALCITE-1494] |
| Inefficient plan for correlated sub-queries</a>. In "planAfter", there |
| must be only one scan each of emp and dept. We don't need a separate |
| value-generator for emp.job.</div> |
| </li> |
| </ul> |
| <a id="testWhereExpressionInCorrelated()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testWhereExpressionInCorrelated</h4> |
| <pre class="methodSignature">public void testWhereExpressionInCorrelated()</pre> |
| </li> |
| </ul> |
| <a id="testWhereExpressionInCorrelated2()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testWhereExpressionInCorrelated2</h4> |
| <pre class="methodSignature">public void testWhereExpressionInCorrelated2()</pre> |
| </li> |
| </ul> |
| <a id="testExpandWhereComparisonCorrelated()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testExpandWhereComparisonCorrelated</h4> |
| <pre class="methodSignature">public void testExpandWhereComparisonCorrelated() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="testCustomColumnResolvingInNonCorrelatedSubQuery()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testCustomColumnResolvingInNonCorrelatedSubQuery</h4> |
| <pre class="methodSignature">public void testCustomColumnResolvingInNonCorrelatedSubQuery()</pre> |
| </li> |
| </ul> |
| <a id="testCustomColumnResolvingInCorrelatedSubQuery()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testCustomColumnResolvingInCorrelatedSubQuery</h4> |
| <pre class="methodSignature">public void testCustomColumnResolvingInCorrelatedSubQuery()</pre> |
| </li> |
| </ul> |
| <a id="testCustomColumnResolvingInCorrelatedSubQuery2()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testCustomColumnResolvingInCorrelatedSubQuery2</h4> |
| <pre class="methodSignature">public void testCustomColumnResolvingInCorrelatedSubQuery2()</pre> |
| </li> |
| </ul> |
| <a id="testDecorrelateAggWithConstantGroupKey()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testDecorrelateAggWithConstantGroupKey</h4> |
| <pre class="methodSignature">public void testDecorrelateAggWithConstantGroupKey()</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-2744">[CALCITE-2744] |
| RelDecorrelator use wrong output map for LogicalAggregate decorrelate</a>.</div> |
| </li> |
| </ul> |
| <a id="testDecorrelateAggWithMultiParamsAggCall()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testDecorrelateAggWithMultiParamsAggCall</h4> |
| <pre class="methodSignature">public void testDecorrelateAggWithMultiParamsAggCall()</pre> |
| <div class="block">Test case for CALCITE-2744 for aggregate decorrelate with multi-param agg call |
| but without group key.</div> |
| </li> |
| </ul> |
| <a id="testDecorrelateAggWithMultiParamsAggCall2()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testDecorrelateAggWithMultiParamsAggCall2</h4> |
| <pre class="methodSignature">public void testDecorrelateAggWithMultiParamsAggCall2()</pre> |
| <div class="block">Same as <a href="#testDecorrelateAggWithMultiParamsAggCall()"><code>testDecorrelateAggWithMultiParamsAggCall()</code></a> |
| but with a constant group key.</div> |
| </li> |
| </ul> |
| <a id="testExtractYearToRange()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testExtractYearToRange</h4> |
| <pre class="methodSignature">public void testExtractYearToRange()</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-434">[CALCITE-434] |
| Converting predicates on date dimension columns into date ranges</a>, |
| specifically a rule that converts <code>EXTRACT(YEAR FROM ...) = constant</code> |
| to a range.</div> |
| </li> |
| </ul> |
| <a id="testExtractYearMonthToRange()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testExtractYearMonthToRange</h4> |
| <pre class="methodSignature">public void testExtractYearMonthToRange()</pre> |
| </li> |
| </ul> |
| <a id="testFilterRemoveIsNotDistinctFromRule()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testFilterRemoveIsNotDistinctFromRule</h4> |
| <pre class="methodSignature">public void testFilterRemoveIsNotDistinctFromRule()</pre> |
| </li> |
| </ul> |
| <a id="testOversimplifiedCaseStatement()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testOversimplifiedCaseStatement</h4> |
| <pre class="methodSignature">public void testOversimplifiedCaseStatement()</pre> |
| </li> |
| </ul> |
| <a id="testNoOversimplificationBelowIsNull()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testNoOversimplificationBelowIsNull</h4> |
| <pre class="methodSignature">public void testNoOversimplificationBelowIsNull()</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-2726">[CALCITE-2726] |
| ReduceExpressionRule may oversimplify filter conditions containing nulls</a>.</div> |
| </li> |
| </ul> |
| <a id="testExchangeRemoveConstantKeysRule()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testExchangeRemoveConstantKeysRule</h4> |
| <pre class="methodSignature">public void testExchangeRemoveConstantKeysRule()</pre> |
| </li> |
| </ul> |
| <a id="testReduceAverageWithNoReduceSum()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testReduceAverageWithNoReduceSum</h4> |
| <pre class="methodSignature">public void testReduceAverageWithNoReduceSum()</pre> |
| </li> |
| </ul> |
| <a id="testNoReduceAverage()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testNoReduceAverage</h4> |
| <pre class="methodSignature">public void testNoReduceAverage()</pre> |
| </li> |
| </ul> |
| <a id="testNoReduceSum()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testNoReduceSum</h4> |
| <pre class="methodSignature">public void testNoReduceSum()</pre> |
| </li> |
| </ul> |
| <a id="testReduceAverageAndVarWithNoReduceStddev()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testReduceAverageAndVarWithNoReduceStddev</h4> |
| <pre class="methodSignature">public void testReduceAverageAndVarWithNoReduceStddev()</pre> |
| </li> |
| </ul> |
| <a id="testReduceAverageAndSumWithNoReduceStddevAndVar()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testReduceAverageAndSumWithNoReduceStddevAndVar</h4> |
| <pre class="methodSignature">public void testReduceAverageAndSumWithNoReduceStddevAndVar()</pre> |
| </li> |
| </ul> |
| <a id="testReduceAllAggregateFunctions()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testReduceAllAggregateFunctions</h4> |
| <pre class="methodSignature">public void testReduceAllAggregateFunctions()</pre> |
| </li> |
| </ul> |
| <a id="testPushProjectWithIsNotDistinctFromPastJoin()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testPushProjectWithIsNotDistinctFromPastJoin</h4> |
| <pre class="methodSignature">public void testPushProjectWithIsNotDistinctFromPastJoin()</pre> |
| <div class="block">Test case for |
| <a href="https://issues.apache.org/jira/browse/CALCITE-2803">[CALCITE-2803] |
| Identify expanded IS NOT DISTINCT FROM expression when pushing project past join</a>.</div> |
| </li> |
| </ul> |
| <a id="testDynamicStarWithUnion()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>testDynamicStarWithUnion</h4> |
| <pre class="methodSignature">public void testDynamicStarWithUnion()</pre> |
| </li> |
| </ul> |
| <a id="testFilterAndProjectWithMultiJoin()"> |
| <!-- --> |
| </a> |
| <ul class="blockListLast"> |
| <li class="blockList"> |
| <h4>testFilterAndProjectWithMultiJoin</h4> |
| <pre class="methodSignature">public void testFilterAndProjectWithMultiJoin() |
| throws java.lang.Exception</pre> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code>java.lang.Exception</code></dd> |
| </dl> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| </section> |
| </li> |
| </ul> |
| </div> |
| </div> |
| </main> |
| <!-- ========= END OF CLASS DATA ========= --> |
| <footer role="contentinfo"> |
| <nav role="navigation"> |
| <!-- ======= START OF BOTTOM NAVBAR ====== --> |
| <div class="bottomNav"><a id="navbar.bottom"> |
| <!-- --> |
| </a> |
| <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> |
| <a id="navbar.bottom.firstrow"> |
| <!-- --> |
| </a> |
| <ul class="navList" title="Navigation"> |
| <li><a href="../../../../index.html">Overview</a></li> |
| <li><a href="package-summary.html">Package</a></li> |
| <li class="navBarCell1Rev">Class</li> |
| <li><a href="class-use/RelOptRulesTest.html">Use</a></li> |
| <li><a href="package-tree.html">Tree</a></li> |
| <li><a href="../../../../deprecated-list.html">Deprecated</a></li> |
| <li><a href="../../../../index-all.html">Index</a></li> |
| <li><a href="../../../../help-doc.html">Help</a></li> |
| </ul> |
| </div> |
| <div class="subNav"> |
| <ul class="navList" id="allclasses_navbar_bottom"> |
| <li><a href="../../../../allclasses.html">All Classes</a></li> |
| </ul> |
| <div> |
| <script type="text/javascript"><!-- |
| allClassesLink = document.getElementById("allclasses_navbar_bottom"); |
| if(window==top) { |
| allClassesLink.style.display = "block"; |
| } |
| else { |
| allClassesLink.style.display = "none"; |
| } |
| //--> |
| </script> |
| <noscript> |
| <div>JavaScript is disabled on your browser.</div> |
| </noscript> |
| </div> |
| <div> |
| <ul class="subNavList"> |
| <li>Summary: </li> |
| <li><a href="#nested.class.summary">Nested</a> | </li> |
| <li><a href="#field.summary">Field</a> | </li> |
| <li><a href="#constructor.summary">Constr</a> | </li> |
| <li><a href="#method.summary">Method</a></li> |
| </ul> |
| <ul class="subNavList"> |
| <li>Detail: </li> |
| <li><a href="#field.detail">Field</a> | </li> |
| <li><a href="#constructor.detail">Constr</a> | </li> |
| <li><a href="#method.detail">Method</a></li> |
| </ul> |
| </div> |
| <a id="skip.navbar.bottom"> |
| <!-- --> |
| </a></div> |
| <!-- ======== END OF BOTTOM NAVBAR ======= --> |
| </nav> |
| <p class="legalCopy"><small>Copyright © 2012–2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p> |
| </footer> |
| </body> |
| </html> |