blob: f7ecbef2ee36f2c050955283a041a68fd048930a [file] [log] [blame]
--! qt:dataset:src1
--! qt:dataset:src
set hive.auto.convert.join = false;
set hive.merge.nway.joins=true;
-- SORT_QUERY_RESULTS
--HIVE-2101 mapjoin sometimes gives wrong results if there is a filter in the on condition
SELECT * FROM src1
RIGHT OUTER JOIN src1 src2 ON (src1.key = src2.key AND src1.key < 10 AND src2.key > 10)
JOIN src src3 ON (src2.key = src3.key AND src3.key < 300)
SORT BY src1.key, src2.key, src3.key;
explain
SELECT /*+ mapjoin(src1, src2) */ * FROM src1
RIGHT OUTER JOIN src1 src2 ON (src1.key = src2.key AND src1.key < 10 AND src2.key > 10)
JOIN src src3 ON (src2.key = src3.key AND src3.key < 300)
SORT BY src1.key, src2.key, src3.key;
SELECT /*+ mapjoin(src1, src2) */ * FROM src1
RIGHT OUTER JOIN src1 src2 ON (src1.key = src2.key AND src1.key < 10 AND src2.key > 10)
JOIN src src3 ON (src2.key = src3.key AND src3.key < 300)
SORT BY src1.key, src2.key, src3.key;
set hive.auto.convert.join = true;
explain
SELECT * FROM src1
RIGHT OUTER JOIN src1 src2 ON (src1.key = src2.key AND src1.key < 10 AND src2.key > 10)
JOIN src src3 ON (src2.key = src3.key AND src3.key < 300)
SORT BY src1.key, src2.key, src3.key;
SELECT * FROM src1
RIGHT OUTER JOIN src1 src2 ON (src1.key = src2.key AND src1.key < 10 AND src2.key > 10)
JOIN src src3 ON (src2.key = src3.key AND src3.key < 300)
SORT BY src1.key, src2.key, src3.key;