diff --git a/pkg/executor/BUILD.bazel b/pkg/executor/BUILD.bazel index 11f17ffce8e7f..a05c81d88a3ce 100644 --- a/pkg/executor/BUILD.bazel +++ b/pkg/executor/BUILD.bazel @@ -238,7 +238,6 @@ go_library( "@com_github_burntsushi_toml//:toml", "@com_github_docker_go_units//:go-units", "@com_github_gogo_protobuf//proto", - "@com_github_ngaut_pools//:pools", "@com_github_opentracing_basictracer_go//:basictracer-go", "@com_github_opentracing_opentracing_go//:opentracing-go", "@com_github_pingcap_errors//:errors", diff --git a/pkg/executor/simple.go b/pkg/executor/simple.go index 26be5e06d7dbf..74d8f753907d9 100644 --- a/pkg/executor/simple.go +++ b/pkg/executor/simple.go @@ -26,7 +26,6 @@ import ( "syscall" "time" - "github.com/ngaut/pools" "github.com/pingcap/errors" "github.com/pingcap/tidb/pkg/config" "github.com/pingcap/tidb/pkg/ddl/placement" @@ -119,16 +118,6 @@ type userInfo struct { authString string } -// clearSysSession close the session does not return the session. -// Since the environment variables in the session are changed, the session object is not returned. -func clearSysSession(ctx context.Context, sctx sessionctx.Context) { - if sctx == nil { - return - } - _, _ = sctx.(sqlexec.SQLExecutor).ExecuteInternal(ctx, "rollback") - sctx.(pools.Resource).Close() -} - // Next implements the Executor Next interface. func (e *SimpleExec) Next(ctx context.Context, _ *chunk.Chunk) (err error) { if e.done { @@ -1718,10 +1707,10 @@ func (e *SimpleExec) executeAlterUser(ctx context.Context, s *ast.AlterUserStmt) } sysSession, err := e.GetSysSession() - defer clearSysSession(ctx, sysSession) if err != nil { return err } + defer e.ReleaseSysSession(ctx, sysSession) sqlExecutor := sysSession.(sqlexec.SQLExecutor) // session isolation level changed to READ-COMMITTED. // When tidb is at the RR isolation level, executing `begin` will obtain a consistent state. @@ -2439,10 +2428,10 @@ func userExistsInternal(ctx context.Context, sqlExecutor sqlexec.SQLExecutor, na func (e *SimpleExec) executeSetPwd(ctx context.Context, s *ast.SetPwdStmt) error { ctx = kv.WithInternalSourceType(ctx, kv.InternalTxnPrivilege) sysSession, err := e.GetSysSession() - defer clearSysSession(ctx, sysSession) if err != nil { return err } + defer e.ReleaseSysSession(ctx, sysSession) sqlExecutor := sysSession.(sqlexec.SQLExecutor) // session isolation level changed to READ-COMMITTED.