code: func (e *ShowDDLJobsExec) Next(ctx context.Context, req *chunk.RecordBatch) error {
  	req.GrowAndReset(e.maxChunkSize)
  	if e.cursor >= len(e.jobs) {
  		return nil
  	}
  	numCurBatch := mathutil.Min(req.Capacity(), len(e.jobs)-e.cursor)
  	for i := e.cursor; i < e.cursor+numCurBatch; i++ {
  		req.AppendInt64(0, e.jobs[i].ID)
  		req.AppendString(1, getSchemaName(e.is, e.jobs[i].SchemaID))
  		req.AppendString(2, getTableName(e.is, e.jobs[i].TableID))
  		req.AppendString(3, e.jobs[i].Type.String())
  		req.AppendString(4, e.jobs[i].SchemaState.String())
  		req.AppendInt64(5, e.jobs[i].SchemaID)
  		req.AppendInt64(6, e.jobs[i].TableID)
  		req.AppendInt64(7, e.jobs[i].RowCount)
  		req.AppendString(8, model.TSConvert2Time(e.jobs[i].StartTS).String())
  		req.AppendString(9, e.jobs[i].State.String())
  	}
  	e.cursor += numCurBatch
  	return nil
  }
docs: // Next implements the Executor Next interface.