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

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

{quote}
It will not be easy to remove all simplifications concerning equality.
{quote}
[~julianhyde], are there other simplifications that come to your mind? Tbh I 
did not take an exhaustive look but I assumed Calcite would not do folding and 
instead relies on specific executor implementation (which would then enforce 
the correct implementation-specific semantics), and that probably limits the 
number of cases on which we will hit this issue.

{quote}
We could introduce a configuration property; people who strictly follow the 
standard can benefit from the simplifications and those who don't can still run 
the simplifier.
{quote}
In this specific case, I hit the issue because the RelBuilder calls 
{{simplify}} when a Project is created. That's already configurable but I did 
not want to disable all simplifications when a Project is created.
I could introduce some configuration variable to control the flow but I am not 
sure if it is worth it if this would be the only simplification that would be 
disabled? I don't have a strong opinion, I'd like to hear your ideas.

> Incorrect simplification for 'NaN' value
> ----------------------------------------
>
>                 Key: CALCITE-4467
>                 URL: https://issues.apache.org/jira/browse/CALCITE-4467
>             Project: Calcite
>          Issue Type: Bug
>          Components: core
>            Reporter: Jesus Camacho Rodriguez
>            Assignee: Jesus Camacho Rodriguez
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> {{RexSimplify}} simplifies {{x = x}} to {{null or x is not null}} (similarly 
> <= and >=), and {{x != x}} to {{null and x is null}} (similarly < and >).
> https://github.com/apache/calcite/blob/master/core/src/main/java/org/apache/calcite/rex/RexSimplify.java#L363
> This may not be applicable in some cases. For instance, if the type of x is 
> floating-point, x could be 'NaN'. While some RDBMS consider 'NaN' = 'NaN' 
> (e.g., Postgres), some others consider 'NaN' != 'NaN' following the IEEE 754 
> standard. For the latest, the rewriting above will result in incorrect 
> results.
> I think we should simply ignore this simplification for floating-point type.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to