diff --git ql/src/java/org/apache/hadoop/hive/ql/io/orc/RecordReaderImpl.java ql/src/java/org/apache/hadoop/hive/ql/io/orc/RecordReaderImpl.java index c3e7f39..c2d280d 100644 --- ql/src/java/org/apache/hadoop/hive/ql/io/orc/RecordReaderImpl.java +++ ql/src/java/org/apache/hadoop/hive/ql/io/orc/RecordReaderImpl.java @@ -60,6 +60,7 @@ static final Log LOG = LogFactory.getLog(RecordReaderImpl.class); private static final boolean isLogDebugEnabled = LOG.isDebugEnabled(); + private static final Object UNKNOWN_VALUE = new Object(); private final Path path; private final FSDataInputStream file; @@ -313,7 +314,7 @@ static Object getMin(ColumnStatistics index) { return Boolean.TRUE; } } else { - return null; + return UNKNOWN_VALUE; // null is not safe here } } @@ -362,6 +363,8 @@ static TruthValue evaluatePredicateRange(PredicateLeaf predicate, Object min, } else { return TruthValue.NULL; } + } else if (min == UNKNOWN_VALUE) { + return TruthValue.YES_NO_NULL; } TruthValue result;