[ 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)