blob: 96b867238d3c62239382b017f11ef3541960f4bc [file] [log] [blame]
--! qt:dataset:srcpart
--! qt:dataset:src1
--! qt:dataset:src
set hive.mapred.mode=nonstrict;
-- This test is used for testing EXPLAIN LOGICAL command
-- Create some views
CREATE VIEW V1_n8 AS SELECT key, value from src;
CREATE VIEW V2_n3 AS SELECT ds, key, value FROM srcpart WHERE ds IS NOT NULL;
CREATE VIEW V3_n1 AS
SELECT src1.key, src2.value FROM V2_n3 src1
JOIN src src2 ON src1.key = src2.key WHERE src1.ds IS NOT NULL;
CREATE VIEW V4_n1 AS
SELECT src1.key, src2.value as value1, src3.value as value2
FROM V1_n8 src1 JOIN V2_n3 src2 on src1.key = src2.key JOIN src src3 ON src2.key = src3.key;
-- Simple select queries, union queries and join queries
EXPLAIN LOGICAL
SELECT key, count(1) FROM srcpart WHERE ds IS NOT NULL GROUP BY key;
EXPLAIN LOGICAL
SELECT key, count(1) FROM (SELECT key, value FROM src) subq1 GROUP BY key;
EXPLAIN LOGICAL
SELECT * FROM (
SELECT key, value FROM src UNION ALL SELECT key, value FROM srcpart WHERE ds IS NOT NULL
) S1;
EXPLAIN LOGICAL
SELECT S1.key, S2.value FROM src S1 JOIN srcpart S2 ON S1.key = S2.key WHERE ds IS NOT NULL;
-- With views
EXPLAIN LOGICAL SELECT * FROM V1_n8;
EXPLAIN LOGICAL SELECT * FROM V2_n3;
EXPLAIN LOGICAL SELECT * FROM V3_n1;
EXPLAIN LOGICAL SELECT * FROM V4_n1;
-- The table should show up in the explain logical even if none
-- of the partitions are selected.
CREATE VIEW V5_n0 as SELECT * FROM srcpart where ds = '10';
EXPLAIN LOGICAL SELECT * FROM V5_n0;
EXPLAIN LOGICAL SELECT s1.key, s1.cnt, s2.value FROM (SELECT key, count(value) as cnt FROM src GROUP BY key) s1 JOIN src s2 ON (s1.key = s2.key) ORDER BY s1.key;