code: func (e *ExplainExec) Next(ctx context.Context, req *chunk.RecordBatch) error {
  	if e.rows == nil {
  		var err error
  		e.rows, err = e.generateExplainInfo(ctx)
  		if err != nil {
  			return err
  		}
  	}
  
  	req.GrowAndReset(e.maxChunkSize)
  	if e.cursor >= len(e.rows) {
  		return nil
  	}
  
  	numCurRows := mathutil.Min(req.Capacity(), len(e.rows)-e.cursor)
  	for i := e.cursor; i < e.cursor+numCurRows; i++ {
  		for j := range e.rows[i] {
  			req.AppendString(j, e.rows[i][j])
  		}
  	}
  	e.cursor += numCurRows
  	return nil
  }
docs: // Next implements the Executor Next interface.