code: func (e *ShowSlowExec) Next(ctx context.Context, req *chunk.RecordBatch) error {
  	req.Reset()
  	if e.cursor >= len(e.result) {
  		return nil
  	}
  
  	for e.cursor < len(e.result) && req.NumRows() < e.maxChunkSize {
  		slow := e.result[e.cursor]
  		req.AppendString(0, slow.SQL)
  		req.AppendTime(1, types.Time{
  			Time: types.FromGoTime(slow.Start),
  			Type: mysql.TypeTimestamp,
  			Fsp:  types.MaxFsp,
  		})
  		req.AppendDuration(2, types.Duration{Duration: slow.Duration, Fsp: types.MaxFsp})
  		req.AppendString(3, slow.Detail.String())
  		if slow.Succ {
  			req.AppendInt64(4, 1)
  		} else {
  			req.AppendInt64(4, 0)
  		}
  		req.AppendUint64(5, slow.ConnID)
  		req.AppendUint64(6, slow.TxnTS)
  		req.AppendString(7, slow.User)
  		req.AppendString(8, slow.DB)
  		req.AppendString(9, slow.TableIDs)
  		req.AppendString(10, slow.IndexIDs)
  		if slow.Internal {
  			req.AppendInt64(11, 0)
  		} else {
  			req.AppendInt64(11, 1)
  		}
  		req.AppendString(12, slow.Digest)
  		e.cursor++
  	}
  	return nil
  }
docs: // Next implements the Executor Next interface.