[ 
https://issues.apache.org/jira/browse/CALCITE-5073?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Chunwei Lei resolved CALCITE-5073.
----------------------------------
    Resolution: Fixed

Fixed in 
[https://github.com/apache/calcite/commit/4969b9690efe999c522daf1151c4a00a33be0eb0|https://github.com/apache/calcite/commit/4969b9690efe999c522daf1151c4a00a33be0eb0.].
 Thank you for your PR, [~libenchao]!

> 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: 3h 10m
>  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.7#820007)

Reply via email to