[ https://issues.apache.org/jira/browse/CALCITE-2041?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16243334#comment-16243334 ]
Julian Hyde commented on CALCITE-2041: -------------------------------------- [~bslim], Please make it clear when you consider a pull request "ready", before we spend time fully testing it. This one doesn't have tests; your previous PR failed checkstyle. In this case, tests would help a lot. I don't understand from your example what the rule is supposed to do nor not do. Nor can I understand why everything is not NOT NULL in your example. > 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)