diff --git a/expression/expression.go b/expression/expression.go index 12dccd4a7dae5..5adb4af16a5ea 100644 --- a/expression/expression.go +++ b/expression/expression.go @@ -999,16 +999,19 @@ func scalarExprSupportedByFlash(function *ScalarFunction) bool { case ast.LogicOr, ast.LogicAnd, ast.UnaryNot, ast.BitNeg, ast.Xor, ast.And, ast.Or, ast.GE, ast.LE, ast.EQ, ast.NE, ast.LT, ast.GT, ast.In, ast.IsNull, ast.Like, - ast.Plus, ast.Minus, ast.Div, ast.Mul, /*ast.Mod,*/ + ast.Plus, ast.Minus, ast.Div, ast.Mul, ast.Abs, /*ast.Mod,*/ ast.If, ast.Ifnull, ast.Case, ast.Concat, ast.ConcatWS, ast.Year, ast.Month, ast.Day, ast.DateDiff, ast.TimestampDiff, ast.DateFormat, ast.FromUnixTime, ast.JSONLength: return true - case ast.Substr, ast.Substring: + case ast.Substr, ast.Substring, ast.Left, ast.Right, ast.CharLength: switch function.Function.PbCode() { case + tipb.ScalarFuncSig_LeftUTF8, + tipb.ScalarFuncSig_RightUTF8, + tipb.ScalarFuncSig_CharLengthUTF8, tipb.ScalarFuncSig_Substring2ArgsUTF8, tipb.ScalarFuncSig_Substring3ArgsUTF8: return true