Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Duplicate
-
1.1.1, 1.2.1
-
None
-
None
Description
I found a join issue in hive-1.2.1 and hive-1.1.1.
The create table sql is as below.
CREATE TABLE IF NOT EXISTS join_case( orderid bigint, tradeitemid bigint, id bigint ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' STORED AS TEXTFILE;
Please put attached sample data file 000000_0 in /tmp/join_case folder.
Then load data.
LOAD DATA LOCAL INPATH '/tmp/join_case/000000_0' OVERWRITE INTO TABLE join_case;
Run the following sql, but cannot get searching result.
select a.id from ( select orderid as orderid, max(id) as id from join_case group by orderid ) a join ( select id as id , orderid as orderid from join_case ) b on a.id = b.id limit 10;
This issue also occurs in hive-1.1.0-cdh5.4.5.
But in apache hive-1.0.1 the above sql can return 10 rows.
After exchanging the sequence of "orderid as orderid" and "max(id) as id", the following sql can get result in hive-1.2.1 and hive-1.1.1.
select a.id from ( select max(id) as id, orderid as orderid from join_case group by orderid ) a join ( select id as id , orderid as orderid from join_case ) b on a.id = b.id limit 10;
Also, the following sql can get results in hive-1.2.1 and hive-1.1.1.
select a.id from ( select orderid as orderid, id as id from join_case group by orderid, id ) a join ( select id as id , orderid as orderid from join_case ) b on a.id = b.id limit 10;
Anyone can take a look at this issue?
Thanks.
Attachments
Attachments
Issue Links
- duplicates
-
HIVE-10996 Aggregation / Projection over Multi-Join Inner Query producing incorrect results
- Closed