You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ha...@apache.org on 2013/03/31 05:45:20 UTC
svn commit: r1462874 - in /hive/trunk:
ql/src/test/queries/clientpositive/timestamp_null.q
ql/src/test/results/clientpositive/timestamp_null.q.out
serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyTimestamp.java
Author: hashutosh
Date: Sun Mar 31 03:45:19 2013
New Revision: 1462874
URL: http://svn.apache.org/r1462874
Log:
HIVE-4122 : Queries fail if timestamp data not in expected format (Prasad Mujumdar via Ashutosh Chauhan)
Added:
hive/trunk/ql/src/test/queries/clientpositive/timestamp_null.q
hive/trunk/ql/src/test/results/clientpositive/timestamp_null.q.out
Modified:
hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyTimestamp.java
Added: hive/trunk/ql/src/test/queries/clientpositive/timestamp_null.q
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientpositive/timestamp_null.q?rev=1462874&view=auto
==============================================================================
--- hive/trunk/ql/src/test/queries/clientpositive/timestamp_null.q (added)
+++ hive/trunk/ql/src/test/queries/clientpositive/timestamp_null.q Sun Mar 31 03:45:19 2013
@@ -0,0 +1,7 @@
+DROP TABLE IF EXISTS timestamp_null;
+CREATE TABLE timestamp_null (t1 TIMESTAMP);
+LOAD DATA LOCAL INPATH '../data/files/test.dat' OVERWRITE INTO TABLE timestamp_null;
+
+SELECT * FROM timestamp_null LIMIT 1;
+
+SELECT t1 FROM timestamp_null LIMIT 1;
Added: hive/trunk/ql/src/test/results/clientpositive/timestamp_null.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/timestamp_null.q.out?rev=1462874&view=auto
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/timestamp_null.q.out (added)
+++ hive/trunk/ql/src/test/results/clientpositive/timestamp_null.q.out Sun Mar 31 03:45:19 2013
@@ -0,0 +1,33 @@
+PREHOOK: query: DROP TABLE IF EXISTS timestamp_null
+PREHOOK: type: DROPTABLE
+POSTHOOK: query: DROP TABLE IF EXISTS timestamp_null
+POSTHOOK: type: DROPTABLE
+PREHOOK: query: CREATE TABLE timestamp_null (t1 TIMESTAMP)
+PREHOOK: type: CREATETABLE
+POSTHOOK: query: CREATE TABLE timestamp_null (t1 TIMESTAMP)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: default@timestamp_null
+PREHOOK: query: LOAD DATA LOCAL INPATH '../data/files/test.dat' OVERWRITE INTO TABLE timestamp_null
+PREHOOK: type: LOAD
+PREHOOK: Output: default@timestamp_null
+POSTHOOK: query: LOAD DATA LOCAL INPATH '../data/files/test.dat' OVERWRITE INTO TABLE timestamp_null
+POSTHOOK: type: LOAD
+POSTHOOK: Output: default@timestamp_null
+PREHOOK: query: SELECT * FROM timestamp_null LIMIT 1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@timestamp_null
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM timestamp_null LIMIT 1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@timestamp_null
+#### A masked pattern was here ####
+NULL
+PREHOOK: query: SELECT t1 FROM timestamp_null LIMIT 1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@timestamp_null
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT t1 FROM timestamp_null LIMIT 1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@timestamp_null
+#### A masked pattern was here ####
+NULL
Modified: hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyTimestamp.java
URL: http://svn.apache.org/viewvc/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyTimestamp.java?rev=1462874&r1=1462873&r2=1462874&view=diff
==============================================================================
--- hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyTimestamp.java (original)
+++ hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyTimestamp.java Sun Mar 31 03:45:19 2013
@@ -66,12 +66,17 @@ public class LazyTimestamp extends LazyP
s = "";
}
- Timestamp t;
+ Timestamp t = null;
if (s.compareTo("NULL") == 0) {
- t = null;
+ isNull = true;
logExceptionMessage(bytes, start, length, "TIMESTAMP");
} else {
- t = Timestamp.valueOf(s);
+ try {
+ t = Timestamp.valueOf(s);
+ } catch (IllegalArgumentException e) {
+ isNull = true;
+ logExceptionMessage(bytes, start, length, "TIMESTAMP");
+ }
}
data.set(t);
}