You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by dk...@apache.org on 2023/05/11 10:33:45 UTC
[hive] branch master updated: HIVE-26982: select * fails on a table containing timestamp column with TIMESTAMPLOCALTZ type default (Zoltan Ratkai, reviewed by Attila Turoczy, Laszlo Bodor, Denys Kuzmenko)
This is an automated email from the ASF dual-hosted git repository.
dkuzmenko pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hive.git
The following commit(s) were added to refs/heads/master by this push:
new ea16342f3f8 HIVE-26982: select * fails on a table containing timestamp column with TIMESTAMPLOCALTZ type default (Zoltan Ratkai, reviewed by Attila Turoczy, Laszlo Bodor, Denys Kuzmenko)
ea16342f3f8 is described below
commit ea16342f3f8a33c743b0748d8a99ec08259528b4
Author: Zoltan Ratkai <11...@users.noreply.github.com>
AuthorDate: Thu May 11 12:33:32 2023 +0200
HIVE-26982: select * fails on a table containing timestamp column with TIMESTAMPLOCALTZ type default (Zoltan Ratkai, reviewed by Attila Turoczy, Laszlo Bodor, Denys Kuzmenko)
Closes #4265
---
.../io/decode/GenericColumnVectorProducer.java | 3 +
.../hadoop/hive/ql/io/orc/OrcInputFormat.java | 2 +
.../column_with_default_timestamplocaltz.q | 22 ++++++
.../column_with_default_timestamplocaltz.q.out | 92 ++++++++++++++++++++++
4 files changed, 119 insertions(+)
diff --git a/llap-server/src/java/org/apache/hadoop/hive/llap/io/decode/GenericColumnVectorProducer.java b/llap-server/src/java/org/apache/hadoop/hive/llap/io/decode/GenericColumnVectorProducer.java
index dfef6f5e035..7593d5775ea 100644
--- a/llap-server/src/java/org/apache/hadoop/hive/llap/io/decode/GenericColumnVectorProducer.java
+++ b/llap-server/src/java/org/apache/hadoop/hive/llap/io/decode/GenericColumnVectorProducer.java
@@ -220,6 +220,9 @@ public class GenericColumnVectorProducer implements ColumnVectorProducer {
case TIMESTAMP:
type.setKind(OrcProto.Type.Kind.TIMESTAMP);
break;
+ case TIMESTAMP_INSTANT:
+ type.setKind(OrcProto.Type.Kind.TIMESTAMP_INSTANT);
+ break;
case DATE:
type.setKind(OrcProto.Type.Kind.DATE);
break;
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcInputFormat.java b/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcInputFormat.java
index 4b70ff5c5b7..730ede4e5a0 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcInputFormat.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcInputFormat.java
@@ -2540,6 +2540,8 @@ public class OrcInputFormat implements InputFormat<NullWritable, OrcStruct>,
return TypeDescription.createDate();
case TIMESTAMP:
return TypeDescription.createTimestamp();
+ case TIMESTAMPLOCALTZ:
+ return TypeDescription.createTimestampInstant();
case BINARY:
return TypeDescription.createBinary();
case DECIMAL: {
diff --git a/ql/src/test/queries/clientpositive/column_with_default_timestamplocaltz.q b/ql/src/test/queries/clientpositive/column_with_default_timestamplocaltz.q
new file mode 100644
index 00000000000..79bb0b2e98e
--- /dev/null
+++ b/ql/src/test/queries/clientpositive/column_with_default_timestamplocaltz.q
@@ -0,0 +1,22 @@
+--! qt:replace:/(\b2016\b.{1,17}\s\S*\s)/#Masked#/
+
+create table t1 (
+ t tinyint default 1Y,
+ si smallint default 1S,
+ i int default 1,
+ b bigint default 1L,
+ f double default double(5.7),
+ d double,
+ s varchar(25) default cast('col1' as varchar(25)),
+ dc decimal(38,18),
+ bo varchar(5),
+ v varchar(25),
+ c char(25) default cast('var1' as char(25)),
+ ts timestamp DEFAULT TIMESTAMP'2016-02-22 12:45:07.000000000',
+ dt date default cast('2015-03-12' as DATE),
+ tz timestamp with local time zone DEFAULT TIMESTAMPLOCALTZ'2016-01-03 12:26:34 America/Los_Angeles')
+STORED AS TEXTFILE;
+
+insert into t1(t,si) values (2,5);
+insert into t1(b,dt) values (2,cast('2019-08-14' as DATE));
+select tz,b,dt,t,si from t1 ORDER BY t1.t;
\ No newline at end of file
diff --git a/ql/src/test/results/clientpositive/llap/column_with_default_timestamplocaltz.q.out b/ql/src/test/results/clientpositive/llap/column_with_default_timestamplocaltz.q.out
new file mode 100644
index 00000000000..23227e8b349
--- /dev/null
+++ b/ql/src/test/results/clientpositive/llap/column_with_default_timestamplocaltz.q.out
@@ -0,0 +1,92 @@
+PREHOOK: query: create table t1 (
+ t tinyint default 1Y,
+ si smallint default 1S,
+ i int default 1,
+ b bigint default 1L,
+ f double default double(5.7),
+ d double,
+ s varchar(25) default cast('col1' as varchar(25)),
+ dc decimal(38,18),
+ bo varchar(5),
+ v varchar(25),
+ c char(25) default cast('var1' as char(25)),
+ ts timestamp DEFAULT TIMESTAMP'2016-02-22 12:45:07.000000000',
+ dt date default cast('2015-03-12' as DATE),
+ tz timestamp with local time zone DEFAULT TIMESTAMPLOCALTZ'#Masked#America/Los_Angeles')
+STORED AS TEXTFILE
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@t1
+POSTHOOK: query: create table t1 (
+ t tinyint default 1Y,
+ si smallint default 1S,
+ i int default 1,
+ b bigint default 1L,
+ f double default double(5.7),
+ d double,
+ s varchar(25) default cast('col1' as varchar(25)),
+ dc decimal(38,18),
+ bo varchar(5),
+ v varchar(25),
+ c char(25) default cast('var1' as char(25)),
+ ts timestamp DEFAULT TIMESTAMP'2016-02-22 12:45:07.000000000',
+ dt date default cast('2015-03-12' as DATE),
+ tz timestamp with local time zone DEFAULT TIMESTAMPLOCALTZ'#Masked#America/Los_Angeles')
+STORED AS TEXTFILE
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@t1
+PREHOOK: query: insert into t1(t,si) values (2,5)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@t1
+POSTHOOK: query: insert into t1(t,si) values (2,5)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@t1
+POSTHOOK: Lineage: t1.b SIMPLE []
+POSTHOOK: Lineage: t1.bo SIMPLE []
+POSTHOOK: Lineage: t1.c EXPRESSION []
+POSTHOOK: Lineage: t1.d SIMPLE []
+POSTHOOK: Lineage: t1.dc SIMPLE []
+POSTHOOK: Lineage: t1.dt EXPRESSION []
+POSTHOOK: Lineage: t1.f EXPRESSION []
+POSTHOOK: Lineage: t1.i SIMPLE []
+POSTHOOK: Lineage: t1.s EXPRESSION []
+POSTHOOK: Lineage: t1.si SCRIPT []
+POSTHOOK: Lineage: t1.t SCRIPT []
+POSTHOOK: Lineage: t1.ts SIMPLE []
+POSTHOOK: Lineage: t1.tz SIMPLE []
+POSTHOOK: Lineage: t1.v SIMPLE []
+PREHOOK: query: insert into t1(b,dt) values (2,cast('2019-08-14' as DATE))
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@t1
+POSTHOOK: query: insert into t1(b,dt) values (2,cast('2019-08-14' as DATE))
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@t1
+POSTHOOK: Lineage: t1.b SCRIPT []
+POSTHOOK: Lineage: t1.bo SIMPLE []
+POSTHOOK: Lineage: t1.c EXPRESSION []
+POSTHOOK: Lineage: t1.d SIMPLE []
+POSTHOOK: Lineage: t1.dc SIMPLE []
+POSTHOOK: Lineage: t1.dt SCRIPT []
+POSTHOOK: Lineage: t1.f EXPRESSION []
+POSTHOOK: Lineage: t1.i SIMPLE []
+POSTHOOK: Lineage: t1.s EXPRESSION []
+POSTHOOK: Lineage: t1.si SIMPLE []
+POSTHOOK: Lineage: t1.t SIMPLE []
+POSTHOOK: Lineage: t1.ts SIMPLE []
+POSTHOOK: Lineage: t1.tz SIMPLE []
+POSTHOOK: Lineage: t1.v SIMPLE []
+PREHOOK: query: select tz,b,dt,t,si from t1 ORDER BY t1.t
+PREHOOK: type: QUERY
+PREHOOK: Input: default@t1
+#### A masked pattern was here ####
+POSTHOOK: query: select tz,b,dt,t,si from t1 ORDER BY t1.t
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@t1
+#### A masked pattern was here ####
+#Masked#2 2019-08-14 1 1
+#Masked#1 2015-03-12 2 5