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
Authored: Tue Sep 25 10:15:22 2018 -0700
Committer: Prasanth Jayachandran
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.0
+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