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

Christophe Le Saec commented on AVRO-3687:
------------------------------------------

Default value is on a [Record 
field|https://github.com/apache/avro/blob/master/lang/rust/avro/src/schema.rs#L572],
 not on the type as Enum is.
So, you could have :
{code:json}
{"type":"record", "namespace":"foo","name":"Person",
  "fields":[
    {"name":"shape",
     "type":  
{"name":"Shapes","type":"enum","symbols":["SQUARE","TRIANGLE","CIRCLE","OVAL"]},
 
     "default": "TRIANGLE"}
   ]
}
{code}
This is better for union type, because if a field is defined as an union of 2 
Enums, each with its own default value, what would be the default value of the 
field ;-) 


> Rust enum missing default
> -------------------------
>
>                 Key: AVRO-3687
>                 URL: https://issues.apache.org/jira/browse/AVRO-3687
>             Project: Apache Avro
>          Issue Type: Bug
>          Components: rust
>    Affects Versions: 1.11.1
>            Reporter: Santiago Fraire Willemoes
>            Priority: Major
>              Labels: enum, rust
>
> I cannot seem to find the enum's default attribute as documented [in the 
> spec|https://avro.apache.org/docs/1.11.1/specification/#enums:~:text=for%20names).-,default,-%3A%20A%20default%20value]
> I'm trying to create an avdl parser and this is a blocker for me. I was 
> wondering if there's a reason for this. Otherwise I can submit a PR, please 
> let me know, thanks.
> Code sample:
> {code}
> let schema_str = 
> r#"{"name":"Shapes","type":"enum","symbols":["SQUARE","TRIANGLE","CIRCLE","OVAL"],
>  "default": "SQUARE"}"#;
> let r = Schema::parse_str(schema_str).unwrap();
> let can = r.canonical_form();
> println!("{r:?}");
> println!("{can}");
> {code}
> Observe the enum in its canonical form is missing the default.
> Looking at the Enum's code, we cannot see a default field:
> https://github.com/apache/avro/blob/master/lang/rust/avro/src/schema.rs#L113-L119
> I apologize if this is somehow wrong



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to