[
https://issues.apache.org/jira/browse/AVRO-3687?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17646505#comment-17646505
]
Santiago Fraire Willemoes commented on AVRO-3687:
-------------------------------------------------
What makes my code IPC? I have the understanding that an avdl can be later
transformed into an avsc (schema, not avpr) by using the idl2schemata.
I was doing something wrong with the avro-tools, but now is transpaling to avsc
properly, and an enum has a default in the avsc.
{code}
@namespace("com.myexample.schemas")
protocol Example {
enum EventType {
CREATE, UPDATE, DELETE
} = CREATE;
record Example {
EventType event_type;
}
}
{code}
Output:
{code}
{
"type" : "record",
"name" : "Example",
"namespace" : "com.myexample.schemas",
"fields" : [ {
"name" : "event_type",
"type" : {
"type" : "enum",
"name" : "EventType",
"symbols" : [ "CREATE", "UPDATE", "DELETE" ],
"default" : "CREATE"
}
} ]
}
{code}
Thanks!
> 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)