[ 
https://issues.apache.org/jira/browse/IGNITE-27395?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Maksim Zhuravkov updated IGNITE-27395:
--------------------------------------
    Description: 
Calcite 1.41 made some changes related to expression simplification. 
For example (NULL + ?int) expression, that is successfully simplified in 
calcite 1.40, is no longer simplified to NULL, because this code no calls 
isSafeExpression(e) that is false for (NULL + ?int) so the branch with 
simplification code is not taken.

{noformat} Calcite 1.41 

RexNode simplify(RexNode e, RexUnknownAs unknownAs) {
    if (isSafeExpression(e) && STRONG.isNull(e)) {
     ...
    }
} 
{noformat}

In calcite 1.40  `isSafeExpression(e)` is also returns `false`, but `simplify` 
does not perform `isSafeExpression(e)` check.

Calcite issue https://issues.apache.org/jira/browse/CALCITE-7032

  was:
Calcite 1.41 made some changes related to expression simplification. 
For example (NULL + ?int) expression, that is successfully simplified in 
calcite 1.40, is no longer simplified to NULL, because this code no calls 
isSafeExpression(e) that is false for (NULL + ?int) so the branch with 
simplification code is not taken.

{noformat} Calcite 1.41 

RexNode simplify(RexNode e, RexUnknownAs unknownAs) {
    if (isSafeExpression(e) && STRONG.isNull(e)) {
     ...
    }
} 
{noformat}

In calcite 1.40  `isSafeExpression(e)` is also returns `false`, but `simplify` 
does not perform `isSafeExpression(e)` check.


> Sql. Expressions with dynamic parameters and NULL (e.g. NULL + ?int) are not 
> simplified to NULL after calcite 1.41
> ------------------------------------------------------------------------------------------------------------------
>
>                 Key: IGNITE-27395
>                 URL: https://issues.apache.org/jira/browse/IGNITE-27395
>             Project: Ignite
>          Issue Type: Improvement
>          Components: sql ai3
>            Reporter: Maksim Zhuravkov
>            Priority: Major
>              Labels: ignite-3
>             Fix For: 3.2
>
>
> Calcite 1.41 made some changes related to expression simplification. 
> For example (NULL + ?int) expression, that is successfully simplified in 
> calcite 1.40, is no longer simplified to NULL, because this code no calls 
> isSafeExpression(e) that is false for (NULL + ?int) so the branch with 
> simplification code is not taken.
> {noformat} Calcite 1.41 
> RexNode simplify(RexNode e, RexUnknownAs unknownAs) {
>     if (isSafeExpression(e) && STRONG.isNull(e)) {
>      ...
>     }
> } 
> {noformat}
> In calcite 1.40  `isSafeExpression(e)` is also returns `false`, but 
> `simplify` does not perform `isSafeExpression(e)` check.
> Calcite issue https://issues.apache.org/jira/browse/CALCITE-7032



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to