[ https://issues.apache.org/jira/browse/CALCITE-5492?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Will Noble reassigned CALCITE-5492: ----------------------------------- Assignee: Will Noble > Adjusting dates based on time zone doesn't always make sense > ------------------------------------------------------------ > > Key: CALCITE-5492 > URL: https://issues.apache.org/jira/browse/CALCITE-5492 > Project: Calcite > Issue Type: Improvement > Components: avatica > Reporter: Will Noble > Assignee: Will Noble > Priority: Major > > The JDBC API allows you to provide a {{Calendar}} argument to > [ResultSet.getDate()|https://docs.oracle.com/javase/7/docs/api/java/sql/ResultSet.html#getDate(int,%20java.util.Calendar)] > "to use in constructing the date" and Avatica currently uses it to adjust > the millisecond value of the {{java.sql.Date}} object that comes out of a > result set according to the time zone of the calendar, similar to how it > adjust timestamps and time-of-day values. > This might make sense if Calcite always represented date objects with > millisecond precision, but since it often represents them as an integer > number of days since 1970-01-01, adjusting based on time zone does not make > sense in general. This has become an issue in the fix for > [CALCITE-5488|https://issues.apache.org/jira/browse/CALCITE-5488] because > date values may have to be "un-adjusted", but information may have already > been lost due to truncating division to convert milliseconds to days. > I'm not yet sure what the best way to proceed might be, but I'm wondering > what the intended semantics here are. Is a date meant to have millisecond > resolution (in which case representing it as an integer number of days does > not make sense), or is it meant to have only day resolution (in which case > applying a time zone does not make sense)? -- This message was sent by Atlassian Jira (v8.20.10#820010)