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:47:00 UTC

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

Brian Hulette created BEAM-13286:
------------------------------------

             Summary: 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


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