diff --git a/pkg/executor/redirect.go b/pkg/executor/redirect.go index a7269adb..b70a73df 100644 --- a/pkg/executor/redirect.go +++ b/pkg/executor/redirect.go @@ -55,6 +55,7 @@ import ( var ( errMissingTx = stdErrors.New("no transaction found") errNoDatabaseSelected = mysqlErrors.NewSQLError(mConstants.ERNoDb, mConstants.SSNoDatabaseSelected, "No database selected") + errEmptyQuery = mysqlErrors.NewSQLError(mConstants.EREmptyQuery, mConstants.SS42000, "Query was empty") ) var ( @@ -305,7 +306,12 @@ func (executor *RedirectExecutor) doExecutorComQuery(ctx *proto.Context, act ast func (executor *RedirectExecutor) ExecutorComQuery(ctx *proto.Context, h func(result proto.Result, warns uint16, failure error) error) error { p := parser.New() query := ctx.GetQuery() - log.Debugf("ComQuery: %s", query) + + if len(query) < 1 { + return h(nil, 0, errEmptyQuery) + } + + log.Debugf("ComQuery: '%s'", query) charset, collation := getCharsetCollation(ctx.C.CharacterSet()) diff --git a/pkg/mysql/server.go b/pkg/mysql/server.go index c2aa1cd3..15012985 100644 --- a/pkg/mysql/server.go +++ b/pkg/mysql/server.go @@ -34,7 +34,6 @@ import ( import ( _ "github.com/arana-db/parser/test_driver" - uconfig "github.com/arana-db/arana/pkg/util/config" perrors "github.com/pkg/errors" "go.uber.org/atomic" @@ -46,6 +45,7 @@ import ( "github.com/arana-db/arana/pkg/mysql/errors" "github.com/arana-db/arana/pkg/proto" "github.com/arana-db/arana/pkg/security" + uconfig "github.com/arana-db/arana/pkg/util/config" "github.com/arana-db/arana/pkg/util/log" )