From a8ecdcf734767f714ac7230e1a85de6c739d93fc Mon Sep 17 00:00:00 2001 From: GuptaManan100 Date: Wed, 27 Jan 2021 20:29:20 +0530 Subject: [PATCH 1/2] fixed the error messages in drop,create and alter database commands Signed-off-by: GuptaManan100 --- go/mysql/constants.go | 10 ++++++---- go/vt/vtgate/planbuilder/builder.go | 8 +++++--- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/go/mysql/constants.go b/go/mysql/constants.go index 09174ad4205..a6c1ed7dbf2 100644 --- a/go/mysql/constants.go +++ b/go/mysql/constants.go @@ -343,6 +343,7 @@ const ( ERNoSuchTable = 1146 ERNonExistingTableGrant = 1147 ERKeyDoesNotExist = 1176 + ERDbDropExists = 1008 // permissions ERDBAccessDenied = 1044 @@ -382,10 +383,11 @@ const ( ErSPNotVarArg = 1414 // already exists - ERTableExists = 1050 - ERDupEntry = 1062 - ERFileExists = 1086 - ERUDFExists = 1125 + ERTableExists = 1050 + ERDupEntry = 1062 + ERFileExists = 1086 + ERUDFExists = 1125 + ERDbCreateExists = 1007 // aborted ERGotSignal = 1078 diff --git a/go/vt/vtgate/planbuilder/builder.go b/go/vt/vtgate/planbuilder/builder.go index dff88bbcd68..8d3dd7f6579 100644 --- a/go/vt/vtgate/planbuilder/builder.go +++ b/go/vt/vtgate/planbuilder/builder.go @@ -20,6 +20,8 @@ import ( "errors" "sort" + "vitess.io/vitess/go/mysql" + "vitess.io/vitess/go/sqltypes" querypb "vitess.io/vitess/go/vt/proto/query" "vitess.io/vitess/go/vt/vtgate/semantics" @@ -185,12 +187,12 @@ func buildDBDDLPlan(stmt sqlparser.Statement, vschema ContextVSchema) (engine.Pr return engine.NewRowsPrimitive(make([][]sqltypes.Value, 0), make([]*querypb.Field, 0)), nil } if !ksExists { - return nil, vterrors.Errorf(vtrpcpb.Code_FAILED_PRECONDITION, "cannot drop database '%s'; database does not exists", ksName) + return nil, mysql.NewSQLError(mysql.ERDbDropExists, mysql.SSUnknownSQLState, "Can't drop database '%s'; database doesn't exists", ksName) } return nil, vterrors.New(vtrpcpb.Code_UNIMPLEMENTED, "drop database not allowed") case *sqlparser.AlterDatabase: if !ksExists { - return nil, vterrors.Errorf(vtrpcpb.Code_FAILED_PRECONDITION, "cannot alter database '%s'; database does not exists", ksName) + return nil, vterrors.Errorf(vtrpcpb.Code_FAILED_PRECONDITION, "Can't alter database '%s'; database doesn't exists", ksName) } return nil, vterrors.New(vtrpcpb.Code_UNIMPLEMENTED, "alter database not allowed") case *sqlparser.CreateDatabase: @@ -198,7 +200,7 @@ func buildDBDDLPlan(stmt sqlparser.Statement, vschema ContextVSchema) (engine.Pr return engine.NewRowsPrimitive(make([][]sqltypes.Value, 0), make([]*querypb.Field, 0)), nil } if !dbDDL.IfNotExists && ksExists { - return nil, vterrors.Errorf(vtrpcpb.Code_ALREADY_EXISTS, "cannot create database '%s'; database exists", ksName) + return nil, mysql.NewSQLError(mysql.ERDbCreateExists, mysql.SSUnknownSQLState, "Can't create database '%s'; database exists", ksName) } return nil, vterrors.New(vtrpcpb.Code_UNIMPLEMENTED, "create database not allowed") } From b6434966097419a817beade62e2a7197097442ed Mon Sep 17 00:00:00 2001 From: GuptaManan100 Date: Wed, 27 Jan 2021 21:34:36 +0530 Subject: [PATCH 2/2] fixed tests Signed-off-by: GuptaManan100 --- go/vt/vtgate/planbuilder/testdata/ddl_cases.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/go/vt/vtgate/planbuilder/testdata/ddl_cases.txt b/go/vt/vtgate/planbuilder/testdata/ddl_cases.txt index a39136a186f..a9fe34147be 100644 --- a/go/vt/vtgate/planbuilder/testdata/ddl_cases.txt +++ b/go/vt/vtgate/planbuilder/testdata/ddl_cases.txt @@ -102,7 +102,7 @@ # create db main "create database main" -"cannot create database 'main'; database exists" +"Can't create database 'main'; database exists (errno 1007) (sqlstate HY000)" # create db if not exists main "create database if not exists main" @@ -116,7 +116,7 @@ # alter db foo "alter database foo collate utf8" -"cannot alter database 'foo'; database does not exists" +"Can't alter database 'foo'; database doesn't exists" # alter db main "alter database main collate utf8" @@ -124,7 +124,7 @@ # drop db foo "drop database foo" -"cannot drop database 'foo'; database does not exists" +"Can't drop database 'foo'; database doesn't exists (errno 1008) (sqlstate HY000)" # drop db main "drop database main"