You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Julian Hyde (JIRA)" <ji...@apache.org> on 2019/07/29 17:01:00 UTC

[jira] [Commented] (CALCITE-3215) Simplification may not fully simplify IsNotNull expressions

    [ https://issues.apache.org/jira/browse/CALCITE-3215?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16895451#comment-16895451 ] 

Julian Hyde commented on CALCITE-3215:
--------------------------------------

Is {{SafeRexVisitor.safeOps}} basically the same as the set of strong operators?

In the title, you should say "IS NOT NULL" not "IsNotNull". It will be more meaningful to users who know SQL but not Calcite internals.

> Simplification may not fully simplify IsNotNull expressions
> -----------------------------------------------------------
>
>                 Key: CALCITE-3215
>                 URL: https://issues.apache.org/jira/browse/CALCITE-3215
>             Project: Calcite
>          Issue Type: Bug
>            Reporter: Zoltan Haindrich
>            Assignee: Zoltan Haindrich
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> CALCITE-2929 have added a safety check to avoid simplifying problematic cases.
> The safety check apparently misses some kinds, for example: {{UNARY_PLUS}}
> {code}
>   @Test public void testIsNullSimplificationWithUnaryPlus() {
>     RexNode expr =
>         isNotNull(coalesce(unaryPlus(vInt(1)), vIntNotNull(0)));
>     RexNode s = simplify.simplifyUnknownAs(expr, RexUnknownAs.UNKNOWN);
>     assertThat(expr.isAlwaysTrue(), is(true));
>     assertThat(s, is(trueLiteral));
>   }
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)