@@ -46,7 +46,6 @@ import (
46
46
"github.com/pingcap/tidb/pkg/tablecodec"
47
47
"github.com/pingcap/tidb/pkg/types"
48
48
"github.com/pingcap/tidb/pkg/util"
49
- "github.com/pingcap/tidb/pkg/util/chunk"
50
49
"github.com/pingcap/tidb/pkg/util/codec"
51
50
"github.com/pingcap/tidb/pkg/util/collate"
52
51
"github.com/pingcap/tidb/pkg/util/generatedexpr"
@@ -378,30 +377,6 @@ func (t *TableCommon) WritableConstraint() []*table.Constraint {
378
377
return t .writableConstraints
379
378
}
380
379
381
- // CheckRowConstraint verify row check constraints.
382
- func (t * TableCommon ) CheckRowConstraint (ctx table.MutateContext , rowToCheck []types.Datum ) error {
383
- if constraints := t .WritableConstraint (); len (constraints ) > 0 {
384
- ectx := ctx .GetExprCtx ().GetEvalCtx ()
385
- row := chunk .MutRowFromDatums (rowToCheck ).ToRow ()
386
- return checkRowConstraint (ectx , constraints , row )
387
- }
388
- return nil
389
- }
390
-
391
- // checkRowConstraint verify row check constraints.
392
- func checkRowConstraint (ctx exprctx.EvalContext , constraints []* table.Constraint , rowToCheck chunk.Row ) error {
393
- for _ , constraint := range constraints {
394
- ok , isNull , err := constraint .ConstraintExpr .EvalInt (ctx , rowToCheck )
395
- if err != nil {
396
- return err
397
- }
398
- if ok == 0 && ! isNull {
399
- return table .ErrCheckConstraintViolated .FastGenByArgs (constraint .Name .O )
400
- }
401
- }
402
- return nil
403
- }
404
-
405
380
// FullHiddenColsAndVisibleCols implements table FullHiddenColsAndVisibleCols interface.
406
381
func (t * TableCommon ) FullHiddenColsAndVisibleCols () []* table.Column {
407
382
return t .fullHiddenColsAndVisibleColumns
@@ -532,7 +507,7 @@ func (t *TableCommon) UpdateRecord(ctx context.Context, sctx table.MutateContext
532
507
// check data constraint
533
508
evalCtx := sctx .GetExprCtx ().GetEvalCtx ()
534
509
if constraints := t .WritableConstraint (); len (constraints ) > 0 {
535
- if err = checkRowConstraint (evalCtx , constraints , checkRowBuffer .GetRowToCheck ()); err != nil {
510
+ if err = table . CheckRowConstraint (evalCtx , constraints , checkRowBuffer .GetRowToCheck ()); err != nil {
536
511
return err
537
512
}
538
513
}
@@ -917,8 +892,7 @@ func (t *TableCommon) AddRecord(sctx table.MutateContext, r []types.Datum, opts
917
892
}
918
893
}
919
894
// check data constraint
920
- err = t .CheckRowConstraint (sctx , r )
921
- if err != nil {
895
+ if err = table .CheckRowConstraintWithDatum (evalCtx , t .WritableConstraint (), r ); err != nil {
922
896
return nil , err
923
897
}
924
898
key := t .RecordKey (recordID )
0 commit comments