You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@beam.apache.org by "Brian Hulette (Jira)" <ji...@apache.org> on 2021/11/18 17:48:00 UTC

[jira] [Updated] (BEAM-13286) RowJson fails to serialize DATETIMEs produced by ZetaSQL

     [ https://issues.apache.org/jira/browse/BEAM-13286?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Brian Hulette updated BEAM-13286:
---------------------------------
    Status: Open  (was: Triage Needed)

> RowJson fails to serialize DATETIMEs produced by ZetaSQL
> --------------------------------------------------------
>
>                 Key: BEAM-13286
>                 URL: https://issues.apache.org/jira/browse/BEAM-13286
>             Project: Beam
>          Issue Type: Bug
>          Components: dsl-sql
>            Reporter: Brian Hulette
>            Assignee: Brian Hulette
>            Priority: P2
>
> [ZetaSqlBeamTranslationUtils|https://github.com/apache/beam/blob/48984603fb74736be2887474b43990b150a87132/sdks/java/extensions/sql/zetasql/src/main/java/org/apache/beam/sdk/extensions/sql/zetasql/ZetaSqlBeamTranslationUtils.java#L254] creates joda.time.Instant instances for DATETIME fields. While [RowJson|https://github.com/apache/beam/blob/48984603fb74736be2887474b43990b150a87132/sdks/java/core/src/main/java/org/apache/beam/sdk/util/RowJson.java#L530] explicitly casts to DateTime when deserializing. This causes a ClassCastException for certain Beam SQL TableProviders (specifically any that use JsonPayloadSerializerProvider).
> {code}
> 		Caused by: java.lang.ClassCastException: org.joda.time.Instant cannot be cast to org.joda.time.DateTime
> 			at org.apache.beam.sdk.util.RowJson$RowJsonSerializer.writeValue(RowJson.java:530)
> 			at org.apache.beam.sdk.util.RowJson$RowJsonSerializer.writeRow(RowJson.java:495)
> 			at org.apache.beam.sdk.util.RowJson$RowJsonSerializer.serialize(RowJson.java:478)
> 			at org.apache.beam.sdk.util.RowJson$RowJsonSerializer.serialize(RowJson.java:453)
> 			at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:480)
> 			... 37 more
> {code}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)