blob: 8454179d90e1b16d740de7a919bdd7fd6b0ce992 [file] [log] [blame]
--! qt:dataset:src
CREATE TABLE tmp_pyang_lv (inputs string) STORED AS RCFILE;
INSERT OVERWRITE TABLE tmp_pyang_lv SELECT key FROM src;
EXPLAIN SELECT * FROM src LATERAL VIEW explode(array(1,2,3)) myTable AS myCol SORT BY key ASC, myCol ASC LIMIT 1;
EXPLAIN SELECT myTable.* FROM src LATERAL VIEW explode(array(1,2,3)) myTable AS myCol LIMIT 3;
EXPLAIN SELECT myTable.myCol, myTable2.myCol2 FROM src LATERAL VIEW explode(array(1,2,3)) myTable AS myCol LATERAL VIEW explode(array('a', 'b', 'c')) myTable2 AS myCol2 LIMIT 9;
EXPLAIN SELECT myTable2.* FROM src LATERAL VIEW explode(array(array(1,2,3))) myTable AS myCol LATERAL VIEW explode(myTable.myCol) myTable2 AS myCol2 LIMIT 3;
-- Verify that * selects columns from both tables
SELECT * FROM src LATERAL VIEW explode(array(1,2,3)) myTable AS myCol SORT BY key ASC, myCol ASC LIMIT 1;
-- TABLE.* should be supported
SELECT myTable.* FROM src LATERAL VIEW explode(array(1,2,3)) myTable AS myCol LIMIT 3;
-- Multiple lateral views should result in a Cartesian product
SELECT myTable.myCol, myTable2.myCol2 FROM src LATERAL VIEW explode(array(1,2,3)) myTable AS myCol LATERAL VIEW explode(array('a', 'b', 'c')) myTable2 AS myCol2 LIMIT 9;
-- Should be able to reference tables generated earlier
SELECT myTable2.* FROM src LATERAL VIEW explode(array(array(1,2,3))) myTable AS myCol LATERAL VIEW explode(myTable.myCol) myTable2 AS myCol2 LIMIT 3;
EXPLAIN
SELECT myCol from tmp_pyang_lv LATERAL VIEW explode(array(1,2,3)) myTab as myCol limit 3;
SELECT myCol from tmp_PYANG_lv LATERAL VIEW explode(array(1,2,3)) myTab as myCol limit 3;
CREATE TABLE tmp_pyang_src_rcfile (key string, value array<string>) STORED AS RCFILE;
INSERT OVERWRITE TABLE tmp_pyang_src_rcfile SELECT key, array(value) FROM src ORDER BY key LIMIT 20;
SELECT key,value from tmp_pyang_src_rcfile LATERAL VIEW explode(value) myTable AS myCol;
SELECT myCol from tmp_pyang_src_rcfile LATERAL VIEW explode(value) myTable AS myCol;
SELECT * from tmp_pyang_src_rcfile LATERAL VIEW explode(value) myTable AS myCol;
SELECT subq.key,subq.value
FROM (
SELECT * from tmp_pyang_src_rcfile LATERAL VIEW explode(value) myTable AS myCol
)subq;
SELECT subq.myCol
FROM (
SELECT * from tmp_pyang_src_rcfile LATERAL VIEW explode(value) myTable AS myCol
)subq;
SELECT subq.key
FROM (
SELECT key, value from tmp_pyang_src_rcfile LATERAL VIEW explode(value) myTable AS myCol
)subq;
EXPLAIN SELECT value, myCol from (SELECT key, array(value[0]) AS value FROM tmp_pyang_src_rcfile GROUP BY value[0], key) a
LATERAL VIEW explode(value) myTable AS myCol;
SELECT value, myCol from (SELECT key, array(value[0]) AS value FROM tmp_pyang_src_rcfile GROUP BY value[0], key) a
LATERAL VIEW explode(value) myTable AS myCol;