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

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

I've been thinking further about this. Why do you need the operators list? Why 
can't you leave the "non-equi" parts in JdbcJoin.condition until 
JdbcJoin.implement is called, and then just transcribe the RexNode tree into a 
SqlNode tree. 

I don't see any advantage of breaking out theta operators such as < into a 
list, versus just leaving it all in a RexNode blob.

Common theta cases such as "(x, y) < (x1, y1)", which becomes "x < x1 or (x = 
x1 and y < y1)", can't be converted into ANDs anyway.

> 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
>             Fix For: next
>
>         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