[
https://issues.apache.org/jira/browse/HIVE-27088?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17721272#comment-17721272
]
Ryu Kobayashi commented on HIVE-27088:
--------------------------------------
[~kkasa] Sorry, late response. I gave a concrete example.
> Using MergeJoin and using filters does not work
> -----------------------------------------------
>
> Key: HIVE-27088
> URL: https://issues.apache.org/jira/browse/HIVE-27088
> Project: Hive
> Issue Type: Bug
> Components: Query Planning
> Reporter: Ryu Kobayashi
> Assignee: Ryu Kobayashi
> Priority: Major
> Labels: pull-request-available
> Time Spent: 2h 50m
> Remaining Estimate: 0h
>
> When hive.merge.nway.joins is set to `true` and JOIN is performed with INNER
> and OUTER and a filter exists, normal results cannot be obtained.
> For example:
> {code:java}
> -- Data preparation
> create temporary table foo (id bigint, code string) stored as orc;
> create temporary table bar (id bigint, code string) stored as orc;
> create temporary table baz (id bigint) stored as orc;
> INSERT INTO foo values
> (29999000052073, '01'),
> (29999000052107, '01'),
> (29999000052111, '01'),
> (29999000052112, '01'),
> (29999000052113, '01'),
> (29999000052114, '01'),
> (29999000052071, '01A'),
> (29999000052072, '01A'),
> (29999000052116, '01A'),
> (29999000052117, '01A'),
> (29999000052118, '01A'),
> (29999000052119, '01A'),
> (29999000052120, '01A'),
> (29999000052076, '06'),
> (29999000052074, '06A'),
> (29999000052075, '06A');INSERT INTO bar values
> (29999000052071, '01'),
> (29999000052072, '01'),
> (29999000052073, '01'),
> (29999000052116, '01'),
> (29999000052117, '01'),
> (29999000052071, '01A'),
> (29999000052072, '01A'),
> (29999000052073, '01A'),
> (29999000052116, '01AS'),
> (29999000052117, '01AS'),
> (29999000052071, '01B'),
> (29999000052072, '01B'),
> (29999000052073, '01B'),
> (29999000052116, '01BS'),
> (29999000052117, '01BS'),
> (29999000052071, '01C'),
> (29999000052072, '01C'),
> (29999000052073, '01C7'),
> (29999000052116, '01CS'),
> (29999000052117, '01CS'),
> (29999000052071, '01D'),
> (29999000052072, '01D'),
> (29999000052073, '01D'),
> (29999000052116, '01DS'),
> (29999000052117, '01DS');INSERT INTO baz values
> (29999000052071),
> (29999000052072),
> (29999000052073),
> (29999000052074),
> (29999000052075),
> (29999000052076),
> (29999000052107),
> (29999000052111),
> (29999000052112),
> (29999000052113),
> (29999000052114),
> (29999000052116),
> (29999000052117),
> (29999000052118),
> (29999000052119),
> (29999000052120);{code}
> Normal works(set hive.merge.nway.joins=false):
> {code:java}
> hive> set hive.merge.nway.joins=false;
> hive> SELECT
> a.id,
> b.code,
> c.id
> FROM bar AS a
> INNER JOIN foo AS b
> ON a.id = b.id
> AND (a.code = '01AS' OR b.code = '01BS')
> LEFT OUTER JOIN baz AS c
> ON a.id = c.id;
> OK
> 29999000052116 01A 29999000052116
> 29999000052117 01A 29999000052117 {code}
> Abnormal works(set hive.merge.nway.joins=true):
> {code:java}
> hive> set hive.merge.nway.joins=true;
> hive> SELECT
> a.id,
> b.code,
> c.id
> FROM bar AS a
> INNER JOIN foo AS b
> ON a.id = b.id
> AND (a.code = '01AS' OR b.code = '01BS')
> LEFT OUTER JOIN baz AS c
> ON a.id = c.id;
> OK 29999000052071 01A NULL
> 29999000052072 01A NULL
> 29999000052073 01 NULL
> 29999000052116 01A NULL
> 29999000052117 01A NULL
> 29999000052071 01A NULL
> 29999000052072 01A NULL
> 29999000052073 01 NULL
> 29999000052116 01A 29999000052116
> 29999000052117 01A 29999000052117
> 29999000052071 01A NULL
> 29999000052072 01A NULL
> 29999000052073 01 NULL
> 29999000052116 01A NULL
> 29999000052117 01A NULL
> 29999000052071 01A NULL
> 29999000052072 01A NULL
> 29999000052073 01 NULL
> 29999000052116 01A NULL
> 29999000052117 01A NULL
> 29999000052071 01A NULL
> 29999000052072 01A NULL
> 29999000052073 01 NULL
> 29999000052116 01A NULL
> 29999000052117 01A NULL {code}
>
> I think this is also related to the next ticket:
> https://issues.apache.org/jira/browse/HIVE-21322
--
This message was sent by Atlassian Jira
(v8.20.10#820010)