Author: gopalv
Date: Sun Jan 25 05:03:58 2015
New Revision: 1654616
URL: http://svn.apache.org/r1654616
Log:
HIVE-9443: Fix ORC IS_NULL predicate for columns with some nulls (Gopal V,
reviewed by Prasanth J)
Modified:
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/io/orc/RecordReaderImpl.java
hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestRecordReaderImpl.java
hive/trunk/ql/src/test/results/clientpositive/orc_predicate_pushdown.q.out
Modified:
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/io/orc/RecordReaderImpl.java
URL:
http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/io/orc/RecordReaderImpl.java?rev=1654616&r1=1654615&r2=1654616&view=diff
==============================================================================
---
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/io/orc/RecordReaderImpl.java
(original)
+++
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/io/orc/RecordReaderImpl.java
Sun Jan 25 05:03:58 2015
@@ -2490,7 +2490,8 @@ class RecordReaderImpl implements Record
return hasNull ? TruthValue.YES_NO_NULL : TruthValue.YES_NO;
}
case IS_NULL:
- return hasNull ? TruthValue.YES : TruthValue.NO;
+ // min = null condition above handles the all-nulls YES case
+ return hasNull ? TruthValue.YES_NO : TruthValue.NO;
default:
return hasNull ? TruthValue.YES_NO_NULL : TruthValue.YES_NO;
}
Modified:
hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestRecordReaderImpl.java
URL:
http://svn.apache.org/viewvc/hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestRecordReaderImpl.java?rev=1654616&r1=1654615&r2=1654616&view=diff
==============================================================================
---
hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestRecordReaderImpl.java
(original)
+++
hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestRecordReaderImpl.java
Sun Jan 25 05:03:58 2015
@@ -750,7 +750,7 @@ public class TestRecordReaderImpl {
PredicateLeaf pred = TestSearchArgumentImpl.createPredicateLeaf
(PredicateLeaf.Operator.IS_NULL, PredicateLeaf.Type.STRING,
"x", null, null);
- assertEquals(TruthValue.YES,
+ assertEquals(TruthValue.YES_NO,
RecordReaderImpl.evaluatePredicate(createStringStats("c", "d", true),
pred));
assertEquals(TruthValue.NO,
RecordReaderImpl.evaluatePredicate(createStringStats("c", "d", false),
pred));
Modified:
hive/trunk/ql/src/test/results/clientpositive/orc_predicate_pushdown.q.out
URL:
http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/orc_predicate_pushdown.q.out?rev=1654616&r1=1654615&r2=1654616&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/orc_predicate_pushdown.q.out
(original)
+++ hive/trunk/ql/src/test/results/clientpositive/orc_predicate_pushdown.q.out
Sun Jan 25 05:03:58 2015
@@ -747,6 +747,9 @@ POSTHOOK: query: SELECT t, si, d, s FROM
POSTHOOK: type: QUERY
POSTHOOK: Input: default@orc_pred
#### A masked pattern was here ####
+101 327 11.48 gabriella ellison
+15 334 11.12 jessica robinson
+7 320 11.54 bob ellison
PREHOOK: query: EXPLAIN SELECT t, si, d, s FROM orc_pred
WHERE d >= ROUND(9.99)
AND d < 12
@@ -943,6 +946,7 @@ POSTHOOK: query: SELECT t, si, d, s FROM
POSTHOOK: type: QUERY
POSTHOOK: Input: default@orc_pred
#### A masked pattern was here ####
+15 334 11.12 jessica robinson
PREHOOK: query: EXPLAIN SELECT t, si, d, s FROM orc_pred
WHERE t > 10
AND t <> 101