diff --git a/util/stmtsummary/BUILD.bazel b/util/stmtsummary/BUILD.bazel index 121d09caa6825..7c85e57d52aee 100644 --- a/util/stmtsummary/BUILD.bazel +++ b/util/stmtsummary/BUILD.bazel @@ -23,6 +23,7 @@ go_library( "//util/set", "@com_github_pingcap_failpoint//:failpoint", "@com_github_tikv_client_go_v2//util", + "@org_golang_x_exp//maps", "@org_golang_x_exp//slices", "@org_uber_go_atomic//:atomic", "@org_uber_go_zap//:zap", diff --git a/util/stmtsummary/statement_summary.go b/util/stmtsummary/statement_summary.go index 4db62bdb7c048..09dd9a57fa3a6 100644 --- a/util/stmtsummary/statement_summary.go +++ b/util/stmtsummary/statement_summary.go @@ -33,6 +33,7 @@ import ( "github.com/pingcap/tidb/util/plancodec" "github.com/tikv/client-go/v2/util" atomic2 "go.uber.org/atomic" + "golang.org/x/exp/maps" "golang.org/x/exp/slices" ) @@ -403,8 +404,9 @@ func (ssMap *stmtSummaryByDigestMap) GetMoreThanCntBindableStmt(cnt int64) []*Bi PlanHint: ssElement.planHint, Charset: ssElement.charset, Collation: ssElement.collation, - Users: ssElement.authUsers, + Users: make(map[string]struct{}), } + maps.Copy(stmt.Users, ssElement.authUsers) // If it is SQL command prepare / execute, the ssElement.sampleSQL is `execute ...`, we should get the original select query. // If it is binary protocol prepare / execute, ssbd.normalizedSQL should be same as ssElement.sampleSQL. if ssElement.prepared {