You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Ng Jiunn Jye (JIRA)" <ji...@apache.org> on 2015/03/30 17:43:53 UTC

[jira] [Comment Edited] (CALCITE-631) Push theta joins down to JDBC adapter

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

Ng Jiunn Jye edited comment on CALCITE-631 at 3/30/15 3:43 PM:
---------------------------------------------------------------

The Costing  changes were deliberately done to have Calcite use JdbcJoin instead of EnumerableJoin. I notice the use of JdbcConvention.COST_MULTIPLIER in some rules but JdbcJoin does not use the same calculation. In fact, it is using a totally different calculation method which in most of my test cases fail to get chosen by calcite (as you had observed when reversing the cost calculation). 

In my opinion, the number of row return from JdbcJoin should be the max of leftRowCount and rightRowCount.

As for the test execution OutOfMemory issue. I am experiencing the same issue. I run the HeapAnalyzer on the phd file. The leak suspect shows  
   315,834,864 bytes (64.23 %) of Java heap is used by 40 instances of  
   org/hsqldb/persist/RowStoreAVLMemory

I wonder if this is caused by the push down of Join stressing up on hsqldb. 

As for your suggestion to rerun JdbcAdapterTest by disabling EnumerableJoinRule. Do you have any hint/sample on how to disable EnumerableJoinRule from running a test ? 




was (Author: jiunnjye):
How do I disable EnumerableJoinRule when running the test ? 



> Push theta joins down to JDBC adapter
> -------------------------------------
>
>                 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.2.patch, [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)