diff --git ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java index 0106707..a8457ab 100644 --- ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java +++ ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java @@ -2351,7 +2351,10 @@ private Operator genNotNullFilterForJoinSourcePlan(QB qb, Operator input, ExprNodeDesc filterPred = null; List nullSafes = joinTree.getNullSafes(); for (int i = 0; i < joinKeys.length; i++) { - if ( nullSafes.get(i)) { + if (nullSafes.get(i) || (joinKeys[i] instanceof ExprNodeColumnDesc && + ((ExprNodeColumnDesc)joinKeys[i]).getIsPartitionColOrVirtualCol())) { + // no need to generate is not null predicate for partitioning or + // virtual column, since those columns can never be null. continue; } List args = new ArrayList();