func (d *Datum) compareMysqlDecimal(dec mysql.Decimal) (int, error) { switch d.k { case KindMysqlDecimal: return d.GetMysqlDecimal().Cmp(dec), nil case KindString, KindBytes: dDec, err := mysql.ParseDecimal(d.GetString()) return dDec.Cmp(dec), err default: fVal, _ := dec.Float64() return d.compareFloat64(fVal) } }