blob: c62cf5d6d19cb3d4ac8ffff40970e84d21dddef1 [file] [log] [blame]
--! qt:dataset:src
--! qt:dataset:part
set hive.exec.reducers.max = 1;
CREATE TABLE srcbucket_mapjoin_part_1_n0 (key INT, value STRING) PARTITIONED BY (part STRING)
CLUSTERED BY (key, value) SORTED BY (key DESC) INTO 2 BUCKETS;
INSERT OVERWRITE TABLE srcbucket_mapjoin_part_1_n0 PARTITION (part='1') SELECT * FROM src;
ALTER TABLE srcbucket_mapjoin_part_1_n0 CLUSTERED BY (key, value) SORTED BY (value DESC) INTO 2 BUCKETS;
INSERT OVERWRITE TABLE srcbucket_mapjoin_part_1_n0 PARTITION (part='2') SELECT * FROM src;
CREATE TABLE srcbucket_mapjoin_part_2_n2 (key INT, value STRING) PARTITIONED BY (part STRING)
CLUSTERED BY (key, value) SORTED BY (value DESC) INTO 2 BUCKETS;
INSERT OVERWRITE TABLE srcbucket_mapjoin_part_2_n2 PARTITION (part='1') SELECT * FROM src;
ALTER TABLE srcbucket_mapjoin_part_2_n2 CLUSTERED BY (key, value) SORTED BY (key DESC) INTO 2 BUCKETS;
INSERT OVERWRITE TABLE srcbucket_mapjoin_part_2_n2 PARTITION (part='2') SELECT * FROM src;
ALTER TABLE srcbucket_mapjoin_part_2_n2 CLUSTERED BY (key, value) SORTED BY (value DESC) INTO 2 BUCKETS;
set hive.optimize.bucketmapjoin=true;
set hive.optimize.bucketmapjoin.sortedmerge = true;
set hive.cbo.enable=false;
-- The table sorting metadata matches but the partition metadata does not, sorted merge join should not be used
EXPLAIN EXTENDED
SELECT /*+ MAPJOIN(b) */ count(*)
FROM srcbucket_mapjoin_part_1_n0 a JOIN srcbucket_mapjoin_part_2_n2 b
ON a.key = b.key AND a.part IS NOT NULL AND b.part IS NOT NULL;
SELECT /*+ MAPJOIN(b) */ count(*)
FROM srcbucket_mapjoin_part_1_n0 a JOIN srcbucket_mapjoin_part_2_n2 b
ON a.key = b.key AND a.part IS NOT NULL AND b.part IS NOT NULL;