Skip to content

Commit

Permalink
*: use new registrable terror (pingcap#14606)
Browse files Browse the repository at this point in the history
  • Loading branch information
lysu authored Feb 6, 2020
1 parent 4a63d41 commit 465af00
Show file tree
Hide file tree
Showing 33 changed files with 52 additions and 527 deletions.
103 changes: 0 additions & 103 deletions ddl/ddl.go
Original file line number Diff line number Diff line change
Expand Up @@ -665,106 +665,3 @@ func (d *ddl) GetHook() Callback {

return d.mu.hook
}

func init() {
ddlMySQLErrCodes := map[terror.ErrCode]uint16{
mysql.ErrAlterOperationNotSupportedReason: mysql.ErrAlterOperationNotSupportedReason,
mysql.ErrBadField: mysql.ErrBadField,
mysql.ErrBadNull: mysql.ErrBadNull,
mysql.ErrBlobCantHaveDefault: mysql.ErrBlobCantHaveDefault,
mysql.ErrBlobKeyWithoutLength: mysql.ErrBlobKeyWithoutLength,
mysql.ErrCancelledDDLJob: mysql.ErrCancelledDDLJob,
mysql.ErrCantDecodeIndex: mysql.ErrCantDecodeIndex,
mysql.ErrCantDropFieldOrKey: mysql.ErrCantDropFieldOrKey,
mysql.ErrCantRemoveAllFields: mysql.ErrCantRemoveAllFields,
mysql.ErrCoalesceOnlyOnHashPartition: mysql.ErrCoalesceOnlyOnHashPartition,
mysql.ErrCollationCharsetMismatch: mysql.ErrCollationCharsetMismatch,
mysql.ErrConflictingDeclarations: mysql.ErrConflictingDeclarations,
mysql.ErrDependentByGeneratedColumn: mysql.ErrDependentByGeneratedColumn,
mysql.ErrDropLastPartition: mysql.ErrDropLastPartition,
mysql.ErrDropPartitionNonExistent: mysql.ErrDropPartitionNonExistent,
mysql.ErrDupKeyName: mysql.ErrDupKeyName,
mysql.ErrErrorOnRename: mysql.ErrErrorOnRename,
mysql.ErrFieldNotFoundPart: mysql.ErrFieldNotFoundPart,
mysql.ErrFieldTypeNotAllowedAsPartitionField: mysql.ErrFieldTypeNotAllowedAsPartitionField,
mysql.ErrFileNotFound: mysql.ErrFileNotFound,
mysql.ErrFunctionalIndexPrimaryKey: mysql.ErrFunctionalIndexPrimaryKey,
mysql.ErrGeneratedColumnFunctionIsNotAllowed: mysql.ErrGeneratedColumnFunctionIsNotAllowed,
mysql.ErrGeneratedColumnNonPrior: mysql.ErrGeneratedColumnNonPrior,
mysql.ErrGeneratedColumnRefAutoInc: mysql.ErrGeneratedColumnRefAutoInc,
mysql.ErrInvalidAutoRandom: mysql.ErrInvalidAutoRandom,
mysql.ErrInvalidDDLJob: mysql.ErrInvalidDDLJob,
mysql.ErrInvalidDDLState: mysql.ErrInvalidDDLState,
mysql.ErrInvalidDDLWorker: mysql.ErrInvalidDDLWorker,
mysql.ErrInvalidDefault: mysql.ErrInvalidDefault,
mysql.ErrInvalidGroupFuncUse: mysql.ErrInvalidGroupFuncUse,
mysql.ErrInvalidDDLJobFlag: mysql.ErrInvalidDDLJobFlag,
mysql.ErrInvalidDDLJobVersion: mysql.ErrInvalidDDLJobVersion,
mysql.ErrInvalidOnUpdate: mysql.ErrInvalidOnUpdate,
mysql.ErrInvalidSplitRegionRanges: mysql.ErrInvalidSplitRegionRanges,
mysql.ErrInvalidStoreVersion: mysql.ErrInvalidStoreVersion,
mysql.ErrInvalidUseOfNull: mysql.ErrInvalidUseOfNull,
mysql.ErrJSONUsedAsKey: mysql.ErrJSONUsedAsKey,
mysql.ErrJSONDocumentNULLKey: mysql.ErrJSONDocumentNULLKey,
mysql.ErrKeyColumnDoesNotExits: mysql.ErrKeyColumnDoesNotExits,
mysql.ErrLockWaitTimeout: mysql.ErrLockWaitTimeout,
mysql.ErrNoParts: mysql.ErrNoParts,
mysql.ErrNotOwner: mysql.ErrNotOwner,
mysql.ErrOnlyOnRangeListPartition: mysql.ErrOnlyOnRangeListPartition,
mysql.ErrPartitionColumnList: mysql.ErrPartitionColumnList,
mysql.ErrPartitionFuncNotAllowed: mysql.ErrPartitionFuncNotAllowed,
mysql.ErrPartitionFunctionIsNotAllowed: mysql.ErrPartitionFunctionIsNotAllowed,
mysql.ErrPartitionMaxvalue: mysql.ErrPartitionMaxvalue,
mysql.ErrPartitionMgmtOnNonpartitioned: mysql.ErrPartitionMgmtOnNonpartitioned,
mysql.ErrPartitionRequiresValues: mysql.ErrPartitionRequiresValues,
mysql.ErrPartitionWrongNoPart: mysql.ErrPartitionWrongNoPart,
mysql.ErrPartitionWrongNoSubpart: mysql.ErrPartitionWrongNoSubpart,
mysql.ErrPartitionWrongValues: mysql.ErrPartitionWrongValues,
mysql.ErrPartitionsMustBeDefined: mysql.ErrPartitionsMustBeDefined,
mysql.ErrPrimaryCantHaveNull: mysql.ErrPrimaryCantHaveNull,
mysql.ErrRangeNotIncreasing: mysql.ErrRangeNotIncreasing,
mysql.ErrRowSinglePartitionField: mysql.ErrRowSinglePartitionField,
mysql.ErrSameNamePartition: mysql.ErrSameNamePartition,
mysql.ErrSubpartition: mysql.ErrSubpartition,
mysql.ErrSystemVersioningWrongPartitions: mysql.ErrSystemVersioningWrongPartitions,
mysql.ErrTableCantHandleFt: mysql.ErrTableCantHandleFt,
mysql.ErrTableMustHaveColumns: mysql.ErrTableMustHaveColumns,
mysql.ErrTooLongIdent: mysql.ErrTooLongIdent,
mysql.ErrTooLongIndexComment: mysql.ErrTooLongIndexComment,
mysql.ErrTooLongKey: mysql.ErrTooLongKey,
mysql.ErrTooManyFields: mysql.ErrTooManyFields,
mysql.ErrTooManyPartitions: mysql.ErrTooManyPartitions,
mysql.ErrTooManyValues: mysql.ErrTooManyValues,
mysql.ErrUniqueKeyNeedAllFieldsInPf: mysql.ErrUniqueKeyNeedAllFieldsInPf,
mysql.ErrUnknownCharacterSet: mysql.ErrUnknownCharacterSet,
mysql.ErrUnknownCollation: mysql.ErrUnknownCollation,
mysql.ErrUnknownPartition: mysql.ErrUnknownPartition,
mysql.ErrUnsupportedDDLOperation: mysql.ErrUnsupportedDDLOperation,
mysql.ErrUnsupportedOnGeneratedColumn: mysql.ErrUnsupportedOnGeneratedColumn,
mysql.ErrViewWrongList: mysql.ErrViewWrongList,
mysql.ErrWrongColumnName: mysql.ErrWrongColumnName,
mysql.ErrWrongDBName: mysql.ErrWrongDBName,
mysql.ErrWrongExprInPartitionFunc: mysql.ErrWrongExprInPartitionFunc,
mysql.ErrWrongFKOptionForGeneratedColumn: mysql.ErrWrongFKOptionForGeneratedColumn,
mysql.ErrWrongKeyColumn: mysql.ErrWrongKeyColumn,
mysql.ErrWrongNameForIndex: mysql.ErrWrongNameForIndex,
mysql.ErrWrongObject: mysql.ErrWrongObject,
mysql.ErrWrongPartitionTypeExpectedSystemTime: mysql.ErrWrongPartitionTypeExpectedSystemTime,
mysql.ErrWrongSubKey: mysql.ErrWrongSubKey,
mysql.ErrWrongTableName: mysql.ErrWrongTableName,
mysql.ErrWrongTypeColumnValue: mysql.ErrWrongTypeColumnValue,
mysql.WarnDataTruncated: mysql.WarnDataTruncated,
mysql.ErrFunctionalIndexOnField: mysql.ErrFunctionalIndexOnField,
mysql.ErrFkColumnCannotDrop: mysql.ErrFkColumnCannotDrop,
mysql.ErrFKIncompatibleColumns: mysql.ErrFKIncompatibleColumns,
mysql.ErrSequenceRunOut: mysql.ErrSequenceRunOut,
mysql.ErrSequenceInvalidData: mysql.ErrSequenceInvalidData,
mysql.ErrSequenceAccessFail: mysql.ErrSequenceAccessFail,
mysql.ErrNotSequence: mysql.ErrNotSequence,
mysql.ErrUnknownSequence: mysql.ErrUnknownSequence,
mysql.ErrWrongInsertIntoSequence: mysql.ErrWrongInsertIntoSequence,
mysql.ErrSequenceInvalidTableStructure: mysql.ErrSequenceInvalidTableStructure,
mysql.ErrSequenceUnsupportedTableOption: mysql.ErrSequenceUnsupportedTableOption,
}
terror.ErrClassToMySQLCodes[terror.ClassDDL] = ddlMySQLErrCodes
}
2 changes: 1 addition & 1 deletion ddl/ddl_worker.go
Original file line number Diff line number Diff line change
Expand Up @@ -633,7 +633,7 @@ func toTError(err error) *terror.Error {
}

// TODO: Add the error code.
return terror.ClassDDL.New(terror.CodeUnknown, err.Error())
return terror.ClassDDL.Synthesize(terror.CodeUnknown, err.Error())
}

// waitSchemaChanged waits for the completion of updating all servers' schema. In order to make sure that happens,
Expand Down
4 changes: 2 additions & 2 deletions distsql/select_result.go
Original file line number Diff line number Diff line change
Expand Up @@ -114,11 +114,11 @@ func (r *selectResult) fetchResp(ctx context.Context) error {
r.selectRespSize = r.selectResp.Size()
r.memConsume(int64(r.selectRespSize))
if err := r.selectResp.Error; err != nil {
return terror.ClassTiKV.New(terror.ErrCode(err.Code), err.Msg)
return terror.ClassTiKV.Synthesize(terror.ErrCode(err.Code), err.Msg)
}
sc := r.ctx.GetSessionVars().StmtCtx
for _, warning := range r.selectResp.Warnings {
sc.AppendWarning(terror.ClassTiKV.New(terror.ErrCode(warning.Code), warning.Msg))
sc.AppendWarning(terror.ClassTiKV.Synthesize(terror.ErrCode(warning.Code), warning.Msg))
}
r.updateCopRuntimeStats(resultSubset.GetExecDetails(), resultSubset.RespTime())
r.feedback.Update(resultSubset.GetStartKey(), r.selectResp.OutputCounts)
Expand Down
2 changes: 1 addition & 1 deletion distsql/stream.go
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ func (r *streamResult) readDataFromResponse(ctx context.Context, resp kv.Respons
return false, errors.Errorf("stream response error: [%d]%s\n", stream.Error.Code, stream.Error.Msg)
}
for _, warning := range stream.Warnings {
r.ctx.GetSessionVars().StmtCtx.AppendWarning(terror.ClassTiKV.New(terror.ErrCode(warning.Code), warning.Msg))
r.ctx.GetSessionVars().StmtCtx.AppendWarning(terror.ClassTiKV.Synthesize(terror.ErrCode(warning.Code), warning.Msg))
}

err = result.Unmarshal(stream.Data)
Expand Down
9 changes: 0 additions & 9 deletions domain/domain.go
Original file line number Diff line number Diff line change
Expand Up @@ -1134,12 +1134,3 @@ var (
ErrInfoSchemaChanged = terror.ClassDomain.New(mysql.ErrInfoSchemaChanged,
mysql.MySQLErrName[mysql.ErrInfoSchemaChanged]+". "+kv.TxnRetryableMark)
)

func init() {
// Map error codes to mysql error codes.
domainMySQLErrCodes := map[terror.ErrCode]uint16{
mysql.ErrInfoSchemaExpired: mysql.ErrInfoSchemaExpired,
mysql.ErrInfoSchemaChanged: mysql.ErrInfoSchemaChanged,
}
terror.ErrClassToMySQLCodes[terror.ClassDomain] = domainMySQLErrCodes
}
30 changes: 0 additions & 30 deletions executor/errors.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,33 +43,3 @@ var (
ErrDeadlock = terror.ClassExecutor.New(mysql.ErrLockDeadlock, mysql.MySQLErrName[mysql.ErrLockDeadlock])
ErrQueryInterrupted = terror.ClassExecutor.New(mysql.ErrQueryInterrupted, mysql.MySQLErrName[mysql.ErrQueryInterrupted])
)

func init() {
// Map error codes to mysql error codes.
tableMySQLErrCodes := map[terror.ErrCode]uint16{
mysql.ErrGetStartTS: mysql.ErrGetStartTS,
mysql.ErrUnknownPlan: mysql.ErrUnknownPlan,
mysql.ErrPrepareMulti: mysql.ErrPrepareMulti,
mysql.ErrPrepareDDL: mysql.ErrPrepareDDL,
mysql.ErrResultIsEmpty: mysql.ErrResultIsEmpty,
mysql.ErrBuildExecutor: mysql.ErrBuildExecutor,
mysql.ErrBatchInsertFail: mysql.ErrBatchInsertFail,

mysql.ErrCantCreateUserWithGrant: mysql.ErrCantCreateUserWithGrant,
mysql.ErrPasswordNoMatch: mysql.ErrPasswordNoMatch,
mysql.ErrCannotUser: mysql.ErrCannotUser,
mysql.ErrPasswordFormat: mysql.ErrPasswordFormat,
mysql.ErrCantChangeTxCharacteristics: mysql.ErrCantChangeTxCharacteristics,
mysql.ErrPsManyParam: mysql.ErrPsManyParam,
mysql.ErrAdminCheckTable: mysql.ErrAdminCheckTable,
mysql.ErrDBaccessDenied: mysql.ErrDBaccessDenied,
mysql.ErrTableaccessDenied: mysql.ErrTableaccessDenied,
mysql.ErrBadDB: mysql.ErrBadDB,
mysql.ErrWrongObject: mysql.ErrWrongObject,
mysql.ErrRoleNotGranted: mysql.ErrRoleNotGranted,
mysql.ErrLockDeadlock: mysql.ErrLockDeadlock,
mysql.ErrQueryInterrupted: mysql.ErrQueryInterrupted,
mysql.ErrWrongValueCountOnRow: mysql.ErrWrongValueCountOnRow,
}
terror.ErrClassToMySQLCodes[terror.ClassExecutor] = tableMySQLErrCodes
}
2 changes: 1 addition & 1 deletion executor/executor_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3447,7 +3447,7 @@ func (s *testSuite) TestCoprocessorStreamingWarning(c *C) {

result := tk.MustQuery("select * from t where a/0 > 1")
result.Check(testkit.Rows())
tk.MustQuery("show warnings").Check(testutil.RowsWithSep("|", "Warning|1105|Division by 0"))
tk.MustQuery("show warnings").Check(testutil.RowsWithSep("|", "Warning|1365|Division by 0"))
}

func (s *testSuite3) TestYearTypeDeleteIndex(c *C) {
Expand Down
26 changes: 0 additions & 26 deletions expression/errors.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,32 +47,6 @@ var (
errNonUniq = terror.ClassExpression.New(mysql.ErrNonUniq, mysql.MySQLErrName[mysql.ErrNonUniq])
)

func init() {
expressionMySQLErrCodes := map[terror.ErrCode]uint16{
mysql.ErrWrongParamcountToNativeFct: mysql.ErrWrongParamcountToNativeFct,
mysql.ErrDivisionByZero: mysql.ErrDivisionByZero,
mysql.ErrSpDoesNotExist: mysql.ErrSpDoesNotExist,
mysql.ErrNotSupportedYet: mysql.ErrNotSupportedYet,
mysql.ErrZlibZData: mysql.ErrZlibZData,
mysql.ErrZlibZBuf: mysql.ErrZlibZBuf,
mysql.ErrWrongArguments: mysql.ErrWrongArguments,
mysql.ErrUnknownCharacterSet: mysql.ErrUnknownCharacterSet,
mysql.ErrInvalidDefault: mysql.ErrInvalidDefault,
mysql.ErrWarnDeprecatedSyntaxNoReplacement: mysql.ErrWarnDeprecatedSyntaxNoReplacement,
mysql.ErrOperandColumns: mysql.ErrOperandColumns,
mysql.ErrCutValueGroupConcat: mysql.ErrCutValueGroupConcat,
mysql.ErrRegexp: mysql.ErrRegexp,
mysql.ErrWarnAllowedPacketOverflowed: mysql.ErrWarnAllowedPacketOverflowed,
mysql.WarnOptionIgnored: mysql.WarnOptionIgnored,
mysql.ErrTruncatedWrongValue: mysql.ErrTruncatedWrongValue,
mysql.ErrUnknownLocale: mysql.ErrUnknownLocale,
mysql.ErrBadField: mysql.ErrBadField,
mysql.ErrNonUniq: mysql.ErrNonUniq,
mysql.ErrIncorrectType: mysql.ErrIncorrectType,
}
terror.ErrClassToMySQLCodes[terror.ClassExpression] = expressionMySQLErrCodes
}

// handleInvalidTimeError reports error or warning depend on the context.
func handleInvalidTimeError(ctx sessionctx.Context, err error) error {
if err == nil || !(types.ErrWrongValue.Equal(err) ||
Expand Down
2 changes: 1 addition & 1 deletion expression/integration_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3250,7 +3250,7 @@ func (s *testIntegrationSuite) TestArithmeticBuiltin(c *C) {
tk.MustExec("insert into t value(1.2)")
result = tk.MustQuery("select * from t where a/0 > 1")
result.Check(testkit.Rows())
tk.MustQuery("show warnings").Check(testutil.RowsWithSep("|", "Warning|1105|Division by 0"))
tk.MustQuery("show warnings").Check(testutil.RowsWithSep("|", "Warning|1365|Division by 0"))

tk.MustExec("USE test;")
tk.MustExec("DROP TABLE IF EXISTS t;")
Expand Down
7 changes: 6 additions & 1 deletion expression/scalar_function.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,11 @@ import (
"github.com/pingcap/tidb/util/hack"
)

// error definitions.
var (
ErrNoDB = terror.ClassOptimizer.New(mysql.ErrNoDB, mysql.MySQLErrName[mysql.ErrNoDB])
)

// ScalarFunction is the function that returns a value.
type ScalarFunction struct {
FuncName model.CIStr
Expand Down Expand Up @@ -171,7 +176,7 @@ func newFunctionImpl(ctx sessionctx.Context, fold bool, funcName string, retType
if !ok {
db := ctx.GetSessionVars().CurrentDB
if db == "" {
return nil, terror.ClassOptimizer.New(mysql.ErrNoDB, mysql.MySQLErrName[mysql.ErrNoDB])
return nil, ErrNoDB
}

return nil, errFunctionNotExists.GenWithStackByArgs("FUNCTION", db+"."+funcName)
Expand Down
10 changes: 5 additions & 5 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ require (
github.com/go-sql-driver/mysql v0.0.0-20170715192408-3955978caca4
github.com/gogo/protobuf v1.2.1
github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6 // indirect
github.com/golang/protobuf v1.3.2
github.com/golang/protobuf v1.3.3
github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db
github.com/google/btree v1.0.0
github.com/google/pprof v0.0.0-20190930153522-6ce02741cba3
Expand All @@ -38,11 +38,11 @@ require (
github.com/pingcap/goleveldb v0.0.0-20191226122134-f82aafb29989
github.com/pingcap/kvproto v0.0.0-20200108025604-a4dc183d2af5
github.com/pingcap/log v0.0.0-20200117041106-d28c14d3b1cd
github.com/pingcap/parser v0.0.0-20200120100653-1d87b3907217
github.com/pingcap/parser v0.0.0-20200206062121-701f4ad4e3c8
github.com/pingcap/pd v1.1.0-beta.0.20191219054547-4d65bbefbc6d
github.com/pingcap/sysutil v0.0.0-20191216090214-5f9620d22b3b
github.com/pingcap/tidb-tools v3.0.6-0.20191106033616-90632dda3863+incompatible
github.com/pingcap/tipb v0.0.0-20200103084511-1d37e605f65d
github.com/pingcap/tipb v0.0.0-20200201101609-1a2e9c441455
github.com/prometheus/client_golang v1.0.0
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4
github.com/prometheus/common v0.4.1
Expand All @@ -62,12 +62,12 @@ require (
go.uber.org/automaxprocs v1.2.0
go.uber.org/zap v1.13.0
golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413 // indirect
golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f // indirect
golang.org/x/lint v0.0.0-20200130185559-910be7a94367 // indirect
golang.org/x/net v0.0.0-20190909003024-a7b16738d86b
golang.org/x/sys v0.0.0-20191210023423-ac6580df4449
golang.org/x/text v0.3.2
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4 // indirect
golang.org/x/tools v0.0.0-20200119215504-eb0d8dd85bcc
golang.org/x/tools v0.0.0-20200206050830-dd0d5d485177
google.golang.org/genproto v0.0.0-20190905072037-92dd089d5514 // indirect
google.golang.org/grpc v1.25.1
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 // indirect
Expand Down
Loading

0 comments on commit 465af00

Please sign in to comment.