[
https://issues.apache.org/jira/browse/CALCITE-2580?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16622332#comment-16622332
]
Julian Hyde commented on CALCITE-2580:
--------------------------------------
This is a perfect illustration of a fact that we have been ignoring:
unknownAsFalse is fundamentally broken. For the result of COALESCE, we want to
treat UNKNOWN the same as FALSE (because it's in a WHERE clause, say). But for
the arguments of COALESCE, we want to treat UNKNOWN (or NULL) differently than
FALSE.
Let's stop tinkering with small improvements found by fuzzer. Let's
re-architect RexSimplify. First, {{unknownAsFalse}} needs to not be a field, it
needs to be an argument. Second, we need to add an {{unknownAsTrue}} mode that
behaves symmetrically.
Relevant issues are CALCITE-2338 (although frankly I'm not particularly
concerned with the API, I wouldn't stick with a bad API if it means that
RexSimplify is working the wrong way), CALCITE-2326, and CALCITE-2449.
[~vladimirsitnikov], Do you want to take this on?
> RexSimplify: coalesce(null > null, true) produces wrong result in
> unknownAsFalse mode
> -------------------------------------------------------------------------------------
>
> Key: CALCITE-2580
> URL: https://issues.apache.org/jira/browse/CALCITE-2580
> Project: Calcite
> Issue Type: Bug
> Components: core
> Affects Versions: 1.17.0
> Reporter: Vladimir Sitnikov
> Assignee: Julian Hyde
> Priority: Major
> Labels: newbie
>
> checkSimplify2(coalesce(gt(nullInt, nullInt), trueLiteral), "true", "true");
> {noformat}
> java.lang.AssertionError: result mismatch:
> when applied to {}, COALESCE(>(null, null), true) yielded true, and false
> yielded false
> {noformat}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)