[
https://issues.apache.org/jira/browse/FLINK-17091?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17105225#comment-17105225
]
Paul Lin edited comment on FLINK-17091 at 5/12/20, 8:32 AM:
------------------------------------------------------------
{{> AvroRowSerializationSchema}} in current implementation should return
{{DataTypes.Timestamp().bridgedTo(java.sql.Timestamp.class)}}.
Forcing {{AvroRowSerializationSchema}} to use {{java.sql.Timestamp as the
physical class may fix the problem for now, but I think }}{{java.sql.Timestamp
would be deprecated in the future, and finally we have to support
LocalDateTime.}}
was (Author: paul lin):
{{> AvroRowSerializationSchema}} in current implementation should return
{{DataTypes.Timestamp().bridgedTo(java.sql.Timestamp.class)}}.
Force Timestamp to use {{java.sql.Timestamp as the physical class may fix the
problem for now, but I think }}{{java.sql.Timestamp would be deprecated in the
future, and support for LocalDateTime is inevitable.}}
> AvroRow(De)SerializationSchema doesn't support new Timestamp conversion
> classes
> -------------------------------------------------------------------------------
>
> Key: FLINK-17091
> URL: https://issues.apache.org/jira/browse/FLINK-17091
> Project: Flink
> Issue Type: Bug
> Components: Formats (JSON, Avro, Parquet, ORC, SequenceFile)
> Affects Versions: 1.10.0
> Reporter: Paul Lin
> Priority: Major
>
> AvroRow(De)SerializationSchema doesn't know how to convert the new physical
> classes of Timestamp (eg. java.time.Date) to/from Avro's int/long based
> timestamp. Currently, when encountering objects of the new physical classes,
> AvroRow(De)SerializationSchema just ignores them and passes them to Avro's
> GenericDatumWriter/Reader, which leads to ClassCastException thrown by
> GenericDatumWriter/Reader. See
> [AvroRowSerializationSchema|https://github.com/apache/flink/blob/master/flink-formats/flink-avro/src/main/java/org/apache/flink/formats/avro/AvroRowSerializationSchema.java#L251].
> To fix this problem, we should support LocalTime/LocalDate/LocalDateTime
> conversion to int/long in AvroRowSerializationSchema, and support int/long
> conversion to LocalTime/LocalDate/LocalDateTime based on logical
> types(Types.LOCAL_TIME/Types.LOCAL_DATE/Types.LOCAL_DATE_TIME) in
> AvroRowDeserializationSchema.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)