Uploaded image for project: 'Calcite'
  1. Calcite
  2. CALCITE-2803

Identify expanded IS NOT DISTINCT FROM expression when pushing project past join

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 1.20.0
    • core

    Description

      IS NOT DISTINCT FROM expressions in join condition might actually be considered as equi-join conditions, and RelOptUtil#splitJoinConditions() has support for it. But some other join related functions/rules don't.

      One of them is ProjectJoinTransposeRule which tries to push project expressions below the join, but ends up modifying the join expression too by pushing complex expression below.

      For example expression OR(AND(IS_NULL($1), IS_NULL($4)), EQUALS($1,$4)) will be changed into OR(AND($3, $6), EQUALS($1, $5)) which makes it harder/impossible for RelOptUtil#splitJoinConditions() to identify an IS NOT DISTINCT FROM equi-join condition.

      Attachments

        Issue Links

          Activity

            People

              laurent Laurent Goujon
              laurent Laurent Goujon
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 50m
                  50m