You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "Stamatis Zampetakis (Jira)" <ji...@apache.org> on 2021/03/30 13:17:00 UTC
[jira] [Updated] (HIVE-24957) Wrong results when subquery has
COALESCE in correlation predicate
[ https://issues.apache.org/jira/browse/HIVE-24957?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Stamatis Zampetakis updated HIVE-24957:
---------------------------------------
Description:
Consider the following example:
{code:sql}
create table author (
a_authorkey int,
a_name varchar(50));
create table book (
b_bookkey int,
b_title varchar(50),
b_authorkey int);
insert into author values (10, 'Victor Hugo');
insert into author values (20, 'Alexandre Dumas');
insert into author values (300, 'UNKNOWN');
insert into book values (1, 'Les Miserables', 10);
insert into book values (2, 'The Count of Monte Cristo', 20);
insert into book values (3, 'Men Without Women', 30);
insert into book values (4, 'Odyssey', null);
select b.b_title
from book b
where exists
(select a_authorkey
from author a
where coalesce(b.b_authorkey, 300) = a.a_authorkey);
{code}
*Expected results*
||B_TITLE||
|Les Miserables|
|The Count of Monte Cristo|
|Odyssey|
*Actual results*
||B_TITLE||
|Les Miserables|
|The Count of Monte Cristo|
{{Odyssey}} is missing from the result set and it shouldn't since with the application of COALESCE operator it should match with the UNKNOWN author.
was:
Consider the following example:
{code:sql}
create table author (
a_authorkey int,
a_name varchar(50));
create table book (
b_bookkey int,
b_title varchar(50),
b_authorkey int);
insert into author values (10, 'Victor Hugo');
insert into author values (20, 'Alexandre Dumas');
insert into author values (300, 'UNKNOWN');
insert into book values (1, 'Les Miserables', 10);
insert into book values (2, 'The Count of Monte Cristo', 20);
insert into book values (3, 'Men Without Women', 30);
insert into book values (4, 'Odyssey', null);
select b.b_title
from book b
where exists
(select 1
from author a
where coalesce(b.b_authorkey, 300) = a.a_authorkey);
{code}
*Expected results*
||B_TITLE||
|Les Miserables|
|The Count of Monte Cristo|
|Odyssey|
*Actual results*
||B_TITLE||
|Les Miserables|
|The Count of Monte Cristo|
{{Odyssey}} is missing from the result set and it shouldn't since with the application of COALESCE operator it should match with the UNKNOWN author.
> Wrong results when subquery has COALESCE in correlation predicate
> -----------------------------------------------------------------
>
> Key: HIVE-24957
> URL: https://issues.apache.org/jira/browse/HIVE-24957
> Project: Hive
> Issue Type: Bug
> Affects Versions: 4.0.0
> Reporter: Stamatis Zampetakis
> Assignee: Stamatis Zampetakis
> Priority: Major
>
> Consider the following example:
> {code:sql}
> create table author (
> a_authorkey int,
> a_name varchar(50));
> create table book (
> b_bookkey int,
> b_title varchar(50),
> b_authorkey int);
> insert into author values (10, 'Victor Hugo');
> insert into author values (20, 'Alexandre Dumas');
> insert into author values (300, 'UNKNOWN');
> insert into book values (1, 'Les Miserables', 10);
> insert into book values (2, 'The Count of Monte Cristo', 20);
> insert into book values (3, 'Men Without Women', 30);
> insert into book values (4, 'Odyssey', null);
> select b.b_title
> from book b
> where exists
> (select a_authorkey
> from author a
> where coalesce(b.b_authorkey, 300) = a.a_authorkey);
> {code}
> *Expected results*
> ||B_TITLE||
> |Les Miserables|
> |The Count of Monte Cristo|
> |Odyssey|
> *Actual results*
> ||B_TITLE||
> |Les Miserables|
> |The Count of Monte Cristo|
> {{Odyssey}} is missing from the result set and it shouldn't since with the application of COALESCE operator it should match with the UNKNOWN author.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)