| <!DOCTYPE HTML> |
| <!-- NewPage --> |
| <html lang="en"> |
| <head> |
| <!-- Generated by javadoc --> |
| <title>RexUtil (Apache Calcite API)</title> |
| <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
| <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style"> |
| <link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style"> |
| <script type="text/javascript" src="../../../../script.js"></script> |
| <script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script> |
| <script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script> |
| <!--[if IE]> |
| <script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script> |
| <![endif]--> |
| <script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script> |
| <script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script> |
| <script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script> |
| </head> |
| <body> |
| <script type="text/javascript"><!-- |
| try { |
| if (location.href.indexOf('is-external=true') == -1) { |
| parent.document.title="RexUtil (Apache Calcite API)"; |
| } |
| } |
| catch(err) { |
| } |
| //--> |
| var data = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9,"i11":9,"i12":9,"i13":9,"i14":9,"i15":9,"i16":9,"i17":9,"i18":9,"i19":9,"i20":9,"i21":9,"i22":9,"i23":9,"i24":9,"i25":9,"i26":9,"i27":9,"i28":9,"i29":9,"i30":9,"i31":9,"i32":9,"i33":9,"i34":9,"i35":41,"i36":9,"i37":9,"i38":9,"i39":41,"i40":9,"i41":9,"i42":9,"i43":9,"i44":41,"i45":9,"i46":9,"i47":9,"i48":9,"i49":9,"i50":9,"i51":9,"i52":9,"i53":9,"i54":9,"i55":9,"i56":9,"i57":9,"i58":9,"i59":9,"i60":9,"i61":9,"i62":9,"i63":9,"i64":9,"i65":9,"i66":9,"i67":9,"i68":9,"i69":9,"i70":9,"i71":9,"i72":9,"i73":9,"i74":9,"i75":9,"i76":41,"i77":9,"i78":9,"i79":9,"i80":9,"i81":9,"i82":9,"i83":9,"i84":9,"i85":9,"i86":9,"i87":9,"i88":9,"i89":9,"i90":9,"i91":41,"i92":41,"i93":41,"i94":41,"i95":41,"i96":41,"i97":41,"i98":41,"i99":41,"i100":41,"i101":9,"i102":9,"i103":9,"i104":9,"i105":9,"i106":9,"i107":9,"i108":9,"i109":9}; |
| var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated 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/RexUtil.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.rex</a></div> |
| <h2 title="Class RexUtil" class="title">Class RexUtil</h2> |
| </div> |
| <div class="contentContainer"> |
| <ul class="inheritance"> |
| <li>java.lang.Object</li> |
| <li> |
| <ul class="inheritance"> |
| <li>org.apache.calcite.rex.RexUtil</li> |
| </ul> |
| </li> |
| </ul> |
| <div class="description"> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <hr> |
| <pre>public class <span class="typeNameLabel">RexUtil</span> |
| extends java.lang.Object</pre> |
| <div class="block">Utility methods concerning row-expressions.</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="RexUtil.CnfHelper.html" title="class in org.apache.calcite.rex">RexUtil.CnfHelper</a></span></code></th> |
| <td class="colLast"> |
| <div class="block">Helps <a href="#toCnf(org.apache.calcite.rex.RexBuilder,org.apache.calcite.rex.RexNode)"><code>toCnf(org.apache.calcite.rex.RexBuilder, org.apache.calcite.rex.RexNode)</code></a>.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><code>(package private) static class </code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RexUtil.ConstantFinder.html" title="class in org.apache.calcite.rex">RexUtil.ConstantFinder</a></span></code></th> |
| <td class="colLast"> |
| <div class="block">Walks over an expression and determines whether it is constant.</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="RexUtil.CorrelationFinder.html" title="class in org.apache.calcite.rex">RexUtil.CorrelationFinder</a></span></code></th> |
| <td class="colLast"> |
| <div class="block">Visitor that throws <a href="../util/Util.FoundOne.html" title="class in org.apache.calcite.util"><code>Util.FoundOne</code></a> if |
| applied to an expression that contains a <a href="RexCorrelVariable.html" title="class in org.apache.calcite.rex"><code>RexCorrelVariable</code></a>.</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="RexUtil.DnfHelper.html" title="class in org.apache.calcite.rex">RexUtil.DnfHelper</a></span></code></th> |
| <td class="colLast"> |
| <div class="block">Helps <a href="#toDnf(org.apache.calcite.rex.RexBuilder,org.apache.calcite.rex.RexNode)"><code>toDnf(org.apache.calcite.rex.RexBuilder, org.apache.calcite.rex.RexNode)</code></a>.</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="RexUtil.ExpressionNormalizer.html" title="class in org.apache.calcite.rex">RexUtil.ExpressionNormalizer</a></span></code></th> |
| <td class="colLast"> |
| <div class="block">Walks over expressions and builds a bank of common sub-expressions.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><code>static class </code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RexUtil.ExprSimplifier.html" title="class in org.apache.calcite.rex">RexUtil.ExprSimplifier</a></span></code></th> |
| <td class="colLast"> |
| <div class="block"><span class="deprecatedLabel">Deprecated.</span></div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><code>static class </code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RexUtil.FieldAccessFinder.html" title="class in org.apache.calcite.rex">RexUtil.FieldAccessFinder</a></span></code></th> |
| <td class="colLast"> |
| <div class="block">Visitor which builds a bitmap of the inputs used by an expression.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><code>static class </code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RexUtil.FixNullabilityShuttle.html" title="class in org.apache.calcite.rex">RexUtil.FixNullabilityShuttle</a></span></code></th> |
| <td class="colLast"> |
| <div class="block">Shuttle that fixes up an expression to match changes in nullability of |
| input fields.</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="RexUtil.ForwardRefFinder.html" title="class in org.apache.calcite.rex">RexUtil.ForwardRefFinder</a></span></code></th> |
| <td class="colLast"> |
| <div class="block">Walks over an expression and throws an exception if it finds an |
| <a href="RexInputRef.html" title="class in org.apache.calcite.rex"><code>RexInputRef</code></a> with an ordinal beyond the number of fields in the |
| input row type, or a <a href="RexLocalRef.html" title="class in org.apache.calcite.rex"><code>RexLocalRef</code></a> with ordinal greater than that set |
| using <a href="RexUtil.ForwardRefFinder.html#setLimit(int)"><code>RexUtil.ForwardRefFinder.setLimit(int)</code></a>.</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="RexUtil.RexShiftShuttle.html" title="class in org.apache.calcite.rex">RexUtil.RexShiftShuttle</a></span></code></th> |
| <td class="colLast"> |
| <div class="block">Shuttle that adds <code>offset</code> to each <a href="RexInputRef.html" title="class in org.apache.calcite.rex"><code>RexInputRef</code></a> in an |
| expression.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><code>static class </code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RexUtil.SubQueryFinder.html" title="class in org.apache.calcite.rex">RexUtil.SubQueryFinder</a></span></code></th> |
| <td class="colLast"> |
| <div class="block">Visitor that throws <a href="../util/Util.FoundOne.html" title="class in org.apache.calcite.util"><code>Util.FoundOne</code></a> if |
| applied to an expression that contains a <a href="RexSubQuery.html" title="class in org.apache.calcite.rex"><code>RexSubQuery</code></a>.</div> |
| </td> |
| </tr> |
| </table> |
| </li> |
| </ul> |
| </section> |
| <!-- =========== FIELD SUMMARY =========== --> |
| <section role="region"> |
| <ul class="blockList"> |
| <li class="blockList"><a id="field.summary"> |
| <!-- --> |
| </a> |
| <h3>Field Summary</h3> |
| <table class="memberSummary"> |
| <caption><span>Fields</span><span class="tabEnd"> </span></caption> |
| <tr> |
| <th class="colFirst" scope="col">Modifier and Type</th> |
| <th class="colSecond" scope="col">Field</th> |
| <th class="colLast" scope="col">Description</th> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><code>static <a href="RexExecutor.html" title="interface in org.apache.calcite.rex">RexExecutor</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EXECUTOR">EXECUTOR</a></span></code></th> |
| <td class="colLast"> |
| <div class="block">Executor for a bit of constant reduction.</div> |
| </td> |
| </tr> |
| </table> |
| </li> |
| </ul> |
| </section> |
| <!-- ======== CONSTRUCTOR SUMMARY ======== --> |
| <section role="region"> |
| <ul class="blockList"> |
| <li class="blockList"><a id="constructor.summary"> |
| <!-- --> |
| </a> |
| <h3>Constructor Summary</h3> |
| <table class="memberSummary"> |
| <caption><span>Constructors</span><span class="tabEnd"> </span></caption> |
| <tr> |
| <th class="colFirst" scope="col">Modifier</th> |
| <th class="colSecond" scope="col">Constructor</th> |
| <th class="colLast" scope="col">Description</th> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><code>private </code></td> |
| <th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">RexUtil</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="t1" class="tableTab"><span><a href="javascript:show(1);">Static 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><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated 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 static void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addAnd(com.google.common.collect.ImmutableList.Builder,java.util.Set,org.apache.calcite.rex.RexNode)">addAnd</a></span>​(com.google.common.collect.ImmutableList.Builder<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> builder, |
| java.util.Set<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> digests, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> node)</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i1" class="rowColor"> |
| <td class="colFirst"><code>private static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addNot(org.apache.calcite.rex.RexNode)">addNot</a></span>​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> e)</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i2" class="altColor"> |
| <td class="colFirst"><code>private static void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addOr(com.google.common.collect.ImmutableList.Builder,java.util.Set,org.apache.calcite.rex.RexNode)">addOr</a></span>​(com.google.common.collect.ImmutableList.Builder<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> builder, |
| java.util.Set<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> set, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> node)</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i3" class="rowColor"> |
| <td class="colFirst"><code>static <E> boolean</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#all(java.util.List,org.apache.calcite.linq4j.function.Predicate1)">all</a></span>​(java.util.List<? extends E> list, |
| <a href="../linq4j/function/Predicate1.html" title="interface in org.apache.calcite.linq4j.function">Predicate1</a><E> predicate)</code></th> |
| <td class="colLast"> |
| <div class="block">Returns whether <code>predicate</code> is true for all elements of |
| <code>list</code>.</div> |
| </td> |
| </tr> |
| <tr id="i4" class="altColor"> |
| <td class="colFirst"><code>static boolean</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#allLiterals(java.util.List)">allLiterals</a></span>​(java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> expressionOperands)</code></th> |
| <td class="colLast"> |
| <div class="block">Returns whether every expression in a list is a literal.</div> |
| </td> |
| </tr> |
| <tr id="i5" class="rowColor"> |
| <td class="colFirst"><code>static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#andNot(org.apache.calcite.rex.RexBuilder,org.apache.calcite.rex.RexNode,java.lang.Iterable)">andNot</a></span>​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> e, |
| java.lang.Iterable<? extends <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> notTerms)</code></th> |
| <td class="colLast"> |
| <div class="block">Creates the expression <code>e1 AND NOT notTerm1 AND NOT notTerm2 ...</code>.</div> |
| </td> |
| </tr> |
| <tr id="i6" class="altColor"> |
| <td class="colFirst"><code>static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#andNot(org.apache.calcite.rex.RexBuilder,org.apache.calcite.rex.RexNode,org.apache.calcite.rex.RexNode...)">andNot</a></span>​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> e, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>... notTerms)</code></th> |
| <td class="colLast"> |
| <div class="block">Creates the expression <code>e1 AND NOT notTerm1 AND NOT notTerm2 ...</code>.</div> |
| </td> |
| </tr> |
| <tr id="i7" class="rowColor"> |
| <td class="colFirst"><code>static void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#apply(org.apache.calcite.rex.RexVisitor,java.util.List,org.apache.calcite.rex.RexNode)">apply</a></span>​(<a href="RexVisitor.html" title="interface in org.apache.calcite.rex">RexVisitor</a><java.lang.Void> visitor, |
| java.util.List<? extends <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> exprs, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> expr)</code></th> |
| <td class="colLast"> |
| <div class="block">Applies a visitor to a list of expressions and, if specified, a single |
| expression.</div> |
| </td> |
| </tr> |
| <tr id="i8" class="altColor"> |
| <td class="colFirst"><code>static void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#apply(org.apache.calcite.rex.RexVisitor,org.apache.calcite.rex.RexNode%5B%5D,org.apache.calcite.rex.RexNode)">apply</a></span>​(<a href="RexVisitor.html" title="interface in org.apache.calcite.rex">RexVisitor</a><java.lang.Void> visitor, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>[] exprs, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> expr)</code></th> |
| <td class="colLast"> |
| <div class="block">Applies a visitor to an array of expressions and, if specified, a single |
| expression.</div> |
| </td> |
| </tr> |
| <tr id="i9" class="rowColor"> |
| <td class="colFirst"><code>static <T extends <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>><br>T[]</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#apply(org.apache.calcite.rex.RexVisitor,T%5B%5D)">apply</a></span>​(<a href="RexVisitor.html" title="interface in org.apache.calcite.rex">RexVisitor</a><T> shuttle, |
| T[] exprs)</code></th> |
| <td class="colLast"> |
| <div class="block">Applies a shuttle to an array of expressions.</div> |
| </td> |
| </tr> |
| <tr id="i10" class="altColor"> |
| <td class="colFirst"><code>static java.lang.Iterable<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#apply(org.apache.calcite.util.mapping.Mappings.TargetMapping,java.lang.Iterable)">apply</a></span>​(<a href="../util/mapping/Mappings.TargetMapping.html" title="interface in org.apache.calcite.util.mapping">Mappings.TargetMapping</a> mapping, |
| java.lang.Iterable<? extends <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> nodes)</code></th> |
| <td class="colLast"> |
| <div class="block">Applies a mapping to an iterable over expressions.</div> |
| </td> |
| </tr> |
| <tr id="i11" class="rowColor"> |
| <td class="colFirst"><code>static java.util.List<<a href="../rel/RelCollation.html" title="interface in org.apache.calcite.rel">RelCollation</a>></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#apply(org.apache.calcite.util.mapping.Mappings.TargetMapping,java.util.List)">apply</a></span>​(<a href="../util/mapping/Mappings.TargetMapping.html" title="interface in org.apache.calcite.util.mapping">Mappings.TargetMapping</a> mapping, |
| java.util.List<<a href="../rel/RelCollation.html" title="interface in org.apache.calcite.rel">RelCollation</a>> collationList)</code></th> |
| <td class="colLast"> |
| <div class="block">Applies a mapping to a collation list.</div> |
| </td> |
| </tr> |
| <tr id="i12" class="altColor"> |
| <td class="colFirst"><code>static <a href="../rel/RelCollation.html" title="interface in org.apache.calcite.rel">RelCollation</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#apply(org.apache.calcite.util.mapping.Mappings.TargetMapping,org.apache.calcite.rel.RelCollation)">apply</a></span>​(<a href="../util/mapping/Mappings.TargetMapping.html" title="interface in org.apache.calcite.util.mapping">Mappings.TargetMapping</a> mapping, |
| <a href="../rel/RelCollation.html" title="interface in org.apache.calcite.rel">RelCollation</a> collation)</code></th> |
| <td class="colLast"> |
| <div class="block">Applies a mapping to a collation.</div> |
| </td> |
| </tr> |
| <tr id="i13" class="rowColor"> |
| <td class="colFirst"><code>static <a href="../rel/RelFieldCollation.html" title="class in org.apache.calcite.rel">RelFieldCollation</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#apply(org.apache.calcite.util.mapping.Mappings.TargetMapping,org.apache.calcite.rel.RelFieldCollation)">apply</a></span>​(<a href="../util/mapping/Mappings.TargetMapping.html" title="interface in org.apache.calcite.util.mapping">Mappings.TargetMapping</a> mapping, |
| <a href="../rel/RelFieldCollation.html" title="class in org.apache.calcite.rel">RelFieldCollation</a> fieldCollation)</code></th> |
| <td class="colLast"> |
| <div class="block">Applies a mapping to a field collation.</div> |
| </td> |
| </tr> |
| <tr id="i14" class="altColor"> |
| <td class="colFirst"><code>static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#apply(org.apache.calcite.util.mapping.Mappings.TargetMapping,org.apache.calcite.rex.RexNode)">apply</a></span>​(<a href="../util/mapping/Mappings.TargetMapping.html" title="interface in org.apache.calcite.util.mapping">Mappings.TargetMapping</a> mapping, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> node)</code></th> |
| <td class="colLast"> |
| <div class="block">Applies a mapping to an expression.</div> |
| </td> |
| </tr> |
| <tr id="i15" class="rowColor"> |
| <td class="colFirst"><code>static java.util.List<<a href="../rel/RelFieldCollation.html" title="class in org.apache.calcite.rel">RelFieldCollation</a>></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#applyFields(org.apache.calcite.util.mapping.Mappings.TargetMapping,java.util.List)">applyFields</a></span>​(<a href="../util/mapping/Mappings.TargetMapping.html" title="interface in org.apache.calcite.util.mapping">Mappings.TargetMapping</a> mapping, |
| java.util.List<<a href="../rel/RelFieldCollation.html" title="class in org.apache.calcite.rel">RelFieldCollation</a>> fieldCollations)</code></th> |
| <td class="colLast"> |
| <div class="block">Applies a mapping to a list of field collations.</div> |
| </td> |
| </tr> |
| <tr id="i16" class="altColor"> |
| <td class="colFirst"><code>private static boolean</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#canAssignFrom(org.apache.calcite.rel.type.RelDataType,org.apache.calcite.rel.type.RelDataType)">canAssignFrom</a></span>​(<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a> type1, |
| <a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a> type2)</code></th> |
| <td class="colLast"> |
| <div class="block">Returns whether a value of <code>type2</code> can be assigned to a variable |
| of <code>type1</code>.</div> |
| </td> |
| </tr> |
| <tr id="i17" class="rowColor"> |
| <td class="colFirst"><code>static boolean</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#canReinterpretOverflow(org.apache.calcite.rex.RexCall)">canReinterpretOverflow</a></span>​(<a href="RexCall.html" title="class in org.apache.calcite.rex">RexCall</a> call)</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i18" class="altColor"> |
| <td class="colFirst"><code>static boolean</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#compatibleTypes(java.util.List,org.apache.calcite.rel.type.RelDataType,org.apache.calcite.util.Litmus)">compatibleTypes</a></span>​(java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> exprs, |
| <a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a> type, |
| <a href="../util/Litmus.html" title="interface in org.apache.calcite.util">Litmus</a> litmus)</code></th> |
| <td class="colLast"> |
| <div class="block">Returns whether the type of an array of expressions is compatible with a |
| struct type.</div> |
| </td> |
| </tr> |
| <tr id="i19" class="rowColor"> |
| <td class="colFirst"><code>static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#composeConjunction(org.apache.calcite.rex.RexBuilder,java.lang.Iterable)">composeConjunction</a></span>​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| java.lang.Iterable<? extends <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> nodes)</code></th> |
| <td class="colLast"> |
| <div class="block">As <a href="#composeConjunction(org.apache.calcite.rex.RexBuilder,java.lang.Iterable,boolean)"><code>composeConjunction(RexBuilder, Iterable, boolean)</code></a> but never |
| returns null.</div> |
| </td> |
| </tr> |
| <tr id="i20" class="altColor"> |
| <td class="colFirst"><code>static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#composeConjunction(org.apache.calcite.rex.RexBuilder,java.lang.Iterable,boolean)">composeConjunction</a></span>​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| java.lang.Iterable<? extends <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> nodes, |
| boolean nullOnEmpty)</code></th> |
| <td class="colLast"> |
| <div class="block">Converts a collection of expressions into an AND.</div> |
| </td> |
| </tr> |
| <tr id="i21" class="rowColor"> |
| <td class="colFirst"><code>static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#composeDisjunction(org.apache.calcite.rex.RexBuilder,java.lang.Iterable)">composeDisjunction</a></span>​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| java.lang.Iterable<? extends <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> nodes)</code></th> |
| <td class="colLast"> |
| <div class="block">Converts a collection of expressions into an OR.</div> |
| </td> |
| </tr> |
| <tr id="i22" class="altColor"> |
| <td class="colFirst"><code>static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#composeDisjunction(org.apache.calcite.rex.RexBuilder,java.lang.Iterable,boolean)">composeDisjunction</a></span>​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| java.lang.Iterable<? extends <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> nodes, |
| boolean nullOnEmpty)</code></th> |
| <td class="colLast"> |
| <div class="block">Converts a collection of expressions into an OR, |
| optionally returning null if the list is empty.</div> |
| </td> |
| </tr> |
| <tr id="i23" class="rowColor"> |
| <td class="colFirst"><code>static boolean</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#containComplexExprs(java.util.List)">containComplexExprs</a></span>​(java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> exprs)</code></th> |
| <td class="colLast"> |
| <div class="block">Returns whether a list of expressions contains complex expressions, that |
| is, a call whose arguments are not <a href="RexVariable.html" title="class in org.apache.calcite.rex"><code>RexVariable</code></a> (or a subtype such |
| as <a href="RexInputRef.html" title="class in org.apache.calcite.rex"><code>RexInputRef</code></a>) or <a href="RexLiteral.html" title="class in org.apache.calcite.rex"><code>RexLiteral</code></a>.</div> |
| </td> |
| </tr> |
| <tr id="i24" class="altColor"> |
| <td class="colFirst"><code>static boolean</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#containIdentity(java.util.List,org.apache.calcite.rel.type.RelDataType,org.apache.calcite.util.Litmus)">containIdentity</a></span>​(java.util.List<? extends <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> exprs, |
| <a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a> rowType, |
| <a href="../util/Litmus.html" title="interface in org.apache.calcite.util">Litmus</a> litmus)</code></th> |
| <td class="colLast"> |
| <div class="block">Returns whether the leading edge of a given array of expressions is |
| wholly <a href="RexInputRef.html" title="class in org.apache.calcite.rex"><code>RexInputRef</code></a> objects with types corresponding to the |
| underlying datatype.</div> |
| </td> |
| </tr> |
| <tr id="i25" class="rowColor"> |
| <td class="colFirst"><code>static boolean</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#containNoCommonExprs(java.util.List,org.apache.calcite.util.Litmus)">containNoCommonExprs</a></span>​(java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> exprs, |
| <a href="../util/Litmus.html" title="interface in org.apache.calcite.util">Litmus</a> litmus)</code></th> |
| <td class="colLast"> |
| <div class="block">Returns whether an array of expressions has any common sub-expressions.</div> |
| </td> |
| </tr> |
| <tr id="i26" class="altColor"> |
| <td class="colFirst"><code>static boolean</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#containNoForwardRefs(java.util.List,org.apache.calcite.rel.type.RelDataType,org.apache.calcite.util.Litmus)">containNoForwardRefs</a></span>​(java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> exprs, |
| <a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a> inputRowType, |
| <a href="../util/Litmus.html" title="interface in org.apache.calcite.util">Litmus</a> litmus)</code></th> |
| <td class="colLast"> |
| <div class="block">Returns whether an array of expressions contains no forward references.</div> |
| </td> |
| </tr> |
| <tr id="i27" class="rowColor"> |
| <td class="colFirst"><code>(package private) static boolean</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#containNoNonTrivialAggs(java.util.List,org.apache.calcite.util.Litmus)">containNoNonTrivialAggs</a></span>​(java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> exprs, |
| <a href="../util/Litmus.html" title="interface in org.apache.calcite.util">Litmus</a> litmus)</code></th> |
| <td class="colLast"> |
| <div class="block">Returns whether an array of exp contains no aggregate function calls whose |
| arguments are not <a href="RexInputRef.html" title="class in org.apache.calcite.rex"><code>RexInputRef</code></a>s.</div> |
| </td> |
| </tr> |
| <tr id="i28" class="altColor"> |
| <td class="colFirst"><code>static boolean</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#containsCorrelation(org.apache.calcite.rex.RexNode)">containsCorrelation</a></span>​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> condition)</code></th> |
| <td class="colLast"> |
| <div class="block">Returns whether an expression contains a <a href="RexCorrelVariable.html" title="class in org.apache.calcite.rex"><code>RexCorrelVariable</code></a>.</div> |
| </td> |
| </tr> |
| <tr id="i29" class="rowColor"> |
| <td class="colFirst"><code>private static boolean</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#containsFalse(java.lang.Iterable)">containsFalse</a></span>​(java.lang.Iterable<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> nodes)</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i30" class="altColor"> |
| <td class="colFirst"><code>static boolean</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#containsFieldAccess(org.apache.calcite.rex.RexNode)">containsFieldAccess</a></span>​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> node)</code></th> |
| <td class="colLast"> |
| <div class="block">Returns whether a given tree contains any |
| <a href="RexFieldAccess.html" title="class in org.apache.calcite.rex"><code>RexFieldAccess</code></a> nodes.</div> |
| </td> |
| </tr> |
| <tr id="i31" class="rowColor"> |
| <td class="colFirst"><code>static boolean</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#containsInputRef(org.apache.calcite.rex.RexNode)">containsInputRef</a></span>​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> node)</code></th> |
| <td class="colLast"> |
| <div class="block">Returns whether a given tree contains any {link RexInputRef} nodes.</div> |
| </td> |
| </tr> |
| <tr id="i32" class="altColor"> |
| <td class="colFirst"><code>static boolean</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#containsTableInputRef(java.util.List)">containsTableInputRef</a></span>​(java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> nodes)</code></th> |
| <td class="colLast"> |
| <div class="block">Returns whether any of the given expression trees contains a |
| {link RexTableInputRef} node.</div> |
| </td> |
| </tr> |
| <tr id="i33" class="rowColor"> |
| <td class="colFirst"><code>static <a href="RexTableInputRef.html" title="class in org.apache.calcite.rex">RexTableInputRef</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#containsTableInputRef(org.apache.calcite.rex.RexNode)">containsTableInputRef</a></span>​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> node)</code></th> |
| <td class="colLast"> |
| <div class="block">Returns whether a given tree contains any {link RexTableInputRef} nodes.</div> |
| </td> |
| </tr> |
| <tr id="i34" class="altColor"> |
| <td class="colFirst"><code>private static boolean</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#containsTrue(java.lang.Iterable)">containsTrue</a></span>​(java.lang.Iterable<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> nodes)</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i35" class="rowColor"> |
| <td class="colFirst"><code>static <a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createStructType(org.apache.calcite.rel.type.RelDataTypeFactory,java.util.List,java.util.List)">createStructType</a></span>​(<a href="../rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a> typeFactory, |
| java.util.List<? extends <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> exprs, |
| java.util.List<java.lang.String> names)</code></th> |
| <td class="colLast"> |
| <div class="block"><span class="deprecatedLabel">Deprecated.</span></div> |
| </td> |
| </tr> |
| <tr id="i36" class="altColor"> |
| <td class="colFirst"><code>static <a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createStructType(org.apache.calcite.rel.type.RelDataTypeFactory,java.util.List,java.util.List,org.apache.calcite.sql.validate.SqlValidatorUtil.Suggester)">createStructType</a></span>​(<a href="../rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a> typeFactory, |
| java.util.List<? extends <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> exprs, |
| java.util.List<java.lang.String> names, |
| <a href="../sql/validate/SqlValidatorUtil.Suggester.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorUtil.Suggester</a> suggester)</code></th> |
| <td class="colLast"> |
| <div class="block">Creates a record type with specified field names.</div> |
| </td> |
| </tr> |
| <tr id="i37" class="rowColor"> |
| <td class="colFirst"><code>static <a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createStructType(org.apache.calcite.rel.type.RelDataTypeFactory,java.util.List)">createStructType</a></span>​(<a href="../rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a> typeFactory, |
| java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> exprs)</code></th> |
| <td class="colLast"> |
| <div class="block">Creates a record type with anonymous field names.</div> |
| </td> |
| </tr> |
| <tr id="i38" class="altColor"> |
| <td class="colFirst"><code>private static void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#decompose(java.util.Set,org.apache.calcite.rex.RexNode)">decompose</a></span>​(java.util.Set<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> set, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> rexNode)</code></th> |
| <td class="colLast"> |
| <div class="block">Tries to decompose the RexNode which is a RexCall into non-literal |
| RexNodes.</div> |
| </td> |
| </tr> |
| <tr id="i39" class="rowColor"> |
| <td class="colFirst"><code>static boolean</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#eq(org.apache.calcite.rex.RexNode,org.apache.calcite.rex.RexNode)">eq</a></span>​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> e1, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> e2)</code></th> |
| <td class="colLast"> |
| <div class="block"><span class="deprecatedLabel">Deprecated.</span></div> |
| </td> |
| </tr> |
| <tr id="i40" class="altColor"> |
| <td class="colFirst"><code>static <E> boolean</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#exists(java.util.List,org.apache.calcite.linq4j.function.Predicate1)">exists</a></span>​(java.util.List<? extends E> list, |
| <a href="../linq4j/function/Predicate1.html" title="interface in org.apache.calcite.linq4j.function">Predicate1</a><E> predicate)</code></th> |
| <td class="colLast"> |
| <div class="block">Returns whether there is an element in <code>list</code> for which |
| <code>predicate</code> is true.</div> |
| </td> |
| </tr> |
| <tr id="i41" class="rowColor"> |
| <td class="colFirst"><code>static java.util.List<<a href="../rel/type/RelDataTypeFamily.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFamily</a>></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#families(java.util.List)">families</a></span>​(java.util.List<<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>> types)</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i42" class="altColor"> |
| <td class="colFirst"><code>static <a href="RexCall.html" title="class in org.apache.calcite.rex">RexCall</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#findOperatorCall(org.apache.calcite.sql.SqlOperator,org.apache.calcite.rex.RexNode)">findOperatorCall</a></span>​(<a href="../sql/SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a> operator, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> node)</code></th> |
| <td class="colLast"> |
| <div class="block">Returns whether a given node contains a RexCall with a specified operator</div> |
| </td> |
| </tr> |
| <tr id="i43" class="rowColor"> |
| <td class="colFirst"><code>static java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fixUp(org.apache.calcite.rex.RexBuilder,java.util.List,java.util.List)">fixUp</a></span>​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> nodes, |
| java.util.List<<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>> fieldTypes)</code></th> |
| <td class="colLast"> |
| <div class="block">Fixes up the type of all <a href="RexInputRef.html" title="class in org.apache.calcite.rex"><code>RexInputRef</code></a>s in an |
| expression to match differences in nullability.</div> |
| </td> |
| </tr> |
| <tr id="i44" class="altColor"> |
| <td class="colFirst"><code>static java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fixUp(org.apache.calcite.rex.RexBuilder,java.util.List,org.apache.calcite.rel.type.RelDataType)">fixUp</a></span>​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> nodes, |
| <a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a> rowType)</code></th> |
| <td class="colLast"> |
| <div class="block"><span class="deprecatedLabel">Deprecated.</span></div> |
| </td> |
| </tr> |
| <tr id="i45" class="rowColor"> |
| <td class="colFirst"><code>static java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#flatten(java.util.List,org.apache.calcite.sql.SqlOperator)">flatten</a></span>​(java.util.List<? extends <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> exprs, |
| <a href="../sql/SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a> op)</code></th> |
| <td class="colLast"> |
| <div class="block">Converts a list of operands into a list that is flat with respect to |
| the given operator.</div> |
| </td> |
| </tr> |
| <tr id="i46" class="altColor"> |
| <td class="colFirst"><code>static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#flatten(org.apache.calcite.rex.RexBuilder,org.apache.calcite.rex.RexNode)">flatten</a></span>​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> node)</code></th> |
| <td class="colLast"> |
| <div class="block">Flattens an expression.</div> |
| </td> |
| </tr> |
| <tr id="i47" class="rowColor"> |
| <td class="colFirst"><code>static com.google.common.collect.ImmutableList<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#flattenAnd(java.lang.Iterable)">flattenAnd</a></span>​(java.lang.Iterable<? extends <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> nodes)</code></th> |
| <td class="colLast"> |
| <div class="block">Flattens a list of AND nodes.</div> |
| </td> |
| </tr> |
| <tr id="i48" class="altColor"> |
| <td class="colFirst"><code>static com.google.common.collect.ImmutableList<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#flattenOr(java.lang.Iterable)">flattenOr</a></span>​(java.lang.Iterable<? extends <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> nodes)</code></th> |
| <td class="colLast"> |
| <div class="block">Flattens a list of OR nodes.</div> |
| </td> |
| </tr> |
| <tr id="i49" class="rowColor"> |
| <td class="colFirst"><code>private static void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#flattenRecurse(java.util.List,java.util.List,org.apache.calcite.sql.SqlOperator)">flattenRecurse</a></span>​(java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> list, |
| java.util.List<? extends <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> exprs, |
| <a href="../sql/SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a> op)</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i50" class="altColor"> |
| <td class="colFirst"><code>private static <C extends <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>><br>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#gatherConstraint(java.lang.Class,org.apache.calcite.rex.RexNode,org.apache.calcite.rex.RexNode,java.util.Map,java.util.Set,org.apache.calcite.rex.RexBuilder)">gatherConstraint</a></span>​(java.lang.Class<C> clazz, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> left, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> right, |
| java.util.Map<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>,​C> map, |
| java.util.Set<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> excludeSet, |
| <a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder)</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i51" class="rowColor"> |
| <td class="colFirst"><code>private static <C extends <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>><br>void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#gatherConstraints(java.lang.Class,org.apache.calcite.rex.RexNode,java.util.Map,java.util.Set,org.apache.calcite.rex.RexBuilder)">gatherConstraints</a></span>​(java.lang.Class<C> clazz, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> predicate, |
| java.util.Map<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>,​C> map, |
| java.util.Set<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> excludeSet, |
| <a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder)</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i52" class="altColor"> |
| <td class="colFirst"><code>static java.util.Set<<a href="RexTableInputRef.RelTableRef.html" title="class in org.apache.calcite.rex">RexTableInputRef.RelTableRef</a>></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#gatherTableReferences(java.util.List)">gatherTableReferences</a></span>​(java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> nodes)</code></th> |
| <td class="colLast"> |
| <div class="block">Gather all table references in input expressions.</div> |
| </td> |
| </tr> |
| <tr id="i53" class="rowColor"> |
| <td class="colFirst"><code>static java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#generateCastExpressions(org.apache.calcite.rex.RexBuilder,org.apache.calcite.rel.type.RelDataType,java.util.List)">generateCastExpressions</a></span>​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| <a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a> lhsRowType, |
| java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> rhsExps)</code></th> |
| <td class="colLast"> |
| <div class="block">Generates a cast for a row type.</div> |
| </td> |
| </tr> |
| <tr id="i54" class="altColor"> |
| <td class="colFirst"><code>static java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#generateCastExpressions(org.apache.calcite.rex.RexBuilder,org.apache.calcite.rel.type.RelDataType,org.apache.calcite.rel.type.RelDataType)">generateCastExpressions</a></span>​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| <a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a> lhsRowType, |
| <a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a> rhsRowType)</code></th> |
| <td class="colLast"> |
| <div class="block">Generates a cast from one row type to another</div> |
| </td> |
| </tr> |
| <tr id="i55" class="rowColor"> |
| <td class="colFirst"><code>static double</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSelectivity(org.apache.calcite.rex.RexNode)">getSelectivity</a></span>​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> exp)</code></th> |
| <td class="colLast"> |
| <div class="block">Returns a guess for the selectivity of an expression.</div> |
| </td> |
| </tr> |
| <tr id="i56" class="altColor"> |
| <td class="colFirst"><code>static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#invert(org.apache.calcite.rex.RexBuilder,org.apache.calcite.rex.RexCall)">invert</a></span>​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| <a href="RexCall.html" title="class in org.apache.calcite.rex">RexCall</a> call)</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i57" class="rowColor"> |
| <td class="colFirst"><code>private static boolean</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isAssociative(org.apache.calcite.sql.SqlOperator)">isAssociative</a></span>​(<a href="../sql/SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a> op)</code></th> |
| <td class="colLast"> |
| <div class="block">Returns whether an operator is associative.</div> |
| </td> |
| </tr> |
| <tr id="i58" class="altColor"> |
| <td class="colFirst"><code>static boolean</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isAtomic(org.apache.calcite.rex.RexNode)">isAtomic</a></span>​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> expr)</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i59" class="rowColor"> |
| <td class="colFirst"><code>static boolean</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isCallTo(org.apache.calcite.rex.RexNode,org.apache.calcite.sql.SqlOperator)">isCallTo</a></span>​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> expr, |
| <a href="../sql/SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a> op)</code></th> |
| <td class="colLast"> |
| <div class="block">Returns whether a <a href="RexNode.html" title="class in org.apache.calcite.rex"><code>node</code></a> is a <a href="RexCall.html" title="class in org.apache.calcite.rex"><code>call</code></a> to a |
| given <a href="../sql/SqlOperator.html" title="class in org.apache.calcite.sql"><code>operator</code></a>.</div> |
| </td> |
| </tr> |
| <tr id="i60" class="altColor"> |
| <td class="colFirst"><code>static boolean</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isCasePredicate(org.apache.calcite.rex.RexCall,int)">isCasePredicate</a></span>​(<a href="RexCall.html" title="class in org.apache.calcite.rex">RexCall</a> call, |
| int i)</code></th> |
| <td class="colLast"> |
| <div class="block">Returns whether a given operand of a CASE expression is a predicate.</div> |
| </td> |
| </tr> |
| <tr id="i61" class="rowColor"> |
| <td class="colFirst"><code>static boolean</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isConstant(org.apache.calcite.rex.RexNode)">isConstant</a></span>​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> node)</code></th> |
| <td class="colLast"> |
| <div class="block">Returns whether node is made up of constants.</div> |
| </td> |
| </tr> |
| <tr id="i62" class="altColor"> |
| <td class="colFirst"><code>static boolean</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isDeterministic(org.apache.calcite.rex.RexNode)">isDeterministic</a></span>​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> e)</code></th> |
| <td class="colLast"> |
| <div class="block">Returns whether a given expression is deterministic.</div> |
| </td> |
| </tr> |
| <tr id="i63" class="rowColor"> |
| <td class="colFirst"><code>private static boolean</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isFlat(java.util.List,org.apache.calcite.sql.SqlOperator)">isFlat</a></span>​(java.util.List<? extends <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> exprs, |
| <a href="../sql/SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a> op)</code></th> |
| <td class="colLast"> |
| <div class="block">Returns whether a call to <code>op</code> with <code>exprs</code> as arguments |
| would be considered "flat".</div> |
| </td> |
| </tr> |
| <tr id="i64" class="altColor"> |
| <td class="colFirst"><code>static boolean</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isFlat(org.apache.calcite.rex.RexNode)">isFlat</a></span>​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> expr)</code></th> |
| <td class="colLast"> |
| <div class="block">Returns false if the expression can be optimized by flattening |
| calls to an associative operator such as AND and OR.</div> |
| </td> |
| </tr> |
| <tr id="i65" class="rowColor"> |
| <td class="colFirst"><code>static boolean</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isIdentity(java.util.List,org.apache.calcite.rel.type.RelDataType)">isIdentity</a></span>​(java.util.List<? extends <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> exps, |
| <a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a> inputRowType)</code></th> |
| <td class="colLast"> |
| <div class="block">Returns whether a list of expressions projects the incoming fields.</div> |
| </td> |
| </tr> |
| <tr id="i66" class="altColor"> |
| <td class="colFirst"><code>static boolean</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isLiteral(org.apache.calcite.rex.RexNode,boolean)">isLiteral</a></span>​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> node, |
| boolean allowCast)</code></th> |
| <td class="colLast"> |
| <div class="block">Returns whether a node represents a literal.</div> |
| </td> |
| </tr> |
| <tr id="i67" class="rowColor"> |
| <td class="colFirst"><code>static boolean</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isLosslessCast(org.apache.calcite.rex.RexNode)">isLosslessCast</a></span>​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> node)</code></th> |
| <td class="colLast"> |
| <div class="block">Returns whether the input is a 'loss-less' cast, that is, a cast from which |
| the original value of the field can be certainly recovered.</div> |
| </td> |
| </tr> |
| <tr id="i68" class="altColor"> |
| <td class="colFirst"><code>static boolean</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isNull(org.apache.calcite.rex.RexNode)">isNull</a></span>​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> expr)</code></th> |
| <td class="colLast"> |
| <div class="block">Returns whether a node represents the NULL value or a series of nested |
| <code>CAST(NULL AS type)</code> calls.</div> |
| </td> |
| </tr> |
| <tr id="i69" class="rowColor"> |
| <td class="colFirst"><code>static boolean</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isNullabilityCast(org.apache.calcite.rel.type.RelDataTypeFactory,org.apache.calcite.rex.RexNode)">isNullabilityCast</a></span>​(<a href="../rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a> typeFactory, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> node)</code></th> |
| <td class="colLast"> |
| <div class="block">Returns whether an expression is a cast just for the purposes of |
| nullability, not changing any other aspect of the type.</div> |
| </td> |
| </tr> |
| <tr id="i70" class="altColor"> |
| <td class="colFirst"><code>static boolean</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isNullLiteral(org.apache.calcite.rex.RexNode,boolean)">isNullLiteral</a></span>​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> node, |
| boolean allowCast)</code></th> |
| <td class="colLast"> |
| <div class="block">Returns whether a node represents the NULL value.</div> |
| </td> |
| </tr> |
| <tr id="i71" class="rowColor"> |
| <td class="colFirst"><code>static boolean</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isReferenceOrAccess(org.apache.calcite.rex.RexNode,boolean)">isReferenceOrAccess</a></span>​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> node, |
| boolean allowCast)</code></th> |
| <td class="colLast"> |
| <div class="block">Returns whether a node represents an input reference or field access.</div> |
| </td> |
| </tr> |
| <tr id="i72" class="altColor"> |
| <td class="colFirst"><code>static <a href="../util/Pair.html" title="class in org.apache.calcite.util">Pair</a><<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>,​java.lang.String></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#makeKey(org.apache.calcite.rex.RexNode)">makeKey</a></span>​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> expr)</code></th> |
| <td class="colLast"> |
| <div class="block">Creates a key for <a href="RexNode.html" title="class in org.apache.calcite.rex"><code>RexNode</code></a> which is the same as another key of |
| another RexNode only if the two have both the same type and textual |
| representation.</div> |
| </td> |
| </tr> |
| <tr id="i73" class="rowColor"> |
| <td class="colFirst"><code>static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#negate(org.apache.calcite.rex.RexBuilder,org.apache.calcite.rex.RexCall)">negate</a></span>​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| <a href="RexCall.html" title="class in org.apache.calcite.rex">RexCall</a> call)</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i74" class="altColor"> |
| <td class="colFirst"><code>(package private) static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#not(org.apache.calcite.rex.RexBuilder,org.apache.calcite.rex.RexNode)">not</a></span>​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> input)</code></th> |
| <td class="colLast"> |
| <div class="block">Applies NOT to an expression.</div> |
| </td> |
| </tr> |
| <tr id="i75" class="rowColor"> |
| <td class="colFirst"><code>static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#not(org.apache.calcite.rex.RexNode)">not</a></span>​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> e)</code></th> |
| <td class="colLast"> |
| <div class="block">Negates a logical expression by adding or removing a NOT.</div> |
| </td> |
| </tr> |
| <tr id="i76" class="altColor"> |
| <td class="colFirst"><code>static com.google.common.base.Function<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>,​<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#notFn(org.apache.calcite.rex.RexBuilder)">notFn</a></span>​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder)</code></th> |
| <td class="colLast"> |
| <div class="block"><span class="deprecatedLabel">Deprecated.</span> |
| <div class="deprecationComment">Use <a href="#not(org.apache.calcite.rex.RexNode)"><code>not(org.apache.calcite.rex.RexNode)</code></a></div> |
| </div> |
| </td> |
| </tr> |
| <tr id="i77" class="rowColor"> |
| <td class="colFirst"><code>(package private) static <a href="../sql/SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#op(org.apache.calcite.sql.SqlKind)">op</a></span>​(<a href="../sql/SqlKind.html" title="enum in org.apache.calcite.sql">SqlKind</a> kind)</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i78" class="altColor"> |
| <td class="colFirst"><code>private static boolean</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#overlap(org.apache.calcite.rex.RexNode,java.util.Set)">overlap</a></span>​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> rexNode, |
| java.util.Set<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> set)</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i79" class="rowColor"> |
| <td class="colFirst"><code>static <C extends <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>><br>com.google.common.collect.ImmutableMap<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>,​C></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#predicateConstants(java.lang.Class,org.apache.calcite.rex.RexBuilder,java.util.List)">predicateConstants</a></span>​(java.lang.Class<C> clazz, |
| <a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> predicates)</code></th> |
| <td class="colLast"> |
| <div class="block">Creates a map containing each (e, constant) pair that occurs within |
| a predicate list.</div> |
| </td> |
| </tr> |
| <tr id="i80" class="altColor"> |
| <td class="colFirst"><code>static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#pullFactors(org.apache.calcite.rex.RexBuilder,org.apache.calcite.rex.RexNode)">pullFactors</a></span>​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> node)</code></th> |
| <td class="colLast"> |
| <div class="block">Creates an equivalent version of a node where common factors among ORs |
| are pulled up.</div> |
| </td> |
| </tr> |
| <tr id="i81" class="rowColor"> |
| <td class="colFirst"><code>static boolean</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeAll(java.util.List,org.apache.calcite.rex.RexNode)">removeAll</a></span>​(java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> targets, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> e)</code></th> |
| <td class="colLast"> |
| <div class="block">Removes all expressions from a list that are equivalent to a given |
| expression.</div> |
| </td> |
| </tr> |
| <tr id="i82" class="altColor"> |
| <td class="colFirst"><code>static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeCast(org.apache.calcite.rex.RexNode)">removeCast</a></span>​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> e)</code></th> |
| <td class="colLast"> |
| <div class="block">Removes any casts.</div> |
| </td> |
| </tr> |
| <tr id="i83" class="rowColor"> |
| <td class="colFirst"><code>static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeNullabilityCast(org.apache.calcite.rel.type.RelDataTypeFactory,org.apache.calcite.rex.RexNode)">removeNullabilityCast</a></span>​(<a href="../rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a> typeFactory, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> node)</code></th> |
| <td class="colLast"> |
| <div class="block">Removes any casts that change nullability but not type.</div> |
| </td> |
| </tr> |
| <tr id="i84" class="altColor"> |
| <td class="colFirst"><code>static boolean</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#requiresDecimalExpansion(java.util.List,boolean)">requiresDecimalExpansion</a></span>​(java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> operands, |
| boolean recurse)</code></th> |
| <td class="colLast"> |
| <div class="block">Determines whether any operand of a set requires decimal expansion</div> |
| </td> |
| </tr> |
| <tr id="i85" class="rowColor"> |
| <td class="colFirst"><code>static boolean</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#requiresDecimalExpansion(org.apache.calcite.rex.RexNode,boolean)">requiresDecimalExpansion</a></span>​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> expr, |
| boolean recurse)</code></th> |
| <td class="colLast"> |
| <div class="block">Determines whether a <a href="RexCall.html" title="class in org.apache.calcite.rex"><code>RexCall</code></a> requires decimal expansion.</div> |
| </td> |
| </tr> |
| <tr id="i86" class="altColor"> |
| <td class="colFirst"><code>static boolean</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#requiresDecimalExpansion(org.apache.calcite.rex.RexProgram,boolean)">requiresDecimalExpansion</a></span>​(<a href="RexProgram.html" title="class in org.apache.calcite.rex">RexProgram</a> program, |
| boolean recurse)</code></th> |
| <td class="colLast"> |
| <div class="block">Returns whether a <a href="RexProgram.html" title="class in org.apache.calcite.rex"><code>RexProgram</code></a> contains expressions which require |
| decimal expansion.</div> |
| </td> |
| </tr> |
| <tr id="i87" class="rowColor"> |
| <td class="colFirst"><code>static java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#retainDeterministic(java.util.List)">retainDeterministic</a></span>​(java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> list)</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i88" class="altColor"> |
| <td class="colFirst"><code>static java.lang.Iterable<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#shift(java.lang.Iterable,int)">shift</a></span>​(java.lang.Iterable<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> nodes, |
| int offset)</code></th> |
| <td class="colLast"> |
| <div class="block">Shifts every <a href="RexInputRef.html" title="class in org.apache.calcite.rex"><code>RexInputRef</code></a> in an expression by <code>offset</code>.</div> |
| </td> |
| </tr> |
| <tr id="i89" class="rowColor"> |
| <td class="colFirst"><code>static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#shift(org.apache.calcite.rex.RexNode,int)">shift</a></span>​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> node, |
| int offset)</code></th> |
| <td class="colLast"> |
| <div class="block">Shifts every <a href="RexInputRef.html" title="class in org.apache.calcite.rex"><code>RexInputRef</code></a> in an expression by <code>offset</code>.</div> |
| </td> |
| </tr> |
| <tr id="i90" class="altColor"> |
| <td class="colFirst"><code>static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#shift(org.apache.calcite.rex.RexNode,int,int)">shift</a></span>​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> node, |
| int start, |
| int offset)</code></th> |
| <td class="colLast"> |
| <div class="block">Shifts every <a href="RexInputRef.html" title="class in org.apache.calcite.rex"><code>RexInputRef</code></a> in an expression higher than <code>start</code> |
| by <code>offset</code>.</div> |
| </td> |
| </tr> |
| <tr id="i91" class="rowColor"> |
| <td class="colFirst"><code>static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#simplify(org.apache.calcite.rex.RexBuilder,org.apache.calcite.rex.RexNode)">simplify</a></span>​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> e)</code></th> |
| <td class="colLast"> |
| <div class="block"><span class="deprecatedLabel">Deprecated.</span> |
| <div class="deprecationComment">Create a <a href="RexSimplify.html" title="class in org.apache.calcite.rex"><code>RexSimplify</code></a>, then call its |
| <a href="RexSimplify.html#simplify(org.apache.calcite.rex.RexNode,org.apache.calcite.rex.RexUnknownAs)"><code>RexSimplify.simplify(RexNode, RexUnknownAs)</code></a> method.</div> |
| </div> |
| </td> |
| </tr> |
| <tr id="i92" class="altColor"> |
| <td class="colFirst"><code>static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#simplify(org.apache.calcite.rex.RexBuilder,org.apache.calcite.rex.RexNode,boolean)">simplify</a></span>​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> e, |
| boolean unknownAsFalse)</code></th> |
| <td class="colLast"> |
| <div class="block"><span class="deprecatedLabel">Deprecated.</span> |
| <div class="deprecationComment">Create a <a href="RexSimplify.html" title="class in org.apache.calcite.rex"><code>RexSimplify</code></a>, then call its |
| <a href="RexSimplify.html#simplify(org.apache.calcite.rex.RexNode,org.apache.calcite.rex.RexUnknownAs)"><code>RexSimplify.simplify(RexNode, RexUnknownAs)</code></a> method.</div> |
| </div> |
| </td> |
| </tr> |
| <tr id="i93" class="rowColor"> |
| <td class="colFirst"><code>static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#simplifyAnd(org.apache.calcite.rex.RexBuilder,org.apache.calcite.rex.RexCall,boolean)">simplifyAnd</a></span>​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| <a href="RexCall.html" title="class in org.apache.calcite.rex">RexCall</a> e, |
| boolean unknownAsFalse)</code></th> |
| <td class="colLast"> |
| <div class="block"><span class="deprecatedLabel">Deprecated.</span></div> |
| </td> |
| </tr> |
| <tr id="i94" class="altColor"> |
| <td class="colFirst"><code>static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#simplifyAnd2(org.apache.calcite.rex.RexBuilder,java.util.List,java.util.List)">simplifyAnd2</a></span>​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> terms, |
| java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> notTerms)</code></th> |
| <td class="colLast"> |
| <div class="block"><span class="deprecatedLabel">Deprecated.</span></div> |
| </td> |
| </tr> |
| <tr id="i95" class="rowColor"> |
| <td class="colFirst"><code>static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#simplifyAnd2ForUnknownAsFalse(org.apache.calcite.rex.RexBuilder,java.util.List,java.util.List)">simplifyAnd2ForUnknownAsFalse</a></span>​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> terms, |
| java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> notTerms)</code></th> |
| <td class="colLast"> |
| <div class="block"><span class="deprecatedLabel">Deprecated.</span></div> |
| </td> |
| </tr> |
| <tr id="i96" class="altColor"> |
| <td class="colFirst"><code>static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#simplifyAnds(org.apache.calcite.rex.RexBuilder,java.lang.Iterable)">simplifyAnds</a></span>​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| java.lang.Iterable<? extends <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> nodes)</code></th> |
| <td class="colLast"> |
| <div class="block"><span class="deprecatedLabel">Deprecated.</span> |
| <div class="deprecationComment">Use |
| <a href="RexSimplify.html#simplifyAnds(java.lang.Iterable,org.apache.calcite.rex.RexUnknownAs)"><code>RexSimplify.simplifyAnds(Iterable, RexUnknownAs)</code></a>.</div> |
| </div> |
| </td> |
| </tr> |
| <tr id="i97" class="rowColor"> |
| <td class="colFirst"><code>static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#simplifyAnds(org.apache.calcite.rex.RexBuilder,java.lang.Iterable,boolean)">simplifyAnds</a></span>​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| java.lang.Iterable<? extends <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> nodes, |
| boolean unknownAsFalse)</code></th> |
| <td class="colLast"> |
| <div class="block"><span class="deprecatedLabel">Deprecated.</span></div> |
| </td> |
| </tr> |
| <tr id="i98" class="altColor"> |
| <td class="colFirst"><code>static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#simplifyOr(org.apache.calcite.rex.RexBuilder,org.apache.calcite.rex.RexCall)">simplifyOr</a></span>​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| <a href="RexCall.html" title="class in org.apache.calcite.rex">RexCall</a> call)</code></th> |
| <td class="colLast"> |
| <div class="block"><span class="deprecatedLabel">Deprecated.</span></div> |
| </td> |
| </tr> |
| <tr id="i99" class="rowColor"> |
| <td class="colFirst"><code>static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#simplifyOrs(org.apache.calcite.rex.RexBuilder,java.util.List)">simplifyOrs</a></span>​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> terms)</code></th> |
| <td class="colLast"> |
| <div class="block"><span class="deprecatedLabel">Deprecated.</span></div> |
| </td> |
| </tr> |
| <tr id="i100" class="altColor"> |
| <td class="colFirst"><code>static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#simplifyPreservingType(org.apache.calcite.rex.RexBuilder,org.apache.calcite.rex.RexNode)">simplifyPreservingType</a></span>​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> e)</code></th> |
| <td class="colLast"> |
| <div class="block"><span class="deprecatedLabel">Deprecated.</span> |
| <div class="deprecationComment">Use <a href="RexSimplify.html#simplifyPreservingType(org.apache.calcite.rex.RexNode)"><code>RexSimplify.simplifyPreservingType(RexNode)</code></a>, |
| which allows you to specify an <a href="RexExecutor.html" title="interface in org.apache.calcite.rex"><code>RexExecutor</code></a>.</div> |
| </div> |
| </td> |
| </tr> |
| <tr id="i101" class="rowColor"> |
| <td class="colFirst"><code>static java.util.List<java.lang.String></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#strings(java.util.List)">strings</a></span>​(java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> list)</code></th> |
| <td class="colLast"> |
| <div class="block">Transforms a list of expressions to the list of digests.</div> |
| </td> |
| </tr> |
| <tr id="i102" class="altColor"> |
| <td class="colFirst"><code>static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#swapColumnReferences(org.apache.calcite.rex.RexBuilder,org.apache.calcite.rex.RexNode,java.util.Map)">swapColumnReferences</a></span>​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> node, |
| java.util.Map<<a href="RexTableInputRef.html" title="class in org.apache.calcite.rex">RexTableInputRef</a>,​java.util.Set<<a href="RexTableInputRef.html" title="class in org.apache.calcite.rex">RexTableInputRef</a>>> ec)</code></th> |
| <td class="colLast"> |
| <div class="block">Given an expression, it will swap its column references <a href="RexTableInputRef.html" title="class in org.apache.calcite.rex"><code>RexTableInputRef</code></a> |
| using the contents in the map (in particular, the first element of the set in the |
| map value).</div> |
| </td> |
| </tr> |
| <tr id="i103" class="rowColor"> |
| <td class="colFirst"><code>static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#swapColumnTableReferences(org.apache.calcite.rex.RexBuilder,org.apache.calcite.rex.RexNode,java.util.Map,java.util.Map)">swapColumnTableReferences</a></span>​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> node, |
| java.util.Map<<a href="RexTableInputRef.html" title="class in org.apache.calcite.rex">RexTableInputRef</a>,​java.util.Set<<a href="RexTableInputRef.html" title="class in org.apache.calcite.rex">RexTableInputRef</a>>> ec, |
| java.util.Map<<a href="RexTableInputRef.RelTableRef.html" title="class in org.apache.calcite.rex">RexTableInputRef.RelTableRef</a>,​<a href="RexTableInputRef.RelTableRef.html" title="class in org.apache.calcite.rex">RexTableInputRef.RelTableRef</a>> tableMapping)</code></th> |
| <td class="colLast"> |
| <div class="block">Given an expression, it will swap the column references <a href="RexTableInputRef.html" title="class in org.apache.calcite.rex"><code>RexTableInputRef</code></a> |
| using the contents in the first map (in particular, the first element of the set |
| in the map value), and then it will swap the table references contained in its |
| <a href="RexTableInputRef.html" title="class in org.apache.calcite.rex"><code>RexTableInputRef</code></a> using the contents in the second map.</div> |
| </td> |
| </tr> |
| <tr id="i104" class="altColor"> |
| <td class="colFirst"><code>static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#swapTableColumnReferences(org.apache.calcite.rex.RexBuilder,org.apache.calcite.rex.RexNode,java.util.Map,java.util.Map)">swapTableColumnReferences</a></span>​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> node, |
| java.util.Map<<a href="RexTableInputRef.RelTableRef.html" title="class in org.apache.calcite.rex">RexTableInputRef.RelTableRef</a>,​<a href="RexTableInputRef.RelTableRef.html" title="class in org.apache.calcite.rex">RexTableInputRef.RelTableRef</a>> tableMapping, |
| java.util.Map<<a href="RexTableInputRef.html" title="class in org.apache.calcite.rex">RexTableInputRef</a>,​java.util.Set<<a href="RexTableInputRef.html" title="class in org.apache.calcite.rex">RexTableInputRef</a>>> ec)</code></th> |
| <td class="colLast"> |
| <div class="block">Given an expression, it will swap the table references contained in its |
| <a href="RexTableInputRef.html" title="class in org.apache.calcite.rex"><code>RexTableInputRef</code></a> using the contents in the first map, and then |
| it will swap the column references <a href="RexTableInputRef.html" title="class in org.apache.calcite.rex"><code>RexTableInputRef</code></a> using the contents |
| in the second map (in particular, the first element of the set in the map value).</div> |
| </td> |
| </tr> |
| <tr id="i105" class="rowColor"> |
| <td class="colFirst"><code>static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#swapTableReferences(org.apache.calcite.rex.RexBuilder,org.apache.calcite.rex.RexNode,java.util.Map)">swapTableReferences</a></span>​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> node, |
| java.util.Map<<a href="RexTableInputRef.RelTableRef.html" title="class in org.apache.calcite.rex">RexTableInputRef.RelTableRef</a>,​<a href="RexTableInputRef.RelTableRef.html" title="class in org.apache.calcite.rex">RexTableInputRef.RelTableRef</a>> tableMapping)</code></th> |
| <td class="colLast"> |
| <div class="block">Given an expression, it will swap the table references contained in its |
| <a href="RexTableInputRef.html" title="class in org.apache.calcite.rex"><code>RexTableInputRef</code></a> using the contents in the map.</div> |
| </td> |
| </tr> |
| <tr id="i106" class="altColor"> |
| <td class="colFirst"><code>static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toCnf(org.apache.calcite.rex.RexBuilder,int,org.apache.calcite.rex.RexNode)">toCnf</a></span>​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| int maxCnfNodeCount, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> rex)</code></th> |
| <td class="colLast"> |
| <div class="block">Similar to <a href="#toCnf(org.apache.calcite.rex.RexBuilder,org.apache.calcite.rex.RexNode)"><code>toCnf(RexBuilder, RexNode)</code></a>; however, it lets you |
| specify a threshold in the number of nodes that can be created out of |
| the conversion.</div> |
| </td> |
| </tr> |
| <tr id="i107" class="rowColor"> |
| <td class="colFirst"><code>static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toCnf(org.apache.calcite.rex.RexBuilder,org.apache.calcite.rex.RexNode)">toCnf</a></span>​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> rex)</code></th> |
| <td class="colLast"> |
| <div class="block">Converts an expression to conjunctive normal form (CNF).</div> |
| </td> |
| </tr> |
| <tr id="i108" class="altColor"> |
| <td class="colFirst"><code>static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toDnf(org.apache.calcite.rex.RexBuilder,org.apache.calcite.rex.RexNode)">toDnf</a></span>​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> rex)</code></th> |
| <td class="colLast"> |
| <div class="block">Converts an expression to disjunctive normal form (DNF).</div> |
| </td> |
| </tr> |
| <tr id="i109" class="rowColor"> |
| <td class="colFirst"><code>static java.util.List<<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#types(java.util.List)">types</a></span>​(java.util.List<? extends <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> nodes)</code></th> |
| <td class="colLast"> |
| <div class="block">Transforms a list of expressions into a list of their types.</div> |
| </td> |
| </tr> |
| </table> |
| <ul class="blockList"> |
| <li class="blockList"><a id="methods.inherited.from.class.java.lang.Object"> |
| <!-- --> |
| </a> |
| <h3>Methods inherited from class 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="EXECUTOR"> |
| <!-- --> |
| </a> |
| <ul class="blockListLast"> |
| <li class="blockList"> |
| <h4>EXECUTOR</h4> |
| <pre>public static final <a href="RexExecutor.html" title="interface in org.apache.calcite.rex">RexExecutor</a> EXECUTOR</pre> |
| <div class="block">Executor for a bit of constant reduction. The user can pass in another executor.</div> |
| </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>RexUtil</h4> |
| <pre>private RexUtil()</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="getSelectivity(org.apache.calcite.rex.RexNode)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>getSelectivity</h4> |
| <pre class="methodSignature">public static double getSelectivity​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> exp)</pre> |
| <div class="block">Returns a guess for the selectivity of an expression.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>exp</code> - expression of interest, or null for none (implying a |
| selectivity of 1.0)</dd> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>guessed selectivity</dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="generateCastExpressions(org.apache.calcite.rex.RexBuilder,org.apache.calcite.rel.type.RelDataType,org.apache.calcite.rel.type.RelDataType)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>generateCastExpressions</h4> |
| <pre class="methodSignature">public static java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> generateCastExpressions​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| <a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a> lhsRowType, |
| <a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a> rhsRowType)</pre> |
| <div class="block">Generates a cast from one row type to another</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>rexBuilder</code> - RexBuilder to use for constructing casts</dd> |
| <dd><code>lhsRowType</code> - target row type</dd> |
| <dd><code>rhsRowType</code> - source row type; fields must be 1-to-1 with lhsRowType, |
| in same order</dd> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>cast expressions</dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="generateCastExpressions(org.apache.calcite.rex.RexBuilder,org.apache.calcite.rel.type.RelDataType,java.util.List)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>generateCastExpressions</h4> |
| <pre class="methodSignature">public static java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> generateCastExpressions​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| <a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a> lhsRowType, |
| java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> rhsExps)</pre> |
| <div class="block">Generates a cast for a row type.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>rexBuilder</code> - RexBuilder to use for constructing casts</dd> |
| <dd><code>lhsRowType</code> - target row type</dd> |
| <dd><code>rhsExps</code> - expressions to be cast</dd> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>cast expressions</dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="isNullLiteral(org.apache.calcite.rex.RexNode,boolean)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>isNullLiteral</h4> |
| <pre class="methodSignature">public static boolean isNullLiteral​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> node, |
| boolean allowCast)</pre> |
| <div class="block">Returns whether a node represents the NULL value. |
| |
| <p>Examples: |
| |
| <ul> |
| <li>For <a href="RexLiteral.html" title="class in org.apache.calcite.rex"><code>RexLiteral</code></a> Unknown, returns false. |
| <li>For <code>CAST(NULL AS <i>type</i>)</code>, returns true if <code> |
| allowCast</code> is true, false otherwise. |
| <li>For <code>CAST(CAST(NULL AS <i>type</i>) AS <i>type</i>))</code>, |
| returns false. |
| </ul></div> |
| </li> |
| </ul> |
| <a id="isNull(org.apache.calcite.rex.RexNode)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>isNull</h4> |
| <pre class="methodSignature">public static boolean isNull​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> expr)</pre> |
| <div class="block">Returns whether a node represents the NULL value or a series of nested |
| <code>CAST(NULL AS type)</code> calls. For example: |
| <code>isNull(CAST(CAST(NULL as INTEGER) AS VARCHAR(1)))</code> |
| returns <code>true</code>.</div> |
| </li> |
| </ul> |
| <a id="isLiteral(org.apache.calcite.rex.RexNode,boolean)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>isLiteral</h4> |
| <pre class="methodSignature">public static boolean isLiteral​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> node, |
| boolean allowCast)</pre> |
| <div class="block">Returns whether a node represents a literal. |
| |
| <p>Examples: |
| |
| <ul> |
| <li>For <code>CAST(literal AS <i>type</i>)</code>, returns true if <code> |
| allowCast</code> is true, false otherwise. |
| <li>For <code>CAST(CAST(literal AS <i>type</i>) AS <i>type</i>))</code>, |
| returns false. |
| </ul></div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>node</code> - The node, never null.</dd> |
| <dd><code>allowCast</code> - whether to regard CAST(literal) as a literal</dd> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>Whether the node is a literal</dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="allLiterals(java.util.List)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>allLiterals</h4> |
| <pre class="methodSignature">public static boolean allLiterals​(java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> expressionOperands)</pre> |
| <div class="block">Returns whether every expression in a list is a literal.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>expressionOperands</code> - list of expressions to check</dd> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>true if every expression from the specified list is literal.</dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="isReferenceOrAccess(org.apache.calcite.rex.RexNode,boolean)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>isReferenceOrAccess</h4> |
| <pre class="methodSignature">public static boolean isReferenceOrAccess​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> node, |
| boolean allowCast)</pre> |
| <div class="block">Returns whether a node represents an input reference or field access.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>node</code> - The node, never null.</dd> |
| <dd><code>allowCast</code> - whether to regard CAST(x) as true</dd> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>Whether the node is a reference or access</dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="isNullabilityCast(org.apache.calcite.rel.type.RelDataTypeFactory,org.apache.calcite.rex.RexNode)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>isNullabilityCast</h4> |
| <pre class="methodSignature">public static boolean isNullabilityCast​(<a href="../rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a> typeFactory, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> node)</pre> |
| <div class="block">Returns whether an expression is a cast just for the purposes of |
| nullability, not changing any other aspect of the type.</div> |
| </li> |
| </ul> |
| <a id="removeNullabilityCast(org.apache.calcite.rel.type.RelDataTypeFactory,org.apache.calcite.rex.RexNode)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>removeNullabilityCast</h4> |
| <pre class="methodSignature">public static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> removeNullabilityCast​(<a href="../rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a> typeFactory, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> node)</pre> |
| <div class="block">Removes any casts that change nullability but not type. |
| |
| <p>For example, <code>CAST(1 = 0 AS BOOLEAN)</code> becomes <code>1 = 0</code>.</div> |
| </li> |
| </ul> |
| <a id="removeCast(org.apache.calcite.rex.RexNode)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>removeCast</h4> |
| <pre class="methodSignature">public static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> removeCast​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> e)</pre> |
| <div class="block">Removes any casts. |
| |
| <p>For example, <code>CAST('1' AS INTEGER)</code> becomes <code>'1'</code>.</div> |
| </li> |
| </ul> |
| <a id="predicateConstants(java.lang.Class,org.apache.calcite.rex.RexBuilder,java.util.List)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>predicateConstants</h4> |
| <pre class="methodSignature">public static <C extends <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> com.google.common.collect.ImmutableMap<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>,​C> predicateConstants​(java.lang.Class<C> clazz, |
| <a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> predicates)</pre> |
| <div class="block">Creates a map containing each (e, constant) pair that occurs within |
| a predicate list.</div> |
| <dl> |
| <dt><span class="paramLabel">Type Parameters:</span></dt> |
| <dd><code>C</code> - what to consider a constant: <a href="RexLiteral.html" title="class in org.apache.calcite.rex"><code>RexLiteral</code></a> to use a narrow |
| definition of constant, or <a href="RexNode.html" title="class in org.apache.calcite.rex"><code>RexNode</code></a> to use |
| <a href="#isConstant(org.apache.calcite.rex.RexNode)"><code>isConstant(RexNode)</code></a></dd> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>clazz</code> - Class of expression that is considered constant</dd> |
| <dd><code>rexBuilder</code> - Rex builder</dd> |
| <dd><code>predicates</code> - Predicate list</dd> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>Map from values to constants</dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="overlap(org.apache.calcite.rex.RexNode,java.util.Set)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>overlap</h4> |
| <pre class="methodSignature">private static boolean overlap​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> rexNode, |
| java.util.Set<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> set)</pre> |
| </li> |
| </ul> |
| <a id="decompose(java.util.Set,org.apache.calcite.rex.RexNode)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>decompose</h4> |
| <pre class="methodSignature">private static void decompose​(java.util.Set<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> set, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> rexNode)</pre> |
| <div class="block">Tries to decompose the RexNode which is a RexCall into non-literal |
| RexNodes.</div> |
| </li> |
| </ul> |
| <a id="gatherConstraints(java.lang.Class,org.apache.calcite.rex.RexNode,java.util.Map,java.util.Set,org.apache.calcite.rex.RexBuilder)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>gatherConstraints</h4> |
| <pre class="methodSignature">private static <C extends <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> void gatherConstraints​(java.lang.Class<C> clazz, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> predicate, |
| java.util.Map<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>,​C> map, |
| java.util.Set<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> excludeSet, |
| <a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder)</pre> |
| </li> |
| </ul> |
| <a id="gatherConstraint(java.lang.Class,org.apache.calcite.rex.RexNode,org.apache.calcite.rex.RexNode,java.util.Map,java.util.Set,org.apache.calcite.rex.RexBuilder)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>gatherConstraint</h4> |
| <pre class="methodSignature">private static <C extends <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> void gatherConstraint​(java.lang.Class<C> clazz, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> left, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> right, |
| java.util.Map<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>,​C> map, |
| java.util.Set<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> excludeSet, |
| <a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder)</pre> |
| </li> |
| </ul> |
| <a id="canAssignFrom(org.apache.calcite.rel.type.RelDataType,org.apache.calcite.rel.type.RelDataType)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>canAssignFrom</h4> |
| <pre class="methodSignature">private static boolean canAssignFrom​(<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a> type1, |
| <a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a> type2)</pre> |
| <div class="block">Returns whether a value of <code>type2</code> can be assigned to a variable |
| of <code>type1</code>. |
| |
| <p>For example: |
| <ul> |
| <li><code>canAssignFrom(BIGINT, TINYINT)</code> returns <code>true</code></li> |
| <li><code>canAssignFrom(TINYINT, BIGINT)</code> returns <code>false</code></li> |
| <li><code>canAssignFrom(BIGINT, VARCHAR)</code> returns <code>false</code></li> |
| </ul></div> |
| </li> |
| </ul> |
| <a id="isConstant(org.apache.calcite.rex.RexNode)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>isConstant</h4> |
| <pre class="methodSignature">public static boolean isConstant​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> node)</pre> |
| <div class="block">Returns whether node is made up of constants.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>node</code> - Node to inspect</dd> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>true if node is made up of constants, false otherwise</dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="isDeterministic(org.apache.calcite.rex.RexNode)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>isDeterministic</h4> |
| <pre class="methodSignature">public static boolean isDeterministic​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> e)</pre> |
| <div class="block">Returns whether a given expression is deterministic.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>e</code> - Expression</dd> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>true if tree result is deterministic, false otherwise</dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="retainDeterministic(java.util.List)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>retainDeterministic</h4> |
| <pre class="methodSignature">public static java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> retainDeterministic​(java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> list)</pre> |
| </li> |
| </ul> |
| <a id="findOperatorCall(org.apache.calcite.sql.SqlOperator,org.apache.calcite.rex.RexNode)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>findOperatorCall</h4> |
| <pre class="methodSignature">public static <a href="RexCall.html" title="class in org.apache.calcite.rex">RexCall</a> findOperatorCall​(<a href="../sql/SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a> operator, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> node)</pre> |
| <div class="block">Returns whether a given node contains a RexCall with a specified operator</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>operator</code> - Operator to look for</dd> |
| <dd><code>node</code> - a RexNode tree</dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="containsInputRef(org.apache.calcite.rex.RexNode)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>containsInputRef</h4> |
| <pre class="methodSignature">public static boolean containsInputRef​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> node)</pre> |
| <div class="block">Returns whether a given tree contains any {link RexInputRef} nodes.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>node</code> - a RexNode tree</dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="containsFieldAccess(org.apache.calcite.rex.RexNode)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>containsFieldAccess</h4> |
| <pre class="methodSignature">public static boolean containsFieldAccess​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> node)</pre> |
| <div class="block">Returns whether a given tree contains any |
| <a href="RexFieldAccess.html" title="class in org.apache.calcite.rex"><code>RexFieldAccess</code></a> nodes.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>node</code> - a RexNode tree</dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="requiresDecimalExpansion(org.apache.calcite.rex.RexNode,boolean)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>requiresDecimalExpansion</h4> |
| <pre class="methodSignature">public static boolean requiresDecimalExpansion​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> expr, |
| boolean recurse)</pre> |
| <div class="block">Determines whether a <a href="RexCall.html" title="class in org.apache.calcite.rex"><code>RexCall</code></a> requires decimal expansion. It |
| usually requires expansion if it has decimal operands. |
| |
| <p>Exceptions to this rule are: |
| |
| <ul> |
| <li>isNull doesn't require expansion |
| <li>It's okay to cast decimals to and from char types |
| <li>It's okay to cast nulls as decimals |
| <li>Casts require expansion if their return type is decimal |
| <li>Reinterpret casts can handle a decimal operand |
| </ul></div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>expr</code> - expression possibly in need of expansion</dd> |
| <dd><code>recurse</code> - whether to check nested calls</dd> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>whether the expression requires expansion</dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="requiresDecimalExpansion(java.util.List,boolean)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>requiresDecimalExpansion</h4> |
| <pre class="methodSignature">public static boolean requiresDecimalExpansion​(java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> operands, |
| boolean recurse)</pre> |
| <div class="block">Determines whether any operand of a set requires decimal expansion</div> |
| </li> |
| </ul> |
| <a id="requiresDecimalExpansion(org.apache.calcite.rex.RexProgram,boolean)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>requiresDecimalExpansion</h4> |
| <pre class="methodSignature">public static boolean requiresDecimalExpansion​(<a href="RexProgram.html" title="class in org.apache.calcite.rex">RexProgram</a> program, |
| boolean recurse)</pre> |
| <div class="block">Returns whether a <a href="RexProgram.html" title="class in org.apache.calcite.rex"><code>RexProgram</code></a> contains expressions which require |
| decimal expansion.</div> |
| </li> |
| </ul> |
| <a id="canReinterpretOverflow(org.apache.calcite.rex.RexCall)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>canReinterpretOverflow</h4> |
| <pre class="methodSignature">public static boolean canReinterpretOverflow​(<a href="RexCall.html" title="class in org.apache.calcite.rex">RexCall</a> call)</pre> |
| </li> |
| </ul> |
| <a id="containNoCommonExprs(java.util.List,org.apache.calcite.util.Litmus)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>containNoCommonExprs</h4> |
| <pre class="methodSignature">public static boolean containNoCommonExprs​(java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> exprs, |
| <a href="../util/Litmus.html" title="interface in org.apache.calcite.util">Litmus</a> litmus)</pre> |
| <div class="block">Returns whether an array of expressions has any common sub-expressions.</div> |
| </li> |
| </ul> |
| <a id="containNoForwardRefs(java.util.List,org.apache.calcite.rel.type.RelDataType,org.apache.calcite.util.Litmus)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>containNoForwardRefs</h4> |
| <pre class="methodSignature">public static boolean containNoForwardRefs​(java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> exprs, |
| <a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a> inputRowType, |
| <a href="../util/Litmus.html" title="interface in org.apache.calcite.util">Litmus</a> litmus)</pre> |
| <div class="block">Returns whether an array of expressions contains no forward references. |
| That is, if expression #i contains a <a href="RexInputRef.html" title="class in org.apache.calcite.rex"><code>RexInputRef</code></a> referencing |
| field i or greater.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>exprs</code> - Array of expressions</dd> |
| <dd><code>inputRowType</code> - Input row type</dd> |
| <dd><code>litmus</code> - What to do if an error is detected (there is a |
| forward reference)</dd> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>Whether there is a forward reference</dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="containNoNonTrivialAggs(java.util.List,org.apache.calcite.util.Litmus)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>containNoNonTrivialAggs</h4> |
| <pre class="methodSignature">static boolean containNoNonTrivialAggs​(java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> exprs, |
| <a href="../util/Litmus.html" title="interface in org.apache.calcite.util">Litmus</a> litmus)</pre> |
| <div class="block">Returns whether an array of exp contains no aggregate function calls whose |
| arguments are not <a href="RexInputRef.html" title="class in org.apache.calcite.rex"><code>RexInputRef</code></a>s.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>exprs</code> - Expressions</dd> |
| <dd><code>litmus</code> - Whether to assert if there is such a function call</dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="containComplexExprs(java.util.List)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>containComplexExprs</h4> |
| <pre class="methodSignature">public static boolean containComplexExprs​(java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> exprs)</pre> |
| <div class="block">Returns whether a list of expressions contains complex expressions, that |
| is, a call whose arguments are not <a href="RexVariable.html" title="class in org.apache.calcite.rex"><code>RexVariable</code></a> (or a subtype such |
| as <a href="RexInputRef.html" title="class in org.apache.calcite.rex"><code>RexInputRef</code></a>) or <a href="RexLiteral.html" title="class in org.apache.calcite.rex"><code>RexLiteral</code></a>.</div> |
| </li> |
| </ul> |
| <a id="containsTableInputRef(java.util.List)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>containsTableInputRef</h4> |
| <pre class="methodSignature">public static boolean containsTableInputRef​(java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> nodes)</pre> |
| <div class="block">Returns whether any of the given expression trees contains a |
| {link RexTableInputRef} node.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>nodes</code> - a list of RexNode trees</dd> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>true if at least one was found, otherwise false</dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="containsTableInputRef(org.apache.calcite.rex.RexNode)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>containsTableInputRef</h4> |
| <pre class="methodSignature">public static <a href="RexTableInputRef.html" title="class in org.apache.calcite.rex">RexTableInputRef</a> containsTableInputRef​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> node)</pre> |
| <div class="block">Returns whether a given tree contains any {link RexTableInputRef} nodes.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>node</code> - a RexNode tree</dd> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>first such node found or null if it there is no such node</dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="isAtomic(org.apache.calcite.rex.RexNode)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>isAtomic</h4> |
| <pre class="methodSignature">public static boolean isAtomic​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> expr)</pre> |
| </li> |
| </ul> |
| <a id="isCallTo(org.apache.calcite.rex.RexNode,org.apache.calcite.sql.SqlOperator)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>isCallTo</h4> |
| <pre class="methodSignature">public static boolean isCallTo​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> expr, |
| <a href="../sql/SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a> op)</pre> |
| <div class="block">Returns whether a <a href="RexNode.html" title="class in org.apache.calcite.rex"><code>node</code></a> is a <a href="RexCall.html" title="class in org.apache.calcite.rex"><code>call</code></a> to a |
| given <a href="../sql/SqlOperator.html" title="class in org.apache.calcite.sql"><code>operator</code></a>.</div> |
| </li> |
| </ul> |
| <a id="createStructType(org.apache.calcite.rel.type.RelDataTypeFactory,java.util.List)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>createStructType</h4> |
| <pre class="methodSignature">public static <a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a> createStructType​(<a href="../rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a> typeFactory, |
| java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> exprs)</pre> |
| <div class="block">Creates a record type with anonymous field names.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>typeFactory</code> - Type factory</dd> |
| <dd><code>exprs</code> - Expressions</dd> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>Record type</dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="createStructType(org.apache.calcite.rel.type.RelDataTypeFactory,java.util.List,java.util.List,org.apache.calcite.sql.validate.SqlValidatorUtil.Suggester)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>createStructType</h4> |
| <pre class="methodSignature">public static <a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a> createStructType​(<a href="../rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a> typeFactory, |
| java.util.List<? extends <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> exprs, |
| java.util.List<java.lang.String> names, |
| <a href="../sql/validate/SqlValidatorUtil.Suggester.html" title="interface in org.apache.calcite.sql.validate">SqlValidatorUtil.Suggester</a> suggester)</pre> |
| <div class="block">Creates a record type with specified field names. |
| |
| <p>The array of field names may be null, or any of the names within it |
| can be null. We recommend using explicit names where possible, because it |
| makes it much easier to figure out the intent of fields when looking at |
| planner output.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>typeFactory</code> - Type factory</dd> |
| <dd><code>exprs</code> - Expressions</dd> |
| <dd><code>names</code> - Field names, may be null, or elements may be null</dd> |
| <dd><code>suggester</code> - Generates alternative names if <code>names</code> is not |
| null and its elements are not unique</dd> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>Record type</dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="createStructType(org.apache.calcite.rel.type.RelDataTypeFactory,java.util.List,java.util.List)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>createStructType</h4> |
| <pre class="methodSignature">@Deprecated |
| public static <a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a> createStructType​(<a href="../rel/type/RelDataTypeFactory.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFactory</a> typeFactory, |
| java.util.List<? extends <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> exprs, |
| java.util.List<java.lang.String> names)</pre> |
| <div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div> |
| </li> |
| </ul> |
| <a id="compatibleTypes(java.util.List,org.apache.calcite.rel.type.RelDataType,org.apache.calcite.util.Litmus)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>compatibleTypes</h4> |
| <pre class="methodSignature">public static boolean compatibleTypes​(java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> exprs, |
| <a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a> type, |
| <a href="../util/Litmus.html" title="interface in org.apache.calcite.util">Litmus</a> litmus)</pre> |
| <div class="block">Returns whether the type of an array of expressions is compatible with a |
| struct type.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>exprs</code> - Array of expressions</dd> |
| <dd><code>type</code> - Type</dd> |
| <dd><code>litmus</code> - What to do if an error is detected (there is a mismatch)</dd> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>Whether every expression has the same type as the corresponding |
| member of the struct type</dd> |
| <dt><span class="seeLabel">See Also:</span></dt> |
| <dd><a href="../plan/RelOptUtil.html#eq(java.lang.String,org.apache.calcite.rel.type.RelDataType,java.lang.String,org.apache.calcite.rel.type.RelDataType,org.apache.calcite.util.Litmus)"><code>RelOptUtil.eq(String, RelDataType, String, RelDataType, org.apache.calcite.util.Litmus)</code></a></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="makeKey(org.apache.calcite.rex.RexNode)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>makeKey</h4> |
| <pre class="methodSignature">public static <a href="../util/Pair.html" title="class in org.apache.calcite.util">Pair</a><<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>,​java.lang.String> makeKey​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> expr)</pre> |
| <div class="block">Creates a key for <a href="RexNode.html" title="class in org.apache.calcite.rex"><code>RexNode</code></a> which is the same as another key of |
| another RexNode only if the two have both the same type and textual |
| representation. For example, "10" integer and "10" bigint result in |
| different keys.</div> |
| </li> |
| </ul> |
| <a id="containIdentity(java.util.List,org.apache.calcite.rel.type.RelDataType,org.apache.calcite.util.Litmus)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>containIdentity</h4> |
| <pre class="methodSignature">public static boolean containIdentity​(java.util.List<? extends <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> exprs, |
| <a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a> rowType, |
| <a href="../util/Litmus.html" title="interface in org.apache.calcite.util">Litmus</a> litmus)</pre> |
| <div class="block">Returns whether the leading edge of a given array of expressions is |
| wholly <a href="RexInputRef.html" title="class in org.apache.calcite.rex"><code>RexInputRef</code></a> objects with types corresponding to the |
| underlying datatype.</div> |
| </li> |
| </ul> |
| <a id="isIdentity(java.util.List,org.apache.calcite.rel.type.RelDataType)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>isIdentity</h4> |
| <pre class="methodSignature">public static boolean isIdentity​(java.util.List<? extends <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> exps, |
| <a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a> inputRowType)</pre> |
| <div class="block">Returns whether a list of expressions projects the incoming fields.</div> |
| </li> |
| </ul> |
| <a id="composeConjunction(org.apache.calcite.rex.RexBuilder,java.lang.Iterable)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>composeConjunction</h4> |
| <pre class="methodSignature">@Nonnull |
| public static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> composeConjunction​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| java.lang.Iterable<? extends <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> nodes)</pre> |
| <div class="block">As <a href="#composeConjunction(org.apache.calcite.rex.RexBuilder,java.lang.Iterable,boolean)"><code>composeConjunction(RexBuilder, Iterable, boolean)</code></a> but never |
| returns null.</div> |
| </li> |
| </ul> |
| <a id="composeConjunction(org.apache.calcite.rex.RexBuilder,java.lang.Iterable,boolean)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>composeConjunction</h4> |
| <pre class="methodSignature">public static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> composeConjunction​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| java.lang.Iterable<? extends <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> nodes, |
| boolean nullOnEmpty)</pre> |
| <div class="block">Converts a collection of expressions into an AND. |
| If there are zero expressions, returns TRUE. |
| If there is one expression, returns just that expression. |
| If any of the expressions are FALSE, returns FALSE. |
| Removes expressions that always evaluate to TRUE. |
| Returns null only if <code>nullOnEmpty</code> and expression is TRUE.</div> |
| </li> |
| </ul> |
| <a id="flattenAnd(java.lang.Iterable)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>flattenAnd</h4> |
| <pre class="methodSignature">public static com.google.common.collect.ImmutableList<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> flattenAnd​(java.lang.Iterable<? extends <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> nodes)</pre> |
| <div class="block">Flattens a list of AND nodes. |
| |
| <p>Treats null nodes as literal TRUE (i.e. ignores them).</div> |
| </li> |
| </ul> |
| <a id="addAnd(com.google.common.collect.ImmutableList.Builder,java.util.Set,org.apache.calcite.rex.RexNode)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>addAnd</h4> |
| <pre class="methodSignature">private static void addAnd​(com.google.common.collect.ImmutableList.Builder<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> builder, |
| java.util.Set<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> digests, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> node)</pre> |
| </li> |
| </ul> |
| <a id="composeDisjunction(org.apache.calcite.rex.RexBuilder,java.lang.Iterable)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>composeDisjunction</h4> |
| <pre class="methodSignature">@Nonnull |
| public static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> composeDisjunction​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| java.lang.Iterable<? extends <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> nodes)</pre> |
| <div class="block">Converts a collection of expressions into an OR. |
| If there are zero expressions, returns FALSE. |
| If there is one expression, returns just that expression. |
| If any of the expressions are TRUE, returns TRUE. |
| Removes expressions that always evaluate to FALSE. |
| Flattens expressions that are ORs.</div> |
| </li> |
| </ul> |
| <a id="composeDisjunction(org.apache.calcite.rex.RexBuilder,java.lang.Iterable,boolean)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>composeDisjunction</h4> |
| <pre class="methodSignature">public static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> composeDisjunction​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| java.lang.Iterable<? extends <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> nodes, |
| boolean nullOnEmpty)</pre> |
| <div class="block">Converts a collection of expressions into an OR, |
| optionally returning null if the list is empty.</div> |
| </li> |
| </ul> |
| <a id="flattenOr(java.lang.Iterable)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>flattenOr</h4> |
| <pre class="methodSignature">public static com.google.common.collect.ImmutableList<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> flattenOr​(java.lang.Iterable<? extends <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> nodes)</pre> |
| <div class="block">Flattens a list of OR nodes.</div> |
| </li> |
| </ul> |
| <a id="addOr(com.google.common.collect.ImmutableList.Builder,java.util.Set,org.apache.calcite.rex.RexNode)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>addOr</h4> |
| <pre class="methodSignature">private static void addOr​(com.google.common.collect.ImmutableList.Builder<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> builder, |
| java.util.Set<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> set, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> node)</pre> |
| </li> |
| </ul> |
| <a id="apply(org.apache.calcite.util.mapping.Mappings.TargetMapping,java.util.List)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>apply</h4> |
| <pre class="methodSignature">public static java.util.List<<a href="../rel/RelCollation.html" title="interface in org.apache.calcite.rel">RelCollation</a>> apply​(<a href="../util/mapping/Mappings.TargetMapping.html" title="interface in org.apache.calcite.util.mapping">Mappings.TargetMapping</a> mapping, |
| java.util.List<<a href="../rel/RelCollation.html" title="interface in org.apache.calcite.rel">RelCollation</a>> collationList)</pre> |
| <div class="block">Applies a mapping to a collation list.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>mapping</code> - Mapping</dd> |
| <dd><code>collationList</code> - Collation list</dd> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>collation list with mapping applied to each field</dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="apply(org.apache.calcite.util.mapping.Mappings.TargetMapping,org.apache.calcite.rel.RelCollation)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>apply</h4> |
| <pre class="methodSignature">public static <a href="../rel/RelCollation.html" title="interface in org.apache.calcite.rel">RelCollation</a> apply​(<a href="../util/mapping/Mappings.TargetMapping.html" title="interface in org.apache.calcite.util.mapping">Mappings.TargetMapping</a> mapping, |
| <a href="../rel/RelCollation.html" title="interface in org.apache.calcite.rel">RelCollation</a> collation)</pre> |
| <div class="block">Applies a mapping to a collation.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>mapping</code> - Mapping</dd> |
| <dd><code>collation</code> - Collation</dd> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>collation with mapping applied</dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="apply(org.apache.calcite.util.mapping.Mappings.TargetMapping,org.apache.calcite.rel.RelFieldCollation)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>apply</h4> |
| <pre class="methodSignature">public static <a href="../rel/RelFieldCollation.html" title="class in org.apache.calcite.rel">RelFieldCollation</a> apply​(<a href="../util/mapping/Mappings.TargetMapping.html" title="interface in org.apache.calcite.util.mapping">Mappings.TargetMapping</a> mapping, |
| <a href="../rel/RelFieldCollation.html" title="class in org.apache.calcite.rel">RelFieldCollation</a> fieldCollation)</pre> |
| <div class="block">Applies a mapping to a field collation. |
| |
| <p>If the field is not mapped, returns null.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>mapping</code> - Mapping</dd> |
| <dd><code>fieldCollation</code> - Field collation</dd> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>collation with mapping applied</dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="applyFields(org.apache.calcite.util.mapping.Mappings.TargetMapping,java.util.List)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>applyFields</h4> |
| <pre class="methodSignature">public static java.util.List<<a href="../rel/RelFieldCollation.html" title="class in org.apache.calcite.rel">RelFieldCollation</a>> applyFields​(<a href="../util/mapping/Mappings.TargetMapping.html" title="interface in org.apache.calcite.util.mapping">Mappings.TargetMapping</a> mapping, |
| java.util.List<<a href="../rel/RelFieldCollation.html" title="class in org.apache.calcite.rel">RelFieldCollation</a>> fieldCollations)</pre> |
| <div class="block">Applies a mapping to a list of field collations.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>mapping</code> - Mapping</dd> |
| <dd><code>fieldCollations</code> - Field collations</dd> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>collations with mapping applied</dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="apply(org.apache.calcite.util.mapping.Mappings.TargetMapping,org.apache.calcite.rex.RexNode)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>apply</h4> |
| <pre class="methodSignature">public static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> apply​(<a href="../util/mapping/Mappings.TargetMapping.html" title="interface in org.apache.calcite.util.mapping">Mappings.TargetMapping</a> mapping, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> node)</pre> |
| <div class="block">Applies a mapping to an expression.</div> |
| </li> |
| </ul> |
| <a id="apply(org.apache.calcite.util.mapping.Mappings.TargetMapping,java.lang.Iterable)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>apply</h4> |
| <pre class="methodSignature">public static java.lang.Iterable<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> apply​(<a href="../util/mapping/Mappings.TargetMapping.html" title="interface in org.apache.calcite.util.mapping">Mappings.TargetMapping</a> mapping, |
| java.lang.Iterable<? extends <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> nodes)</pre> |
| <div class="block">Applies a mapping to an iterable over expressions.</div> |
| </li> |
| </ul> |
| <a id="apply(org.apache.calcite.rex.RexVisitor,org.apache.calcite.rex.RexNode[])"> |
| <!-- --> |
| </a><a id="apply(org.apache.calcite.rex.RexVisitor,T[])"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>apply</h4> |
| <pre class="methodSignature">public static <T extends <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> T[] apply​(<a href="RexVisitor.html" title="interface in org.apache.calcite.rex">RexVisitor</a><T> shuttle, |
| T[] exprs)</pre> |
| <div class="block">Applies a shuttle to an array of expressions. Creates a copy first.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>shuttle</code> - Shuttle</dd> |
| <dd><code>exprs</code> - Array of expressions</dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="apply(org.apache.calcite.rex.RexVisitor,org.apache.calcite.rex.RexNode[],org.apache.calcite.rex.RexNode)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>apply</h4> |
| <pre class="methodSignature">public static void apply​(<a href="RexVisitor.html" title="interface in org.apache.calcite.rex">RexVisitor</a><java.lang.Void> visitor, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>[] exprs, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> expr)</pre> |
| <div class="block">Applies a visitor to an array of expressions and, if specified, a single |
| expression.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>visitor</code> - Visitor</dd> |
| <dd><code>exprs</code> - Array of expressions</dd> |
| <dd><code>expr</code> - Single expression, may be null</dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="apply(org.apache.calcite.rex.RexVisitor,java.util.List,org.apache.calcite.rex.RexNode)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>apply</h4> |
| <pre class="methodSignature">public static void apply​(<a href="RexVisitor.html" title="interface in org.apache.calcite.rex">RexVisitor</a><java.lang.Void> visitor, |
| java.util.List<? extends <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> exprs, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> expr)</pre> |
| <div class="block">Applies a visitor to a list of expressions and, if specified, a single |
| expression.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>visitor</code> - Visitor</dd> |
| <dd><code>exprs</code> - List of expressions</dd> |
| <dd><code>expr</code> - Single expression, may be null</dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="flatten(org.apache.calcite.rex.RexBuilder,org.apache.calcite.rex.RexNode)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>flatten</h4> |
| <pre class="methodSignature">public static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> flatten​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> node)</pre> |
| <div class="block">Flattens an expression. |
| |
| <p>Returns the same expression if it is already flat.</div> |
| </li> |
| </ul> |
| <a id="flatten(java.util.List,org.apache.calcite.sql.SqlOperator)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>flatten</h4> |
| <pre class="methodSignature">public static java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> flatten​(java.util.List<? extends <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> exprs, |
| <a href="../sql/SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a> op)</pre> |
| <div class="block">Converts a list of operands into a list that is flat with respect to |
| the given operator. The operands are assumed to be flat already.</div> |
| </li> |
| </ul> |
| <a id="isFlat(java.util.List,org.apache.calcite.sql.SqlOperator)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>isFlat</h4> |
| <pre class="methodSignature">private static boolean isFlat​(java.util.List<? extends <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> exprs, |
| <a href="../sql/SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a> op)</pre> |
| <div class="block">Returns whether a call to <code>op</code> with <code>exprs</code> as arguments |
| would be considered "flat". |
| |
| <p>For example, <code>isFlat([w, AND[x, y], z, AND)</code> returns false; |
| <p><code>isFlat([w, x, y, z], AND)</code> returns true.</p></div> |
| </li> |
| </ul> |
| <a id="isFlat(org.apache.calcite.rex.RexNode)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>isFlat</h4> |
| <pre class="methodSignature">public static boolean isFlat​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> expr)</pre> |
| <div class="block">Returns false if the expression can be optimized by flattening |
| calls to an associative operator such as AND and OR.</div> |
| </li> |
| </ul> |
| <a id="flattenRecurse(java.util.List,java.util.List,org.apache.calcite.sql.SqlOperator)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>flattenRecurse</h4> |
| <pre class="methodSignature">private static void flattenRecurse​(java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> list, |
| java.util.List<? extends <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> exprs, |
| <a href="../sql/SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a> op)</pre> |
| </li> |
| </ul> |
| <a id="isLosslessCast(org.apache.calcite.rex.RexNode)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>isLosslessCast</h4> |
| <pre class="methodSignature">public static boolean isLosslessCast​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> node)</pre> |
| <div class="block">Returns whether the input is a 'loss-less' cast, that is, a cast from which |
| the original value of the field can be certainly recovered. |
| |
| <p>For instance, int → bigint is loss-less (as you can cast back to |
| int without loss of information), but bigint → int is not loss-less. |
| |
| <p>The implementation of this method does not return false positives. |
| However, it is not complete.</div> |
| </li> |
| </ul> |
| <a id="toCnf(org.apache.calcite.rex.RexBuilder,org.apache.calcite.rex.RexNode)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>toCnf</h4> |
| <pre class="methodSignature">public static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> toCnf​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> rex)</pre> |
| <div class="block">Converts an expression to conjunctive normal form (CNF). |
| |
| <p>The following expression is in CNF: |
| |
| <blockquote>(a OR b) AND (c OR d)</blockquote> |
| |
| <p>The following expression is not in CNF: |
| |
| <blockquote>(a AND b) OR c</blockquote> |
| |
| <p>but can be converted to CNF: |
| |
| <blockquote>(a OR c) AND (b OR c)</blockquote> |
| |
| <p>The following expression is not in CNF: |
| |
| <blockquote>NOT (a OR NOT b)</blockquote> |
| |
| <p>but can be converted to CNF by applying de Morgan's theorem: |
| |
| <blockquote>NOT a AND b</blockquote> |
| |
| <p>Expressions not involving AND, OR or NOT at the top level are in CNF.</div> |
| </li> |
| </ul> |
| <a id="toCnf(org.apache.calcite.rex.RexBuilder,int,org.apache.calcite.rex.RexNode)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>toCnf</h4> |
| <pre class="methodSignature">public static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> toCnf​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| int maxCnfNodeCount, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> rex)</pre> |
| <div class="block">Similar to <a href="#toCnf(org.apache.calcite.rex.RexBuilder,org.apache.calcite.rex.RexNode)"><code>toCnf(RexBuilder, RexNode)</code></a>; however, it lets you |
| specify a threshold in the number of nodes that can be created out of |
| the conversion. |
| |
| <p>If the number of resulting nodes exceeds that threshold, |
| stops conversion and returns the original expression. |
| |
| <p>If the threshold is negative it is ignored. |
| |
| <p>Leaf nodes in the expression do not count towards the threshold.</div> |
| </li> |
| </ul> |
| <a id="toDnf(org.apache.calcite.rex.RexBuilder,org.apache.calcite.rex.RexNode)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>toDnf</h4> |
| <pre class="methodSignature">public static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> toDnf​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> rex)</pre> |
| <div class="block">Converts an expression to disjunctive normal form (DNF). |
| |
| <p>DNF: It is a form of logical formula which is disjunction of conjunctive |
| clauses. |
| |
| <p>All logical formulas can be converted into DNF. |
| |
| <p>The following expression is in DNF: |
| |
| <blockquote>(a AND b) OR (c AND d)</blockquote> |
| |
| <p>The following expression is not in CNF: |
| |
| <blockquote>(a OR b) AND c</blockquote> |
| |
| <p>but can be converted to DNF: |
| |
| <blockquote>(a AND c) OR (b AND c)</blockquote> |
| |
| <p>The following expression is not in CNF: |
| |
| <blockquote>NOT (a OR NOT b)</blockquote> |
| |
| <p>but can be converted to DNF by applying de Morgan's theorem: |
| |
| <blockquote>NOT a AND b</blockquote> |
| |
| <p>Expressions not involving AND, OR or NOT at the top level are in DNF.</div> |
| </li> |
| </ul> |
| <a id="isAssociative(org.apache.calcite.sql.SqlOperator)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>isAssociative</h4> |
| <pre class="methodSignature">private static boolean isAssociative​(<a href="../sql/SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a> op)</pre> |
| <div class="block">Returns whether an operator is associative. AND is associative, |
| which means that "(x AND y) and z" is equivalent to "x AND (y AND z)". |
| We might well flatten the tree, and write "AND(x, y, z)".</div> |
| </li> |
| </ul> |
| <a id="exists(java.util.List,org.apache.calcite.linq4j.function.Predicate1)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>exists</h4> |
| <pre class="methodSignature">public static <E> boolean exists​(java.util.List<? extends E> list, |
| <a href="../linq4j/function/Predicate1.html" title="interface in org.apache.calcite.linq4j.function">Predicate1</a><E> predicate)</pre> |
| <div class="block">Returns whether there is an element in <code>list</code> for which |
| <code>predicate</code> is true.</div> |
| </li> |
| </ul> |
| <a id="all(java.util.List,org.apache.calcite.linq4j.function.Predicate1)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>all</h4> |
| <pre class="methodSignature">public static <E> boolean all​(java.util.List<? extends E> list, |
| <a href="../linq4j/function/Predicate1.html" title="interface in org.apache.calcite.linq4j.function">Predicate1</a><E> predicate)</pre> |
| <div class="block">Returns whether <code>predicate</code> is true for all elements of |
| <code>list</code>.</div> |
| </li> |
| </ul> |
| <a id="shift(org.apache.calcite.rex.RexNode,int)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>shift</h4> |
| <pre class="methodSignature">public static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> shift​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> node, |
| int offset)</pre> |
| <div class="block">Shifts every <a href="RexInputRef.html" title="class in org.apache.calcite.rex"><code>RexInputRef</code></a> in an expression by <code>offset</code>.</div> |
| </li> |
| </ul> |
| <a id="shift(java.lang.Iterable,int)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>shift</h4> |
| <pre class="methodSignature">public static java.lang.Iterable<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> shift​(java.lang.Iterable<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> nodes, |
| int offset)</pre> |
| <div class="block">Shifts every <a href="RexInputRef.html" title="class in org.apache.calcite.rex"><code>RexInputRef</code></a> in an expression by <code>offset</code>.</div> |
| </li> |
| </ul> |
| <a id="shift(org.apache.calcite.rex.RexNode,int,int)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>shift</h4> |
| <pre class="methodSignature">public static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> shift​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> node, |
| int start, |
| int offset)</pre> |
| <div class="block">Shifts every <a href="RexInputRef.html" title="class in org.apache.calcite.rex"><code>RexInputRef</code></a> in an expression higher than <code>start</code> |
| by <code>offset</code>.</div> |
| </li> |
| </ul> |
| <a id="pullFactors(org.apache.calcite.rex.RexBuilder,org.apache.calcite.rex.RexNode)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>pullFactors</h4> |
| <pre class="methodSignature">public static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> pullFactors​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> node)</pre> |
| <div class="block">Creates an equivalent version of a node where common factors among ORs |
| are pulled up. |
| |
| <p>For example, |
| |
| <blockquote>(a AND b) OR (a AND c AND d)</blockquote> |
| |
| <p>becomes |
| |
| <blockquote>a AND (b OR (c AND d))</blockquote> |
| |
| <p>Note that this result is not in CNF |
| (see <a href="#toCnf(org.apache.calcite.rex.RexBuilder,org.apache.calcite.rex.RexNode)"><code>toCnf(RexBuilder, RexNode)</code></a>) because there is an AND inside an |
| OR. |
| |
| <p>This form is useful if, say, <code>a</code> contains columns from only the |
| left-hand side of a join, and can be pushed to the left input.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>rexBuilder</code> - Rex builder</dd> |
| <dd><code>node</code> - Expression to transform</dd> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>Equivalent expression with common factors pulled up</dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="fixUp(org.apache.calcite.rex.RexBuilder,java.util.List,org.apache.calcite.rel.type.RelDataType)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>fixUp</h4> |
| <pre class="methodSignature">@Deprecated |
| public static java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> fixUp​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> nodes, |
| <a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a> rowType)</pre> |
| <div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div> |
| </li> |
| </ul> |
| <a id="fixUp(org.apache.calcite.rex.RexBuilder,java.util.List,java.util.List)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>fixUp</h4> |
| <pre class="methodSignature">public static java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> fixUp​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> nodes, |
| java.util.List<<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>> fieldTypes)</pre> |
| <div class="block">Fixes up the type of all <a href="RexInputRef.html" title="class in org.apache.calcite.rex"><code>RexInputRef</code></a>s in an |
| expression to match differences in nullability. |
| |
| <p>Such differences in nullability occur when expressions are moved |
| through outer joins. |
| |
| <p>Throws if there any greater inconsistencies of type.</div> |
| </li> |
| </ul> |
| <a id="types(java.util.List)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>types</h4> |
| <pre class="methodSignature">public static java.util.List<<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>> types​(java.util.List<? extends <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> nodes)</pre> |
| <div class="block">Transforms a list of expressions into a list of their types.</div> |
| </li> |
| </ul> |
| <a id="families(java.util.List)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>families</h4> |
| <pre class="methodSignature">public static java.util.List<<a href="../rel/type/RelDataTypeFamily.html" title="interface in org.apache.calcite.rel.type">RelDataTypeFamily</a>> families​(java.util.List<<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a>> types)</pre> |
| </li> |
| </ul> |
| <a id="removeAll(java.util.List,org.apache.calcite.rex.RexNode)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>removeAll</h4> |
| <pre class="methodSignature">public static boolean removeAll​(java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> targets, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> e)</pre> |
| <div class="block">Removes all expressions from a list that are equivalent to a given |
| expression. Returns whether any were removed.</div> |
| </li> |
| </ul> |
| <a id="eq(org.apache.calcite.rex.RexNode,org.apache.calcite.rex.RexNode)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>eq</h4> |
| <pre class="methodSignature">@Deprecated |
| public static boolean eq​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> e1, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> e2)</pre> |
| <div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div> |
| <div class="block">Returns whether two <a href="RexNode.html" title="class in org.apache.calcite.rex"><code>RexNode</code></a>s are structurally equal. |
| |
| <p>This method considers structure, not semantics. 'x < y' is not |
| equivalent to 'y > x'.</div> |
| </li> |
| </ul> |
| <a id="simplifyPreservingType(org.apache.calcite.rex.RexBuilder,org.apache.calcite.rex.RexNode)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>simplifyPreservingType</h4> |
| <pre class="methodSignature">@Deprecated |
| public static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> simplifyPreservingType​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> e)</pre> |
| <div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span> |
| <div class="deprecationComment">Use <a href="RexSimplify.html#simplifyPreservingType(org.apache.calcite.rex.RexNode)"><code>RexSimplify.simplifyPreservingType(RexNode)</code></a>, |
| which allows you to specify an <a href="RexExecutor.html" title="interface in org.apache.calcite.rex"><code>RexExecutor</code></a>.</div> |
| </div> |
| <div class="block">Simplifies a boolean expression, always preserving its type and its |
| nullability. |
| |
| <p>This is useful if you are simplifying expressions in a |
| <a href="../rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a>.</div> |
| </li> |
| </ul> |
| <a id="simplify(org.apache.calcite.rex.RexBuilder,org.apache.calcite.rex.RexNode)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>simplify</h4> |
| <pre class="methodSignature">@Deprecated |
| public static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> simplify​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> e)</pre> |
| <div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span> |
| <div class="deprecationComment">Create a <a href="RexSimplify.html" title="class in org.apache.calcite.rex"><code>RexSimplify</code></a>, then call its |
| <a href="RexSimplify.html#simplify(org.apache.calcite.rex.RexNode,org.apache.calcite.rex.RexUnknownAs)"><code>RexSimplify.simplify(RexNode, RexUnknownAs)</code></a> method.</div> |
| </div> |
| <div class="block">Simplifies a boolean expression, leaving UNKNOWN values as UNKNOWN, and |
| using the default executor.</div> |
| </li> |
| </ul> |
| <a id="simplify(org.apache.calcite.rex.RexBuilder,org.apache.calcite.rex.RexNode,boolean)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>simplify</h4> |
| <pre class="methodSignature">@Deprecated |
| public static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> simplify​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> e, |
| boolean unknownAsFalse)</pre> |
| <div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span> |
| <div class="deprecationComment">Create a <a href="RexSimplify.html" title="class in org.apache.calcite.rex"><code>RexSimplify</code></a>, then call its |
| <a href="RexSimplify.html#simplify(org.apache.calcite.rex.RexNode,org.apache.calcite.rex.RexUnknownAs)"><code>RexSimplify.simplify(RexNode, RexUnknownAs)</code></a> method.</div> |
| </div> |
| <div class="block">Simplifies a boolean expression, |
| using the default executor. |
| |
| <p>In particular:</p> |
| <ul> |
| <li><code>simplify(x = 1 AND y = 2 AND NOT x = 1)</code> |
| returns <code>y = 2</code></li> |
| <li><code>simplify(x = 1 AND FALSE)</code> |
| returns <code>FALSE</code></li> |
| </ul> |
| |
| <p>If the expression is a predicate in a WHERE clause, UNKNOWN values have |
| the same effect as FALSE. In situations like this, specify |
| <code>unknownAsFalse = true</code>, so and we can switch from 3-valued logic to |
| simpler 2-valued logic and make more optimizations.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>rexBuilder</code> - Rex builder</dd> |
| <dd><code>e</code> - Expression to simplify</dd> |
| <dd><code>unknownAsFalse</code> - Whether to convert UNKNOWN values to FALSE</dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="simplifyAnds(org.apache.calcite.rex.RexBuilder,java.lang.Iterable)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>simplifyAnds</h4> |
| <pre class="methodSignature">@Deprecated |
| public static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> simplifyAnds​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| java.lang.Iterable<? extends <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> nodes)</pre> |
| <div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span> |
| <div class="deprecationComment">Use |
| <a href="RexSimplify.html#simplifyAnds(java.lang.Iterable,org.apache.calcite.rex.RexUnknownAs)"><code>RexSimplify.simplifyAnds(Iterable, RexUnknownAs)</code></a>.</div> |
| </div> |
| <div class="block">Simplifies a conjunction of boolean expressions.</div> |
| </li> |
| </ul> |
| <a id="simplifyAnds(org.apache.calcite.rex.RexBuilder,java.lang.Iterable,boolean)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>simplifyAnds</h4> |
| <pre class="methodSignature">@Deprecated |
| public static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> simplifyAnds​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| java.lang.Iterable<? extends <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> nodes, |
| boolean unknownAsFalse)</pre> |
| <div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div> |
| </li> |
| </ul> |
| <a id="not(org.apache.calcite.rex.RexNode)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>not</h4> |
| <pre class="methodSignature">public static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> not​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> e)</pre> |
| <div class="block">Negates a logical expression by adding or removing a NOT.</div> |
| </li> |
| </ul> |
| <a id="addNot(org.apache.calcite.rex.RexNode)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>addNot</h4> |
| <pre class="methodSignature">private static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> addNot​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> e)</pre> |
| </li> |
| </ul> |
| <a id="op(org.apache.calcite.sql.SqlKind)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>op</h4> |
| <pre class="methodSignature">static <a href="../sql/SqlOperator.html" title="class in org.apache.calcite.sql">SqlOperator</a> op​(<a href="../sql/SqlKind.html" title="enum in org.apache.calcite.sql">SqlKind</a> kind)</pre> |
| </li> |
| </ul> |
| <a id="simplifyAnd(org.apache.calcite.rex.RexBuilder,org.apache.calcite.rex.RexCall,boolean)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>simplifyAnd</h4> |
| <pre class="methodSignature">@Deprecated |
| public static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> simplifyAnd​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| <a href="RexCall.html" title="class in org.apache.calcite.rex">RexCall</a> e, |
| boolean unknownAsFalse)</pre> |
| <div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div> |
| </li> |
| </ul> |
| <a id="simplifyAnd2(org.apache.calcite.rex.RexBuilder,java.util.List,java.util.List)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>simplifyAnd2</h4> |
| <pre class="methodSignature">@Deprecated |
| public static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> simplifyAnd2​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> terms, |
| java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> notTerms)</pre> |
| <div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div> |
| </li> |
| </ul> |
| <a id="simplifyAnd2ForUnknownAsFalse(org.apache.calcite.rex.RexBuilder,java.util.List,java.util.List)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>simplifyAnd2ForUnknownAsFalse</h4> |
| <pre class="methodSignature">@Deprecated |
| public static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> simplifyAnd2ForUnknownAsFalse​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> terms, |
| java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> notTerms)</pre> |
| <div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div> |
| </li> |
| </ul> |
| <a id="negate(org.apache.calcite.rex.RexBuilder,org.apache.calcite.rex.RexCall)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>negate</h4> |
| <pre class="methodSignature">public static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> negate​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| <a href="RexCall.html" title="class in org.apache.calcite.rex">RexCall</a> call)</pre> |
| </li> |
| </ul> |
| <a id="invert(org.apache.calcite.rex.RexBuilder,org.apache.calcite.rex.RexCall)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>invert</h4> |
| <pre class="methodSignature">public static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> invert​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| <a href="RexCall.html" title="class in org.apache.calcite.rex">RexCall</a> call)</pre> |
| </li> |
| </ul> |
| <a id="simplifyOr(org.apache.calcite.rex.RexBuilder,org.apache.calcite.rex.RexCall)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>simplifyOr</h4> |
| <pre class="methodSignature">@Deprecated |
| public static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> simplifyOr​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| <a href="RexCall.html" title="class in org.apache.calcite.rex">RexCall</a> call)</pre> |
| <div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div> |
| </li> |
| </ul> |
| <a id="simplifyOrs(org.apache.calcite.rex.RexBuilder,java.util.List)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>simplifyOrs</h4> |
| <pre class="methodSignature">@Deprecated |
| public static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> simplifyOrs​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> terms)</pre> |
| <div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div> |
| </li> |
| </ul> |
| <a id="andNot(org.apache.calcite.rex.RexBuilder,org.apache.calcite.rex.RexNode,org.apache.calcite.rex.RexNode...)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>andNot</h4> |
| <pre class="methodSignature">public static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> andNot​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> e, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>... notTerms)</pre> |
| <div class="block">Creates the expression <code>e1 AND NOT notTerm1 AND NOT notTerm2 ...</code>.</div> |
| </li> |
| </ul> |
| <a id="andNot(org.apache.calcite.rex.RexBuilder,org.apache.calcite.rex.RexNode,java.lang.Iterable)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>andNot</h4> |
| <pre class="methodSignature">@Nonnull |
| public static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> andNot​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> e, |
| java.lang.Iterable<? extends <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> notTerms)</pre> |
| <div class="block">Creates the expression <code>e1 AND NOT notTerm1 AND NOT notTerm2 ...</code>. |
| |
| <p>Examples: |
| <ul> |
| <li>andNot(p) returns "p" |
| <li>andNot(p, n1, n2) returns "p AND NOT n1 AND NOT n2" |
| <li>andNot(x = 10, x = 20, y = 30, x = 30) |
| returns "x = 10 AND NOT (y = 30)" |
| </ul></div> |
| </li> |
| </ul> |
| <a id="isCasePredicate(org.apache.calcite.rex.RexCall,int)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>isCasePredicate</h4> |
| <pre class="methodSignature">public static boolean isCasePredicate​(<a href="RexCall.html" title="class in org.apache.calcite.rex">RexCall</a> call, |
| int i)</pre> |
| <div class="block">Returns whether a given operand of a CASE expression is a predicate. |
| |
| <p>A switched case (CASE x WHEN x1 THEN v1 ... ELSE e END) has an even |
| number of arguments and odd-numbered arguments are predicates. |
| |
| <p>A condition case (CASE WHEN p1 THEN v1 ... ELSE e END) has an odd |
| number of arguments and even-numbered arguments are predicates, except for |
| the last argument.</div> |
| </li> |
| </ul> |
| <a id="containsFalse(java.lang.Iterable)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>containsFalse</h4> |
| <pre class="methodSignature">private static boolean containsFalse​(java.lang.Iterable<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> nodes)</pre> |
| </li> |
| </ul> |
| <a id="containsTrue(java.lang.Iterable)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>containsTrue</h4> |
| <pre class="methodSignature">private static boolean containsTrue​(java.lang.Iterable<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> nodes)</pre> |
| </li> |
| </ul> |
| <a id="notFn(org.apache.calcite.rex.RexBuilder)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>notFn</h4> |
| <pre class="methodSignature">@Deprecated |
| public static com.google.common.base.Function<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>,​<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> notFn​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder)</pre> |
| <div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span> |
| <div class="deprecationComment">Use <a href="#not(org.apache.calcite.rex.RexNode)"><code>not(org.apache.calcite.rex.RexNode)</code></a></div> |
| </div> |
| <div class="block">Returns a function that applies NOT to its argument.</div> |
| </li> |
| </ul> |
| <a id="not(org.apache.calcite.rex.RexBuilder,org.apache.calcite.rex.RexNode)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>not</h4> |
| <pre class="methodSignature">static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> not​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> input)</pre> |
| <div class="block">Applies NOT to an expression.</div> |
| </li> |
| </ul> |
| <a id="containsCorrelation(org.apache.calcite.rex.RexNode)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>containsCorrelation</h4> |
| <pre class="methodSignature">public static boolean containsCorrelation​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> condition)</pre> |
| <div class="block">Returns whether an expression contains a <a href="RexCorrelVariable.html" title="class in org.apache.calcite.rex"><code>RexCorrelVariable</code></a>.</div> |
| </li> |
| </ul> |
| <a id="swapTableReferences(org.apache.calcite.rex.RexBuilder,org.apache.calcite.rex.RexNode,java.util.Map)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>swapTableReferences</h4> |
| <pre class="methodSignature">public static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> swapTableReferences​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> node, |
| java.util.Map<<a href="RexTableInputRef.RelTableRef.html" title="class in org.apache.calcite.rex">RexTableInputRef.RelTableRef</a>,​<a href="RexTableInputRef.RelTableRef.html" title="class in org.apache.calcite.rex">RexTableInputRef.RelTableRef</a>> tableMapping)</pre> |
| <div class="block">Given an expression, it will swap the table references contained in its |
| <a href="RexTableInputRef.html" title="class in org.apache.calcite.rex"><code>RexTableInputRef</code></a> using the contents in the map.</div> |
| </li> |
| </ul> |
| <a id="swapColumnReferences(org.apache.calcite.rex.RexBuilder,org.apache.calcite.rex.RexNode,java.util.Map)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>swapColumnReferences</h4> |
| <pre class="methodSignature">public static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> swapColumnReferences​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> node, |
| java.util.Map<<a href="RexTableInputRef.html" title="class in org.apache.calcite.rex">RexTableInputRef</a>,​java.util.Set<<a href="RexTableInputRef.html" title="class in org.apache.calcite.rex">RexTableInputRef</a>>> ec)</pre> |
| <div class="block">Given an expression, it will swap its column references <a href="RexTableInputRef.html" title="class in org.apache.calcite.rex"><code>RexTableInputRef</code></a> |
| using the contents in the map (in particular, the first element of the set in the |
| map value).</div> |
| </li> |
| </ul> |
| <a id="swapTableColumnReferences(org.apache.calcite.rex.RexBuilder,org.apache.calcite.rex.RexNode,java.util.Map,java.util.Map)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>swapTableColumnReferences</h4> |
| <pre class="methodSignature">public static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> swapTableColumnReferences​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> node, |
| java.util.Map<<a href="RexTableInputRef.RelTableRef.html" title="class in org.apache.calcite.rex">RexTableInputRef.RelTableRef</a>,​<a href="RexTableInputRef.RelTableRef.html" title="class in org.apache.calcite.rex">RexTableInputRef.RelTableRef</a>> tableMapping, |
| java.util.Map<<a href="RexTableInputRef.html" title="class in org.apache.calcite.rex">RexTableInputRef</a>,​java.util.Set<<a href="RexTableInputRef.html" title="class in org.apache.calcite.rex">RexTableInputRef</a>>> ec)</pre> |
| <div class="block">Given an expression, it will swap the table references contained in its |
| <a href="RexTableInputRef.html" title="class in org.apache.calcite.rex"><code>RexTableInputRef</code></a> using the contents in the first map, and then |
| it will swap the column references <a href="RexTableInputRef.html" title="class in org.apache.calcite.rex"><code>RexTableInputRef</code></a> using the contents |
| in the second map (in particular, the first element of the set in the map value).</div> |
| </li> |
| </ul> |
| <a id="swapColumnTableReferences(org.apache.calcite.rex.RexBuilder,org.apache.calcite.rex.RexNode,java.util.Map,java.util.Map)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>swapColumnTableReferences</h4> |
| <pre class="methodSignature">public static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> swapColumnTableReferences​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> node, |
| java.util.Map<<a href="RexTableInputRef.html" title="class in org.apache.calcite.rex">RexTableInputRef</a>,​java.util.Set<<a href="RexTableInputRef.html" title="class in org.apache.calcite.rex">RexTableInputRef</a>>> ec, |
| java.util.Map<<a href="RexTableInputRef.RelTableRef.html" title="class in org.apache.calcite.rex">RexTableInputRef.RelTableRef</a>,​<a href="RexTableInputRef.RelTableRef.html" title="class in org.apache.calcite.rex">RexTableInputRef.RelTableRef</a>> tableMapping)</pre> |
| <div class="block">Given an expression, it will swap the column references <a href="RexTableInputRef.html" title="class in org.apache.calcite.rex"><code>RexTableInputRef</code></a> |
| using the contents in the first map (in particular, the first element of the set |
| in the map value), and then it will swap the table references contained in its |
| <a href="RexTableInputRef.html" title="class in org.apache.calcite.rex"><code>RexTableInputRef</code></a> using the contents in the second map.</div> |
| </li> |
| </ul> |
| <a id="gatherTableReferences(java.util.List)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>gatherTableReferences</h4> |
| <pre class="methodSignature">public static java.util.Set<<a href="RexTableInputRef.RelTableRef.html" title="class in org.apache.calcite.rex">RexTableInputRef.RelTableRef</a>> gatherTableReferences​(java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> nodes)</pre> |
| <div class="block">Gather all table references in input expressions.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>nodes</code> - expressions</dd> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>set of table references</dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="strings(java.util.List)"> |
| <!-- --> |
| </a> |
| <ul class="blockListLast"> |
| <li class="blockList"> |
| <h4>strings</h4> |
| <pre class="methodSignature">public static java.util.List<java.lang.String> strings​(java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> list)</pre> |
| <div class="block">Transforms a list of expressions to the list of digests.</div> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| </section> |
| </li> |
| </ul> |
| </div> |
| </div> |
| </main> |
| <!-- ========= END OF CLASS DATA ========= --> |
| <footer role="contentinfo"> |
| <nav role="navigation"> |
| <!-- ======= START OF BOTTOM NAVBAR ====== --> |
| <div class="bottomNav"><a id="navbar.bottom"> |
| <!-- --> |
| </a> |
| <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> |
| <a id="navbar.bottom.firstrow"> |
| <!-- --> |
| </a> |
| <ul class="navList" title="Navigation"> |
| <li><a href="../../../../index.html">Overview</a></li> |
| <li><a href="package-summary.html">Package</a></li> |
| <li class="navBarCell1Rev">Class</li> |
| <li><a href="class-use/RexUtil.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> |