| <!DOCTYPE HTML> |
| <!-- NewPage --> |
| <html lang="en"> |
| <head> |
| <!-- Generated by javadoc --> |
| <title>RexSimplify (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="RexSimplify (Apache Calcite API)"; |
| } |
| } |
| catch(err) { |
| } |
| //--> |
| var data = {"i0":10,"i1":9,"i2":10,"i3":10,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":10,"i10":9,"i11":10,"i12":10,"i13":10,"i14":10,"i15":42,"i16":10,"i17":10,"i18":10,"i19":10,"i20":42,"i21":10,"i22":10,"i23":9,"i24":9,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":42,"i41":10,"i42":42,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":42}; |
| var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance 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/RexSimplify.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 RexSimplify" class="title">Class RexSimplify</h2> |
| </div> |
| <div class="contentContainer"> |
| <ul class="inheritance"> |
| <li>java.lang.Object</li> |
| <li> |
| <ul class="inheritance"> |
| <li>org.apache.calcite.rex.RexSimplify</li> |
| </ul> |
| </li> |
| </ul> |
| <div class="description"> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <hr> |
| <pre>public class <span class="typeNameLabel">RexSimplify</span> |
| extends java.lang.Object</pre> |
| <div class="block">Context required to simplify a row-expression.</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>(package private) static class </code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RexSimplify.CaseBranch.html" title="class in org.apache.calcite.rex">RexSimplify.CaseBranch</a></span></code></th> |
| <td class="colLast"> |
| <div class="block">Object to describe a Case branch</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="RexSimplify.Comparison.html" title="class in org.apache.calcite.rex">RexSimplify.Comparison</a></span></code></th> |
| <td class="colLast"> |
| <div class="block">Represents a simple Comparison.</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="RexSimplify.IsPredicate.html" title="class in org.apache.calcite.rex">RexSimplify.IsPredicate</a></span></code></th> |
| <td class="colLast"> |
| <div class="block">Represents an IS Predicate.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><code>private static interface </code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RexSimplify.Predicate.html" title="interface in org.apache.calcite.rex">RexSimplify.Predicate</a></span></code></th> |
| <td class="colLast"> |
| <div class="block">Marker interface for predicates (expressions that evaluate to BOOLEAN).</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><code>(package private) static class </code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RexSimplify.SafeRexVisitor.html" title="enum in org.apache.calcite.rex">RexSimplify.SafeRexVisitor</a></span></code></th> |
| <td class="colLast"> |
| <div class="block">Decides whether it is safe to flatten the given case part into AND/ORs</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>(package private) <a href="RexUnknownAs.html" title="enum in org.apache.calcite.rex">RexUnknownAs</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#defaultUnknownAs">defaultUnknownAs</a></span></code></th> |
| <td class="colLast"> |
| <div class="block">How to treat UNKNOWN values, if one of the deprecated <code> |
| simplify</code> methods without an <code>unknownAs</code> argument is called.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><code>private <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"> </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><code>private boolean</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#paranoid">paranoid</a></span></code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><code>(package private) boolean</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#predicateElimination">predicateElimination</a></span></code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><code>private <a href="../plan/RelOptPredicateList.html" title="class in org.apache.calcite.plan">RelOptPredicateList</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#predicates">predicates</a></span></code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><code><a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#rexBuilder">rexBuilder</a></span></code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><code>private <a href="../plan/Strong.html" title="class in org.apache.calcite.plan">Strong</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#strong">strong</a></span></code></th> |
| <td class="colLast"> </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> </code></td> |
| <th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.apache.calcite.rex.RexBuilder,boolean,org.apache.calcite.rex.RexExecutor)">RexSimplify</a></span>​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| boolean unknownAsFalse, |
| <a href="RexExecutor.html" title="interface in org.apache.calcite.rex">RexExecutor</a> executor)</code></th> |
| <td class="colLast"> |
| <div class="block"><span class="deprecatedLabel">Deprecated.</span></div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><code> </code></td> |
| <th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.apache.calcite.rex.RexBuilder,org.apache.calcite.plan.RelOptPredicateList,boolean,org.apache.calcite.rex.RexExecutor)">RexSimplify</a></span>​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| <a href="../plan/RelOptPredicateList.html" title="class in org.apache.calcite.plan">RelOptPredicateList</a> predicates, |
| boolean unknownAsFalse, |
| <a href="RexExecutor.html" title="interface in org.apache.calcite.rex">RexExecutor</a> executor)</code></th> |
| <td class="colLast"> |
| <div class="block"><span class="deprecatedLabel">Deprecated.</span></div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><code> </code></td> |
| <th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.apache.calcite.rex.RexBuilder,org.apache.calcite.plan.RelOptPredicateList,org.apache.calcite.rex.RexExecutor)">RexSimplify</a></span>​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| <a href="../plan/RelOptPredicateList.html" title="class in org.apache.calcite.plan">RelOptPredicateList</a> predicates, |
| <a href="RexExecutor.html" title="interface in org.apache.calcite.rex">RexExecutor</a> executor)</code></th> |
| <td class="colLast"> |
| <div class="block">Creates a RexSimplify.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><code>private </code></td> |
| <th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.apache.calcite.rex.RexBuilder,org.apache.calcite.plan.RelOptPredicateList,org.apache.calcite.rex.RexUnknownAs,boolean,boolean,org.apache.calcite.rex.RexExecutor)">RexSimplify</a></span>​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| <a href="../plan/RelOptPredicateList.html" title="class in org.apache.calcite.plan">RelOptPredicateList</a> predicates, |
| <a href="RexUnknownAs.html" title="enum in org.apache.calcite.rex">RexUnknownAs</a> defaultUnknownAs, |
| boolean predicateElimination, |
| boolean paranoid, |
| <a href="RexExecutor.html" title="interface in org.apache.calcite.rex">RexExecutor</a> executor)</code></th> |
| <td class="colLast"> |
| <div class="block">Internal constructor.</div> |
| </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="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span><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 boolean</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#allowedAsPredicateDuringOrSimplification(org.apache.calcite.rex.RexNode)">allowedAsPredicateDuringOrSimplification</a></span>​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> t)</code></th> |
| <td class="colLast"> |
| <div class="block">Decides whether the given node could be used as a predicate during the simplification |
| of other OR operands.</div> |
| </td> |
| </tr> |
| <tr id="i1" class="rowColor"> |
| <td class="colFirst"><code>private static boolean</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#canRollUp(org.apache.calcite.avatica.util.TimeUnit,org.apache.calcite.avatica.util.TimeUnit)">canRollUp</a></span>​(org.apache.calcite.avatica.util.TimeUnit outer, |
| org.apache.calcite.avatica.util.TimeUnit inner)</code></th> |
| <td class="colLast"> |
| <div class="block">Method that returns whether we can rollup from inner time unit |
| to outer time unit.</div> |
| </td> |
| </tr> |
| <tr id="i2" class="altColor"> |
| <td class="colFirst"><code>private void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ensureParanoidOff()">ensureParanoidOff</a></span>()</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i3" class="rowColor"> |
| <td class="colFirst"><code>private <a href="RexSimplify.CaseBranch.html" title="class in org.apache.calcite.rex">RexSimplify.CaseBranch</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#generateBranch(boolean,org.apache.calcite.rex.RexSimplify,org.apache.calcite.rex.RexSimplify.CaseBranch)">generateBranch</a></span>​(boolean simplifyCond, |
| <a href="RexSimplify.html" title="class in org.apache.calcite.rex">RexSimplify</a> simplifier, |
| <a href="RexSimplify.CaseBranch.html" title="class in org.apache.calcite.rex">RexSimplify.CaseBranch</a> branch)</code></th> |
| <td class="colLast"> |
| <div class="block">If boolean is true, simplify cond in input branch and return new branch.</div> |
| </td> |
| </tr> |
| <tr id="i4" class="altColor"> |
| <td class="colFirst"><code>private static boolean</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isLowerBound(org.apache.calcite.rex.RexNode)">isLowerBound</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="i5" class="rowColor"> |
| <td class="colFirst"><code>(package private) static boolean</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isSafeExpression(org.apache.calcite.rex.RexNode)">isSafeExpression</a></span>​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> r)</code></th> |
| <td class="colLast"> |
| <div class="block">Analyzes a given <a href="RexNode.html" title="class in org.apache.calcite.rex"><code>RexNode</code></a> and decides whenever it is safe to |
| unwind.</div> |
| </td> |
| </tr> |
| <tr id="i6" class="altColor"> |
| <td class="colFirst"><code>private static boolean</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isUpperBound(org.apache.calcite.rex.RexNode)">isUpperBound</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="i7" class="rowColor"> |
| <td class="colFirst"><code>private static <C extends java.lang.Comparable<C>><br><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="#processRange(org.apache.calcite.rex.RexBuilder,java.util.List,java.util.Map,org.apache.calcite.rex.RexNode,org.apache.calcite.rex.RexNode,C,org.apache.calcite.sql.SqlKind)">processRange</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.Map<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>,​<a href="../util/Pair.html" title="class in org.apache.calcite.util">Pair</a><com.google.common.collect.Range<C>,​java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>>>> rangeTerms, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> term, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> ref, |
| C v0, |
| <a href="../sql/SqlKind.html" title="enum in org.apache.calcite.sql">SqlKind</a> comparison)</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i8" class="altColor"> |
| <td class="colFirst"><code>private static <C extends java.lang.Comparable<C>><br>com.google.common.collect.Range<C></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#range(org.apache.calcite.sql.SqlKind,C)">range</a></span>​(<a href="../sql/SqlKind.html" title="enum in org.apache.calcite.sql">SqlKind</a> comparison, |
| C c)</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i9" class="rowColor"> |
| <td class="colFirst"><code><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.rex.RexNode)">removeNullabilityCast</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 that change nullability but not type.</div> |
| </td> |
| </tr> |
| <tr id="i10" class="altColor"> |
| <td class="colFirst"><code>private static <E> boolean</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#replaceLast(java.util.List,E,E)">replaceLast</a></span>​(java.util.List<E> list, |
| E oldVal, |
| E newVal)</code></th> |
| <td class="colLast"> |
| <div class="block">Replaces the last occurrence of one specified value in a list with |
| another.</div> |
| </td> |
| </tr> |
| <tr id="i11" class="rowColor"> |
| <td class="colFirst"><code>private <C extends java.lang.Comparable<C>><br>com.google.common.collect.Range<C></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#residue(org.apache.calcite.rex.RexNode,com.google.common.collect.Range,java.util.List,java.lang.Class)">residue</a></span>​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> ref, |
| com.google.common.collect.Range<C> r0, |
| java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> predicates, |
| java.lang.Class<C> clazz)</code></th> |
| <td class="colLast"> |
| <div class="block">Weakens a term so that it checks only what is not implied by predicates.</div> |
| </td> |
| </tr> |
| <tr id="i12" class="altColor"> |
| <td class="colFirst"><code>private boolean</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sameTypeOrNarrowsNullability(org.apache.calcite.rel.type.RelDataType,org.apache.calcite.rel.type.RelDataType)">sameTypeOrNarrowsNullability</a></span>​(<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a> oldType, |
| <a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a> newType)</code></th> |
| <td class="colLast"> |
| <div class="block">Return if the new type is the same and at most narrows the nullability.</div> |
| </td> |
| </tr> |
| <tr id="i13" class="rowColor"> |
| <td class="colFirst"><code><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.RexNode)">simplify</a></span>​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> e)</code></th> |
| <td class="colLast"> |
| <div class="block">Simplifies a boolean expression.</div> |
| </td> |
| </tr> |
| <tr id="i14" class="altColor"> |
| <td class="colFirst"><code>(package private) <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.RexNode,org.apache.calcite.rex.RexUnknownAs)">simplify</a></span>​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> e, |
| <a href="RexUnknownAs.html" title="enum in org.apache.calcite.rex">RexUnknownAs</a> unknownAs)</code></th> |
| <td class="colLast"> |
| <div class="block">Internal method to simplify an expression.</div> |
| </td> |
| </tr> |
| <tr id="i15" class="rowColor"> |
| <td class="colFirst"><code><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.RexCall)">simplifyAnd</a></span>​(<a href="RexCall.html" title="class in org.apache.calcite.rex">RexCall</a> e)</code></th> |
| <td class="colLast"> |
| <div class="block"><span class="deprecatedLabel">Deprecated.</span></div> |
| </td> |
| </tr> |
| <tr id="i16" class="altColor"> |
| <td class="colFirst"><code>(package private) <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.RexCall,org.apache.calcite.rex.RexUnknownAs)">simplifyAnd</a></span>​(<a href="RexCall.html" title="class in org.apache.calcite.rex">RexCall</a> e, |
| <a href="RexUnknownAs.html" title="enum in org.apache.calcite.rex">RexUnknownAs</a> unknownAs)</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i17" class="rowColor"> |
| <td class="colFirst"><code>(package private) <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(java.util.List,java.util.List)">simplifyAnd2</a></span>​(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"> </td> |
| </tr> |
| <tr id="i18" class="altColor"> |
| <td class="colFirst"><code>(package private) <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(java.util.List,java.util.List)">simplifyAnd2ForUnknownAsFalse</a></span>​(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">As <a href="#simplifyAnd2(java.util.List,java.util.List)"><code>simplifyAnd2(List, List)</code></a> but we assume that if the expression |
| returns UNKNOWN it will be interpreted as FALSE.</div> |
| </td> |
| </tr> |
| <tr id="i19" class="rowColor"> |
| <td class="colFirst"><code>private <C extends java.lang.Comparable<C>><br><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(java.util.List,java.util.List,java.lang.Class)">simplifyAnd2ForUnknownAsFalse</a></span>​(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, |
| java.lang.Class<C> clazz)</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i20" class="altColor"> |
| <td class="colFirst"><code><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(java.lang.Iterable)">simplifyAnds</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"><span class="deprecatedLabel">Deprecated.</span></div> |
| </td> |
| </tr> |
| <tr id="i21" class="rowColor"> |
| <td class="colFirst"><code>(package private) <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(java.lang.Iterable,org.apache.calcite.rex.RexUnknownAs)">simplifyAnds</a></span>​(java.lang.Iterable<? extends <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> nodes, |
| <a href="RexUnknownAs.html" title="enum in org.apache.calcite.rex">RexUnknownAs</a> unknownAs)</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i22" class="altColor"> |
| <td class="colFirst"><code>private void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#simplifyAndTerms(java.util.List,org.apache.calcite.rex.RexUnknownAs)">simplifyAndTerms</a></span>​(java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> terms, |
| <a href="RexUnknownAs.html" title="enum in org.apache.calcite.rex">RexUnknownAs</a> unknownAs)</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i23" 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="#simplifyBooleanCase(org.apache.calcite.rex.RexBuilder,java.util.List,org.apache.calcite.rex.RexUnknownAs,org.apache.calcite.rel.type.RelDataType)">simplifyBooleanCase</a></span>​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| java.util.List<<a href="RexSimplify.CaseBranch.html" title="class in org.apache.calcite.rex">RexSimplify.CaseBranch</a>> inputBranches, |
| <a href="RexUnknownAs.html" title="enum in org.apache.calcite.rex">RexUnknownAs</a> unknownAs, |
| <a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a> branchType)</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i24" class="altColor"> |
| <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="#simplifyBooleanCaseGeneric(org.apache.calcite.rex.RexBuilder,java.util.List,org.apache.calcite.rel.type.RelDataType)">simplifyBooleanCaseGeneric</a></span>​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| java.util.List<<a href="RexSimplify.CaseBranch.html" title="class in org.apache.calcite.rex">RexSimplify.CaseBranch</a>> branches, |
| <a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a> outputType)</code></th> |
| <td class="colLast"> |
| <div class="block">Generic boolean case simplification.</div> |
| </td> |
| </tr> |
| <tr id="i25" class="rowColor"> |
| <td class="colFirst"><code>private <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="#simplifyCase(org.apache.calcite.rex.RexCall,org.apache.calcite.rex.RexUnknownAs)">simplifyCase</a></span>​(<a href="RexCall.html" title="class in org.apache.calcite.rex">RexCall</a> call, |
| <a href="RexUnknownAs.html" title="enum in org.apache.calcite.rex">RexUnknownAs</a> unknownAs)</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i26" class="altColor"> |
| <td class="colFirst"><code>private <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="#simplifyCast(org.apache.calcite.rex.RexCall)">simplifyCast</a></span>​(<a href="RexCall.html" title="class in org.apache.calcite.rex">RexCall</a> e)</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i27" class="rowColor"> |
| <td class="colFirst"><code>private <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="#simplifyCeilFloor(org.apache.calcite.rex.RexCall)">simplifyCeilFloor</a></span>​(<a href="RexCall.html" title="class in org.apache.calcite.rex">RexCall</a> e)</code></th> |
| <td class="colLast"> |
| <div class="block">Tries to simplify CEIL/FLOOR function on top of CEIL/FLOOR.</div> |
| </td> |
| </tr> |
| <tr id="i28" class="altColor"> |
| <td class="colFirst"><code>private <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="#simplifyCoalesce(org.apache.calcite.rex.RexCall)">simplifyCoalesce</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="i29" class="rowColor"> |
| <td class="colFirst"><code>private <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="#simplifyComparison(org.apache.calcite.rex.RexCall,org.apache.calcite.rex.RexUnknownAs)">simplifyComparison</a></span>​(<a href="RexCall.html" title="class in org.apache.calcite.rex">RexCall</a> e, |
| <a href="RexUnknownAs.html" title="enum in org.apache.calcite.rex">RexUnknownAs</a> unknownAs)</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i30" class="altColor"> |
| <td class="colFirst"><code>private <C extends java.lang.Comparable<C>><br><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="#simplifyComparison(org.apache.calcite.rex.RexCall,org.apache.calcite.rex.RexUnknownAs,java.lang.Class)">simplifyComparison</a></span>​(<a href="RexCall.html" title="class in org.apache.calcite.rex">RexCall</a> e, |
| <a href="RexUnknownAs.html" title="enum in org.apache.calcite.rex">RexUnknownAs</a> unknownAs, |
| java.lang.Class<C> clazz)</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i31" class="rowColor"> |
| <td class="colFirst"><code><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="#simplifyFilterPredicates(java.lang.Iterable)">simplifyFilterPredicates</a></span>​(java.lang.Iterable<? extends <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> predicates)</code></th> |
| <td class="colLast"> |
| <div class="block">Combines predicates AND, optimizes, and returns null if the result is |
| always false.</div> |
| </td> |
| </tr> |
| <tr id="i32" class="altColor"> |
| <td class="colFirst"><code>private <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="#simplifyGenericNode(org.apache.calcite.rex.RexCall)">simplifyGenericNode</a></span>​(<a href="RexCall.html" title="class in org.apache.calcite.rex">RexCall</a> e)</code></th> |
| <td class="colLast"> |
| <div class="block">Runs simplification inside a non-specialized node.</div> |
| </td> |
| </tr> |
| <tr id="i33" class="rowColor"> |
| <td class="colFirst"><code>private <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="#simplifyIs(org.apache.calcite.rex.RexCall,org.apache.calcite.rex.RexUnknownAs)">simplifyIs</a></span>​(<a href="RexCall.html" title="class in org.apache.calcite.rex">RexCall</a> call, |
| <a href="RexUnknownAs.html" title="enum in org.apache.calcite.rex">RexUnknownAs</a> unknownAs)</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i34" class="altColor"> |
| <td class="colFirst"><code>private <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="#simplifyIs2(org.apache.calcite.sql.SqlKind,org.apache.calcite.rex.RexNode,org.apache.calcite.rex.RexUnknownAs)">simplifyIs2</a></span>​(<a href="../sql/SqlKind.html" title="enum in org.apache.calcite.sql">SqlKind</a> kind, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> a, |
| <a href="RexUnknownAs.html" title="enum in org.apache.calcite.rex">RexUnknownAs</a> unknownAs)</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i35" class="rowColor"> |
| <td class="colFirst"><code>private <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="#simplifyIsNotNull(org.apache.calcite.rex.RexNode)">simplifyIsNotNull</a></span>​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> a)</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i36" class="altColor"> |
| <td class="colFirst"><code>private <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="#simplifyIsNull(org.apache.calcite.rex.RexNode)">simplifyIsNull</a></span>​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> a)</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i37" class="rowColor"> |
| <td class="colFirst"><code>private <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="#simplifyIsPredicate(org.apache.calcite.sql.SqlKind,org.apache.calcite.rex.RexNode)">simplifyIsPredicate</a></span>​(<a href="../sql/SqlKind.html" title="enum in org.apache.calcite.sql">SqlKind</a> kind, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> a)</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i38" class="altColor"> |
| <td class="colFirst"><code>private void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#simplifyList(java.util.List,org.apache.calcite.rex.RexUnknownAs)">simplifyList</a></span>​(java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> terms, |
| <a href="RexUnknownAs.html" title="enum in org.apache.calcite.rex">RexUnknownAs</a> unknownAs)</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i39" class="rowColor"> |
| <td class="colFirst"><code>private <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="#simplifyNot(org.apache.calcite.rex.RexCall,org.apache.calcite.rex.RexUnknownAs)">simplifyNot</a></span>​(<a href="RexCall.html" title="class in org.apache.calcite.rex">RexCall</a> call, |
| <a href="RexUnknownAs.html" title="enum in org.apache.calcite.rex">RexUnknownAs</a> unknownAs)</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i40" class="altColor"> |
| <td class="colFirst"><code><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.RexCall)">simplifyOr</a></span>​(<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="i41" class="rowColor"> |
| <td class="colFirst"><code>private <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.RexCall,org.apache.calcite.rex.RexUnknownAs)">simplifyOr</a></span>​(<a href="RexCall.html" title="class in org.apache.calcite.rex">RexCall</a> call, |
| <a href="RexUnknownAs.html" title="enum in org.apache.calcite.rex">RexUnknownAs</a> unknownAs)</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i42" class="altColor"> |
| <td class="colFirst"><code><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(java.util.List)">simplifyOrs</a></span>​(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="i43" class="rowColor"> |
| <td class="colFirst"><code>private <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(java.util.List,org.apache.calcite.rex.RexUnknownAs)">simplifyOrs</a></span>​(java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> terms, |
| <a href="RexUnknownAs.html" title="enum in org.apache.calcite.rex">RexUnknownAs</a> unknownAs)</code></th> |
| <td class="colLast"> |
| <div class="block">Simplifies a list of terms and combines them into an OR.</div> |
| </td> |
| </tr> |
| <tr id="i44" class="altColor"> |
| <td class="colFirst"><code>private void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#simplifyOrTerms(java.util.List,org.apache.calcite.rex.RexUnknownAs)">simplifyOrTerms</a></span>​(java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> terms, |
| <a href="RexUnknownAs.html" title="enum in org.apache.calcite.rex">RexUnknownAs</a> unknownAs)</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i45" class="rowColor"> |
| <td class="colFirst"><code><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.RexNode)">simplifyPreservingType</a></span>​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> e)</code></th> |
| <td class="colLast"> |
| <div class="block">Simplifies a boolean expression, always preserving its type and its |
| nullability.</div> |
| </td> |
| </tr> |
| <tr id="i46" class="altColor"> |
| <td class="colFirst"><code><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.RexNode,org.apache.calcite.rex.RexUnknownAs,boolean)">simplifyPreservingType</a></span>​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> e, |
| <a href="RexUnknownAs.html" title="enum in org.apache.calcite.rex">RexUnknownAs</a> unknownAs, |
| boolean matchNullability)</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i47" class="rowColor"> |
| <td class="colFirst"><code><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="#simplifyUnknownAs(org.apache.calcite.rex.RexNode,org.apache.calcite.rex.RexUnknownAs)">simplifyUnknownAs</a></span>​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> e, |
| <a href="RexUnknownAs.html" title="enum in org.apache.calcite.rex">RexUnknownAs</a> unknownAs)</code></th> |
| <td class="colLast"> |
| <div class="block">As <a href="#simplify(org.apache.calcite.rex.RexNode)"><code>simplify(RexNode)</code></a>, but specifying how UNKNOWN values are to be |
| treated.</div> |
| </td> |
| </tr> |
| <tr id="i48" class="altColor"> |
| <td class="colFirst"><code><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="#simplifyUnknownAsFalse(org.apache.calcite.rex.RexNode)">simplifyUnknownAsFalse</a></span>​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> e)</code></th> |
| <td class="colLast"> |
| <div class="block">As <a href="#simplify(org.apache.calcite.rex.RexNode)"><code>simplify(RexNode)</code></a>, but for a boolean expression |
| for which a result of UNKNOWN will be treated as FALSE.</div> |
| </td> |
| </tr> |
| <tr id="i49" class="rowColor"> |
| <td class="colFirst"><code>private <C extends java.lang.Comparable<C>><br><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="#simplifyUsingPredicates(org.apache.calcite.rex.RexNode,java.lang.Class)">simplifyUsingPredicates</a></span>​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> e, |
| java.lang.Class<C> clazz)</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i50" class="altColor"> |
| <td class="colFirst"><code>private void</code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#verify(org.apache.calcite.rex.RexNode,org.apache.calcite.rex.RexNode,org.apache.calcite.rex.RexUnknownAs)">verify</a></span>​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> before, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> simplified, |
| <a href="RexUnknownAs.html" title="enum in org.apache.calcite.rex">RexUnknownAs</a> unknownAs)</code></th> |
| <td class="colLast"> </td> |
| </tr> |
| <tr id="i51" class="rowColor"> |
| <td class="colFirst"><code><a href="RexSimplify.html" title="class in org.apache.calcite.rex">RexSimplify</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withParanoid(boolean)">withParanoid</a></span>​(boolean paranoid)</code></th> |
| <td class="colLast"> |
| <div class="block">Returns a RexSimplify the same as this but which verifies that |
| the expression before and after simplification are equivalent.</div> |
| </td> |
| </tr> |
| <tr id="i52" class="altColor"> |
| <td class="colFirst"><code>private <a href="RexSimplify.html" title="class in org.apache.calcite.rex">RexSimplify</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withPredicateElimination(boolean)">withPredicateElimination</a></span>​(boolean predicateElimination)</code></th> |
| <td class="colLast"> |
| <div class="block">Returns a RexSimplify the same as this but with a specified |
| <a href="#predicateElimination"><code>predicateElimination</code></a> value.</div> |
| </td> |
| </tr> |
| <tr id="i53" class="rowColor"> |
| <td class="colFirst"><code><a href="RexSimplify.html" title="class in org.apache.calcite.rex">RexSimplify</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withPredicates(org.apache.calcite.plan.RelOptPredicateList)">withPredicates</a></span>​(<a href="../plan/RelOptPredicateList.html" title="class in org.apache.calcite.plan">RelOptPredicateList</a> predicates)</code></th> |
| <td class="colLast"> |
| <div class="block">Returns a RexSimplify the same as this but with a specified |
| <a href="#predicates"><code>predicates</code></a> value.</div> |
| </td> |
| </tr> |
| <tr id="i54" class="altColor"> |
| <td class="colFirst"><code><a href="RexSimplify.html" title="class in org.apache.calcite.rex">RexSimplify</a></code></td> |
| <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withUnknownAsFalse(boolean)">withUnknownAsFalse</a></span>​(boolean unknownAsFalse)</code></th> |
| <td class="colLast"> |
| <div class="block"><span class="deprecatedLabel">Deprecated.</span> |
| <div class="deprecationComment">Use methods with a <a href="RexUnknownAs.html" title="enum in org.apache.calcite.rex"><code>RexUnknownAs</code></a> argument, such as |
| <a href="#simplify(org.apache.calcite.rex.RexNode,org.apache.calcite.rex.RexUnknownAs)"><code>simplify(RexNode, RexUnknownAs)</code></a>.</div> |
| </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="paranoid"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>paranoid</h4> |
| <pre>private final boolean paranoid</pre> |
| </li> |
| </ul> |
| <a id="rexBuilder"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>rexBuilder</h4> |
| <pre>public final <a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder</pre> |
| </li> |
| </ul> |
| <a id="predicates"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>predicates</h4> |
| <pre>private final <a href="../plan/RelOptPredicateList.html" title="class in org.apache.calcite.plan">RelOptPredicateList</a> predicates</pre> |
| </li> |
| </ul> |
| <a id="defaultUnknownAs"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>defaultUnknownAs</h4> |
| <pre>final <a href="RexUnknownAs.html" title="enum in org.apache.calcite.rex">RexUnknownAs</a> defaultUnknownAs</pre> |
| <div class="block">How to treat UNKNOWN values, if one of the deprecated <code> |
| simplify</code> methods without an <code>unknownAs</code> argument is called.</div> |
| </li> |
| </ul> |
| <a id="predicateElimination"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>predicateElimination</h4> |
| <pre>final boolean predicateElimination</pre> |
| </li> |
| </ul> |
| <a id="executor"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>executor</h4> |
| <pre>private final <a href="RexExecutor.html" title="interface in org.apache.calcite.rex">RexExecutor</a> executor</pre> |
| </li> |
| </ul> |
| <a id="strong"> |
| <!-- --> |
| </a> |
| <ul class="blockListLast"> |
| <li class="blockList"> |
| <h4>strong</h4> |
| <pre>private final <a href="../plan/Strong.html" title="class in org.apache.calcite.plan">Strong</a> strong</pre> |
| </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>(org.apache.calcite.rex.RexBuilder,org.apache.calcite.plan.RelOptPredicateList,org.apache.calcite.rex.RexExecutor)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>RexSimplify</h4> |
| <pre>public RexSimplify​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| <a href="../plan/RelOptPredicateList.html" title="class in org.apache.calcite.plan">RelOptPredicateList</a> predicates, |
| <a href="RexExecutor.html" title="interface in org.apache.calcite.rex">RexExecutor</a> executor)</pre> |
| <div class="block">Creates a RexSimplify.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>rexBuilder</code> - Rex builder</dd> |
| <dd><code>predicates</code> - Predicates known to hold on input fields</dd> |
| <dd><code>executor</code> - Executor for constant reduction, not null</dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="<init>(org.apache.calcite.rex.RexBuilder,org.apache.calcite.plan.RelOptPredicateList,org.apache.calcite.rex.RexUnknownAs,boolean,boolean,org.apache.calcite.rex.RexExecutor)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>RexSimplify</h4> |
| <pre>private RexSimplify​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| <a href="../plan/RelOptPredicateList.html" title="class in org.apache.calcite.plan">RelOptPredicateList</a> predicates, |
| <a href="RexUnknownAs.html" title="enum in org.apache.calcite.rex">RexUnknownAs</a> defaultUnknownAs, |
| boolean predicateElimination, |
| boolean paranoid, |
| <a href="RexExecutor.html" title="interface in org.apache.calcite.rex">RexExecutor</a> executor)</pre> |
| <div class="block">Internal constructor.</div> |
| </li> |
| </ul> |
| <a id="<init>(org.apache.calcite.rex.RexBuilder,boolean,org.apache.calcite.rex.RexExecutor)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>RexSimplify</h4> |
| <pre>@Deprecated |
| public RexSimplify​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| boolean unknownAsFalse, |
| <a href="RexExecutor.html" title="interface in org.apache.calcite.rex">RexExecutor</a> executor)</pre> |
| <div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div> |
| </li> |
| </ul> |
| <a id="<init>(org.apache.calcite.rex.RexBuilder,org.apache.calcite.plan.RelOptPredicateList,boolean,org.apache.calcite.rex.RexExecutor)"> |
| <!-- --> |
| </a> |
| <ul class="blockListLast"> |
| <li class="blockList"> |
| <h4>RexSimplify</h4> |
| <pre>@Deprecated |
| public RexSimplify​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| <a href="../plan/RelOptPredicateList.html" title="class in org.apache.calcite.plan">RelOptPredicateList</a> predicates, |
| boolean unknownAsFalse, |
| <a href="RexExecutor.html" title="interface in org.apache.calcite.rex">RexExecutor</a> executor)</pre> |
| <div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div> |
| </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="withUnknownAsFalse(boolean)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>withUnknownAsFalse</h4> |
| <pre class="methodSignature">@Deprecated |
| public <a href="RexSimplify.html" title="class in org.apache.calcite.rex">RexSimplify</a> withUnknownAsFalse​(boolean unknownAsFalse)</pre> |
| <div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span> |
| <div class="deprecationComment">Use methods with a <a href="RexUnknownAs.html" title="enum in org.apache.calcite.rex"><code>RexUnknownAs</code></a> argument, such as |
| <a href="#simplify(org.apache.calcite.rex.RexNode,org.apache.calcite.rex.RexUnknownAs)"><code>simplify(RexNode, RexUnknownAs)</code></a>.</div> |
| </div> |
| <div class="block">Returns a RexSimplify the same as this but with a specified |
| <a href="#defaultUnknownAs"><code>defaultUnknownAs</code></a> value.</div> |
| </li> |
| </ul> |
| <a id="withPredicates(org.apache.calcite.plan.RelOptPredicateList)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>withPredicates</h4> |
| <pre class="methodSignature">public <a href="RexSimplify.html" title="class in org.apache.calcite.rex">RexSimplify</a> withPredicates​(<a href="../plan/RelOptPredicateList.html" title="class in org.apache.calcite.plan">RelOptPredicateList</a> predicates)</pre> |
| <div class="block">Returns a RexSimplify the same as this but with a specified |
| <a href="#predicates"><code>predicates</code></a> value.</div> |
| </li> |
| </ul> |
| <a id="withParanoid(boolean)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>withParanoid</h4> |
| <pre class="methodSignature">public <a href="RexSimplify.html" title="class in org.apache.calcite.rex">RexSimplify</a> withParanoid​(boolean paranoid)</pre> |
| <div class="block">Returns a RexSimplify the same as this but which verifies that |
| the expression before and after simplification are equivalent.</div> |
| <dl> |
| <dt><span class="seeLabel">See Also:</span></dt> |
| <dd><a href="#verify(org.apache.calcite.rex.RexNode,org.apache.calcite.rex.RexNode,org.apache.calcite.rex.RexUnknownAs)"><code>verify(org.apache.calcite.rex.RexNode, org.apache.calcite.rex.RexNode, org.apache.calcite.rex.RexUnknownAs)</code></a></dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="withPredicateElimination(boolean)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>withPredicateElimination</h4> |
| <pre class="methodSignature">private <a href="RexSimplify.html" title="class in org.apache.calcite.rex">RexSimplify</a> withPredicateElimination​(boolean predicateElimination)</pre> |
| <div class="block">Returns a RexSimplify the same as this but with a specified |
| <a href="#predicateElimination"><code>predicateElimination</code></a> value. |
| |
| <p>This is introduced temporarily, until |
| <a href="../util/Bug.html#CALCITE_2401_FIXED"><code>[CALCITE-2401] is fixed</code></a>.</div> |
| </li> |
| </ul> |
| <a id="simplifyPreservingType(org.apache.calcite.rex.RexNode)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>simplifyPreservingType</h4> |
| <pre class="methodSignature">public <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> simplifyPreservingType​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> e)</pre> |
| <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="simplifyPreservingType(org.apache.calcite.rex.RexNode,org.apache.calcite.rex.RexUnknownAs,boolean)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>simplifyPreservingType</h4> |
| <pre class="methodSignature">public <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> simplifyPreservingType​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> e, |
| <a href="RexUnknownAs.html" title="enum in org.apache.calcite.rex">RexUnknownAs</a> unknownAs, |
| boolean matchNullability)</pre> |
| </li> |
| </ul> |
| <a id="simplify(org.apache.calcite.rex.RexNode)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>simplify</h4> |
| <pre class="methodSignature">public <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> simplify​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> e)</pre> |
| <div class="block">Simplifies a boolean expression. |
| |
| <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>Handles UNKNOWN values using the policy specified when you created this |
| <code>RexSimplify</code>. Unless you used a deprecated constructor, that policy |
| is <a href="RexUnknownAs.html#UNKNOWN"><code>RexUnknownAs.UNKNOWN</code></a>. |
| |
| <p>If the expression is a predicate in a WHERE clause, consider instead |
| using <a href="#simplifyUnknownAsFalse(org.apache.calcite.rex.RexNode)"><code>simplifyUnknownAsFalse(RexNode)</code></a>.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>e</code> - Expression to simplify</dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="simplifyUnknownAsFalse(org.apache.calcite.rex.RexNode)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>simplifyUnknownAsFalse</h4> |
| <pre class="methodSignature">public final <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> simplifyUnknownAsFalse​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> e)</pre> |
| <div class="block">As <a href="#simplify(org.apache.calcite.rex.RexNode)"><code>simplify(RexNode)</code></a>, but for a boolean expression |
| for which a result of UNKNOWN will be treated as FALSE. |
| |
| <p>Use this form for expressions on a WHERE, ON, HAVING or FILTER(WHERE) |
| clause. |
| |
| <p>This may allow certain additional simplifications. A result of UNKNOWN |
| may yield FALSE, however it may still yield UNKNOWN. (If the simplified |
| expression has type BOOLEAN NOT NULL, then of course it can only return |
| FALSE.)</div> |
| </li> |
| </ul> |
| <a id="simplifyUnknownAs(org.apache.calcite.rex.RexNode,org.apache.calcite.rex.RexUnknownAs)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>simplifyUnknownAs</h4> |
| <pre class="methodSignature">public <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> simplifyUnknownAs​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> e, |
| <a href="RexUnknownAs.html" title="enum in org.apache.calcite.rex">RexUnknownAs</a> unknownAs)</pre> |
| <div class="block">As <a href="#simplify(org.apache.calcite.rex.RexNode)"><code>simplify(RexNode)</code></a>, but specifying how UNKNOWN values are to be |
| treated. |
| |
| <p>If UNKNOWN is treated as FALSE, this may allow certain additional |
| simplifications. A result of UNKNOWN may yield FALSE, however it may still |
| yield UNKNOWN. (If the simplified expression has type BOOLEAN NOT NULL, |
| then of course it can only return FALSE.)</div> |
| </li> |
| </ul> |
| <a id="simplify(org.apache.calcite.rex.RexNode,org.apache.calcite.rex.RexUnknownAs)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>simplify</h4> |
| <pre class="methodSignature"><a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> simplify​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> e, |
| <a href="RexUnknownAs.html" title="enum in org.apache.calcite.rex">RexUnknownAs</a> unknownAs)</pre> |
| <div class="block">Internal method to simplify an expression. |
| |
| <p>Unlike the public <a href="#simplify(org.apache.calcite.rex.RexNode)"><code>simplify(RexNode)</code></a> |
| and <a href="#simplifyUnknownAsFalse(org.apache.calcite.rex.RexNode)"><code>simplifyUnknownAsFalse(RexNode)</code></a> methods, |
| never calls <a href="#verify(org.apache.calcite.rex.RexNode,org.apache.calcite.rex.RexNode,org.apache.calcite.rex.RexUnknownAs)"><code>verify(RexNode, RexNode, RexUnknownAs)</code></a>. |
| Verify adds an overhead that is only acceptable for a top-level call.</div> |
| </li> |
| </ul> |
| <a id="simplifyGenericNode(org.apache.calcite.rex.RexCall)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>simplifyGenericNode</h4> |
| <pre class="methodSignature">private <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> simplifyGenericNode​(<a href="RexCall.html" title="class in org.apache.calcite.rex">RexCall</a> e)</pre> |
| <div class="block">Runs simplification inside a non-specialized node.</div> |
| </li> |
| </ul> |
| <a id="simplifyComparison(org.apache.calcite.rex.RexCall,org.apache.calcite.rex.RexUnknownAs)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>simplifyComparison</h4> |
| <pre class="methodSignature">private <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> simplifyComparison​(<a href="RexCall.html" title="class in org.apache.calcite.rex">RexCall</a> e, |
| <a href="RexUnknownAs.html" title="enum in org.apache.calcite.rex">RexUnknownAs</a> unknownAs)</pre> |
| </li> |
| </ul> |
| <a id="simplifyComparison(org.apache.calcite.rex.RexCall,org.apache.calcite.rex.RexUnknownAs,java.lang.Class)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>simplifyComparison</h4> |
| <pre class="methodSignature">private <C extends java.lang.Comparable<C>> <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> simplifyComparison​(<a href="RexCall.html" title="class in org.apache.calcite.rex">RexCall</a> e, |
| <a href="RexUnknownAs.html" title="enum in org.apache.calcite.rex">RexUnknownAs</a> unknownAs, |
| java.lang.Class<C> clazz)</pre> |
| </li> |
| </ul> |
| <a id="simplifyAnds(java.lang.Iterable)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>simplifyAnds</h4> |
| <pre class="methodSignature">@Deprecated |
| public <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> simplifyAnds​(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> |
| <div class="block">Simplifies a conjunction of boolean expressions.</div> |
| </li> |
| </ul> |
| <a id="simplifyAnds(java.lang.Iterable,org.apache.calcite.rex.RexUnknownAs)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>simplifyAnds</h4> |
| <pre class="methodSignature"><a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> simplifyAnds​(java.lang.Iterable<? extends <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> nodes, |
| <a href="RexUnknownAs.html" title="enum in org.apache.calcite.rex">RexUnknownAs</a> unknownAs)</pre> |
| </li> |
| </ul> |
| <a id="simplifyList(java.util.List,org.apache.calcite.rex.RexUnknownAs)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>simplifyList</h4> |
| <pre class="methodSignature">private void simplifyList​(java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> terms, |
| <a href="RexUnknownAs.html" title="enum in org.apache.calcite.rex">RexUnknownAs</a> unknownAs)</pre> |
| </li> |
| </ul> |
| <a id="simplifyAndTerms(java.util.List,org.apache.calcite.rex.RexUnknownAs)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>simplifyAndTerms</h4> |
| <pre class="methodSignature">private void simplifyAndTerms​(java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> terms, |
| <a href="RexUnknownAs.html" title="enum in org.apache.calcite.rex">RexUnknownAs</a> unknownAs)</pre> |
| </li> |
| </ul> |
| <a id="simplifyOrTerms(java.util.List,org.apache.calcite.rex.RexUnknownAs)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>simplifyOrTerms</h4> |
| <pre class="methodSignature">private void simplifyOrTerms​(java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> terms, |
| <a href="RexUnknownAs.html" title="enum in org.apache.calcite.rex">RexUnknownAs</a> unknownAs)</pre> |
| </li> |
| </ul> |
| <a id="allowedAsPredicateDuringOrSimplification(org.apache.calcite.rex.RexNode)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>allowedAsPredicateDuringOrSimplification</h4> |
| <pre class="methodSignature">private boolean allowedAsPredicateDuringOrSimplification​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> t)</pre> |
| <div class="block">Decides whether the given node could be used as a predicate during the simplification |
| of other OR operands.</div> |
| </li> |
| </ul> |
| <a id="simplifyNot(org.apache.calcite.rex.RexCall,org.apache.calcite.rex.RexUnknownAs)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>simplifyNot</h4> |
| <pre class="methodSignature">private <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> simplifyNot​(<a href="RexCall.html" title="class in org.apache.calcite.rex">RexCall</a> call, |
| <a href="RexUnknownAs.html" title="enum in org.apache.calcite.rex">RexUnknownAs</a> unknownAs)</pre> |
| </li> |
| </ul> |
| <a id="simplifyIs(org.apache.calcite.rex.RexCall,org.apache.calcite.rex.RexUnknownAs)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>simplifyIs</h4> |
| <pre class="methodSignature">private <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> simplifyIs​(<a href="RexCall.html" title="class in org.apache.calcite.rex">RexCall</a> call, |
| <a href="RexUnknownAs.html" title="enum in org.apache.calcite.rex">RexUnknownAs</a> unknownAs)</pre> |
| </li> |
| </ul> |
| <a id="simplifyIsPredicate(org.apache.calcite.sql.SqlKind,org.apache.calcite.rex.RexNode)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>simplifyIsPredicate</h4> |
| <pre class="methodSignature">private <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> simplifyIsPredicate​(<a href="../sql/SqlKind.html" title="enum in org.apache.calcite.sql">SqlKind</a> kind, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> a)</pre> |
| </li> |
| </ul> |
| <a id="simplifyIs2(org.apache.calcite.sql.SqlKind,org.apache.calcite.rex.RexNode,org.apache.calcite.rex.RexUnknownAs)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>simplifyIs2</h4> |
| <pre class="methodSignature">private <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> simplifyIs2​(<a href="../sql/SqlKind.html" title="enum in org.apache.calcite.sql">SqlKind</a> kind, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> a, |
| <a href="RexUnknownAs.html" title="enum in org.apache.calcite.rex">RexUnknownAs</a> unknownAs)</pre> |
| </li> |
| </ul> |
| <a id="simplifyIsNotNull(org.apache.calcite.rex.RexNode)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>simplifyIsNotNull</h4> |
| <pre class="methodSignature">private <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> simplifyIsNotNull​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> a)</pre> |
| </li> |
| </ul> |
| <a id="simplifyIsNull(org.apache.calcite.rex.RexNode)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>simplifyIsNull</h4> |
| <pre class="methodSignature">private <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> simplifyIsNull​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> a)</pre> |
| </li> |
| </ul> |
| <a id="simplifyCoalesce(org.apache.calcite.rex.RexCall)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>simplifyCoalesce</h4> |
| <pre class="methodSignature">private <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> simplifyCoalesce​(<a href="RexCall.html" title="class in org.apache.calcite.rex">RexCall</a> call)</pre> |
| </li> |
| </ul> |
| <a id="simplifyCase(org.apache.calcite.rex.RexCall,org.apache.calcite.rex.RexUnknownAs)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>simplifyCase</h4> |
| <pre class="methodSignature">private <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> simplifyCase​(<a href="RexCall.html" title="class in org.apache.calcite.rex">RexCall</a> call, |
| <a href="RexUnknownAs.html" title="enum in org.apache.calcite.rex">RexUnknownAs</a> unknownAs)</pre> |
| </li> |
| </ul> |
| <a id="generateBranch(boolean,org.apache.calcite.rex.RexSimplify,org.apache.calcite.rex.RexSimplify.CaseBranch)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>generateBranch</h4> |
| <pre class="methodSignature">private <a href="RexSimplify.CaseBranch.html" title="class in org.apache.calcite.rex">RexSimplify.CaseBranch</a> generateBranch​(boolean simplifyCond, |
| <a href="RexSimplify.html" title="class in org.apache.calcite.rex">RexSimplify</a> simplifier, |
| <a href="RexSimplify.CaseBranch.html" title="class in org.apache.calcite.rex">RexSimplify.CaseBranch</a> branch)</pre> |
| <div class="block">If boolean is true, simplify cond in input branch and return new branch. |
| Otherwise, simply return input branch.</div> |
| </li> |
| </ul> |
| <a id="sameTypeOrNarrowsNullability(org.apache.calcite.rel.type.RelDataType,org.apache.calcite.rel.type.RelDataType)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>sameTypeOrNarrowsNullability</h4> |
| <pre class="methodSignature">private boolean sameTypeOrNarrowsNullability​(<a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a> oldType, |
| <a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a> newType)</pre> |
| <div class="block">Return if the new type is the same and at most narrows the nullability.</div> |
| </li> |
| </ul> |
| <a id="isSafeExpression(org.apache.calcite.rex.RexNode)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>isSafeExpression</h4> |
| <pre class="methodSignature">static boolean isSafeExpression​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> r)</pre> |
| <div class="block">Analyzes a given <a href="RexNode.html" title="class in org.apache.calcite.rex"><code>RexNode</code></a> and decides whenever it is safe to |
| unwind. |
| |
| <p>"Safe" means that it only contains a combination of known good operators. |
| |
| <p>Division is an unsafe operator; consider the following: |
| <pre>case when a > 0 then 1 / a else null end</pre></div> |
| </li> |
| </ul> |
| <a id="simplifyBooleanCase(org.apache.calcite.rex.RexBuilder,java.util.List,org.apache.calcite.rex.RexUnknownAs,org.apache.calcite.rel.type.RelDataType)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>simplifyBooleanCase</h4> |
| <pre class="methodSignature">private static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> simplifyBooleanCase​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| java.util.List<<a href="RexSimplify.CaseBranch.html" title="class in org.apache.calcite.rex">RexSimplify.CaseBranch</a>> inputBranches, |
| <a href="RexUnknownAs.html" title="enum in org.apache.calcite.rex">RexUnknownAs</a> unknownAs, |
| <a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a> branchType)</pre> |
| </li> |
| </ul> |
| <a id="simplifyBooleanCaseGeneric(org.apache.calcite.rex.RexBuilder,java.util.List,org.apache.calcite.rel.type.RelDataType)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>simplifyBooleanCaseGeneric</h4> |
| <pre class="methodSignature">private static <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> simplifyBooleanCaseGeneric​(<a href="RexBuilder.html" title="class in org.apache.calcite.rex">RexBuilder</a> rexBuilder, |
| java.util.List<<a href="RexSimplify.CaseBranch.html" title="class in org.apache.calcite.rex">RexSimplify.CaseBranch</a>> branches, |
| <a href="../rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type">RelDataType</a> outputType)</pre> |
| <div class="block">Generic boolean case simplification. |
| |
| <p>Rewrites: |
| <pre> |
| CASE |
| WHEN p1 THEN x |
| WHEN p2 THEN y |
| ELSE z |
| END |
| </pre> |
| to |
| <pre>(p1 and x) or (p2 and y and not(p1)) or (true and z and not(p1) and not(p2))</pre></div> |
| </li> |
| </ul> |
| <a id="simplifyAnd(org.apache.calcite.rex.RexCall)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>simplifyAnd</h4> |
| <pre class="methodSignature">@Deprecated |
| public <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> simplifyAnd​(<a href="RexCall.html" title="class in org.apache.calcite.rex">RexCall</a> e)</pre> |
| <div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div> |
| </li> |
| </ul> |
| <a id="simplifyAnd(org.apache.calcite.rex.RexCall,org.apache.calcite.rex.RexUnknownAs)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>simplifyAnd</h4> |
| <pre class="methodSignature"><a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> simplifyAnd​(<a href="RexCall.html" title="class in org.apache.calcite.rex">RexCall</a> e, |
| <a href="RexUnknownAs.html" title="enum in org.apache.calcite.rex">RexUnknownAs</a> unknownAs)</pre> |
| </li> |
| </ul> |
| <a id="simplifyAnd2(java.util.List,java.util.List)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>simplifyAnd2</h4> |
| <pre class="methodSignature"><a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> simplifyAnd2​(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> |
| </li> |
| </ul> |
| <a id="simplifyAnd2ForUnknownAsFalse(java.util.List,java.util.List)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>simplifyAnd2ForUnknownAsFalse</h4> |
| <pre class="methodSignature"><a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> simplifyAnd2ForUnknownAsFalse​(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="block">As <a href="#simplifyAnd2(java.util.List,java.util.List)"><code>simplifyAnd2(List, List)</code></a> but we assume that if the expression |
| returns UNKNOWN it will be interpreted as FALSE.</div> |
| </li> |
| </ul> |
| <a id="simplifyAnd2ForUnknownAsFalse(java.util.List,java.util.List,java.lang.Class)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>simplifyAnd2ForUnknownAsFalse</h4> |
| <pre class="methodSignature">private <C extends java.lang.Comparable<C>> <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> simplifyAnd2ForUnknownAsFalse​(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, |
| java.lang.Class<C> clazz)</pre> |
| </li> |
| </ul> |
| <a id="simplifyUsingPredicates(org.apache.calcite.rex.RexNode,java.lang.Class)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>simplifyUsingPredicates</h4> |
| <pre class="methodSignature">private <C extends java.lang.Comparable<C>> <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> simplifyUsingPredicates​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> e, |
| java.lang.Class<C> clazz)</pre> |
| </li> |
| </ul> |
| <a id="residue(org.apache.calcite.rex.RexNode,com.google.common.collect.Range,java.util.List,java.lang.Class)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>residue</h4> |
| <pre class="methodSignature">private <C extends java.lang.Comparable<C>> com.google.common.collect.Range<C> residue​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> ref, |
| com.google.common.collect.Range<C> r0, |
| java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> predicates, |
| java.lang.Class<C> clazz)</pre> |
| <div class="block">Weakens a term so that it checks only what is not implied by predicates. |
| |
| <p>The term is broken into "ref comparison constant", |
| for example "$0 < 5". |
| |
| <p>Examples: |
| <ul> |
| |
| <li><code>residue($0 < 10, [$0 < 5])</code> returns <code>true</code> |
| |
| <li><code>residue($0 < 10, [$0 < 20, $0 > 0])</code> returns <code>$0 < 10</code> |
| </ul></div> |
| </li> |
| </ul> |
| <a id="simplifyOr(org.apache.calcite.rex.RexCall)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>simplifyOr</h4> |
| <pre class="methodSignature">@Deprecated |
| public <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> simplifyOr​(<a href="RexCall.html" title="class in org.apache.calcite.rex">RexCall</a> call)</pre> |
| <div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div> |
| <div class="block">Simplifies OR(x, x) into x, and similar. |
| The simplified expression returns UNKNOWN values as is (not as FALSE).</div> |
| </li> |
| </ul> |
| <a id="simplifyOr(org.apache.calcite.rex.RexCall,org.apache.calcite.rex.RexUnknownAs)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>simplifyOr</h4> |
| <pre class="methodSignature">private <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> simplifyOr​(<a href="RexCall.html" title="class in org.apache.calcite.rex">RexCall</a> call, |
| <a href="RexUnknownAs.html" title="enum in org.apache.calcite.rex">RexUnknownAs</a> unknownAs)</pre> |
| </li> |
| </ul> |
| <a id="simplifyOrs(java.util.List)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>simplifyOrs</h4> |
| <pre class="methodSignature">@Deprecated |
| public <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> simplifyOrs​(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> |
| <div class="block">Simplifies a list of terms and combines them into an OR. |
| Modifies the list in place. |
| The simplified expression returns UNKNOWN values as is (not as FALSE).</div> |
| </li> |
| </ul> |
| <a id="ensureParanoidOff()"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>ensureParanoidOff</h4> |
| <pre class="methodSignature">private void ensureParanoidOff()</pre> |
| </li> |
| </ul> |
| <a id="simplifyOrs(java.util.List,org.apache.calcite.rex.RexUnknownAs)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>simplifyOrs</h4> |
| <pre class="methodSignature">private <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> simplifyOrs​(java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> terms, |
| <a href="RexUnknownAs.html" title="enum in org.apache.calcite.rex">RexUnknownAs</a> unknownAs)</pre> |
| <div class="block">Simplifies a list of terms and combines them into an OR. |
| Modifies the list in place.</div> |
| </li> |
| </ul> |
| <a id="verify(org.apache.calcite.rex.RexNode,org.apache.calcite.rex.RexNode,org.apache.calcite.rex.RexUnknownAs)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>verify</h4> |
| <pre class="methodSignature">private void verify​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> before, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> simplified, |
| <a href="RexUnknownAs.html" title="enum in org.apache.calcite.rex">RexUnknownAs</a> unknownAs)</pre> |
| </li> |
| </ul> |
| <a id="simplifyCast(org.apache.calcite.rex.RexCall)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>simplifyCast</h4> |
| <pre class="methodSignature">private <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> simplifyCast​(<a href="RexCall.html" title="class in org.apache.calcite.rex">RexCall</a> e)</pre> |
| </li> |
| </ul> |
| <a id="simplifyCeilFloor(org.apache.calcite.rex.RexCall)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>simplifyCeilFloor</h4> |
| <pre class="methodSignature">private <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> simplifyCeilFloor​(<a href="RexCall.html" title="class in org.apache.calcite.rex">RexCall</a> e)</pre> |
| <div class="block">Tries to simplify CEIL/FLOOR function on top of CEIL/FLOOR. |
| |
| <p>Examples: |
| <ul> |
| |
| <li><code>floor(floor($0, flag(hour)), flag(day))</code> returns <code>floor($0, flag(day))</code> |
| |
| <li><code>ceil(ceil($0, flag(second)), flag(day))</code> returns <code>ceil($0, flag(day))</code> |
| |
| <li><code>floor(floor($0, flag(day)), flag(second))</code> does not change |
| |
| </ul></div> |
| </li> |
| </ul> |
| <a id="canRollUp(org.apache.calcite.avatica.util.TimeUnit,org.apache.calcite.avatica.util.TimeUnit)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>canRollUp</h4> |
| <pre class="methodSignature">private static boolean canRollUp​(org.apache.calcite.avatica.util.TimeUnit outer, |
| org.apache.calcite.avatica.util.TimeUnit inner)</pre> |
| <div class="block">Method that returns whether we can rollup from inner time unit |
| to outer time unit.</div> |
| </li> |
| </ul> |
| <a id="removeNullabilityCast(org.apache.calcite.rex.RexNode)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>removeNullabilityCast</h4> |
| <pre class="methodSignature">public <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> removeNullabilityCast​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> e)</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="processRange(org.apache.calcite.rex.RexBuilder,java.util.List,java.util.Map,org.apache.calcite.rex.RexNode,org.apache.calcite.rex.RexNode,java.lang.Comparable,org.apache.calcite.sql.SqlKind)"> |
| <!-- --> |
| </a><a id="processRange(org.apache.calcite.rex.RexBuilder,java.util.List,java.util.Map,org.apache.calcite.rex.RexNode,org.apache.calcite.rex.RexNode,C,org.apache.calcite.sql.SqlKind)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>processRange</h4> |
| <pre class="methodSignature">private static <C extends java.lang.Comparable<C>> <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> processRange​(<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.Map<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>,​<a href="../util/Pair.html" title="class in org.apache.calcite.util">Pair</a><com.google.common.collect.Range<C>,​java.util.List<<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>>>> rangeTerms, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> term, |
| <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> ref, |
| C v0, |
| <a href="../sql/SqlKind.html" title="enum in org.apache.calcite.sql">SqlKind</a> comparison)</pre> |
| </li> |
| </ul> |
| <a id="range(org.apache.calcite.sql.SqlKind,java.lang.Comparable)"> |
| <!-- --> |
| </a><a id="range(org.apache.calcite.sql.SqlKind,C)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>range</h4> |
| <pre class="methodSignature">private static <C extends java.lang.Comparable<C>> com.google.common.collect.Range<C> range​(<a href="../sql/SqlKind.html" title="enum in org.apache.calcite.sql">SqlKind</a> comparison, |
| C c)</pre> |
| </li> |
| </ul> |
| <a id="isUpperBound(org.apache.calcite.rex.RexNode)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>isUpperBound</h4> |
| <pre class="methodSignature">private static boolean isUpperBound​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> e)</pre> |
| </li> |
| </ul> |
| <a id="isLowerBound(org.apache.calcite.rex.RexNode)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>isLowerBound</h4> |
| <pre class="methodSignature">private static boolean isLowerBound​(<a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> e)</pre> |
| </li> |
| </ul> |
| <a id="simplifyFilterPredicates(java.lang.Iterable)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>simplifyFilterPredicates</h4> |
| <pre class="methodSignature">public <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a> simplifyFilterPredicates​(java.lang.Iterable<? extends <a href="RexNode.html" title="class in org.apache.calcite.rex">RexNode</a>> predicates)</pre> |
| <div class="block">Combines predicates AND, optimizes, and returns null if the result is |
| always false. |
| |
| <p>The expression is simplified on the assumption that an UNKNOWN value |
| is always treated as FALSE. Therefore the simplified expression may |
| sometimes evaluate to FALSE where the original expression would evaluate to |
| UNKNOWN.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>predicates</code> - Filter condition predicates</dd> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>simplified conjunction of predicates for the filter, null if always false</dd> |
| </dl> |
| </li> |
| </ul> |
| <a id="replaceLast(java.util.List,java.lang.Object,java.lang.Object)"> |
| <!-- --> |
| </a><a id="replaceLast(java.util.List,E,E)"> |
| <!-- --> |
| </a> |
| <ul class="blockListLast"> |
| <li class="blockList"> |
| <h4>replaceLast</h4> |
| <pre class="methodSignature">private static <E> boolean replaceLast​(java.util.List<E> list, |
| E oldVal, |
| E newVal)</pre> |
| <div class="block">Replaces the last occurrence of one specified value in a list with |
| another. |
| |
| <p>Does not change the size of the list. |
| |
| <p>Returns whether the value was found.</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/RexSimplify.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> |