diff --git ql/src/java/org/apache/hadoop/hive/ql/plan/PartitionDesc.java ql/src/java/org/apache/hadoop/hive/ql/plan/PartitionDesc.java index b032349b7faf7026928bea90a6ded29eeb2a502c..4d627efddaa0cbdb3e97335691f18c19a1a3581b 100644 --- ql/src/java/org/apache/hadoop/hive/ql/plan/PartitionDesc.java +++ ql/src/java/org/apache/hadoop/hive/ql/plan/PartitionDesc.java @@ -35,6 +35,7 @@ import org.apache.hadoop.hive.ql.io.HiveOutputFormat; import org.apache.hadoop.hive.ql.metadata.HiveException; import org.apache.hadoop.hive.ql.metadata.Partition; +import org.apache.hadoop.hive.ql.metadata.Table; import org.apache.hadoop.hive.serde.serdeConstants; import org.apache.hadoop.hive.serde2.Deserializer; import org.apache.hadoop.hive.serde2.SerDeUtils; @@ -83,7 +84,7 @@ public PartitionDesc(final TableDesc table, final LinkedHashMap } public PartitionDesc(final Partition part) throws HiveException { - PartitionDescConstructorHelper(part, Utilities.getTableDesc(part.getTable()), true); + PartitionDescConstructorHelper(part, getTableDesc(part.getTable()), true); setProperties(part.getMetadataFromPartitionSchema()); } @@ -209,7 +210,17 @@ public Map getPropertiesExplain() { } public void setProperties(final Properties properties) { + internProperties(properties); this.properties = properties; + } + + private static TableDesc getTableDesc(Table table) { + TableDesc tableDesc = Utilities.getTableDesc(table); + internProperties(tableDesc.getProperties()); + return tableDesc; + } + + private static void internProperties(Properties properties) { for (Enumeration keys = properties.propertyNames(); keys.hasMoreElements();) { String key = (String) keys.nextElement(); String oldValue = properties.getProperty(key);