ProjectJoinTransposeRule with preserveExprCondition pushes projects below outer-joins.
I am pushing case statements past joins using ProjectJoinTransposeRule. For inner joins, the current behavior seems fine, but outer joins can lead to weird behavior, where the project is below the join and nulls can cause issues.
Currently, ProjectJoinTransposeRule will push the case statement below the join as below. But, this case statement shouldn't be pushed. The query shouldn't return null but instead as 100 for any "unmatched" join condition since it is a left outer join with a case statement. But, the current plan would not prevent that.