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

Julian Hyde commented on CALCITE-4907:
--------------------------------------

The end user sees the world as SQL. Therefore I suggest

| JDBC adapter cannot push down join ON TRUE (cartesian product) or ON FALSE

Users who know relational algebra have no difficulty mapping the SQL to 
JdbcJoin etc. but the converse is not true.

 

> JdbcJoin does not convert Join with always true/false RexNode
> -------------------------------------------------------------
>
>                 Key: CALCITE-4907
>                 URL: https://issues.apache.org/jira/browse/CALCITE-4907
>             Project: Calcite
>          Issue Type: Bug
>          Components: jdbc-adapter
>    Affects Versions: 1.28.0
>            Reporter: Francesco Gini
>            Assignee: Francesco Gini
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 1.29.0
>
>          Time Spent: 40m
>  Remaining Estimate: 0h
>
> Cross joins (LogicalJoin with condition {_}true{_}) are not pushed down in 
> the database when using the JdbcAdapter. This results in implementing the 
> join in memory via _EnumerableNestedLoopJoin_ which is a less efficient 
> implementation.
>  
> JdbcJoin does not handle cases where the condtion is a RexNode that it is 
> always true or false. However, SqlImplementor is coded to handle those 
> conditions (see SqlImplementor.convertConditionToSqlNode).



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to