[
https://issues.apache.org/jira/browse/TAJO-2110?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15249146#comment-15249146
]
ASF GitHub Bot commented on TAJO-2110:
--------------------------------------
Github user jihoonson commented on a diff in the pull request:
https://github.com/apache/tajo/pull/993#discussion_r60342924
--- Diff:
tajo-core/src/main/java/org/apache/tajo/engine/function/datetime/AddDays.java
---
@@ -52,8 +56,16 @@ public AddDays() {
}
@Override
+ public void init(OverridableConf context, FunctionEval.ParamType[]
types) {
+ if (!hasTimeZone()) {
+ setTimeZone(context.getConf().getSystemTimezone());
--- End diff --
Sorry, I forgot to mention that I changed the client timezone.
The original data is
```
default> select * from test;
t, ts, d
-------------------------------
01:01:23, 2015-05-01 15:01:23, 2015-05-01
02:02:33, 2016-05-01 16:02:33, 2016-05-01
```
, and the above case can be reproduced as follows.
```
default> \set TIMEZONE GMT-5
default> select * from test;
t, ts, d
-------------------------------
01:01:23, 2015-05-01 01:01:23, 2015-05-01
02:02:33, 2016-05-01 02:02:33, 2016-05-01
(2 rows, 0.018 sec, 0 B selected)
default> select add_days(ts, 5) from test;
?add_days
-------------------------------
2015-05-06 01:01:23
2016-05-06 02:02:33
(2 rows, 0.171 sec, 0 B selected)
default> select add_days(d, 5) from test;
?add_days
-------------------------------
2015-05-05 10:00:00
2016-05-05 10:00:00
```
The result of add_days() looks to be affected by the client timezone. This
might be intended behavior because the type of the result is timestamp, but it
seems weird. What do you think?
> Fix incorrect DateTime and remove hard coded tests
> --------------------------------------------------
>
> Key: TAJO-2110
> URL: https://issues.apache.org/jira/browse/TAJO-2110
> Project: Tajo
> Issue Type: Bug
> Components: Data Type, Storage, Unit Test
> Affects Versions: 0.12.0
> Reporter: Jinho Kim
> Assignee: Jinho Kim
> Priority: Critical
>
> Currently, Most DateTime tests are not work correctly. because timezone is
> hardcode to the GMT for testing.
> if you run CTAS, the result data will be incorrect. we should remove the
> hardcoded timezone in TajoTestingCluster
> Here is some examples:
> Example 1
> {noformat}
> if you run CTAS, the result data will be incorrect
> default> create table test1 (col1 TIMESTAMP);
> default> insert overwrite into test1 select '2016-04-04 00:00:00'::TIMESTAMP;
> default> select * from test1;
> col1
> -------------------------------
> 2016-04-04 00:00:00
> (1 rows, 0.057 sec, 0 B selected)
> default> create table test2 as select * from test1;
> [=========================================>] 100% 0.105 sec
> (1 rows, 0.105 sec, 20 B inserted)
> default> select * from test2;
> col1
> -------------------------------
> 2016-04-03 15:00:00
> {noformat}
> Example 2
> {noformat}
> default> select '2016-04-04 01:00:00'::TIMESTAMP - interval '1 hour';
> ?minus
> -------------------------------
> 2016-04-04 09:00:00
> (1 rows, 0.005 sec, 0 B selected)
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)