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

Julian Hyde commented on CALCITE-631:
-------------------------------------

Some review comments.

Patch doesn't pass check-style -- needed a newline.

There is a bug if the query is written with left and right reversed, e.g. "ON 
tabB.col1 < tabA.col1". You swap the args but you do not switch < to >.

I am uncomfortable with the the idea that arguments to non-equi conditions are 
regarded as "keys". It is too easy to accidentally treat theta joins (e.g. x.a 
= y.b and x.c < y.d) as equi joins. And indeed your code makes that mistake.

And it doesn't seem right that the overwhelmingly common cases -- 90% are equi 
joins on 1 column, 9% equi joins on 2 or more columns -- should create a list 
of operators.

Please mark the old splitJoinCondition deprecated to be removed before 2.0.

> JdbcJoin to support Non-EquiJoin
> --------------------------------
>
>                 Key: CALCITE-631
>                 URL: https://issues.apache.org/jira/browse/CALCITE-631
>             Project: Calcite
>          Issue Type: Improvement
>            Reporter: Ng Jiunn Jye
>            Assignee: Julian Hyde
>         Attachments: [CALCITE-631]JdbcJoinToSupportNonEquiJoin.patch
>
>
> Currently, the JdbcJoin only support EquiJoin. ie select * from tab1 inner 
> join tab2 on tab1.col1=tab2.col2
> NonEqui join are not supported in JdbcJoin, thus resulting execution plan 
> which uses EnumerationJoin and EnumerableCalc for joining and not pushing the 
> join down to remote database. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to