You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "slim bouguerra (JIRA)" <ji...@apache.org> on 2017/11/08 00:28:00 UTC

[jira] [Created] (CALCITE-2041) Adding the ability to turn off nullability matching for ReduceExpressionsRule

slim bouguerra created CALCITE-2041:
---------------------------------------

             Summary: 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)