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

Muhammad Gelbana commented on CALCITE-3128:
-------------------------------------------

My analysis so far is that {{leftKeys}} and {{rightKeys}} for 
EnumerableHashJoin (Recently named EnumerableJoin) are blank, which illudes 
{{PhysTypeImpl.generateAccessor(List<Integer>)}} to return an expression of an 
empty list.

{{leftKeys}} and {{rightKeys}} are blank because while constructing a Join 
node, {{JoinInfo.of(RelNode, RelNode, RexNode)}} uses 
{{RelOptUtil.splitJoinCondition(RelNode, RelNode, RexNode, List<Integer>, 
List<Integer>, List<Boolean>)}} to fill up {{leftKeys}} and {{rightKeys}} but 
it doesn't because the condition is always true (i.e cartesian product).

I'm still not sure where or how to fix this.

> Joining two tables producing only NULLs will return 0 rows
> ----------------------------------------------------------
>
>                 Key: CALCITE-3128
>                 URL: https://issues.apache.org/jira/browse/CALCITE-3128
>             Project: Calcite
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 1.20.0
>            Reporter: Muhammad Gelbana
>            Priority: Major
>
> The following queries will return 0 rows while they're expected to ruturn 
> rows with NULLs in them.
> {code:sql}
> SELECT *
> FROM (SELECT NULLIF(5, 5)) a, (SELECT NULLIF(5, 5)) b
> {code}
> {code:sql}
> SELECT *
> FROM (VALUES (NULLIF(5, 5)), (NULLIF(5, 5))) a, (VALUES (NULLIF(5, 5)), 
> (NULLIF(5, 5))) b
> {code}



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

Reply via email to