From 84857942e228edb5ddc65d56a1c16307f3c0962c Mon Sep 17 00:00:00 2001 From: xzhangxian1008 Date: Tue, 7 Nov 2023 11:55:51 +0800 Subject: [PATCH] remove useless codes --- pkg/expression/builtin_control.go | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/pkg/expression/builtin_control.go b/pkg/expression/builtin_control.go index 4f1669527a1b6..37218a99c2c39 100644 --- a/pkg/expression/builtin_control.go +++ b/pkg/expression/builtin_control.go @@ -118,14 +118,13 @@ func setDecimalFromArgs(evalType types.EvalType, resultFieldType *types.FieldTyp } // NonBinaryStr means the arg is a string but not binary string -func getNonBinaryStrIdx(args []*types.FieldType) []int { - result := make([]int, 0) - for i, arg := range args { +func hasNonBinaryStr(args []*types.FieldType) bool { + for _, arg := range args { if types.IsNonBinaryStr(arg) { - result = append(result, i) + return true } } - return result + return false } func hasBinaryStr(args []*types.FieldType) bool { @@ -196,9 +195,9 @@ func addCollateAndCharsetAndFlagFromArgs(ctx sessionctx.Context, funcName string argTypes = append(argTypes, arg.GetType()) } - nonBinaryStrIdx := getNonBinaryStrIdx(argTypes) + nonBinaryStrExist := hasNonBinaryStr(argTypes) binaryStrExist := hasBinaryStr(argTypes) - if !binaryStrExist && len(nonBinaryStrIdx) > 0 { + if !binaryStrExist && nonBinaryStrExist { ec, err := CheckAndDeriveCollationFromExprs(ctx, funcName, evalType, args...) if err != nil { return err @@ -207,8 +206,6 @@ func addCollateAndCharsetAndFlagFromArgs(ctx sessionctx.Context, funcName string resultFieldType.SetCharset(ec.Charset) resultFieldType.SetFlag(0) - ifFirstNonBinaryStrsHaveBinaryFlag := mysql.HasBinaryFlag(argTypes[nonBinaryStrIdx[0]].GetFlag()) - // hasNonStringType means that there is a type that is not string hasNonStringType := false for _, argType := range argTypes { @@ -218,7 +215,7 @@ func addCollateAndCharsetAndFlagFromArgs(ctx sessionctx.Context, funcName string } } - if ifFirstNonBinaryStrsHaveBinaryFlag || hasNonStringType { + if hasNonStringType { resultFieldType.AddFlag(mysql.BinaryFlag) } } else if binaryStrExist || !evalType.IsStringKind() {