[ 
https://issues.apache.org/jira/browse/CALCITE-4120?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17626784#comment-17626784
 ] 

Ian Bertolacci commented on CALCITE-4120:
-----------------------------------------

Further, by changing my machine's timezone to UTC (and restarting a bunch of 
things to make sure everyone is synced up), the same test now passes because 
the local calendar *is* the UTC calendar.

> 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
>            Priority: Major
>
> 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. 
> [https://github.com/apache/calcite-avatica/blob/master/server/src/main/java/org/apache/calcite/avatica/jdbc/JdbcMeta.java]
> [https://github.com/apache/calcite-avatica/blob/master/server/src/main/java/org/apache/calcite/avatica/jdbc/JdbcResultSet.java]
>  
> {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.20.10#820010)

Reply via email to