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