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

Jesus Camacho Rodriguez commented on CALCITE-2041:
--------------------------------------------------

[~julianhyde], we have been trying to create tests for this issue 
(ReduceExpressionsRule#FILTER_INSTANCE is disabled by default so we tried to 
use RelOptRulesTest), but we could not come up with same plan as in Hive. Do 
you have any other suggestions? [~bslim] has been testing the rule in Hive with 
the change his proposed change (HIVE-17871) and everything is working as 
expected and without issues, so I would like to check in the patch if possible.

To be clear, the proposed change is quite straightforward: it exposes a flag to 
match to indicate whether reduce expressions should match nullability or not 
when expressions are simplified (by default it is _true_, so current behavior 
is preserved).

> Adding the ability to turn off nullability matching for ReduceExpressionsRule
> -----------------------------------------------------------------------------
>
>                 Key: CALCITE-2041
>                 URL: https://issues.apache.org/jira/browse/CALCITE-2041
>             Project: Calcite
>          Issue Type: Bug
>            Reporter: slim bouguerra
>            Assignee: Julian Hyde
>
> In some cases, the user needs to select whether or not to add casts that 
> match nullability.
> One of the motivations behind this is to avoid unnecessary casts like the 
> following example.
> original filter 
> {code}
> OR(AND(>=($0, CAST(_UTF-16LE'2010-01-01 00:00:00 
> UTC'):TIMESTAMP_WITH_LOCAL_TIME_ZONE(15)), <=($0, CAST(_UTF-16LE'2012-03-01 
> 00:00:00 UTC'):TIMESTAMP_WITH_LOCAL_TIME_ZONE(15))))
> {code}
> the optimized expression with matching nullability
> {code}
> OR(AND(CAST(>=($0, 2010-01-01 00:00:00)):BOOLEAN, CAST(<=($0, 2012-03-01 
> 00:00:00)):BOOLEAN))
> {code}
> As you can see this extra cast gets into the way of following plan 
> optimization steps.
> The desired expression can be obtained by turning off the nullability 
> matching.
> {code}
> OR(AND(>=($0, 2010-01-01 00:00:00), <=($0, 2012-03-01 00:00:00)))
> {code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to