[ https://issues.apache.org/jira/browse/CALCITE-5073?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17521387#comment-17521387 ]
Benchao Li commented on CALCITE-5073: ------------------------------------- [~nobigo] I've updated the description. About the title, I think it already in a good shape, do you have any good suggestions? > JoinConditionPushRule cannot infer 'LHS.C1 = LHS.C2' from 'LHS.C1 = RHS.C1 > AND LHS.C2 = RHS.C1' > ----------------------------------------------------------------------------------------------- > > Key: CALCITE-5073 > URL: https://issues.apache.org/jira/browse/CALCITE-5073 > Project: Calcite > Issue Type: Improvement > Components: core > Affects Versions: 1.30.0 > Reporter: Benchao Li > Assignee: Benchao Li > Priority: Major > Labels: pull-request-available > Fix For: 1.31.0 > > Time Spent: 2h > Remaining Estimate: 0h > > For the below SQL: > {code:java} > SELECT * FROM T1, T2, T3 > WHERE T1.id = T3.id AND T2.id = T3.id{code} > 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 -- This message was sent by Atlassian Jira (v8.20.1#820001)