Skip to content

Update solution for ZetaSQL DOUBLE NaN equals checks. #20354

@damccorm

Description

@damccorm

'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.

Imported from Jira BEAM-10550. Original Jira may contain additional context.
Reported by: zijiesong.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions