func fixAvroFieldType()

in encoder/avro.go [260:295]


func fixAvroFieldType(i interface{}, dtype string, ftype string) (interface{}, error) {
	var err error
	var v interface{}
	/*if row == nil {
		v = s.Columns[i].Type
	} else { */
	switch b := i.(type) {
	case int8:
		if ftype == types.MySQLBoolean {
			v = false
			if b != 0 {
				v = true
			}
		} else {
			v = int32(b)
		}
	case uint8:
		v = int32(b)
	case int16:
		v = int32(b)
	case uint16:
		v = int32(b)
	case time.Time:
		v = b.UnixNano() / 1000000 //milliseconds
	case string:
		v, err = convertTime(b, dtype)
		if err != nil {
			return nil, err
		}
	case []byte:
		v = convertText(b, dtype)
	default:
		v = b
	}
	return v, nil
}