[ 
https://issues.apache.org/jira/browse/BEAM-10550?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Zijie Song updated BEAM-10550:
------------------------------
    Description: 
'NaN == NaN' for ZetaSQL DOUBLE type should be false. But it would hit into the 
Calcite operation simplification block to be simplified to 'null or NaN is not 
null' in Calcite. This would miscalculate the expression to be true.

Currently, we add an additional random parameter for the wrapper function of 
NaN, to avoid
 triggering Calcite operation simplification. But it is only a temporary 
solution.

Once the Calcite version updated, we should replace this method by overriding 
isDeterministic() for RexNode to make it false.

  was:
'NaN == NaN' for ZetaSQL DOUBLE type should be false. But it would hit into the 
Calcite operation simplification block to beĀ 'implified to 'null or NaN is not 
null' in Calcite. This would miscalculate the expression to be true.

Currently, we add an additional random parameter for the wrapper function of 
NaN, to avoid
triggering Calcite operation simplification. But it is only a temporary 
solution.

Once the Calcite version updated, we should replace this method by overriding 
isDeterministic() for RexNode to make it false.


> Update solution for ZetaSQL DOUBLE NaN equals checks.
> -----------------------------------------------------
>
>                 Key: BEAM-10550
>                 URL: https://issues.apache.org/jira/browse/BEAM-10550
>             Project: Beam
>          Issue Type: Improvement
>          Components: dsl-sql-zetasql
>            Reporter: Zijie Song
>            Assignee: Zijie Song
>            Priority: P2
>
> 'NaN == NaN' for ZetaSQL DOUBLE type should be false. But it would hit into 
> the Calcite operation simplification block to be simplified to 'null or NaN 
> is not null' in Calcite. This would miscalculate the expression to be true.
> Currently, we add an additional random parameter for the wrapper function of 
> NaN, to avoid
>  triggering Calcite operation simplification. But it is only a temporary 
> solution.
> Once the Calcite version updated, we should replace this method by overriding 
> isDeterministic() for RexNode to make it false.



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

Reply via email to