avro-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Tom White (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (AVRO-1325) Enhanced Schema Builder API
Date Fri, 10 May 2013 16:57:16 GMT

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

Tom White commented on AVRO-1325:
---------------------------------

I'm still concerned about the complexity this is added for casual schema writers. E.g. there
are 6 overloaded type() methods after fields().name("f0"). What is the difference between
intWith() and intType()?

bq. 1. Arbitrary properties are not supported, for example {"type":"string", "avro.java.string":"String"}
can not be built.

I think this is easy to add to the existing SchemaBuilder by adding an addProp(String key,
String value) method to the builders (RecordBuilder, FieldBuilder, ArrayBuilder). For FieldBuilder
we could also have a addPropToType(String key, String value) method to distinguish between
properties that are added to the underlying type, not the field itself.

bq. 2. SchemaBuilder.INT and other constants are public. Unfortunately, these are mutable,
and anyone could call addProp() on these, affecting others.

I agree we need to fix this too. It can be done by changing the constants to methods, e.g.
SchemaBuilder.intType(), and constructing a new Schema each time.

                
> Enhanced Schema Builder API
> ---------------------------
>
>                 Key: AVRO-1325
>                 URL: https://issues.apache.org/jira/browse/AVRO-1325
>             Project: Avro
>          Issue Type: Bug
>            Reporter: Scott Carey
>            Assignee: Scott Carey
>             Fix For: 1.7.5
>
>         Attachments: AVRO-1325-preliminary.patch
>
>
> The schema builder from AVRO-1274 has a few key limitations.  I have proposed changes
to make before it is released and the public API is locked in.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message