diff --git a/ql/src/java/org/apache/hadoop/hive/ql/plan/MapWork.java b/ql/src/java/org/apache/hadoop/hive/ql/plan/MapWork.java index 045e06b421..edc8b9e9c2 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/plan/MapWork.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/plan/MapWork.java @@ -33,6 +33,7 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; +import java.util.Properties; import java.util.Set; import org.apache.hadoop.conf.Configuration; @@ -252,15 +253,34 @@ public void setPathToPartitionInfo(final Map pathToPartitio StringInternUtils.internUriStringsInPath(p); } this.pathToPartitionInfo = pathToPartitionInfo; + + for(PartitionDesc partitionInfo : pathToPartitionInfo.values()) { + removeUnwantedPartitionProps(partitionInfo); + } } public void addPathToPartitionInfo(Path path, PartitionDesc partitionInfo) { if (pathToPartitionInfo == null) { pathToPartitionInfo=new LinkedHashMap<>(); } + removeUnwantedPartitionProps(partitionInfo); pathToPartitionInfo.put(path, partitionInfo); } + private void removeUnwantedPartitionProps(PartitionDesc partitionDesc) { + if (partitionDesc == null) { + return; + } + removeFromProps(partitionDesc.getTableDesc().getProperties()); + removeFromProps(partitionDesc.getProperties()); + } + + private void removeFromProps(Properties props) { + props.remove("COLUMN_STATS_ACCURATE"); + props.remove("serialization.ddl"); + props.remove("transient_lastDdlTime"); + } + public void removePathToPartitionInfo(Path path) { pathToPartitionInfo.remove(path); }