blob: 5e2293926cbc5b2e7e1ecad815ec2854f418e3ce [file] [log] [blame]
set hive.msck.repair.batch.size=1;
set hive.mv.files.thread=0;
DROP TABLE IF EXISTS repairtable_n7;
DROP TABLE IF EXISTS repairtable_n8;
DROP TABLE IF EXISTS repairtable_n9;
DROP TABLE IF EXISTS repairtable_n10;
CREATE EXTERNAL TABLE repairtable_n7(col STRING) PARTITIONED BY (p1 STRING, p2 STRING)
LOCATION '${system:test.warehouse.dir}/repairtable_n7';
describe formatted repairtable_n7;
dfs ${system:test.dfs.mkdir} ${system:test.warehouse.dir}/repairtable_n7/p1=a/p2=b/;
dfs ${system:test.dfs.mkdir} ${system:test.warehouse.dir}/repairtable_n7/p1=c/p2=d/;
dfs -touchz ${system:test.warehouse.dir}/repairtable_n7/p1=a/p2=b/datafile;
dfs -touchz ${system:test.warehouse.dir}/repairtable_n7/p1=c/p2=d/datafile;
MSCK REPAIR TABLE default.repairtable_n7;
show partitions default.repairtable_n7;
CREATE EXTERNAL TABLE repairtable_n8 LIKE repairtable_n7
LOCATION '${system:test.warehouse.dir}/repairtable_n8';
describe formatted repairtable_n8;
dfs ${system:test.dfs.mkdir} ${system:test.warehouse.dir}/repairtable_n8/p1=a/p2=b/;
dfs ${system:test.dfs.mkdir} ${system:test.warehouse.dir}/repairtable_n8/p1=c/p2=d/;
dfs -touchz ${system:test.warehouse.dir}/repairtable_n8/p1=a/p2=b/datafile;
dfs -touchz ${system:test.warehouse.dir}/repairtable_n8/p1=c/p2=d/datafile;
MSCK REPAIR TABLE default.repairtable_n8;
show partitions default.repairtable_n8;
CREATE EXTERNAL TABLE repairtable_n9(col STRING) PARTITIONED BY (p1 STRING, p2 STRING)
LOCATION '${system:test.warehouse.dir}/repairtable_n9' tblproperties ("partition.retention.period"="10s");
describe formatted repairtable_n9;
dfs ${system:test.dfs.mkdir} ${system:test.warehouse.dir}/repairtable_n9/p1=a/p2=b/;
dfs ${system:test.dfs.mkdir} ${system:test.warehouse.dir}/repairtable_n9/p1=c/p2=d/;
dfs -touchz ${system:test.warehouse.dir}/repairtable_n9/p1=a/p2=b/datafile;
dfs -touchz ${system:test.warehouse.dir}/repairtable_n9/p1=c/p2=d/datafile;
set metastore.msck.repair.enable.partition.retention=false;
MSCK REPAIR TABLE default.repairtable_n9;
show partitions default.repairtable_n9;
!sleep 12;
set metastore.msck.repair.enable.partition.retention=true;
-- msck does not drop partitions, so this still should be no-op
MSCK REPAIR TABLE default.repairtable_n9;
show partitions default.repairtable_n9;
-- this will drop old partitions
MSCK REPAIR TABLE default.repairtable_n9 SYNC PARTITIONS;
show partitions default.repairtable_n9;
CREATE EXTERNAL TABLE repairtable_n10 PARTITIONED BY(p1,p2) STORED AS ORC AS SELECT * FROM repairtable_n9;
describe formatted repairtable_n10;
dfs ${system:test.dfs.mkdir} ${system:test.local.warehouse.dir}/repairtable_n10/p1=a/p2=b/;
dfs ${system:test.dfs.mkdir} ${system:test.local.warehouse.dir}/repairtable_n10/p1=c/p2=d/;
dfs -touchz ${system:test.local.warehouse.dir}/repairtable_n10/p1=a/p2=b/datafile;
dfs -touchz ${system:test.local.warehouse.dir}/repairtable_n10/p1=c/p2=d/datafile;
set metastore.msck.repair.enable.partition.retention=false;
!sleep 12;
MSCK REPAIR TABLE default.repairtable_n10;
show partitions default.repairtable_n10;
CREATE EXTERNAL TABLE repairtable_n11 LIKE repairtable_n10;
describe formatted repairtable_n11;
ALTER TABLE repairtable_n10 SET TBLPROPERTIES('discover.partitions'='false');
describe formatted repairtable_n10;
-- tbl params are not retained by default
CREATE EXTERNAL TABLE repairtable_n12 LIKE repairtable_n10;
describe formatted repairtable_n12;
set hive.ddl.createtablelike.properties.whitelist=discover.partitions;
-- with tbl params retainer
CREATE EXTERNAL TABLE repairtable_n13 LIKE repairtable_n10;
describe formatted repairtable_n13;
DROP TABLE default.repairtable_n7;
DROP TABLE default.repairtable_n8;
DROP TABLE default.repairtable_n9;
DROP TABLE default.repairtable_n10;