Skip to content

Commit

Permalink
executor: inherit memory quota from user session for admin check (#49260
Browse files Browse the repository at this point in the history
)

close #49258
  • Loading branch information
tangenta authored Dec 7, 2023
1 parent 5db7c6a commit 4dabd69
Showing 1 changed file with 15 additions and 2 deletions.
17 changes: 15 additions & 2 deletions pkg/executor/executor.go
Original file line number Diff line number Diff line change
Expand Up @@ -2359,6 +2359,19 @@ func getCheckSum(ctx context.Context, se sessionctx.Context, sql string) ([]grou
return checksums, nil
}

func (w *checkIndexWorker) initSessCtx(se sessionctx.Context) (restore func()) {
sessVars := se.GetSessionVars()
originOptUseInvisibleIdx := sessVars.OptimizerUseInvisibleIndexes
originMemQuotaQuery := sessVars.MemQuotaQuery

sessVars.OptimizerUseInvisibleIndexes = true
sessVars.MemQuotaQuery = w.sctx.GetSessionVars().MemQuotaQuery
return func() {
sessVars.OptimizerUseInvisibleIndexes = originOptUseInvisibleIdx
sessVars.MemQuotaQuery = originMemQuotaQuery
}
}

// HandleTask implements the Worker interface.
func (w *checkIndexWorker) HandleTask(task checkIndexTask, _ func(workerpool.None)) {
defer w.e.wg.Done()
Expand All @@ -2376,9 +2389,9 @@ func (w *checkIndexWorker) HandleTask(task checkIndexTask, _ func(workerpool.Non
trySaveErr(err)
return
}
se.GetSessionVars().OptimizerUseInvisibleIndexes = true
restoreCtx := w.initSessCtx(se)
defer func() {
se.GetSessionVars().OptimizerUseInvisibleIndexes = false
restoreCtx()
w.e.Base().ReleaseSysSession(ctx, se)
}()

Expand Down

0 comments on commit 4dabd69

Please sign in to comment.