Uploaded image for project: 'Flink'
  1. Flink
  2. FLINK-7755

Null values are not correctly handled by batch inner and outer joins

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Blocker
    • Resolution: Fixed
    • 1.3.2, 1.4.0
    • 1.4.0
    • Table SQL / API
    • None

    Description

      Join predicates of batch joins are not correctly evaluated according to three-value logic.
      This affects inner as well as outer joins.

      The problem is that some equality predicates are only evaluated by the internal join algorithms of Flink which are based on TypeComparator. The field TypeComparator for Row are implemented such that null == null results in TRUE to ensure correct ordering and grouping. However, three-value logic requires that null == null results to UNKNOWN (or null). The code generator implements this logic correctly, but for equality predicates, no code is generated.

      For outer joins, the problem is a bit tricker because these do not support code-generated predicates yet (see FLINK-5520). FLINK-5498 proposes a solution for this issue.

      We also need to extend several of the existing tests and add null values to ensure that the join logic is correctly implemented.

      Attachments

        Issue Links

          Activity

            People

              fhueske Fabian Hueske
              fhueske Fabian Hueske
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: