[
https://issues.apache.org/jira/browse/AVRO-2872?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17339312#comment-17339312
]
Paul Kristian Moore commented on AVRO-2872:
-------------------------------------------
I've just run into this, and frankly had spent a lot of time questioning what I
was doing wrong. Whilst I appreciate the valid commentary on recursion and
different logical types, the fact that currently there appears to be no way to
have an "optional timestamp" in Avro warrants some elevated priority IMHO. I
notice the discussion in the PR has stalled somewhat, it is worth trying to get
involved in this? I think [~icecreamhead] it's with you following [~rskraba]'s
review? Just to finish, I appreciate this is people giving their (own) time to
contribute here, so thank you
> 'conversions' array is not populated for Avro Union Logicaltype fields
> -----------------------------------------------------------------------
>
> Key: AVRO-2872
> URL: https://issues.apache.org/jira/browse/AVRO-2872
> Project: Apache Avro
> Issue Type: Bug
> Components: logical types
> Affects Versions: 1.9.2
> Environment: * Apache Avro Version [1.9.2]
> * Java Version [11]
> Reporter: Pádraig de Buitléar
> Priority: Minor
>
> Steps to reproduce :
> # Using the maven/gradle plugin generate code with the following avsc:
>
> {code:java}
> {
> "type": "record",
> "name": "Messages",
> "namespace": "com.somedomain",
> "fields": [
> {
> "name": "start",
> "type": {
> "type": "long",
> "logicalType": "timestamp-millis"
> }
> },
> {
> "name": "optional_date",
> "type": [
> "null",
> {
> "type": "long",
> "logicalType": "timestamp-millis"
> }
> ],
> "default": null
> }
> ]
> }{code}
>
> *Actual behavior*
> In the generated code, the return types of the getter methods for both
> fields are correct, however the conversions array only has an element for the
> field which isn't a union.
>
> {code:java}
> private static final org.apache.avro.Conversion<?>[] conversions =
> new org.apache.avro.Conversion<?>[] {
> new org.apache.avro.data.TimeConversions.TimestampMillisConversion(),
> null,
> null
> };
> {code}
>
> *Expected output:*
> Based on the above avsc the following is expected.
>
> {code:java}
> private static final org.apache.avro.Conversion[] conversions =
> new org.apache.avro.Conversion[] {
> new org.apache.avro.data.TimeConversions.TimestampMillisConversion(),
> new org.apache.avro.data.TimeConversions.TimestampMillisConversion(),
> null
> };
> {code}
>
>
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)