You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avro.apache.org by "ASF subversion and git services (Jira)" <ji...@apache.org> on 2021/12/04 13:36:00 UTC

[jira] [Commented] (AVRO-3217) Avro IDL does not allow creation of avro.java.string subtype

    [ https://issues.apache.org/jira/browse/AVRO-3217?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17453402#comment-17453402 ] 

ASF subversion and git services commented on AVRO-3217:
-------------------------------------------------------

Commit 64267e1f4e54a12551d02ff85e41c18090917e69 in avro's branch refs/heads/master from Oscar Westra van Holthe - Kind
[ https://gitbox.apache.org/repos/asf?p=avro.git;h=64267e1 ]

AVRO-3217: Allow any identifier as annotation name (#1414)

A field schema can be annotated with the property `avro.java.string`:

    {
      "name": "fieldName",
      "type": {
        "type": "string",
        "avro.java.string": "String"
      }
    }

The corresponding IDL is:

    @avro.java.`string`("String") string fieldName;

The IDL parser fails on the `. This change fixes that.

> Avro IDL does not allow creation of avro.java.string subtype
> ------------------------------------------------------------
>
>                 Key: AVRO-3217
>                 URL: https://issues.apache.org/jira/browse/AVRO-3217
>             Project: Apache Avro
>          Issue Type: Bug
>          Components: java, tools
>    Affects Versions: 1.10.2
>         Environment: Java 8, Windows, macOS, Confluent Platform 5.5.1
>            Reporter: Timothy Dimo
>            Assignee: Oscar Westra van Holthe - Kind
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 1.11.1
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
>  
> When using a Java application that has class files generated from an avsc file via the Avro Maven plugin along with the 
> {noformat}
> <stringType>String</stringType>{noformat}
> switch set, serialization of records of the type string such as
>  
> {code:java}
> {"name":"eventType","type":"string"}{code}
> will fail. Changing the type to include an "avro.java.string" detail such as
>  
> {code:java}
> "name": "eventType",
>             "type": {
>               "avro.java.string": "String",
>               "type": "string"
>             }
> {code}
> will succeed.
>  
> It is not possible to create this "avro.java.string": "String" detail via the Avro IDL language. The schema creator must first create the avsc file then manually update all of the "type":"string" fields.
> See also [this link|https://stackoverflow.com/questions/69303642/why-does-an-avro-field-that-was-string-now-require-avro-java-string-type].
>  
>  



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