func EncodeDecimal(b []byte, d types.Datum) []byte {
	dec := d.GetMysqlDecimal()
	precision := d.Length()
	frac := d.Frac()
	if precision == 0 {
		precision, frac = dec.PrecisionAndFrac()
	}
	b = append(b, byte(precision), byte(frac))
	bin, err := dec.ToBin(precision, frac)
	if err != nil {
		log.Errorf("should not happen, precision %d, frac %d %v", precision, frac, err)
		return b
	}
	b = append(b, bin...)
	return b
}
// EncodeDecimal encodes a decimal d into a byte slice which can be sorted lexicographically later.
EncodeDecimal encodes a decimal d into a byte slice which can be sorted lexicographically later.
// EncodeDecimal encodes a decimal d into a byte slice which can be sorted lexicographically later .
func EncodeDecimal(b []byte, d types.Datum) []byte {
	dec := d.GetMysqlDecimal()
	precision := d.Length()
	frac := d.Frac()
	if precision == 0 {
		precision, frac = dec.PrecisionAndFrac()
	}
	b = append(b, byte(precision), byte(frac))
	bin, err := dec.ToBin(precision, frac)
	if err != nil {
		log.Errorf("should not happen, precision %d, frac %d %v", precision, frac, err)
		return b
	}
	b = append(b, bin...)
	return b
}
func EncodeDecimal ( b [ ] byte , d types . Datum ) [ ] byte { dec := d . GetMysqlDecimal ( ) precision := d . Length ( ) frac := d . Frac ( ) if precision == 0 { precision , frac = dec . PrecisionAndFrac ( ) } b = append ( b , byte ( precision ) , byte ( frac ) ) bin , err := dec . ToBin ( precision , frac ) if err != nil { log . Errorf ( " " , precision , frac , err ) return b } b = append ( b , bin ... ) return b }
EncodeDecimal encodes a decimal d into a byte slice which can be sorted lexicographically later.
EncodeDecimal encodes a decimal d into a byte slice which can be sorted lexicographically later .