Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
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
- is related to
-
CALCITE-3174 IS NOT DISTINCT FROM condition pushed from filter to join is not collapsed
- Closed
-
CALCITE-2807 Identify expanded IS NOT DISTINCT FROM expression when pushing down filter past join
- Closed
- links to