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