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

Julian Hyde commented on CALCITE-2973:
--------------------------------------

[~hyuan], I mostly agree. For the record, here is a non-equi join where you can 
use a hash join plus a per-row condition, where the 'equi' part of the 
condition is fairly selective and therefore hash join makes sense. It has to be 
done as a per-row condition, rather than a filter after the join, because of 
the {{left outer}}.
{code:java}
select *
from emp left join dept
  on emp.deptno = dept.deptno
  and emp.age < 30{code}

> Allow theta joins that have equi conditions to be executed using a merge join 
> or hash join algorithm
> ----------------------------------------------------------------------------------------------------
>
>                 Key: CALCITE-2973
>                 URL: https://issues.apache.org/jira/browse/CALCITE-2973
>             Project: Calcite
>          Issue Type: New Feature
>          Components: core
>    Affects Versions: 1.19.0
>            Reporter: Lai Zhou
>            Priority: Minor
>
> Now the EnumerableMergeJoinRule only supports an inner and equi join.
> If users make a theta-join query  for a large dataset (such as 10000*10000), 
> the nested-loop join process will take dozens of time than the sort-merge 
> join process .
> So if we can apply merge-join or hash-join rule for a theta join, it will 
> improve the performance greatly.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to