[ 
https://issues.apache.org/jira/browse/CALCITE-2743?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated CALCITE-2743:
------------------------------------
    Labels: pull-request-available  (was: )

> TimeStamp confused in avatica jdbc
> ----------------------------------
>
>                 Key: CALCITE-2743
>                 URL: https://issues.apache.org/jira/browse/CALCITE-2743
>             Project: Calcite
>          Issue Type: Bug
>          Components: avatica
>    Affects Versions: 1.10.0
>            Reporter: shining
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> I use Phoenix Query Server through avatica, Operation is as follows:
> 1. create table with sqlline-thin
>    
>     CREATE TABLE test_timezone(log_time TIMESTAMP NOT NULL PRIMARY KEY, id 
> VARCHAR(40));
> 2. Upset data
>     
>      upsert into test_timezone values('2018-11-27 11:01:59.000','1’);
> 3. Query
>      0: jdbc:phoenix:thin:url=http://localhost:876> select * from 
> test_timezone;
>     +------------------------------+-----+
>      |       LOG_TIME           | ID   |
>     +-----------------------------+------+
>      | 2018-11-27 03:01:59  | 1     |
>     +------------------------------+——+
> My local timeZone is GMT+8, and configured Phoenix 
> “phoenix.query.dateFormatTimeZone=GMT+8”
> I also view code of avatica, when the timezone is GMT+8, getTimeStamp method 
> will lose 8 hours:
>  public Timestamp getTimestamp(Calendar calendar) throws SQLException {
>   java.util.Date date  = (java.util.Date) getObject();
>   if (date == null) {
>     return null;
>   }
>   long v = date.getTime();
>   if (calendar != null) {
>     v -= calendar.getTimeZone().getOffset(v);
>   }
>   return new Timestamp(v);
> }
> sqlline-thin use getString() method get the timestamp,it pass a null timezone 
> to timestampAsString() 
> So I have two doubtful places here:
> 1)I get correct time from phoenixResultSet, why reduce 8 hours ?
> 2)Can getString method  be returned by getTimeStamp().toString():
>       public String getString() throws SQLException {
>   final long v = getLong();
>   if (v == 0 && wasNull()) {
>     return null;
>   }
>   return getTimeStamp(v, null).toString();
> }



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to