Repository: hive
Updated Branches:
  refs/heads/branch-3 a879b9f13 -> fdc12f38f


HIVE-20599: CAST(INTERVAL_DAY_TIME AS STRING) is throwing SemanticException 
(Naresh P R reviewed by Prasanth Jayachandran)


Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/fdc12f38
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/fdc12f38
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/fdc12f38

Branch: refs/heads/branch-3
Commit: fdc12f38f8d89e8c62308683c6b9cabe5dad57ff
Parents: a879b9f
Author: nareshpr <prnaresh.nar...@gmail.com>
Authored: Tue Sep 25 10:15:22 2018 -0700
Committer: Prasanth Jayachandran <prasan...@apache.org>
Committed: Tue Sep 25 10:15:30 2018 -0700

----------------------------------------------------------------------
 .../apache/hadoop/hive/ql/udf/UDFToString.java    | 18 ++++++++++++++++++
 .../test/queries/clientpositive/udf_to_string.q   |  3 +++
 .../results/clientpositive/udf_to_string.q.out    | 18 ++++++++++++++++++
 3 files changed, 39 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/fdc12f38/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToString.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToString.java 
b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToString.java
index a16d429..2d49f21 100755
--- a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToString.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToString.java
@@ -24,6 +24,8 @@ import org.apache.hadoop.hive.serde2.io.ByteWritable;
 import org.apache.hadoop.hive.serde2.io.DateWritableV2;
 import org.apache.hadoop.hive.serde2.io.DoubleWritable;
 import org.apache.hadoop.hive.serde2.io.HiveDecimalWritable;
+import org.apache.hadoop.hive.serde2.io.HiveIntervalDayTimeWritable;
+import org.apache.hadoop.hive.serde2.io.HiveIntervalYearMonthWritable;
 import org.apache.hadoop.hive.serde2.io.ShortWritable;
 import org.apache.hadoop.hive.serde2.io.TimestampLocalTZWritable;
 import org.apache.hadoop.hive.serde2.io.TimestampWritableV2;
@@ -178,4 +180,20 @@ public class UDFToString extends UDF {
     t.set(bw.getBytes(),0,bw.getLength());
     return t;
   }
+
+  public Text evaluate(HiveIntervalDayTimeWritable hiw) {
+    if (null == hiw) {
+      return null;
+    }
+    t.set(hiw.toString());
+    return t;
+  }
+
+  public Text evaluate(HiveIntervalYearMonthWritable hiw) {
+    if (null == hiw) {
+      return null;
+    }
+    t.set(hiw.toString());
+    return t;
+  }
 }

http://git-wip-us.apache.org/repos/asf/hive/blob/fdc12f38/ql/src/test/queries/clientpositive/udf_to_string.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/udf_to_string.q 
b/ql/src/test/queries/clientpositive/udf_to_string.q
index ac4b524..50186b8 100644
--- a/ql/src/test/queries/clientpositive/udf_to_string.q
+++ b/ql/src/test/queries/clientpositive/udf_to_string.q
@@ -16,3 +16,6 @@ SELECT CAST(CAST(-3.14 AS DECIMAL(3,2)) AS STRING) FROM src 
tablesample (1 rows)
 
 SELECT CAST('Foo' AS STRING) FROM src tablesample (1 rows);
 
+SELECT CAST(from_utc_timestamp(timestamp '2018-05-02 15:30:30', 'PST') - 
from_utc_timestamp(timestamp '1970-01-30 16:00:00', 'PST') AS STRING);
+SELECT CAST(interval_year_month('1-2') AS STRING);
+

http://git-wip-us.apache.org/repos/asf/hive/blob/fdc12f38/ql/src/test/results/clientpositive/udf_to_string.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/udf_to_string.q.out 
b/ql/src/test/results/clientpositive/udf_to_string.q.out
index bf2f72d..fc888a1 100644
--- a/ql/src/test/results/clientpositive/udf_to_string.q.out
+++ b/ql/src/test/results/clientpositive/udf_to_string.q.out
@@ -88,3 +88,21 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@src
 #### A masked pattern was here ####
 Foo
+PREHOOK: query: SELECT CAST(from_utc_timestamp(timestamp '2018-05-02 
15:30:30', 'PST') - from_utc_timestamp(timestamp '1970-01-30 16:00:00', 'PST') 
AS STRING)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT CAST(from_utc_timestamp(timestamp '2018-05-02 
15:30:30', 'PST') - from_utc_timestamp(timestamp '1970-01-30 16:00:00', 'PST') 
AS STRING)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+#### A masked pattern was here ####
+17624 00:30:30.000000000
+PREHOOK: query: SELECT CAST(interval_year_month('1-2') AS STRING)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT CAST(interval_year_month('1-2') AS STRING)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+#### A masked pattern was here ####
+1-2

Reply via email to