[
https://issues.apache.org/jira/browse/CALCITE-3128?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16864265#comment-16864265
]
Muhammad Gelbana edited comment on CALCITE-3128 at 6/24/19 9:00 AM:
--------------------------------------------------------------------
My analysis so far is that {{leftKeys}} and {{rightKeys}} for
EnumerableHashJoin (Previously 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.
was (Author: mgelbana):
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)