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)