func partitionTypeToAvroSchema()

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)
}