Index: ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java (revision 982490) +++ ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java (working copy) @@ -23,6 +23,7 @@ import java.io.BufferedWriter; import java.io.DataOutput; +import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.io.OutputStreamWriter; @@ -472,15 +473,19 @@ private void setArchived(Partition p, Path parentDir, String dirInArchive, String archiveName) throws URISyntaxException { assert(isArchived(p) == false); - Map params = p.getParameters(); URI parentUri = parentDir.toUri(); String parentHost = parentUri.getHost(); + String parentPath = parentUri.getPath(); + if (parentPath.startsWith("/")) { + parentPath = parentPath.substring(1); + } + parentPath = parentPath.replaceAll("[^a-zA-Z0-9]", "--"); String harHost = null; if (parentHost == null) { - harHost = ""; + harHost = parentUri.getScheme()+ "-" + "-" + parentPath; } else { - harHost = parentUri.getScheme() + "-" + parentHost; + harHost = parentUri.getScheme() + "-" + parentHost + "-" + parentPath; } // harUri is used to access the partition's files, which are in the archive Index: ql/src/test/queries/clientpositive/archive_2.q =================================================================== --- ql/src/test/queries/clientpositive/archive_2.q (revision 0) +++ ql/src/test/queries/clientpositive/archive_2.q (revision 0) @@ -0,0 +1,22 @@ +set hive.exec.compress.output = true; +set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat; +set mapred.min.split.size=256; +set mapred.min.split.size.per.node=256; +set mapred.min.split.size.per.rack=256; +set mapred.max.split.size=256; +set hive.archive.enabled = true; + +drop table combine_3_srcpart_seq_rc; + +create table combine_3_srcpart_seq_rc (key int , value string) partitioned by (ds string, hr string) stored as sequencefile; + +insert overwrite table combine_3_srcpart_seq_rc partition (ds="2010-08-03", hr="00") select * from src; + +insert overwrite table combine_3_srcpart_seq_rc partition (ds="2010-08-03", hr="001") select * from src; + +ALTER TABLE combine_3_srcpart_seq_rc ARCHIVE PARTITION (ds="2010-08-03", hr="00"); +ALTER TABLE combine_3_srcpart_seq_rc ARCHIVE PARTITION (ds="2010-08-03", hr="001"); + +select key, value, ds, hr from combine_3_srcpart_seq_rc where ds="2010-08-03" order by key, hr limit 30; + +drop table combine_3_srcpart_seq_rc; \ No newline at end of file Index: ql/src/test/results/clientpositive/archive_2.q.out =================================================================== --- ql/src/test/results/clientpositive/archive_2.q.out (revision 0) +++ ql/src/test/results/clientpositive/archive_2.q.out (revision 0) @@ -0,0 +1,100 @@ +PREHOOK: query: drop table combine_3_srcpart_seq_rc +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table combine_3_srcpart_seq_rc +POSTHOOK: type: DROPTABLE +PREHOOK: query: create table combine_3_srcpart_seq_rc (key int , value string) partitioned by (ds string, hr string) stored as sequencefile +PREHOOK: type: CREATETABLE +POSTHOOK: query: create table combine_3_srcpart_seq_rc (key int , value string) partitioned by (ds string, hr string) stored as sequencefile +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: default@combine_3_srcpart_seq_rc +PREHOOK: query: insert overwrite table combine_3_srcpart_seq_rc partition (ds="2010-08-03", hr="00") select * from src +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: default@combine_3_srcpart_seq_rc@ds=2010-08-03/hr=00 +POSTHOOK: query: insert overwrite table combine_3_srcpart_seq_rc partition (ds="2010-08-03", hr="00") select * from src +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: default@combine_3_srcpart_seq_rc@ds=2010-08-03/hr=00 +POSTHOOK: Lineage: combine_3_srcpart_seq_rc PARTITION(ds=2010-08-03,hr=00).key EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: combine_3_srcpart_seq_rc PARTITION(ds=2010-08-03,hr=00).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +PREHOOK: query: insert overwrite table combine_3_srcpart_seq_rc partition (ds="2010-08-03", hr="001") select * from src +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: default@combine_3_srcpart_seq_rc@ds=2010-08-03/hr=001 +POSTHOOK: query: insert overwrite table combine_3_srcpart_seq_rc partition (ds="2010-08-03", hr="001") select * from src +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: default@combine_3_srcpart_seq_rc@ds=2010-08-03/hr=001 +POSTHOOK: Lineage: combine_3_srcpart_seq_rc PARTITION(ds=2010-08-03,hr=001).key EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: combine_3_srcpart_seq_rc PARTITION(ds=2010-08-03,hr=001).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +POSTHOOK: Lineage: combine_3_srcpart_seq_rc PARTITION(ds=2010-08-03,hr=00).key EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: combine_3_srcpart_seq_rc PARTITION(ds=2010-08-03,hr=00).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +PREHOOK: query: ALTER TABLE combine_3_srcpart_seq_rc ARCHIVE PARTITION (ds="2010-08-03", hr="00") +PREHOOK: type: ALTERTABLE_ARCHIVE +POSTHOOK: query: ALTER TABLE combine_3_srcpart_seq_rc ARCHIVE PARTITION (ds="2010-08-03", hr="00") +POSTHOOK: type: ALTERTABLE_ARCHIVE +POSTHOOK: Lineage: combine_3_srcpart_seq_rc PARTITION(ds=2010-08-03,hr=001).key EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: combine_3_srcpart_seq_rc PARTITION(ds=2010-08-03,hr=001).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +POSTHOOK: Lineage: combine_3_srcpart_seq_rc PARTITION(ds=2010-08-03,hr=00).key EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: combine_3_srcpart_seq_rc PARTITION(ds=2010-08-03,hr=00).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +PREHOOK: query: ALTER TABLE combine_3_srcpart_seq_rc ARCHIVE PARTITION (ds="2010-08-03", hr="001") +PREHOOK: type: ALTERTABLE_ARCHIVE +POSTHOOK: query: ALTER TABLE combine_3_srcpart_seq_rc ARCHIVE PARTITION (ds="2010-08-03", hr="001") +POSTHOOK: type: ALTERTABLE_ARCHIVE +POSTHOOK: Lineage: combine_3_srcpart_seq_rc PARTITION(ds=2010-08-03,hr=001).key EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: combine_3_srcpart_seq_rc PARTITION(ds=2010-08-03,hr=001).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +POSTHOOK: Lineage: combine_3_srcpart_seq_rc PARTITION(ds=2010-08-03,hr=00).key EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: combine_3_srcpart_seq_rc PARTITION(ds=2010-08-03,hr=00).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +PREHOOK: query: select key, value, ds, hr from combine_3_srcpart_seq_rc where ds="2010-08-03" order by key, hr limit 30 +PREHOOK: type: QUERY +PREHOOK: Input: default@combine_3_srcpart_seq_rc@ds=2010-08-03/hr=00 +PREHOOK: Input: default@combine_3_srcpart_seq_rc@ds=2010-08-03/hr=001 +PREHOOK: Output: file:/var/folders/6g/6grtCwPMEf4sqHUPpy6xQG9ByHg/-Tmp-/heyongqiang/hive_2010-08-06_11-37-47_681_4423570491281820913/-mr-10000 +POSTHOOK: query: select key, value, ds, hr from combine_3_srcpart_seq_rc where ds="2010-08-03" order by key, hr limit 30 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@combine_3_srcpart_seq_rc@ds=2010-08-03/hr=00 +POSTHOOK: Input: default@combine_3_srcpart_seq_rc@ds=2010-08-03/hr=001 +POSTHOOK: Output: file:/var/folders/6g/6grtCwPMEf4sqHUPpy6xQG9ByHg/-Tmp-/heyongqiang/hive_2010-08-06_11-37-47_681_4423570491281820913/-mr-10000 +POSTHOOK: Lineage: combine_3_srcpart_seq_rc PARTITION(ds=2010-08-03,hr=001).key EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: combine_3_srcpart_seq_rc PARTITION(ds=2010-08-03,hr=001).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +POSTHOOK: Lineage: combine_3_srcpart_seq_rc PARTITION(ds=2010-08-03,hr=00).key EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: combine_3_srcpart_seq_rc PARTITION(ds=2010-08-03,hr=00).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +0 val_0 2010-08-03 00 +0 val_0 2010-08-03 00 +0 val_0 2010-08-03 00 +0 val_0 2010-08-03 001 +0 val_0 2010-08-03 001 +0 val_0 2010-08-03 001 +2 val_2 2010-08-03 00 +2 val_2 2010-08-03 001 +4 val_4 2010-08-03 00 +4 val_4 2010-08-03 001 +5 val_5 2010-08-03 00 +5 val_5 2010-08-03 00 +5 val_5 2010-08-03 00 +5 val_5 2010-08-03 001 +5 val_5 2010-08-03 001 +5 val_5 2010-08-03 001 +8 val_8 2010-08-03 00 +8 val_8 2010-08-03 001 +9 val_9 2010-08-03 00 +9 val_9 2010-08-03 001 +10 val_10 2010-08-03 00 +10 val_10 2010-08-03 001 +11 val_11 2010-08-03 00 +11 val_11 2010-08-03 001 +12 val_12 2010-08-03 00 +12 val_12 2010-08-03 00 +12 val_12 2010-08-03 001 +12 val_12 2010-08-03 001 +15 val_15 2010-08-03 00 +15 val_15 2010-08-03 00 +PREHOOK: query: drop table combine_3_srcpart_seq_rc +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table combine_3_srcpart_seq_rc +POSTHOOK: type: DROPTABLE +POSTHOOK: Output: default@combine_3_srcpart_seq_rc +POSTHOOK: Lineage: combine_3_srcpart_seq_rc PARTITION(ds=2010-08-03,hr=001).key EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: combine_3_srcpart_seq_rc PARTITION(ds=2010-08-03,hr=001).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +POSTHOOK: Lineage: combine_3_srcpart_seq_rc PARTITION(ds=2010-08-03,hr=00).key EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: combine_3_srcpart_seq_rc PARTITION(ds=2010-08-03,hr=00).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]