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)

Reply via email to