blob: 1788b600f0372688c95fde19125ecb929c903f5c [file] [log] [blame]
set hive.explain.user=false;
CREATE TABLE x_n3
(
u bigint,
t string,
st string
)
PARTITIONED BY (`date` string)
STORED AS ORC
TBLPROPERTIES ("orc.compress"="ZLIB");
CREATE TABLE y_n1
(
u bigint
)
PARTITIONED BY (`date` string)
STORED AS ORC
TBLPROPERTIES ("orc.compress"="ZLIB");
CREATE TABLE z_n0
(
u bigint
)
PARTITIONED BY (`date` string)
STORED AS ORC
TBLPROPERTIES ("orc.compress"="ZLIB");
CREATE TABLE v_n15
(
t string,
st string,
id int
)
STORED AS ORC
TBLPROPERTIES ("orc.compress"="ZLIB");
EXPLAIN CBO
SELECT o.u, n.u
FROM
(
SELECT m.u, Min(`date`) as ft
FROM
(
SELECT u, `date` FROM x_n3 WHERE `date` < '2014-09-02'
UNION ALL
SELECT u, `date` FROM y_n1 WHERE `date` < '2014-09-02'
UNION ALL
SELECT u, `date` FROM z_n0 WHERE `date` < '2014-09-02'
) m
GROUP BY m.u
) n
LEFT OUTER JOIN
(
SELECT x_n3.u
FROM x_n3
JOIN v_n15
ON (x_n3.t = v_n15.t AND x_n3.st <=> v_n15.st)
WHERE x_n3.`date` >= '2014-03-04' AND x_n3.`date` < '2014-09-03'
GROUP BY x_n3.u
) o
ON n.u = o.u
WHERE n.u <> 0 AND n.ft <= '2014-09-02';
EXPLAIN
SELECT o.u, n.u
FROM
(
SELECT m.u, Min(`date`) as ft
FROM
(
SELECT u, `date` FROM x_n3 WHERE `date` < '2014-09-02'
UNION ALL
SELECT u, `date` FROM y_n1 WHERE `date` < '2014-09-02'
UNION ALL
SELECT u, `date` FROM z_n0 WHERE `date` < '2014-09-02'
) m
GROUP BY m.u
) n
LEFT OUTER JOIN
(
SELECT x_n3.u
FROM x_n3
JOIN v_n15
ON (x_n3.t = v_n15.t AND x_n3.st <=> v_n15.st)
WHERE x_n3.`date` >= '2014-03-04' AND x_n3.`date` < '2014-09-03'
GROUP BY x_n3.u
) o
ON n.u = o.u
WHERE n.u <> 0 AND n.ft <= '2014-09-02';
SELECT o.u, n.u
FROM
(
SELECT m.u, Min(`date`) as ft
FROM
(
SELECT u, `date` FROM x_n3 WHERE `date` < '2014-09-02'
UNION ALL
SELECT u, `date` FROM y_n1 WHERE `date` < '2014-09-02'
UNION ALL
SELECT u, `date` FROM z_n0 WHERE `date` < '2014-09-02'
) m
GROUP BY m.u
) n
LEFT OUTER JOIN
(
SELECT x_n3.u
FROM x_n3
JOIN v_n15
ON (x_n3.t = v_n15.t AND x_n3.st <=> v_n15.st)
WHERE x_n3.`date` >= '2014-03-04' AND x_n3.`date` < '2014-09-03'
GROUP BY x_n3.u
) o
ON n.u = o.u
WHERE n.u <> 0 AND n.ft <= '2014-09-02';