You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "lios.li (JIRA)" <ji...@apache.org> on 2016/10/18 09:25:58 UTC

[jira] [Created] (HIVE-14997) Hive query left join get wrong result

lios.li created HIVE-14997:
------------------------------

             Summary: Hive query left join get wrong result
                 Key: HIVE-14997
                 URL: https://issues.apache.org/jira/browse/HIVE-14997
             Project: Hive
          Issue Type: Bug
          Components: SQL
    Affects Versions: 0.14.0
         Environment: Hive 0.14.0
Subversion file:///Users/ghagleitner/Projects/hive-svn/rel-prep/hive-14-rel-prep -r Unknown
Compiled by ghagleitner on Sat Nov 8 23:25:06 PST 2014
From source with checksum 49c2182a0856f7917f571802a7594b00
            Reporter: lios.li


First, create two tables.

CREATE DATABASE IF NOT EXISTS test;
USE test;

DROP TABLE IF EXISTS student_info;
CREATE TABLE IF NOT EXISTS student_info(
		id string COMMENT 'student id',
		name string COMMENT 'student name'
)
PARTITIONED BY (l_date string)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t';

ALTER TABLE test.student_info SET SERDEPROPERTIES('serialization.null.format' = '');

DROP TABLE IF EXISTS student_score;
CREATE TABLE IF NOT EXISTS student_score(
		id string COMMENT 'student id',
		class string COMMENT 'class',
		score int COMMENT 'class score'
)
PARTITIONED BY (l_date string)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t';

ALTER TABLE test.student_score SET SERDEPROPERTIES('serialization.null.format' = '');

4 records in table student_info,
1	jobs
2	cook
3	gates
4	musk

3 records in table student_score,
1	math	98
2	math	96
3	math	94

I want get the student who has no score and id is '4'.

select * from test.student_info a
left join test.student_score b
on a.id=b.id
where (b.id='' or b.id is null)
and a.id='4';

and i got nothing.
but, i add the 'trim()'.

select * from test.student_info a
left join test.student_score b
on a.id=b.id
where (b.id='' or b.id is null)
and trim(a.id)='4';

i can get what i want.

a.id	a.name	b.id	b.class	b.score
4	musk	NULL	NULL	NULL

so, i think there is a bug.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)