diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ppr/PartitionPruner.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ppr/PartitionPruner.java index 673d8580d5..a7752fbd6a 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ppr/PartitionPruner.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ppr/PartitionPruner.java @@ -20,6 +20,7 @@ import java.util.AbstractSequentialList; import java.util.ArrayList; +import java.util.Collections; import java.util.Iterator; import java.util.LinkedHashSet; import java.util.LinkedList; @@ -207,7 +208,7 @@ public static PrunedPartitionList prune(Table tab, ExprNodeDesc prunerExpr, if (compactExpr == null || isBooleanExpr(compactExpr)) { if (isFalseExpr(compactExpr)) { return new PrunedPartitionList(tab, key + compactExpr.getExprString(true), - new LinkedHashSet(0), new ArrayList(0), false); + Collections.emptySet(), Collections.emptyList(), false); } // For null and true values, return every partition return getAllPartsFromCacheOrServer(tab, key, true, prunedPartitionsMap); diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/PrunedPartitionList.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/PrunedPartitionList.java index 406873528c..cc55177ebf 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/parse/PrunedPartitionList.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/PrunedPartitionList.java @@ -19,6 +19,7 @@ package org.apache.hadoop.hive.ql.parse; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.Set; @@ -37,13 +38,13 @@ private final Table source; /** Partitions that either satisfy the partition criteria, or may satisfy it. */ - private Set partitions; + private final Set partitions; /** partition columns referred by pruner expr */ - private List referred; + private final List referred; /** Whether there are partitions in the list that may or may not satisfy the criteria. */ - private boolean hasUnknowns; + private final boolean hasUnknowns; public PrunedPartitionList(Table source, Set partitions, List referred, boolean hasUnknowns) { @@ -75,7 +76,7 @@ public String getKey() { * @return partitions */ public Set getPartitions() { - return partitions; + return Collections.unmodifiableSet(partitions); } @@ -83,7 +84,7 @@ public String getKey() { * @return all partitions. */ public List getNotDeniedPartns() { - return new ArrayList(partitions); + return Collections.unmodifiableList(new ArrayList<>(partitions)); } /** @@ -94,6 +95,6 @@ public boolean hasUnknownPartitions() { } public List getReferredPartCols() { - return referred; + return Collections.unmodifiableList(referred); } }