@@ -27,8 +27,8 @@ use itertools::{Either, Itertools};
2727use serde_json:: { Number , Value } ;
2828
2929use crate :: spec:: {
30- ListType , MapType , NestedField , NestedFieldRef , PrimitiveType , RawLiteral , Schema ,
31- SchemaVisitor , StructType , Type , visit_schema,
30+ ListType , MapType , NestedField , NestedFieldRef , PrimitiveType , Schema , SchemaVisitor ,
31+ StructType , Type , visit_schema,
3232} ;
3333use crate :: { Error , ErrorKind , Result , ensure_data_valid} ;
3434
@@ -82,15 +82,7 @@ impl SchemaVisitor for SchemaToAvroSchema {
8282 }
8383
8484 let default = if let Some ( literal) = & field. initial_default {
85- let raw_literal = RawLiteral :: try_from ( literal. clone ( ) , & field. field_type ) ?;
86- let json_value = serde_json:: to_value ( raw_literal) . map_err ( |e| {
87- Error :: new (
88- ErrorKind :: DataInvalid ,
89- "Failed to serialize default value to json" ,
90- )
91- . with_source ( e)
92- } ) ?;
93- Some ( json_value)
85+ Some ( literal. clone ( ) . try_into_json ( & field. field_type ) ?)
9486 } else if !field. required {
9587 Some ( Value :: Null )
9688 } else {
0 commit comments