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

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

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 1.20.0
    • Component/s: 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

              • Assignee:
                laurent Laurent Goujon
                Reporter:
                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