For the below SQL:
Currently, JoinConditionPushRule cannot infer the condition 'T1.id = T2.id' for the first join relation.
There is another rule JoinPushThroughJoinRule, it can handle the above case in a different way (by reordering joins).
This can be a more general optimization, which like the title says, we can infer more conditions from join condition (or above filter condition) to the Join's operands.
It's reported in ML: https://lists.apache.org/thread/6fs09cgyz5rzrty90632ywoo477q0gdk