blob: 9f09356374c50397405fc48984431d7574c4ddfc [file] [log] [blame]
--! qt:dataset:src
--! qt:dataset:part
-- SORT_QUERY_RESULTS
set hive.mapred.mode=nonstrict;
set hive.exec.infer.bucket.sort=true;
-- This tests inferring how data is bucketed/sorted from the operators in the reducer
-- and populating that information in partitions' metadata, in particular, this tests
-- the grouping operators rollup/cube/grouping sets
CREATE TABLE test_table_out (key STRING, value STRING, agg STRING) PARTITIONED BY (part STRING);
CREATE TABLE test_table_out_2 (key STRING, value STRING, grouping_key STRING, agg STRING) PARTITIONED BY (part STRING);
-- Test rollup, should not be bucketed or sorted because its missing the grouping ID
EXPLAIN INSERT OVERWRITE TABLE test_table_out PARTITION (part = '1')
SELECT key, value, count(1) FROM src GROUP BY key, value WITH ROLLUP;
SELECT key, value, count(1) FROM src GROUP BY ROLLUP (key, value);
INSERT OVERWRITE TABLE test_table_out PARTITION (part = '1')
SELECT key, value, count(1) FROM src GROUP BY key, value WITH ROLLUP;
DESCRIBE FORMATTED test_table_out PARTITION (part = '1');
-- Test rollup, should be bucketed and sorted on key, value, grouping_key
INSERT OVERWRITE TABLE test_table_out_2 PARTITION (part = '1')
SELECT key, value, GROUPING__ID, count(1) FROM src GROUP BY key, value WITH ROLLUP;
SELECT key, value, GROUPING__ID, count(1) FROM src GROUP BY ROLLUP (key, value);
DESCRIBE FORMATTED test_table_out_2 PARTITION (part = '1');
-- Test cube, should not be bucketed or sorted because its missing the grouping ID
EXPLAIN INSERT OVERWRITE TABLE test_table_out PARTITION (part = '1')
SELECT key, value, count(1) FROM src GROUP BY key, value WITH CUBE;
INSERT OVERWRITE TABLE test_table_out PARTITION (part = '1')
SELECT key, value, count(1) FROM src GROUP BY key, value WITH CUBE;
DESCRIBE FORMATTED test_table_out PARTITION (part = '1');
-- Test cube, should be bucketed and sorted on key, value, grouping_key
INSERT OVERWRITE TABLE test_table_out_2 PARTITION (part = '1')
SELECT key, value, GROUPING__ID, count(1) FROM src GROUP BY key, value WITH CUBE;
DESCRIBE FORMATTED test_table_out_2 PARTITION (part = '1');
-- Test grouping sets, should not be bucketed or sorted because its missing the grouping ID
EXPLAIN INSERT OVERWRITE TABLE test_table_out PARTITION (part = '1')
SELECT key, value, count(1) FROM src GROUP BY key, value GROUPING SETS (key, value);
INSERT OVERWRITE TABLE test_table_out PARTITION (part = '1')
SELECT key, value, count(1) FROM src GROUP BY key, value GROUPING SETS (key, value);
DESCRIBE FORMATTED test_table_out PARTITION (part = '1');
-- Test grouping sets, should be bucketed and sorted on key, value, grouping_key
INSERT OVERWRITE TABLE test_table_out_2 PARTITION (part = '1')
SELECT key, value, GROUPING__ID, count(1) FROM src GROUP BY key, value GROUPING SETS (key, value);
DESCRIBE FORMATTED test_table_out_2 PARTITION (part = '1');