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 2014/08/07 20:18:29 UTC
svn commit: r1616560 - in /hive/trunk/ql/src:
java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateString.java
test/queries/clientpositive/vectorized_date_funcs.q
test/results/clientpositive/vectorized_date_funcs.q.out
Author: hashutosh
Date: Thu Aug 7 18:18:28 2014
New Revision: 1616560
URL: http://svn.apache.org/r1616560
Log:
HIVE-7421 : Make VectorUDFDateString use the same date parsing and formatting as GenericUDFDate (Matt McCline via Jitendra Nath Pandey)
Modified:
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateString.java
hive/trunk/ql/src/test/queries/clientpositive/vectorized_date_funcs.q
hive/trunk/ql/src/test/results/clientpositive/vectorized_date_funcs.q.out
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateString.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateString.java?rev=1616560&r1=1616559&r2=1616560&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateString.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateString.java Thu Aug 7 18:18:28 2014
@@ -23,11 +23,15 @@ import org.apache.commons.logging.LogFac
import org.apache.hadoop.hive.ql.exec.vector.VectorGroupByOperator;
import org.apache.hadoop.io.Text;
-import java.sql.Date;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.text.ParseException;
public class VectorUDFDateString extends StringUnaryUDF {
private static final long serialVersionUID = 1L;
+ private transient static SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
+
private static final Log LOG = LogFactory.getLog(
VectorUDFDateString.class.getName());
@@ -41,13 +45,10 @@ public class VectorUDFDateString extends
return null;
}
try {
- Date date = Date.valueOf(s.toString());
- t.set(date.toString());
+ Date date = formatter.parse(s.toString());
+ t.set(formatter.format(date));
return t;
- } catch (IllegalArgumentException e) {
- if (LOG.isDebugEnabled()) {
- LOG.info("VectorUDFDateString passed bad string for Date.valueOf '" + s.toString() + "'");
- }
+ } catch (ParseException e) {
return null;
}
}
Modified: hive/trunk/ql/src/test/queries/clientpositive/vectorized_date_funcs.q
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientpositive/vectorized_date_funcs.q?rev=1616560&r1=1616559&r2=1616560&view=diff
==============================================================================
--- hive/trunk/ql/src/test/queries/clientpositive/vectorized_date_funcs.q (original)
+++ hive/trunk/ql/src/test/queries/clientpositive/vectorized_date_funcs.q Thu Aug 7 18:18:28 2014
@@ -120,3 +120,6 @@ SELECT
datediff(fl_date, date_sub(fl_date, 2)),
datediff(date_add(fl_date, 2), date_sub(fl_date, 2))
FROM date_udf_flight_orc LIMIT 10;
+
+-- Test extracting the date part of expression that includes time
+SELECT to_date('2009-07-30 04:17:52') FROM date_udf_flight_orc LIMIT 1;
\ No newline at end of file
Modified: hive/trunk/ql/src/test/results/clientpositive/vectorized_date_funcs.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/vectorized_date_funcs.q.out?rev=1616560&r1=1616559&r2=1616560&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/vectorized_date_funcs.q.out (original)
+++ hive/trunk/ql/src/test/results/clientpositive/vectorized_date_funcs.q.out Thu Aug 7 18:18:28 2014
@@ -959,3 +959,14 @@ POSTHOOK: Input: default@date_udf_flight
2010-10-20 2010-10-22 2010-10-18 -2 2 4
2010-10-21 2010-10-23 2010-10-19 -2 2 4
2010-10-21 2010-10-23 2010-10-19 -2 2 4
+PREHOOK: query: -- Test extracting the date part of expression that includes time
+SELECT to_date('2009-07-30 04:17:52') FROM date_udf_flight_orc LIMIT 1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@date_udf_flight_orc
+#### A masked pattern was here ####
+POSTHOOK: query: -- Test extracting the date part of expression that includes time
+SELECT to_date('2009-07-30 04:17:52') FROM date_udf_flight_orc LIMIT 1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@date_udf_flight_orc
+#### A masked pattern was here ####
+2009-07-30