Skip to content

Commit

Permalink
This is an automated cherry-pick of pingcap#54553
Browse files Browse the repository at this point in the history
Signed-off-by: ti-chi-bot <[email protected]>
  • Loading branch information
hawkingrei authored and ti-chi-bot committed Aug 8, 2024
1 parent 5d5a2be commit 227d96d
Show file tree
Hide file tree
Showing 81 changed files with 4,382 additions and 19 deletions.
8 changes: 8 additions & 0 deletions pkg/executor/aggfuncs/func_group_concat.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import (
"sync/atomic"
"unsafe"

"github.com/pingcap/errors"
"github.com/pingcap/tidb/pkg/expression"
plannercore "github.com/pingcap/tidb/pkg/planner/core"
"github.com/pingcap/tidb/pkg/planner/util"
Expand Down Expand Up @@ -72,10 +73,17 @@ func (e *baseGroupConcat4String) AppendFinalResult2Chunk(_ sessionctx.Context, p

func (e *baseGroupConcat4String) handleTruncateError(sctx sessionctx.Context) (err error) {
if atomic.CompareAndSwapInt32(e.truncated, 0, 1) {
<<<<<<< HEAD
if !sctx.GetSessionVars().StmtCtx.TruncateAsWarning {
return expression.ErrCutValueGroupConcat.GenWithStackByArgs(e.args[0].String())
}
sctx.GetSessionVars().StmtCtx.AppendWarning(expression.ErrCutValueGroupConcat.GenWithStackByArgs(e.args[0].String()))
=======
if !tc.Flags().TruncateAsWarning() {
return expression.ErrCutValueGroupConcat.GenWithStackByArgs(e.args[0].StringWithCtx(ctx, errors.RedactLogDisable))
}
tc.AppendWarning(expression.ErrCutValueGroupConcat.FastGenByArgs(e.args[0].StringWithCtx(ctx, errors.RedactLogDisable)))
>>>>>>> f5ac1c4a453 (*: support tidb_redact_log for explain (#54553))
}
return nil
}
Expand Down
4 changes: 4 additions & 0 deletions pkg/executor/importer/import.go
Original file line number Diff line number Diff line change
Expand Up @@ -756,7 +756,11 @@ func (p *Plan) initParameters(plan *plannercore.ImportInto) error {
optionMap := make(map[string]interface{}, len(plan.Options))
for _, opt := range plan.Options {
if opt.Value != nil {
<<<<<<< HEAD
val := opt.Value.String()
=======
val := opt.Value.StringWithCtx(evalCtx, errors.RedactLogDisable)
>>>>>>> f5ac1c4a453 (*: support tidb_redact_log for explain (#54553))
if opt.Name == cloudStorageURIOption {
val = ast.RedactURL(val)
}
Expand Down
1 change: 1 addition & 0 deletions pkg/expression/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@ go_library(
"//pkg/util/password-validation",
"//pkg/util/plancodec",
"//pkg/util/printer",
"//pkg/util/redact",
"//pkg/util/sem",
"//pkg/util/set",
"//pkg/util/size",
Expand Down
8 changes: 8 additions & 0 deletions pkg/expression/aggregation/agg_to_pb.go
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,11 @@ func AggFuncToPBExpr(sctx sessionctx.Context, client kv.Client, aggFunc *AggFunc
for _, arg := range aggFunc.Args {
pbArg := pc.ExprToPB(arg)
if pbArg == nil {
<<<<<<< HEAD
return nil, errors.New(aggFunc.String() + " can't be converted to PB.")
=======
return nil, errors.New(aggFunc.StringWithCtx(ctx.EvalCtx(), errors.RedactLogDisable) + " can't be converted to PB.")
>>>>>>> f5ac1c4a453 (*: support tidb_redact_log for explain (#54553))
}
children = append(children, pbArg)
}
Expand All @@ -126,7 +130,11 @@ func AggFuncToPBExpr(sctx sessionctx.Context, client kv.Client, aggFunc *AggFunc
for _, arg := range aggFunc.OrderByItems {
pbArg := expression.SortByItemToPB(sc, client, arg.Expr, arg.Desc)
if pbArg == nil {
<<<<<<< HEAD
return nil, errors.New(aggFunc.String() + " can't be converted to PB.")
=======
return nil, errors.New(aggFunc.StringWithCtx(ctx.EvalCtx(), errors.RedactLogDisable) + " can't be converted to PB.")
>>>>>>> f5ac1c4a453 (*: support tidb_redact_log for explain (#54553))
}
orderBy = append(orderBy, pbArg)
}
Expand Down
13 changes: 13 additions & 0 deletions pkg/expression/aggregation/base_func.go
Original file line number Diff line number Diff line change
Expand Up @@ -71,12 +71,21 @@ func (a *baseFuncDesc) clone() *baseFuncDesc {
return &clone
}

<<<<<<< HEAD
// String implements the fmt.Stringer interface.
func (a *baseFuncDesc) String() string {
buffer := bytes.NewBufferString(a.Name)
buffer.WriteString("(")
for i, arg := range a.Args {
buffer.WriteString(arg.String())
=======
// StringWithCtx returns the string within given context.
func (a *baseFuncDesc) StringWithCtx(ctx expression.ParamValues, redact string) string {
buffer := bytes.NewBufferString(a.Name)
buffer.WriteString("(")
for i, arg := range a.Args {
buffer.WriteString(arg.StringWithCtx(ctx, redact))
>>>>>>> f5ac1c4a453 (*: support tidb_redact_log for explain (#54553))
if i+1 != len(a.Args) {
buffer.WriteString(", ")
}
Expand Down Expand Up @@ -150,7 +159,11 @@ func (a *baseFuncDesc) typeInfer4ApproxPercentile(ctx sessionctx.Context) error
}
percent, isNull, err := a.Args[1].EvalInt(ctx, chunk.Row{})
if err != nil {
<<<<<<< HEAD
return fmt.Errorf("APPROX_PERCENTILE: Invalid argument %s", a.Args[1].String())
=======
return fmt.Errorf("APPROX_PERCENTILE: Invalid argument %s", a.Args[1].StringWithCtx(ctx, errors.RedactLogDisable))
>>>>>>> f5ac1c4a453 (*: support tidb_redact_log for explain (#54553))
}
if percent <= 0 || percent > 100 || isNull {
if isNull {
Expand Down
4 changes: 4 additions & 0 deletions pkg/expression/aggregation/concat.go
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,11 @@ func (cf *concatFunction) Update(evalCtx *AggEvaluateContext, sc *stmtctx.Statem
}
evalCtx.Buffer.Truncate(i)
if !cf.truncated {
<<<<<<< HEAD
sc.AppendWarning(expression.ErrCutValueGroupConcat.GenWithStackByArgs(cf.Args[0].String()))
=======
sc.AppendWarning(expression.ErrCutValueGroupConcat.FastGenByArgs(cf.Args[0].StringWithCtx(evalCtx.Ctx, errors.RedactLogDisable)))
>>>>>>> f5ac1c4a453 (*: support tidb_redact_log for explain (#54553))
}
cf.truncated = true
}
Expand Down
13 changes: 13 additions & 0 deletions pkg/expression/aggregation/descriptor.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,15 +64,24 @@ func NewAggFuncDescForWindowFunc(ctx sessionctx.Context, desc *WindowFuncDesc, h
return &AggFuncDesc{baseFuncDesc: baseFuncDesc{desc.Name, desc.Args, desc.RetTp}, HasDistinct: hasDistinct}, nil
}

<<<<<<< HEAD
// String implements the fmt.Stringer interface.
func (a *AggFuncDesc) String() string {
=======
// StringWithCtx returns the string representation within given ctx.
func (a *AggFuncDesc) StringWithCtx(ctx expression.ParamValues, redact string) string {
>>>>>>> f5ac1c4a453 (*: support tidb_redact_log for explain (#54553))
buffer := bytes.NewBufferString(a.Name)
buffer.WriteString("(")
if a.HasDistinct {
buffer.WriteString("distinct ")
}
for i, arg := range a.Args {
<<<<<<< HEAD
buffer.WriteString(arg.String())
=======
buffer.WriteString(arg.StringWithCtx(ctx, redact))
>>>>>>> f5ac1c4a453 (*: support tidb_redact_log for explain (#54553))
if i+1 != len(a.Args) {
buffer.WriteString(", ")
}
Expand All @@ -81,7 +90,11 @@ func (a *AggFuncDesc) String() string {
buffer.WriteString(" order by ")
}
for i, arg := range a.OrderByItems {
<<<<<<< HEAD
buffer.WriteString(arg.String())
=======
buffer.WriteString(arg.StringWithCtx(ctx, redact))
>>>>>>> f5ac1c4a453 (*: support tidb_redact_log for explain (#54553))
if i+1 != len(a.OrderByItems) {
buffer.WriteString(", ")
}
Expand Down
5 changes: 5 additions & 0 deletions pkg/expression/bench_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ import (
"time"

"github.com/google/uuid"
perrors "github.com/pingcap/errors"
"github.com/pingcap/tidb/pkg/parser/ast"
"github.com/pingcap/tidb/pkg/parser/auth"
"github.com/pingcap/tidb/pkg/parser/charset"
Expand Down Expand Up @@ -1379,7 +1380,11 @@ func benchmarkVectorizedEvalOneVec(b *testing.B, vecExprCases vecExprBenchCases)
for funcName, testCases := range vecExprCases {
for _, testCase := range testCases {
expr, _, input, output := genVecExprBenchCase(ctx, funcName, testCase)
<<<<<<< HEAD
exprName := expr.String()
=======
exprName := expr.StringWithCtx(ctx, perrors.RedactLogDisable)
>>>>>>> f5ac1c4a453 (*: support tidb_redact_log for explain (#54553))
if sf, ok := expr.(*ScalarFunction); ok {
exprName = fmt.Sprintf("%v", reflect.TypeOf(sf.Function))
tmp := strings.Split(exprName, ".")
Expand Down
75 changes: 75 additions & 0 deletions pkg/expression/builtin_arithmetic.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import (
"fmt"
"math"

"github.com/pingcap/errors"
"github.com/pingcap/tidb/pkg/parser/mysql"
"github.com/pingcap/tidb/pkg/parser/terror"
"github.com/pingcap/tidb/pkg/sessionctx"
Expand Down Expand Up @@ -231,6 +232,7 @@ func (s *builtinArithmeticPlusIntSig) evalInt(row chunk.Row) (val int64, isNull
switch {
case isLHSUnsigned && isRHSUnsigned:
if uint64(a) > math.MaxUint64-uint64(b) {
<<<<<<< HEAD
return 0, true, types.ErrOverflow.GenWithStackByArgs("BIGINT UNSIGNED", fmt.Sprintf("(%s + %s)", s.args[0].String(), s.args[1].String()))
}
case isLHSUnsigned && !isRHSUnsigned:
Expand All @@ -250,6 +252,27 @@ func (s *builtinArithmeticPlusIntSig) evalInt(row chunk.Row) (val int64, isNull
case !isLHSUnsigned && !isRHSUnsigned:
if (a > 0 && b > math.MaxInt64-a) || (a < 0 && b < math.MinInt64-a) {
return 0, true, types.ErrOverflow.GenWithStackByArgs("BIGINT", fmt.Sprintf("(%s + %s)", s.args[0].String(), s.args[1].String()))
=======
return 0, true, types.ErrOverflow.GenWithStackByArgs("BIGINT UNSIGNED", fmt.Sprintf("(%s + %s)", s.args[0].StringWithCtx(ctx, errors.RedactLogDisable), s.args[1].StringWithCtx(ctx, errors.RedactLogDisable)))
}
case isLHSUnsigned && !isRHSUnsigned:
if b < 0 && uint64(-b) > uint64(a) {
return 0, true, types.ErrOverflow.GenWithStackByArgs("BIGINT UNSIGNED", fmt.Sprintf("(%s + %s)", s.args[0].StringWithCtx(ctx, errors.RedactLogDisable), s.args[1].StringWithCtx(ctx, errors.RedactLogDisable)))
}
if b > 0 && uint64(a) > math.MaxUint64-uint64(b) {
return 0, true, types.ErrOverflow.GenWithStackByArgs("BIGINT UNSIGNED", fmt.Sprintf("(%s + %s)", s.args[0].StringWithCtx(ctx, errors.RedactLogDisable), s.args[1].StringWithCtx(ctx, errors.RedactLogDisable)))
}
case !isLHSUnsigned && isRHSUnsigned:
if a < 0 && uint64(-a) > uint64(b) {
return 0, true, types.ErrOverflow.GenWithStackByArgs("BIGINT UNSIGNED", fmt.Sprintf("(%s + %s)", s.args[0].StringWithCtx(ctx, errors.RedactLogDisable), s.args[1].StringWithCtx(ctx, errors.RedactLogDisable)))
}
if a > 0 && uint64(b) > math.MaxUint64-uint64(a) {
return 0, true, types.ErrOverflow.GenWithStackByArgs("BIGINT UNSIGNED", fmt.Sprintf("(%s + %s)", s.args[0].StringWithCtx(ctx, errors.RedactLogDisable), s.args[1].StringWithCtx(ctx, errors.RedactLogDisable)))
}
case !isLHSUnsigned && !isRHSUnsigned:
if (a > 0 && b > math.MaxInt64-a) || (a < 0 && b < math.MinInt64-a) {
return 0, true, types.ErrOverflow.GenWithStackByArgs("BIGINT", fmt.Sprintf("(%s + %s)", s.args[0].StringWithCtx(ctx, errors.RedactLogDisable), s.args[1].StringWithCtx(ctx, errors.RedactLogDisable)))
>>>>>>> f5ac1c4a453 (*: support tidb_redact_log for explain (#54553))
}
}

Expand Down Expand Up @@ -279,7 +302,11 @@ func (s *builtinArithmeticPlusDecimalSig) evalDecimal(row chunk.Row) (*types.MyD
err = types.DecimalAdd(a, b, c)
if err != nil {
if err == types.ErrOverflow {
<<<<<<< HEAD
err = types.ErrOverflow.GenWithStackByArgs("DECIMAL", fmt.Sprintf("(%s + %s)", s.args[0].String(), s.args[1].String()))
=======
err = types.ErrOverflow.GenWithStackByArgs("DECIMAL", fmt.Sprintf("(%s + %s)", s.args[0].StringWithCtx(ctx, errors.RedactLogDisable), s.args[1].StringWithCtx(ctx, errors.RedactLogDisable)))
>>>>>>> f5ac1c4a453 (*: support tidb_redact_log for explain (#54553))
}
return nil, true, err
}
Expand Down Expand Up @@ -309,7 +336,11 @@ func (s *builtinArithmeticPlusRealSig) evalReal(row chunk.Row) (float64, bool, e
return 0, true, nil
}
if !mathutil.IsFinite(a + b) {
<<<<<<< HEAD
return 0, true, types.ErrOverflow.GenWithStackByArgs("DOUBLE", fmt.Sprintf("(%s + %s)", s.args[0].String(), s.args[1].String()))
=======
return 0, true, types.ErrOverflow.GenWithStackByArgs("DOUBLE", fmt.Sprintf("(%s + %s)", s.args[0].StringWithCtx(ctx, errors.RedactLogDisable), s.args[1].StringWithCtx(ctx, errors.RedactLogDisable)))
>>>>>>> f5ac1c4a453 (*: support tidb_redact_log for explain (#54553))
}
return a + b, false, nil
}
Expand Down Expand Up @@ -375,7 +406,11 @@ func (s *builtinArithmeticMinusRealSig) evalReal(row chunk.Row) (float64, bool,
return 0, isNull, err
}
if !mathutil.IsFinite(a - b) {
<<<<<<< HEAD
return 0, true, types.ErrOverflow.GenWithStackByArgs("DOUBLE", fmt.Sprintf("(%s - %s)", s.args[0].String(), s.args[1].String()))
=======
return 0, true, types.ErrOverflow.GenWithStackByArgs("DOUBLE", fmt.Sprintf("(%s - %s)", s.args[0].StringWithCtx(ctx, errors.RedactLogDisable), s.args[1].StringWithCtx(ctx, errors.RedactLogDisable)))
>>>>>>> f5ac1c4a453 (*: support tidb_redact_log for explain (#54553))
}
return a - b, false, nil
}
Expand Down Expand Up @@ -403,7 +438,11 @@ func (s *builtinArithmeticMinusDecimalSig) evalDecimal(row chunk.Row) (*types.My
err = types.DecimalSub(a, b, c)
if err != nil {
if err == types.ErrOverflow {
<<<<<<< HEAD
err = types.ErrOverflow.GenWithStackByArgs("DECIMAL", fmt.Sprintf("(%s - %s)", s.args[0].String(), s.args[1].String()))
=======
err = types.ErrOverflow.GenWithStackByArgs("DECIMAL", fmt.Sprintf("(%s - %s)", s.args[0].StringWithCtx(ctx, errors.RedactLogDisable), s.args[1].StringWithCtx(ctx, errors.RedactLogDisable)))
>>>>>>> f5ac1c4a453 (*: support tidb_redact_log for explain (#54553))
}
return nil, true, err
}
Expand Down Expand Up @@ -441,7 +480,11 @@ func (s *builtinArithmeticMinusIntSig) evalInt(row chunk.Row) (val int64, isNull
}
overflow := s.overflowCheck(isLHSUnsigned, isRHSUnsigned, signed, a, b)
if overflow {
<<<<<<< HEAD
return 0, true, types.ErrOverflow.GenWithStackByArgs(errType, fmt.Sprintf("(%s - %s)", s.args[0].String(), s.args[1].String()))
=======
return 0, true, types.ErrOverflow.GenWithStackByArgs(errType, fmt.Sprintf("(%s - %s)", s.args[0].StringWithCtx(ctx, errors.RedactLogDisable), s.args[1].StringWithCtx(ctx, errors.RedactLogDisable)))
>>>>>>> f5ac1c4a453 (*: support tidb_redact_log for explain (#54553))
}

return a - b, false, nil
Expand Down Expand Up @@ -586,7 +629,11 @@ func (s *builtinArithmeticMultiplyRealSig) evalReal(row chunk.Row) (float64, boo
}
result := a * b
if math.IsInf(result, 0) {
<<<<<<< HEAD
return 0, true, types.ErrOverflow.GenWithStackByArgs("DOUBLE", fmt.Sprintf("(%s * %s)", s.args[0].String(), s.args[1].String()))
=======
return 0, true, types.ErrOverflow.GenWithStackByArgs("DOUBLE", fmt.Sprintf("(%s * %s)", s.args[0].StringWithCtx(ctx, errors.RedactLogDisable), s.args[1].StringWithCtx(ctx, errors.RedactLogDisable)))
>>>>>>> f5ac1c4a453 (*: support tidb_redact_log for explain (#54553))
}
return result, false, nil
}
Expand All @@ -604,7 +651,11 @@ func (s *builtinArithmeticMultiplyDecimalSig) evalDecimal(row chunk.Row) (*types
err = types.DecimalMul(a, b, c)
if err != nil && !terror.ErrorEqual(err, types.ErrTruncated) {
if err == types.ErrOverflow {
<<<<<<< HEAD
err = types.ErrOverflow.GenWithStackByArgs("DECIMAL", fmt.Sprintf("(%s * %s)", s.args[0].String(), s.args[1].String()))
=======
err = types.ErrOverflow.GenWithStackByArgs("DECIMAL", fmt.Sprintf("(%s * %s)", s.args[0].StringWithCtx(ctx, errors.RedactLogDisable), s.args[1].StringWithCtx(ctx, errors.RedactLogDisable)))
>>>>>>> f5ac1c4a453 (*: support tidb_redact_log for explain (#54553))
}
return nil, true, err
}
Expand All @@ -624,7 +675,11 @@ func (s *builtinArithmeticMultiplyIntUnsignedSig) evalInt(row chunk.Row) (val in
unsignedB := uint64(b)
result := unsignedA * unsignedB
if unsignedA != 0 && result/unsignedA != unsignedB {
<<<<<<< HEAD
return 0, true, types.ErrOverflow.GenWithStackByArgs("BIGINT UNSIGNED", fmt.Sprintf("(%s * %s)", s.args[0].String(), s.args[1].String()))
=======
return 0, true, types.ErrOverflow.GenWithStackByArgs("BIGINT UNSIGNED", fmt.Sprintf("(%s * %s)", s.args[0].StringWithCtx(ctx, errors.RedactLogDisable), s.args[1].StringWithCtx(ctx, errors.RedactLogDisable)))
>>>>>>> f5ac1c4a453 (*: support tidb_redact_log for explain (#54553))
}
return int64(result), false, nil
}
Expand All @@ -640,7 +695,11 @@ func (s *builtinArithmeticMultiplyIntSig) evalInt(row chunk.Row) (val int64, isN
}
result := a * b
if (a != 0 && result/a != b) || (result == math.MinInt64 && a == -1) {
<<<<<<< HEAD
return 0, true, types.ErrOverflow.GenWithStackByArgs("BIGINT", fmt.Sprintf("(%s * %s)", s.args[0].String(), s.args[1].String()))
=======
return 0, true, types.ErrOverflow.GenWithStackByArgs("BIGINT", fmt.Sprintf("(%s * %s)", s.args[0].StringWithCtx(ctx, errors.RedactLogDisable), s.args[1].StringWithCtx(ctx, errors.RedactLogDisable)))
>>>>>>> f5ac1c4a453 (*: support tidb_redact_log for explain (#54553))
}
return result, false, nil
}
Expand Down Expand Up @@ -705,7 +764,11 @@ func (s *builtinArithmeticDivideRealSig) evalReal(row chunk.Row) (float64, bool,
}
result := a / b
if math.IsInf(result, 0) {
<<<<<<< HEAD
return 0, true, types.ErrOverflow.GenWithStackByArgs("DOUBLE", fmt.Sprintf("(%s / %s)", s.args[0].String(), s.args[1].String()))
=======
return 0, true, types.ErrOverflow.GenWithStackByArgs("DOUBLE", fmt.Sprintf("(%s / %s)", s.args[0].StringWithCtx(ctx, errors.RedactLogDisable), s.args[1].StringWithCtx(ctx, errors.RedactLogDisable)))
>>>>>>> f5ac1c4a453 (*: support tidb_redact_log for explain (#54553))
}
return result, false, nil
}
Expand Down Expand Up @@ -734,7 +797,11 @@ func (s *builtinArithmeticDivideDecimalSig) evalDecimal(row chunk.Row) (*types.M
err = c.Round(c, s.baseBuiltinFunc.tp.GetDecimal(), types.ModeHalfUp)
}
} else if err == types.ErrOverflow {
<<<<<<< HEAD
err = types.ErrOverflow.GenWithStackByArgs("DECIMAL", fmt.Sprintf("(%s / %s)", s.args[0].String(), s.args[1].String()))
=======
err = types.ErrOverflow.GenWithStackByArgs("DECIMAL", fmt.Sprintf("(%s / %s)", s.args[0].StringWithCtx(ctx, errors.RedactLogDisable), s.args[1].StringWithCtx(ctx, errors.RedactLogDisable)))
>>>>>>> f5ac1c4a453 (*: support tidb_redact_log for explain (#54553))
}
return c, false, err
}
Expand Down Expand Up @@ -869,14 +936,22 @@ func (s *builtinArithmeticIntDivideDecimalSig) evalInt(row chunk.Row) (ret int64
ret = int64(0)
return ret, false, nil
}
<<<<<<< HEAD
return 0, true, types.ErrOverflow.GenWithStackByArgs("BIGINT UNSIGNED", fmt.Sprintf("(%s DIV %s)", s.args[0].String(), s.args[1].String()))
=======
return 0, true, types.ErrOverflow.GenWithStackByArgs("BIGINT UNSIGNED", fmt.Sprintf("(%s DIV %s)", s.args[0].StringWithCtx(ctx, errors.RedactLogDisable), s.args[1].StringWithCtx(ctx, errors.RedactLogDisable)))
>>>>>>> f5ac1c4a453 (*: support tidb_redact_log for explain (#54553))
}
ret = int64(val)
} else {
ret, err = c.ToInt()
// err returned by ToInt may be ErrTruncated or ErrOverflow, only handle ErrOverflow, ignore ErrTruncated.
if err == types.ErrOverflow {
<<<<<<< HEAD
return 0, true, types.ErrOverflow.GenWithStackByArgs("BIGINT", fmt.Sprintf("(%s DIV %s)", s.args[0].String(), s.args[1].String()))
=======
return 0, true, types.ErrOverflow.GenWithStackByArgs("BIGINT", fmt.Sprintf("(%s DIV %s)", s.args[0].StringWithCtx(ctx, errors.RedactLogDisable), s.args[1].StringWithCtx(ctx, errors.RedactLogDisable)))
>>>>>>> f5ac1c4a453 (*: support tidb_redact_log for explain (#54553))
}
}

Expand Down
Loading

0 comments on commit 227d96d

Please sign in to comment.