[ 
https://issues.apache.org/jira/browse/CALCITE-3535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16985079#comment-16985079
 ] 

Jin Xing edited comment on CALCITE-3535 at 11/29/19 3:44 PM:
-------------------------------------------------------------

I have an idea but not strongly related to this issue ~
Currently EnumerableJoinRule creates the physical enumerable Join operators -- 
EnumerableHashJoin and EnumerableNestedLoopJoin. But Calcite has a separate 
rule EnumerableMergeJoin to create EnumerableMergeJoin.
Intuitively I have doubt on the name of EnumerableJoinRule.java. It seems to be 
too general, but it only creates some(NOT ALL) physical JOIN operators.
EnumerableJoinRule checks if there's equi-condition, it thinks 
EnumerableHashJoin is always better than EnumerableNestedLoopJoin. But there 
might be some scenarios that it's not true. After CALCITE-3546, 
EnumerableNestedLoopJoin becomes more memory efficient.


was (Author: jinxing6...@126.com):
I have an idea but not strongly related to this issue ~
Currently EnumerableJoinRule creates the physical enumerable Join operators -- 
EnumerableHashJoin and EnumerableNestedLoopJoin. But Calcite has a separate 
rule EnumerableMergeJoin to create EnumerableMergeJoin.
Intuitively I have doubt on the name of EnumerableJoinRule.java. It seems to be 
too general, but it only creates some(NOT ALL) physical JOIN operators.

> EnumerableJoinRule: remove unnecessary Filter on top of INNER Join
> ------------------------------------------------------------------
>
>                 Key: CALCITE-3535
>                 URL: https://issues.apache.org/jira/browse/CALCITE-3535
>             Project: Calcite
>          Issue Type: Task
>          Components: core
>    Affects Versions: 1.21.0
>            Reporter: Ruben Q L
>            Assignee: Ruben Q L
>            Priority: Minor
>              Labels: pull-request-available
>             Fix For: 1.22.0
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> With the implementation of CALCITE-2973, now EnumerableHashJoin supports all 
> type of conditions (not just equi joins). However, there is still one 
> [TODO|https://github.com/apache/calcite/blob/07c1efbb2b42a0e27f9d01968d357d9c1e17cd51/core/src/main/java/org/apache/calcite/adapter/enumerable/EnumerableJoinRule.java#L89]
>  in EnumerableHashJoinRule that, in case of an INNER Join, creates a Filter 
> with the non-equi conditions on top of the EnumerableHashJoin (created only 
> with the equi-conditions), this filter is not really needed, since now 
> EnumerableHashJoinRule can support the full condition: equi and non-equi 
> items.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to