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

ASF GitHub Bot commented on AVRO-1340:
--------------------------------------

cutting commented on a change in pull request #298: AVRO-1340: Added Enum 
Defaults and unit tests.
URL: https://github.com/apache/avro/pull/298#discussion_r185267660
 
 

 ##########
 File path: doc/src/content/xdocs/idl.xml
 ##########
 @@ -152,14 +152,24 @@ protocol MyProtocol {
     <section id="format_enums">
       <title>Defining an Enumeration</title>
       <p>
-        Enums are defined in Avro IDL using a syntax similar to C or Java:
+        Enums are defined in Avro IDL using a syntax similar to C or Java. 
They may also be defined with an optional default.
+        In the case that a reader schema is unable to recognize a symbol 
written by the writer, the reader will fall back to using the defined default 
value.
+        Note that this default is only used when an incompatible symbol is 
read but not if the enum field is missing.
+        Example Writer Schema:
       </p>
       <source>
-enum Suit {
-  SPADES, DIAMONDS, CLUBS, HEARTS
-}
+      enum Shapes {
+        SQUARE, TRIANGLE, CIRCLE, OVAL
+      }
+      </source>
+      <p>Example Reader Schema</p>
+      <source>
+        enum Shapes {
+          SQUARE, TRIANGLE, CIRCLE
+        } = CIRCLE
 
 Review comment:
   This needs a semicolon.  I don't know if that's the best syntax, but it is 
what we implemented!

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> use default to allow old readers to specify default enum value when 
> encountering new enum symbols
> -------------------------------------------------------------------------------------------------
>
>                 Key: AVRO-1340
>                 URL: https://issues.apache.org/jira/browse/AVRO-1340
>             Project: Avro
>          Issue Type: Improvement
>          Components: spec
>         Environment: N/A
>            Reporter: Jim Donofrio
>            Priority: Minor
>
> The schema resolution page says:
> > if both are enums:
> > if the writer's symbol is not present in the reader's enum, then an
> error is signalled.
> This makes it difficult to use enum's because you can never add a enum value 
> and keep old reader's compatible. Why not use the default option to refer to 
> one of enum values so that when a old reader encounters a enum ordinal it 
> does not recognize, it can default to the optional schema provided one. If 
> the old schema does not provide a default then the older reader can continue 
> to fail as it does today.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to