[
https://issues.apache.org/jira/browse/CALCITE-7758?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18110055#comment-18110055
]
Julian Hyde commented on CALCITE-7758:
--------------------------------------
I like the framing that it removes redundant predicates.
The problem with test-driven development is that it can become stamp-collecting
(as Rutherford famously said of biology).
I would like to see an architecture in the code for dealing with conditions
that are subsumed by other conditions in the same AND. That architecture starts
in the framing of the feature requests.
Otherwise we end up with a dozen lines of code added that that only help test
case pass.
> RexSimplify does not absorb redundant IS NOT NULL on non-input-ref
> sub-expressions in AND simplification
> --------------------------------------------------------------------------------------------------------
>
> Key: CALCITE-7758
> URL: https://issues.apache.org/jira/browse/CALCITE-7758
> Project: Calcite
> Issue Type: Improvement
> Components: core
> Reporter: Ruben Q L
> Assignee: Ruben Q L
> Priority: Major
> Labels: pull-request-available
> Fix For: 1.43.0
>
>
> The following simplification:
> {noformat}
> IS_NOT_NULL(x) AND (x + 1) < 10
> =>
> (x + 1) < 10
> {noformat}
> is correctly applied on RexSimplify (Unknown=FALSE) for RexInputRef and
> RexFieldAccess (via simplifyAnd2ForUnknownAsFalse).
> However, if the expression X is e.g. a CAST, the simplification does not
> occur:
> {noformat}
> IS_NOT_NULL(CAST(a)) AND (CAST(a) + 1) < 10
> =>
> unchanged; should be: (CAST(a) + 1) < 10
> {noformat}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)