diff --git a/expression/aggregation/base_func.go b/expression/aggregation/base_func.go index 362ae62b31e9e..4a39dd29e5dd2 100644 --- a/expression/aggregation/base_func.go +++ b/expression/aggregation/base_func.go @@ -116,6 +116,7 @@ func (a *baseFuncDesc) typeInfer(ctx sessionctx.Context) error { func (a *baseFuncDesc) typeInfer4Count(ctx sessionctx.Context) { a.RetTp = types.NewFieldType(mysql.TypeLonglong) a.RetTp.Flen = 21 + a.RetTp.Decimal = 0 types.SetBinChsClnFlag(a.RetTp) } diff --git a/expression/typeinfer_test.go b/expression/typeinfer_test.go index b5ecc82b038e2..ebf1ee4d9f158 100644 --- a/expression/typeinfer_test.go +++ b/expression/typeinfer_test.go @@ -833,6 +833,7 @@ func (s *testInferTypeSuite) createTestCase4Aggregations() []typeInferTestCase { {"avg(1.2e2)", mysql.TypeDouble, charset.CharsetBin, mysql.BinaryFlag, mysql.MaxRealWidth, types.UnspecifiedLength}, {"avg(c_char)", mysql.TypeDouble, charset.CharsetBin, mysql.BinaryFlag, mysql.MaxRealWidth, types.UnspecifiedLength}, {"group_concat(c_int_d)", mysql.TypeVarString, charset.CharsetUTF8MB4, 0, mysql.MaxBlobWidth, 0}, + {"count(c_decimal)", mysql.TypeLonglong, charset.CharsetBin, mysql.BinaryFlag, 21, 0}, } }