[CALCITE-4982] NonNull field is pushed down into leaf of outer-join in 'ProjectJoinTransposeRule'
Hi @NobiGo Are you going on reviewing this pr?
What's the status of this PR?
@libenchao Thank you for reminding me, and I almost forgot this issue. I will update this pr as soon as possible.
@libenchao This issue/pr was so long that it took me a little time to review it. Two solutions:
- Avoid pushing down with the operand of coalesce's operator
- Keep pushing down, and fix
org.apache.calcite.plan.Strong#policy(org.apache.calcite.rex.RexNode)
Let's discuss in the JIRA
Add default config: PreserveExprCondition Shouldn't push non-null field, which is wrapped by CAST's operator. Hi @libenchao Please review this pr again, thanks a lot.
In my opinion, this case only works on in CALCITE's optimizer or validator, which some expresion only change nullable attribute.
we couldn't write an sql cast(c1 as not integer), and we only write an sql cast(c1 as integer).
This pr will fix the issue with a little modification. Maybe we get a good solution from the discussion of CALCITE-5315.
Hi @libenchao PR is ready, and could you take your time to review it again, thanks.
fixed via https://github.com/apache/calcite/commit/43db14cf8e08230c309eeb425a568e77db964a46