[
https://issues.apache.org/jira/browse/CALCITE-5250?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17597364#comment-17597364
]
Will Noble commented on CALCITE-5250:
-------------------------------------
Here's an outtake from the traffic I was observing:
{{2022-08-26 17:22:30.384552: POST localhost:1895/jdbc}}
{{ connectionId:
04ca24ee-1d25-4a36-88ac-b1069363bf0e}}
{{ maxRowCount: -1}}
{{ maxRowsInFirstFrame: -1}}
{{ request: prepareAndExecute}}
{{ sql: 'SELECT CAST((''2017-01-01'') AS DATE) AS
`TEMP_Test_{_}1641592311{_}{_}0{_}`}}
{{ FROM `testv1`.`calcs` `calcs`}}
{{ HAVING (COUNT(1) > 0)'}}
{{ statementId: 0}}
{{2022-08-26 17:22:32.149329: 200 OK}}
{{ missingStatement: false}}
{{ response: executeResults}}
{{ results:}}
{{ - connectionId:
04ca24ee-1d25-4a36-88ac-b1069363bf0e}}
{{ firstFrame: null}}
{{ ownStatement: false}}
{{ response: resultSet}}
{{ rpcMetadata:}}
{{ response: rpcMetadata}}
{{ serverAddress:
wnoble.sfo.corp.google.com:1895}}
{{ signature:}}
{{ columns:}}
{{ - autoIncrement: false}}
{{ caseSensitive: true}}
{{ catalogName: null}}
{{ columnClassName: java.sql.Date}}
{{ columnName:
TEMP_Test_{_}1641592311{_}{_}0{_}}}
{{ currency: false}}
{{ definitelyWritable: false}}
{{ displaySize: 0}}
{{ label: TEMP_Test_{_}1641592311{_}{_}0{_}}}
{{ nullable: 0}}
{{ ordinal: 0}}
{{ precision: 0}}
{{ readOnly: true}}
{{ scale: 0}}
{{ schemaName: null}}
{{ searchable: false}}
{{ signed: true}}
{{ tableName: null}}
{{ type:}}
{{ id: 91}}
{{ name: DATE}}
{{ rep: PRIMITIVE_INT}}
{{ type: scalar}}
{{ writable: false}}
{{ cursorFactory:}}
{{ clazz: null}}
{{ fieldNames: null}}
{{ style: LIST}}
{{ parameters: []}}
{{ sql: 'SELECT CAST((''2017-01-01'') AS DATE)
AS `TEMP_Test_{_}1641592311{_}{_}0{_}`}}
{{ FROM `testv1`.`calcs` `calcs`}}
{{ HAVING (COUNT(1) > 0)'}}
{{ statementType: SELECT}}
{{ statementId: 0}}
{{ updateCount: -1}}
{{ rpcMetadata:}}
{{ response: rpcMetadata}}
{{ serverAddress: wnoble.sfo.corp.google.com:1895}}
{{2022-08-26 17:22:32.220078: POST localhost:1895/jdbc}}
{{ connectionId:
04ca24ee-1d25-4a36-88ac-b1069363bf0e}}
{{ fetchMaxRowCount: 100}}
{{ offset: 0}}
{{ request: fetch}}
{{ statementId: 0}}
{{2022-08-26 17:22:33.626139: 200 OK}}
{{ frame:}}
{{ done: true}}
{{ offset: 0}}
{{ rows:}}
{{ - - 1483228800000}}
{{ missingResults: false}}
{{ missingStatement: false}}
{{ response: fetch}}
{{ rpcMetadata:}}
{{ response: rpcMetadata}}
{{ serverAddress: wnoble.sfo.corp.google.com:1895}}
So the server is specifying {{DATE}} in the signature, then sending a value in
milliseconds in the results ({{{}1483228800000{}}} is {{2017-01-01}} UTC in
milliseconds since epoch).
> Possible bug in date conversion
> -------------------------------
>
> Key: CALCITE-5250
> URL: https://issues.apache.org/jira/browse/CALCITE-5250
> Project: Calcite
> Issue Type: Bug
> Components: avatica
> Affects Versions: 1.22.0
> Reporter: Will Noble
> Assignee: Will Noble
> Priority: Minor
>
> In
> [DateFromNumberAccessor.getDate()|https://github.com/apache/calcite-avatica/blob/d88f91a3ed8590ab8cee0df5c53633b3d5e41c59/core/src/main/java/org/apache/calcite/avatica/util/AbstractCursor.java#L929]
> we multiply the number by {{{}MILLIS_PER_DAY{}}}. However, I'm observing
> that the integer values being sent over the wire (using the JsonHandler) are
> already expressed in milliseconds since epoch, as seen in
> [DateSerializer._timestamp()|https://github.com/FasterXML/jackson-databind/blob/b688919010a9147376dc435f742812afd5b46885/src/main/java/com/fasterxml/jackson/databind/ser/std/DateSerializer.java#L41]
> in jackson-databind (java.util.date.getTime returns time in milliseconds).
> So, the returned dates are super far in the future.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)