blob: 8b9ae7a85f59f61616e83e6ce03f98a50b78b51f [file] [log] [blame]
SET metastore.expression.proxy=org.apache.hadoop.hive.ql.optimizer.ppr.PartitionExpressionForMetastore;
SET metastore.decode.filter.expression.tostring=true;
DROP TABLE IF EXISTS repairtable_filter;
CREATE TABLE repairtable_filter(col STRING) PARTITIONED BY (p1 STRING, p2 STRING);
dfs ${system:test.dfs.mkdir} ${system:test.local.warehouse.dir}/repairtable_filter/p1=c/p2=a;
dfs -touchz ${system:test.local.warehouse.dir}/repairtable_filter/p1=c/p2=a/datafile;
dfs ${system:test.dfs.mkdir} ${system:test.local.warehouse.dir}/repairtable_filter/p1=b/p2=a;
dfs -touchz ${system:test.local.warehouse.dir}/repairtable_filter/p1=b/p2=a/datafile;
-- recover all the partition
MSCK REPAIR TABLE default.repairtable_filter SYNC PARTITIONS;
show partitions repairtable_filter;
-- Test Single Filter Operator "="
dfs ${system:test.dfs.mkdir} ${system:test.local.warehouse.dir}/repairtable_filter/p1=b/p2=e;
dfs -touchz ${system:test.local.warehouse.dir}/repairtable_filter/p1=b/p2=e/datafile;
dfs ${system:test.dfs.mkdir} ${system:test.local.warehouse.dir}/repairtable_filter/p1=c/p2=e;
dfs -touchz ${system:test.local.warehouse.dir}/repairtable_filter/p1=c/p2=e/datafile;
MSCK REPAIR TABLE repairtable_filter SYNC PARTITIONS (p1 = 'b');
show partitions repairtable_filter;
-- Test Single Filter Operator "like"
dfs ${system:test.dfs.mkdir} ${system:test.local.warehouse.dir}/repairtable_filter/p1=ca/p2=e;
dfs -touchz ${system:test.local.warehouse.dir}/repairtable_filter/p1=ca/p2=e/datafile;
dfs ${system:test.dfs.mkdir} ${system:test.local.warehouse.dir}/repairtable_filter/p1=cb/p2=e;
dfs -touchz ${system:test.local.warehouse.dir}/repairtable_filter/p1=cb/p2=e/datafile;
dfs ${system:test.dfs.mkdir} ${system:test.local.warehouse.dir}/repairtable_filter/p1=bb/p2=e;
dfs -touchz ${system:test.local.warehouse.dir}/repairtable_filter/p1=bb/p2=e/datafile;
MSCK REPAIR TABLE default.repairtable_filter SYNC PARTITIONS (p1 LIKE 'c%');
show partitions repairtable_filter;
-- Test Single Filter Operator "!="
dfs ${system:test.dfs.mkdir} ${system:test.local.warehouse.dir}/repairtable_filter/p1=bba/p2=e;
dfs -touchz ${system:test.local.warehouse.dir}/repairtable_filter/p1=bba/p2=e/datafile;
dfs ${system:test.dfs.mkdir} ${system:test.local.warehouse.dir}/repairtable_filter/p1=bbc/p2=e;
dfs -touchz ${system:test.local.warehouse.dir}/repairtable_filter/p1=bbc/p2=e/datafile;
MSCK REPAIR TABLE default.repairtable_filter SYNC PARTITIONS (p1 != 'bba');
show partitions repairtable_filter;
-- Test Multiple Filter Operator "="
dfs ${system:test.dfs.mkdir} ${system:test.local.warehouse.dir}/repairtable_filter/p1=ber/p2=ehb;
dfs -touchz ${system:test.local.warehouse.dir}/repairtable_filter/p1=b/p2=e/datafile;
dfs ${system:test.dfs.mkdir} ${system:test.local.warehouse.dir}/repairtable_filter/p1=cp/p2=eg;
dfs -touchz ${system:test.local.warehouse.dir}/repairtable_filter/p1=c/p2=e/datafile;
MSCK REPAIR TABLE default.repairtable_filter SYNC PARTITIONS (p1 = 'ber', p2 = 'ehb');
show partitions repairtable_filter;
-- Test Multiple Filter Operator "like"
dfs ${system:test.dfs.mkdir} ${system:test.local.warehouse.dir}/repairtable_filter/p1=cab/p2=eb;
dfs -touchz ${system:test.local.warehouse.dir}/repairtable_filter/p1=ca/p2=e/datafile;
dfs ${system:test.dfs.mkdir} ${system:test.local.warehouse.dir}/repairtable_filter/p1=cob/p2=es;
dfs -touchz ${system:test.local.warehouse.dir}/repairtable_filter/p1=cb/p2=e/datafile;
dfs ${system:test.dfs.mkdir} ${system:test.local.warehouse.dir}/repairtable_filter/p1=bb/p2=ep;
dfs -touchz ${system:test.local.warehouse.dir}/repairtable_filter/p1=bb/p2=e/datafile;
MSCK REPAIR TABLE default.repairtable_filter SYNC PARTITIONS (p1 like 'c%', p2 like 'e%');
show partitions repairtable_filter;
-- Test Filter Operator "!="
dfs ${system:test.dfs.mkdir} ${system:test.local.warehouse.dir}/repairtable_filter/p1=bba/p2=e;
dfs -touchz ${system:test.local.warehouse.dir}/repairtable_filter/p1=bba/p2=e/datafile;
dfs ${system:test.dfs.mkdir} ${system:test.local.warehouse.dir}/repairtable_filter/p1=bbc/p2=e;
dfs -touchz ${system:test.local.warehouse.dir}/repairtable_filter/p1=bbc/p2=e/datafile;
MSCK REPAIR TABLE default.repairtable_filter SYNC PARTITIONS (p1!='bba', p2 != 'e');
show partitions repairtable_filter;
-- Test Multiple Filter Operator ">"
dfs ${system:test.dfs.mkdir} ${system:test.local.warehouse.dir}/repairtable_filter/p1=bbqa/p2=eq;
dfs -touchz ${system:test.local.warehouse.dir}/repairtable_filter/p1=bbqa/p2=eq/datafile;
dfs ${system:test.dfs.mkdir} ${system:test.local.warehouse.dir}/repairtable_filter/p1=bwbc/p2=eq;
dfs -touchz ${system:test.local.warehouse.dir}/repairtable_filter/p1=bwbc/p2=eq/datafile;
MSCK REPAIR TABLE default.repairtable_filter SYNC PARTITIONS (p1 > 'bba');
show partitions repairtable_filter;
-- Test Multiple Filter Operator "<"
MSCK REPAIR TABLE default.repairtable_filter SYNC PARTITIONS (p1 < 'bwbc');
show partitions repairtable_filter;
-- Test Multiple Filter Operator ">="
MSCK REPAIR TABLE default.repairtable_filter SYNC PARTITIONS (p1 >= 'bwbc');
show partitions repairtable_filter;
-- Test Multiple Filter Operator "<="
MSCK REPAIR TABLE default.repairtable_filter SYNC PARTITIONS (p1 <= 'bbqa');
show partitions repairtable_filter;
-- Test Multiple Filter With Multiple Operators
dfs ${system:test.dfs.mkdir} ${system:test.local.warehouse.dir}/repairtable_filter/p1=bter/p2=ehb;
dfs -touchz ${system:test.local.warehouse.dir}/repairtable_filter/p1=bter/p2=ehb/datafile;
dfs ${system:test.dfs.mkdir} ${system:test.local.warehouse.dir}/repairtable_filter/p1=cpa/p2=eg;
dfs -touchz ${system:test.local.warehouse.dir}/repairtable_filter/p1=cpa/p2=eg/datafile;
MSCK REPAIR TABLE default.repairtable_filter SYNC PARTITIONS (p1='ber', p2!='ehb');
show partitions repairtable_filter;
dfs ${system:test.dfs.mkdir} ${system:test.local.warehouse.dir}/repairtable_filter/p1=cab/p2=eb;
dfs -touchz ${system:test.local.warehouse.dir}/repairtable_filter/p1=cab/p2=eb/datafile;
dfs ${system:test.dfs.mkdir} ${system:test.local.warehouse.dir}/repairtable_filter/p1=cobf/p2=ess;
dfs -touchz ${system:test.local.warehouse.dir}/repairtable_filter/p1=cobf/p2=ess/datafile;
dfs ${system:test.dfs.mkdir} ${system:test.local.warehouse.dir}/repairtable_filter/p1=bbe/p2=ep;
dfs -touchz ${system:test.local.warehouse.dir}/repairtable_filter/p1=bbe/p2=ep/datafile;
MSCK REPAIR TABLE default.repairtable_filter SYNC PARTITIONS (p1 like 'c%', p2='e');
show partitions repairtable_filter;
dfs ${system:test.dfs.mkdir} ${system:test.local.warehouse.dir}/repairtable_filter/p1=bbw/p2=e;
dfs -touchz ${system:test.local.warehouse.dir}/repairtable_filter/p1=bbw/p2=e/datafile;
dfs ${system:test.dfs.mkdir} ${system:test.local.warehouse.dir}/repairtable_filter/p1=bbsc/p2=e;
dfs -touchz ${system:test.local.warehouse.dir}/repairtable_filter/p1=bbsc/p2=e/datafile;
MSCK REPAIR TABLE default.repairtable_filter SYNC PARTITIONS (p1!='bba', p2 like 'e%');
show partitions repairtable_filter;
-- Test DROP PARTITIONS
dfs -rmr ${system:test.local.warehouse.dir}/repairtable_filter/p1=bbsc;
MSCK REPAIR TABLE default.repairtable_filter SYNC PARTITIONS (p1='bbsc');
show partitions repairtable_filter;
dfs -rmr ${system:test.local.warehouse.dir}/repairtable_filter/p1=bbw;
MSCK REPAIR TABLE default.repairtable_filter SYNC PARTITIONS (p1 like 'b%');
show partitions repairtable_filter;
dfs -rmr ${system:test.local.warehouse.dir}/repairtable_filter/p1=bba;
MSCK REPAIR TABLE default.repairtable_filter SYNC PARTITIONS (p1 like 'bb%');
show partitions repairtable_filter;
DROP TABLE repairtable_filter;