Chris Snowden created CALCITE-4120:
--------------------------------------

             Summary: Inconsistent Calendar used In JdbcMeta between 
prepareAndExecute and Fetch
                 Key: CALCITE-4120
                 URL: https://issues.apache.org/jira/browse/CALCITE-4120
             Project: Calcite
          Issue Type: Bug
            Reporter: Chris Snowden


org.apache.calcite.avatica.jdbc.JdbcMeta prepareAndExecute is using UTC 
calendar but fetch is using local calendar, results in inconsistent TZs being 
applied for single statement. 

 
{code:java}
org.apache.calcite.avatica.jdbc.JdbcMeta 

final Calendar calendar = Unsafe.localCalendar(); //LOCAL

public ExecuteResult prepareAndExecute(
    StatementHandle h, 
    String sql, 
    long maxRowCount, 
    int maxRowsInFirstFrame, 
    PrepareCallback callback) throws NoSuchStatementException {
....
    resultSets.add(JdbcResultSet.create(h.connectionId, h.id, 
info.getResultSet(), maxRowsInFirstFrame)); //USES UTC CALENDAR      
....
}

public Frame fetch(
    StatementHandle h, 
    long offset, 
    int fetchMaxRowCount) throws NoSuchStatementException, 
MissingResultsException {
...
    return JdbcResultSet.frame(statementInfo, statementInfo.getResultSet(), 
offset,            fetchMaxRowCount, calendar, 
Optional.<Meta.Signature>absent()); //USES LOCAL CALENDAR
...
}

____________________________________________________________________


org.apache.calcite.avatica.jdbc.JdbcResultSet

public static JdbcResultSet create(
    String connectionId, 
    int statementId,      
    ResultSet resultSet, 
    int maxRowCount, 
    Meta.Signature signature) {

    final Calendar calendar = DateTimeUtils.calendar(); //UTC
    ....
    final Meta.Frame firstFrame = frame(null, resultSet, 0, fetchRowCount, 
calendar, Optional.of(signature))
    ....
}

{code}
 

 

 

 

 

 



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

Reply via email to