code: func (s *session) ExecRestrictedSQL(sctx sessionctx.Context, sql string) ([]chunk.Row, []*ast.ResultField, error) {
  	ctx := context.TODO()
  
  	// Use special session to execute the sql.
  	tmp, err := s.sysSessionPool().Get()
  	if err != nil {
  		return nil, nil, err
  	}
  	se := tmp.(*session)
  	defer s.sysSessionPool().Put(tmp)
  	metrics.SessionRestrictedSQLCounter.Inc()
  
  	return execRestrictedSQL(ctx, se, sql)
  }
docs: // ExecRestrictedSQL implements RestrictedSQLExecutor interface.
  // This is used for executing some restricted sql statements, usually executed during a normal statement execution.
  // Unlike normal Exec, it doesn't reset statement status, doesn't commit or rollback the current transaction
  // and doesn't write binlog.