Skip to content

Commit

Permalink
stmtctx: remove OverflowAsWarning flag (#49122)
Browse files Browse the repository at this point in the history
close #49137, close #49143
  • Loading branch information
YangKeao authored Dec 14, 2023
1 parent 7e5a5b2 commit 531a1ce
Show file tree
Hide file tree
Showing 21 changed files with 120 additions and 77 deletions.
3 changes: 0 additions & 3 deletions br/pkg/lightning/backend/kv/session.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ import (
"github.com/pingcap/tidb/pkg/parser/model"
"github.com/pingcap/tidb/pkg/sessionctx"
"github.com/pingcap/tidb/pkg/sessionctx/variable"
"github.com/pingcap/tidb/pkg/types"
"github.com/pingcap/tidb/pkg/util/topsql/stmtstats"
"go.uber.org/zap"
)
Expand Down Expand Up @@ -287,7 +286,6 @@ func NewSession(options *encode.SessionOptions, logger log.Logger) *Session {
vars.StmtCtx.InInsertStmt = true
vars.StmtCtx.BatchCheck = true
vars.StmtCtx.BadNullAsWarning = !sqlMode.HasStrictMode()
vars.StmtCtx.OverflowAsWarning = !sqlMode.HasStrictMode()
vars.SQLMode = sqlMode

typeFlags := vars.StmtCtx.TypeFlags().
Expand Down Expand Up @@ -315,7 +313,6 @@ func NewSession(options *encode.SessionOptions, logger log.Logger) *Session {
}
}
vars.StmtCtx.SetTimeZone(vars.Location())
vars.StmtCtx.SetTypeFlags(types.StrictFlags)
if err := vars.SetSystemVar("timestamp", strconv.FormatInt(options.Timestamp, 10)); err != nil {
logger.Warn("new session: failed to set timestamp",
log.ShortError(err))
Expand Down
3 changes: 0 additions & 3 deletions pkg/ddl/backfilling_scheduler.go
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,6 @@ func initSessCtx(
}
sessCtx.GetSessionVars().StmtCtx.SetTimeZone(sessCtx.GetSessionVars().Location())
sessCtx.GetSessionVars().StmtCtx.BadNullAsWarning = !sqlMode.HasStrictMode()
sessCtx.GetSessionVars().StmtCtx.OverflowAsWarning = !sqlMode.HasStrictMode()
sessCtx.GetSessionVars().StmtCtx.DividedByZeroAsWarning = !sqlMode.HasStrictMode()

typeFlags := types.StrictFlags.
Expand Down Expand Up @@ -196,7 +195,6 @@ func restoreSessCtx(sessCtx sessionctx.Context) func(sessCtx sessionctx.Context)
timezone = &tz
}
badNullAsWarn := sv.StmtCtx.BadNullAsWarning
overflowAsWarn := sv.StmtCtx.OverflowAsWarning
dividedZeroAsWarn := sv.StmtCtx.DividedByZeroAsWarning
typeFlags := sv.StmtCtx.TypeFlags()
resGroupName := sv.ResourceGroupName
Expand All @@ -206,7 +204,6 @@ func restoreSessCtx(sessCtx sessionctx.Context) func(sessCtx sessionctx.Context)
uv.SQLMode = sqlMode
uv.TimeZone = timezone
uv.StmtCtx.BadNullAsWarning = badNullAsWarn
uv.StmtCtx.OverflowAsWarning = overflowAsWarn
uv.StmtCtx.DividedByZeroAsWarning = dividedZeroAsWarn
uv.StmtCtx.SetTypeFlags(typeFlags)
uv.ResourceGroupName = resGroupName
Expand Down
2 changes: 0 additions & 2 deletions pkg/errctx/context.go
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,4 @@ func init() {
for _, errCode := range truncateErrCodes {
errGroupMap[errCode] = ErrGroupTruncate
}

errGroupMap[errno.ErrDataOutOfRange] = ErrGroupOverflow
}
2 changes: 1 addition & 1 deletion pkg/errctx/context_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ func TestContext(t *testing.T) {
require.Equal(t, ctx.HandleErrorWithAlias(testInternalErr, testErr, testWarn), testErr)

// set level to "warn"
newCtx := ctx.WithErrGroupLevel(errctx.ErrGroupOverflow, errctx.LevelWarn)
newCtx := ctx.WithErrGroupLevel(errctx.ErrGroupTruncate, errctx.LevelWarn)
// ctx is not affected
require.Equal(t, ctx.HandleErrorWithAlias(testInternalErr, testErr, testWarn), testErr)
// newCtx will handle the error as a warn
Expand Down
9 changes: 0 additions & 9 deletions pkg/executor/executor.go
Original file line number Diff line number Diff line change
Expand Up @@ -2116,8 +2116,6 @@ func ResetContextOfStmt(ctx sessionctx.Context, s ast.StmtNode) (err error) {
// but should not make DupKeyAsWarning.
sc.DupKeyAsWarning = stmt.IgnoreErr
sc.BadNullAsWarning = !vars.StrictSQLMode || stmt.IgnoreErr
// see https://dev.mysql.com/doc/refman/8.0/en/out-of-range-and-overflow.html
sc.OverflowAsWarning = !vars.StrictSQLMode || stmt.IgnoreErr
sc.IgnoreNoPartition = stmt.IgnoreErr
sc.ErrAutoincReadFailedAsWarning = stmt.IgnoreErr
sc.DividedByZeroAsWarning = !vars.StrictSQLMode || stmt.IgnoreErr
Expand All @@ -2144,12 +2142,6 @@ func ResetContextOfStmt(ctx sessionctx.Context, s ast.StmtNode) (err error) {
case *ast.SelectStmt:
sc.InSelectStmt = true

// see https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sql-mode-strict
// said "For statements such as SELECT that do not change data, invalid values
// generate a warning in strict mode, not an error."
// and https://dev.mysql.com/doc/refman/5.7/en/out-of-range-and-overflow.html
sc.OverflowAsWarning = true

// Return warning for truncate error in selection.
sc.SetTypeFlags(sc.TypeFlags().
WithTruncateAsWarning(true).
Expand All @@ -2162,7 +2154,6 @@ func ResetContextOfStmt(ctx sessionctx.Context, s ast.StmtNode) (err error) {
sc.WeakConsistency = isWeakConsistencyRead(ctx, stmt)
case *ast.SetOprStmt:
sc.InSelectStmt = true
sc.OverflowAsWarning = true
sc.SetTypeFlags(sc.TypeFlags().
WithTruncateAsWarning(true).
WithIgnoreZeroInDate(true).
Expand Down
2 changes: 1 addition & 1 deletion pkg/expression/builtin_arithmetic.go
Original file line number Diff line number Diff line change
Expand Up @@ -843,7 +843,7 @@ func (s *builtinArithmeticIntDivideDecimalSig) evalInt(ctx EvalContext, row chun
}
if err == types.ErrOverflow {
newErr := errTruncatedWrongValue.GenWithStackByArgs("DECIMAL", c)
err = sc.HandleOverflow(newErr, newErr)
err = sc.HandleError(newErr)
}
if err != nil {
return 0, true, err
Expand Down
2 changes: 1 addition & 1 deletion pkg/expression/builtin_arithmetic_vec.go
Original file line number Diff line number Diff line change
Expand Up @@ -620,7 +620,7 @@ func (b *builtinArithmeticIntDivideDecimalSig) vecEvalInt(ctx EvalContext, input
err = sc.HandleTruncate(errTruncatedWrongValue.GenWithStackByArgs("DECIMAL", c))
} else if err == types.ErrOverflow {
newErr := errTruncatedWrongValue.GenWithStackByArgs("DECIMAL", c)
err = sc.HandleOverflow(newErr, newErr)
err = sc.HandleError(newErr)
}
if err != nil {
return err
Expand Down
28 changes: 14 additions & 14 deletions pkg/expression/builtin_cast.go
Original file line number Diff line number Diff line change
Expand Up @@ -542,7 +542,7 @@ func convertJSON2Tp(evalType types.EvalType) func(*stmtctx.StatementContext, typ
return nil, ErrInvalidJSONForFuncIndex
}
jsonToInt, err := types.ConvertJSONToInt(sc.TypeCtx(), item, mysql.HasUnsignedFlag(tp.GetFlag()), tp.GetType())
err = sc.HandleOverflow(err, err)
err = sc.HandleError(err)
if mysql.HasUnsignedFlag(tp.GetFlag()) {
return uint64(jsonToInt), err
}
Expand Down Expand Up @@ -705,7 +705,7 @@ func (b *builtinCastIntAsDecimalSig) evalDecimal(ctx EvalContext, row chunk.Row)
}
sc := ctx.GetSessionVars().StmtCtx
res, err = types.ProduceDecWithSpecifiedTp(sc.TypeCtx(), res, b.tp)
err = sc.HandleOverflow(err, err)
err = sc.HandleError(err)
return res, isNull, err
}

Expand Down Expand Up @@ -790,7 +790,7 @@ func (b *builtinCastIntAsDurationSig) evalDuration(ctx EvalContext, row chunk.Ro
dur, err := types.NumberToDuration(val, b.tp.GetDecimal())
if err != nil {
if types.ErrOverflow.Equal(err) {
err = ctx.GetSessionVars().StmtCtx.HandleOverflow(err, err)
err = ctx.GetSessionVars().StmtCtx.HandleError(err)
}
if types.ErrTruncatedWrongVal.Equal(err) {
err = ctx.GetSessionVars().StmtCtx.HandleTruncate(err)
Expand Down Expand Up @@ -987,7 +987,7 @@ func (b *builtinCastRealAsIntSig) evalInt(ctx EvalContext, row chunk.Row) (res i
res = int64(uintVal)
}
if types.ErrOverflow.Equal(err) {
err = ctx.GetSessionVars().StmtCtx.HandleOverflow(err, err)
err = ctx.GetSessionVars().StmtCtx.HandleError(err)
}
return res, isNull, err
}
Expand All @@ -1012,7 +1012,7 @@ func (b *builtinCastRealAsDecimalSig) evalDecimal(ctx EvalContext, row chunk.Row
err = res.FromFloat64(val)
if types.ErrOverflow.Equal(err) {
warnErr := types.ErrTruncatedWrongVal.GenWithStackByArgs("DECIMAL", b.args[0])
err = ctx.GetSessionVars().StmtCtx.HandleOverflow(err, warnErr)
err = ctx.GetSessionVars().StmtCtx.HandleErrorWithAlias(err, err, warnErr)
} else if types.ErrTruncated.Equal(err) {
// This behavior is consistent with MySQL.
err = nil
Expand All @@ -1023,7 +1023,7 @@ func (b *builtinCastRealAsDecimalSig) evalDecimal(ctx EvalContext, row chunk.Row
}
sc := ctx.GetSessionVars().StmtCtx
res, err = types.ProduceDecWithSpecifiedTp(sc.TypeCtx(), res, b.tp)
err = sc.HandleOverflow(err, err)
err = sc.HandleError(err)
return res, false, err
}

Expand Down Expand Up @@ -1136,7 +1136,7 @@ func (b *builtinCastDecimalAsDecimalSig) evalDecimal(ctx EvalContext, row chunk.
}
sc := ctx.GetSessionVars().StmtCtx
res, err = types.ProduceDecWithSpecifiedTp(sc.TypeCtx(), res, b.tp)
err = sc.HandleOverflow(err, err)
err = sc.HandleError(err)
return res, false, err
}

Expand Down Expand Up @@ -1175,7 +1175,7 @@ func (b *builtinCastDecimalAsIntSig) evalInt(ctx EvalContext, row chunk.Row) (re

if types.ErrOverflow.Equal(err) {
warnErr := types.ErrTruncatedWrongVal.GenWithStackByArgs("DECIMAL", val)
err = ctx.GetSessionVars().StmtCtx.HandleOverflow(err, warnErr)
err = ctx.GetSessionVars().StmtCtx.HandleErrorWithAlias(err, err, warnErr)
}

return res, false, err
Expand Down Expand Up @@ -1343,7 +1343,7 @@ func (*builtinCastStringAsIntSig) handleOverflow(ctx EvalContext, origRes int64,
res = int64(uval)
}
warnErr := types.ErrTruncatedWrongVal.GenWithStackByArgs("INTEGER", origStr)
err = sc.HandleOverflow(origErr, warnErr)
err = sc.HandleErrorWithAlias(origErr, origErr, warnErr)
}
return
}
Expand Down Expand Up @@ -1461,7 +1461,7 @@ func (b *builtinCastStringAsDecimalSig) evalDecimal(ctx EvalContext, row chunk.R
}
}
res, err = types.ProduceDecWithSpecifiedTp(sc.TypeCtx(), res, b.tp)
err = sc.HandleOverflow(err, err)
err = sc.HandleError(err)
return res, false, err
}

Expand Down Expand Up @@ -1607,7 +1607,7 @@ func (b *builtinCastTimeAsDecimalSig) evalDecimal(ctx EvalContext, row chunk.Row
}
sc := ctx.GetSessionVars().StmtCtx
res, err = types.ProduceDecWithSpecifiedTp(sc.TypeCtx(), val.ToNumber(), b.tp)
err = sc.HandleOverflow(err, err)
err = sc.HandleError(err)
return res, false, err
}

Expand Down Expand Up @@ -1747,7 +1747,7 @@ func (b *builtinCastDurationAsDecimalSig) evalDecimal(ctx EvalContext, row chunk
}
sc := ctx.GetSessionVars().StmtCtx
res, err = types.ProduceDecWithSpecifiedTp(sc.TypeCtx(), val.ToNumber(), b.tp)
err = sc.HandleOverflow(err, err)
err = sc.HandleError(err)
return res, false, err
}

Expand Down Expand Up @@ -1850,7 +1850,7 @@ func (b *builtinCastJSONAsIntSig) evalInt(ctx EvalContext, row chunk.Row) (res i
}
sc := ctx.GetSessionVars().StmtCtx
res, err = types.ConvertJSONToInt64(sc.TypeCtx(), val, mysql.HasUnsignedFlag(b.tp.GetFlag()))
err = sc.HandleOverflow(err, err)
err = sc.HandleError(err)
return
}

Expand Down Expand Up @@ -1895,7 +1895,7 @@ func (b *builtinCastJSONAsDecimalSig) evalDecimal(ctx EvalContext, row chunk.Row
return res, false, err
}
res, err = types.ProduceDecWithSpecifiedTp(sc.TypeCtx(), res, b.tp)
err = sc.HandleOverflow(err, err)
err = sc.HandleError(err)
return res, false, err
}

Expand Down
1 change: 0 additions & 1 deletion pkg/expression/builtin_cast_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,6 @@ func TestCastFunctions(t *testing.T) {
defer func() {
sc.InSelectStmt = oldInSelectStmt
}()
sc.OverflowAsWarning = true

// cast('18446744073709551616' as unsigned);
tp1 := types.NewFieldTypeBuilder().SetType(mysql.TypeLonglong).SetFlag(mysql.BinaryFlag).SetFlen(mysql.MaxIntWidth).SetCharset(charset.CharsetBin).SetCollate(charset.CollationBin).BuildP()
Expand Down
28 changes: 14 additions & 14 deletions pkg/expression/builtin_cast_vec.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ func (b *builtinCastIntAsDurationSig) vecEvalDuration(ctx EvalContext, input *ch
dur, err := types.NumberToDuration(i64s[i], b.tp.GetDecimal())
if err != nil {
if types.ErrOverflow.Equal(err) {
err = ctx.GetSessionVars().StmtCtx.HandleOverflow(err, err)
err = ctx.GetSessionVars().StmtCtx.HandleError(err)
}
if types.ErrTruncatedWrongVal.Equal(err) {
err = ctx.GetSessionVars().StmtCtx.HandleTruncate(err)
Expand Down Expand Up @@ -308,7 +308,7 @@ func (b *builtinCastTimeAsDecimalSig) vecEvalDecimal(ctx EvalContext, input *chu
*dec = types.MyDecimal{}
times[i].FillNumber(dec)
dec, err = types.ProduceDecWithSpecifiedTp(sc.TypeCtx(), dec, b.tp)
if err = sc.HandleOverflow(err, err); err != nil {
if err = sc.HandleError(err); err != nil {
return err
}
decs[i] = *dec
Expand Down Expand Up @@ -632,7 +632,7 @@ func (b *builtinCastDecimalAsDecimalSig) vecEvalDecimal(ctx EvalContext, input *
*dec = decs[i]
}
dec, err := types.ProduceDecWithSpecifiedTp(sc.TypeCtx(), dec, b.tp)
if err = sc.HandleOverflow(err, err); err != nil {
if err = sc.HandleError(err); err != nil {
return err
}
decs[i] = *dec
Expand Down Expand Up @@ -778,7 +778,7 @@ func (b *builtinCastRealAsIntSig) vecEvalInt(ctx EvalContext, input *chunk.Chunk
i64s[i] = int64(uintVal)
}
if types.ErrOverflow.Equal(err) {
err = ctx.GetSessionVars().StmtCtx.HandleOverflow(err, err)
err = ctx.GetSessionVars().StmtCtx.HandleError(err)
}
if err != nil {
return err
Expand Down Expand Up @@ -812,7 +812,7 @@ func (b *builtinCastTimeAsRealSig) vecEvalReal(ctx EvalContext, input *chunk.Chu
f64, err := times[i].ToNumber().ToFloat64()
if err != nil {
if types.ErrOverflow.Equal(err) {
err = ctx.GetSessionVars().StmtCtx.HandleOverflow(err, err)
err = ctx.GetSessionVars().StmtCtx.HandleError(err)
}
if err != nil {
return err
Expand Down Expand Up @@ -916,7 +916,7 @@ func (b *builtinCastRealAsDecimalSig) vecEvalDecimal(ctx EvalContext, input *chu
if err = resdecimal[i].FromFloat64(bufreal[i]); err != nil {
if types.ErrOverflow.Equal(err) {
warnErr := types.ErrTruncatedWrongVal.GenWithStackByArgs("DECIMAL", b.args[0])
err = ctx.GetSessionVars().StmtCtx.HandleOverflow(err, warnErr)
err = ctx.GetSessionVars().StmtCtx.HandleErrorWithAlias(err, err, warnErr)
} else if types.ErrTruncated.Equal(err) {
// This behavior is consistent with MySQL.
err = nil
Expand All @@ -927,7 +927,7 @@ func (b *builtinCastRealAsDecimalSig) vecEvalDecimal(ctx EvalContext, input *chu
}
}
dec, err := types.ProduceDecWithSpecifiedTp(sc.TypeCtx(), &resdecimal[i], b.tp)
if err = sc.HandleOverflow(err, err); err != nil {
if err = sc.HandleError(err); err != nil {
return err
}
resdecimal[i] = *dec
Expand Down Expand Up @@ -1068,7 +1068,7 @@ func (b *builtinCastDurationAsDecimalSig) vecEvalDecimal(ctx EvalContext, input
duration.Duration = ds[i]
duration.Fsp = fsp
res, err := types.ProduceDecWithSpecifiedTp(sc.TypeCtx(), duration.ToNumber(), b.tp)
if err = sc.HandleOverflow(err, err); err != nil {
if err = sc.HandleError(err); err != nil {
return err
}
d64s[i] = *res
Expand Down Expand Up @@ -1114,7 +1114,7 @@ func (b *builtinCastIntAsDecimalSig) vecEvalDecimal(ctx EvalContext, input *chun
}

dec, err = types.ProduceDecWithSpecifiedTp(sc.TypeCtx(), dec, b.tp)
if err = sc.HandleOverflow(err, err); err != nil {
if err = sc.HandleError(err); err != nil {
return err
}
decs[i] = *dec
Expand Down Expand Up @@ -1269,7 +1269,7 @@ func (b *builtinCastJSONAsIntSig) vecEvalInt(ctx EvalContext, input *chunk.Chunk
continue
}
i64s[i], err = types.ConvertJSONToInt64(tc, buf.GetJSON(i), mysql.HasUnsignedFlag(b.tp.GetFlag()))
if err = sc.HandleOverflow(err, err); err != nil {
if err = sc.HandleError(err); err != nil {
return err
}
}
Expand Down Expand Up @@ -1455,7 +1455,7 @@ func (b *builtinCastDecimalAsRealSig) vecEvalReal(ctx EvalContext, input *chunk.
res, err := d[i].ToFloat64()
if err != nil {
if types.ErrOverflow.Equal(err) {
err = ctx.GetSessionVars().StmtCtx.HandleOverflow(err, err)
err = ctx.GetSessionVars().StmtCtx.HandleError(err)
}
if err != nil {
return err
Expand Down Expand Up @@ -1654,7 +1654,7 @@ func (b *builtinCastJSONAsDecimalSig) vecEvalDecimal(ctx EvalContext, input *chu
return err
}
tempres, err = types.ProduceDecWithSpecifiedTp(sc.TypeCtx(), tempres, b.tp)
if err = sc.HandleOverflow(err, err); err != nil {
if err = sc.HandleError(err); err != nil {
return err
}
res[i] = *tempres
Expand Down Expand Up @@ -1744,7 +1744,7 @@ func (b *builtinCastStringAsDecimalSig) vecEvalDecimal(ctx EvalContext, input *c
return err
}
dec, err := types.ProduceDecWithSpecifiedTp(stmtCtx.TypeCtx(), dec, b.tp)
if err = stmtCtx.HandleOverflow(err, err); err != nil {
if err = stmtCtx.HandleError(err); err != nil {
return err
}
res[i] = *dec
Expand Down Expand Up @@ -1848,7 +1848,7 @@ func (b *builtinCastDecimalAsIntSig) vecEvalInt(ctx EvalContext, input *chunk.Ch

if types.ErrOverflow.Equal(err) {
warnErr := types.ErrTruncatedWrongVal.GenWithStackByArgs("DECIMAL", d64s[i])
err = ctx.GetSessionVars().StmtCtx.HandleOverflow(err, warnErr)
err = ctx.GetSessionVars().StmtCtx.HandleErrorWithAlias(err, err, warnErr)
}

if err != nil {
Expand Down
6 changes: 3 additions & 3 deletions pkg/expression/typeinfer_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -205,11 +205,11 @@ func (s *InferTypeSuite) createTestCase4Cast() []typeInferTestCase {
{"CAST(c_varchar AS DECIMAL)", mysql.TypeNewDecimal, charset.CharsetBin, mysql.BinaryFlag, 10, 0},
{"CAST(\"123456789.0123456789\" AS DECIMAL)", mysql.TypeNewDecimal, charset.CharsetBin, mysql.NotNullFlag | mysql.BinaryFlag, 10, 0}, // TODO: flen should be 11.
{"CAST(\"123456789.0123456789\" AS DECIMAL(10,0))", mysql.TypeNewDecimal, charset.CharsetBin, mysql.NotNullFlag | mysql.BinaryFlag, 10, 0}, // TODO: flen should be 11.
{"CAST(\"123456789.0123456789\" AS DECIMAL(5,5))", mysql.TypeNewDecimal, charset.CharsetBin, mysql.BinaryFlag, 5, 5}, // TODO: flen should be 7. flag should be mysql.NotNullFlag | mysql.BinaryFlag.
{"CAST(\"123456789.0123456789\" AS DECIMAL(6,5))", mysql.TypeNewDecimal, charset.CharsetBin, mysql.BinaryFlag, 6, 5}, // TODO: flen should be 8. flag should be mysql.NotNullFlag | mysql.BinaryFlag.
{"CAST(\"123456789.0123456789\" AS DECIMAL(5,5))", mysql.TypeNewDecimal, charset.CharsetBin, mysql.NotNullFlag | mysql.BinaryFlag, 5, 5}, // TODO: flen should be 7.
{"CAST(\"123456789.0123456789\" AS DECIMAL(6,5))", mysql.TypeNewDecimal, charset.CharsetBin, mysql.NotNullFlag | mysql.BinaryFlag, 6, 5}, // TODO: flen should be 8.
{"CAST(\"-123456789.0123456789\" AS DECIMAL(64,30))", mysql.TypeNewDecimal, charset.CharsetBin, mysql.NotNullFlag | mysql.BinaryFlag, 64, 30}, // TODO: flen should be 66.
{"CAST(\"-123456789.0123456789\" AS DECIMAL(10,0))", mysql.TypeNewDecimal, charset.CharsetBin, mysql.NotNullFlag | mysql.BinaryFlag, 10, 0}, // TODO: flen should be 11.
{"CAST(\"-123456789.0123456789\" AS DECIMAL(5,5))", mysql.TypeNewDecimal, charset.CharsetBin, mysql.BinaryFlag, 5, 5}, // TODO: flen should be 7. flag should be mysql.NotNullFlag | mysql.BinaryFlag.
{"CAST(\"-123456789.0123456789\" AS DECIMAL(5,5))", mysql.TypeNewDecimal, charset.CharsetBin, mysql.NotNullFlag | mysql.BinaryFlag, 5, 5}, // TODO: flen should be 7.
{"CAST(c_int_d AS JSON)", mysql.TypeJSON, charset.CharsetUTF8MB4, mysql.BinaryFlag | mysql.ParseToJSONFlag, 12582912 / 3, 0},
{"CAST(c_int_d AS SIGNED)", mysql.TypeLonglong, charset.CharsetBin, mysql.BinaryFlag, 22, 0}, // TODO: flen should be 11.
{"CAST(c_int_d AS SIGNED INTEGER)", mysql.TypeLonglong, charset.CharsetBin, mysql.BinaryFlag, 22, 0}, // TODO: flen should be 11.
Expand Down
Loading

0 comments on commit 531a1ce

Please sign in to comment.