in schema_conversions.go [27:68]
func partitionTypeToAvroSchema(t *StructType) (avro.Schema, error) {
fields := make([]*avro.Field, len(t.FieldList))
for i, f := range t.FieldList {
var sc avro.Schema
switch typ := f.Type.(type) {
case Int32Type:
sc = internal.IntSchema
case Int64Type:
sc = internal.LongSchema
case Float32Type:
sc = internal.FloatSchema
case Float64Type:
sc = internal.DoubleSchema
case StringType:
sc = internal.StringSchema
case DateType:
sc = internal.DateSchema
case TimeType:
sc = internal.TimeSchema
case TimestampType:
sc = internal.TimestampSchema
case TimestampTzType:
sc = internal.TimestampTzSchema
case UUIDType:
sc = internal.UUIDSchema
case BooleanType:
sc = internal.BoolSchema
case BinaryType:
sc = internal.BinarySchema
case FixedType:
sc = internal.Must(avro.NewFixedSchema("fixed", "", typ.len, nil))
case DecimalType:
sc = internal.DecimalSchema(typ.precision, typ.scale)
default:
return nil, fmt.Errorf("unsupported partition type: %s", f.Type.String())
}
fields[i], _ = avro.NewField(f.Name, sc, internal.WithFieldID(f.ID))
}
return avro.NewRecordSchema("r102", "", fields)
}