blob: 95051d4cf8198a43d1117532d03759102799b560 [file] [log] [blame]
set hive.mapred.mode=nonstrict;
drop table x;
drop table y;
drop table z;
CREATE TABLE x (name STRING, id INT)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
CREATE TABLE y (id INT, name STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
CREATE TABLE z (id INT, name STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
load data local inpath '../../data/files/x.txt' INTO TABLE x;
load data local inpath '../../data/files/y.txt' INTO TABLE y;
load data local inpath '../../data/files/z.txt' INTO TABLE z;
set hive.auto.convert.join=true;
set hive.auto.convert.join.noconditionaltask=true;
set hive.auto.convert.join.noconditionaltask.size=10000;
-- Since the inputs are small, it should be automatically converted to mapjoin
EXPLAIN
SELECT subq.key1, subq.value1, subq.key2, subq.value2, z.id, z.name
FROM
(SELECT x.id as key1, x.name as value1, y.id as key2, y.name as value2
FROM y JOIN x ON (x.id = y.id)) subq
JOIN z ON (subq.key1 = z.id);
SELECT subq.key1, subq.value1, subq.key2, subq.value2, z.id, z.name
FROM
(SELECT x.id as key1, x.name as value1, y.id as key2, y.name as value2
FROM y JOIN x ON (x.id = y.id)) subq
JOIN z ON (subq.key1 = z.id);
drop table x;
drop table y;
drop table z;