[
https://issues.jboss.org/browse/TEIID-3562?page=com.atlassian.jira.plugin...
]
Juraj Duráni updated TEIID-3562:
--------------------------------
Attachment: out_GMT_not_set
out_GMT+0500
Main.java
Sorry for late response.
My steps (vdb [1]):
- default timezone (GMT+01:00 in my case)
1. run server with default timezone (no -Duser.timezone property in JAVA_OPTS)
2. run Main.java (out_GMT_not_set)
- timezone GMT+05:00
1. add -Duser.timezone=GMT+05:00 to JAVA_OPTS in bin/standalone.conf
2. run server
3. run Main.java with additional system property -Duser.timezone=GMT+05:00 (out_GMT+0500)
I think that this could be a driver issue partially - "get*(int,Calendar) - default
TimeZone" return time/date/timestamp which is already shifted, so teradata driver
expects that value is stored in GMT and shifts it. As far as I can say, data in the
Teradata are stored without information about timezone.
However, "Teradata - get*(int)" return original value, but "Teiid_teradata
- get*(int)" return shifted value. Is this expected behavior?
[1]
{code:xml}
<vdb name="test" version="1">
<model name="tera">
<source name="teradata" translator-name="teradata"
connection-jndi-name="java:/TeradataDS" />
<metadata type="DDL"><![CDATA[
CREATE FOREIGN TABLE smalla(IntKey integer,
DateValue date,
TimeValue time,
TimestampValue timestamp);
]]>
</metadata>
</model>
<model name="my">
<source name="mysql" translator-name="mysql5"
connection-jndi-name="java:/MySQL55_PushDS" />
<metadata type="DDL"><![CDATA[
CREATE FOREIGN TABLE smalla(IntKey integer,
DateValue date,
TimeValue time,
TimestampValue timestamp);
]]>
</metadata>
</model>
<model name="pos">
<source name="postgres" translator-name="postgresql"
connection-jndi-name="java:/postgres92" />
<metadata type="DDL"><![CDATA[
CREATE FOREIGN TABLE smalla(IntKey integer,
DateValue date,
TimeValue time,
TimestampValue timestamp);
]]>
</metadata>
</model>
<model name="ora">
<source name="oracle" translator-name="oracle"
connection-jndi-name="java:/Oracle12_PushDS" />
<metadata type="DDL"><![CDATA[
CREATE FOREIGN TABLE smalla(IntKey integer,
DateValue date,
TimeValue time,
TimestampValue timestamp);
]]>
</metadata>
</model>
</vdb>
{code}
Teradata15 - teiid shifts date/time/timestamp values according to
timezone.
---------------------------------------------------------------------------
Key: TEIID-3562
URL:
https://issues.jboss.org/browse/TEIID-3562
Project: Teiid
Issue Type: Bug
Affects Versions: 8.7.1.6_2
Environment: teradata version - 15.00.01.01
teradata driver version - 15.10.00.05
Reporter: Juraj Duráni
Assignee: Steven Hawkins
Attachments: Main.java, out_GMT+0500, out_GMT_not_set
Teiid shifts date/time/timestamp values returned from teradata according to user.timezone
value [1], [2]. However, when I execute source-specific command, teradata returns correct
values [3].
[1]
*Query:* SELECT * FROM smalla ORDER BY IntKey
*-Duser.timezone:* GMT+5
*Result:*
|| IntKey || DateValue || TimeValue || TimeStampValue ||
|0 | 1999-12-31 | 19:00:00 | 1999-12-31 19:00:00.0|
|1 | 2000-01-01 | 20:00:00 | 1999-12-31 19:00:01.0|
|2 | 2000-01-02 | 21:00:00 | 1999-12-31 19:00:02.0|
|3 | 2000-01-03 | 22:00:00 | 1999-12-31 19:00:03.0|
|...|...|...|...|
[2]
*Query:* SELECT * FROM smalla ORDER BY IntKey
*-Duser.timezone:* GMT+1
*Result:*
|| IntKey || DateValue || TimeValue || TimeStampValue ||
|0 | 1999-12-31 | 23:00:00 | 1999-12-31 23:00:00.0|
|1 | 2000-01-01 | 00:00:00 | 1999-12-31 23:00:01.0|
|2 | 2000-01-02 | 01:00:00 | 1999-12-31 23:00:02.0|
|3 | 2000-01-03 | 02:00:00 | 1999-12-31 23:00:03.0|
|...|...|...|...|
[3]
*Query:* SELECT g_0.IntKey AS c_0, g_0.DateValue AS c_1, g_0.TimeValue AS c_2,
g_0.TimestampValue AS c_3 FROM smalla AS g_0 ORDER BY 1
*local timezone:* GMT+1/GMT+5
*Result:*
|| c_0 || c_1 || c_2 || c_3 ||
|0 | 2000-01-01 | 00:00:00 | 2000-01-01 00:00:00.0|
|1 | 2000-01-02 | 01:00:00 | 2000-01-01 00:00:01.0|
|2 | 2000-01-03 | 02:00:00 | 2000-01-01 00:00:02.0|
|3 | 2000-01-04 | 03:00:00 | 2000-01-01 00:00:03.0|
|...|...|...|...|
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)