code: func (e *MaxOneRowExec) Next(ctx context.Context, req *chunk.RecordBatch) error {
  	if span := opentracing.SpanFromContext(ctx); span != nil && span.Tracer() != nil {
  		span1 := span.Tracer().StartSpan("maxOneRow.Next", opentracing.ChildOf(span.Context()))
  		defer span1.Finish()
  	}
  	if e.runtimeStats != nil {
  		start := time.Now()
  		defer func() { e.runtimeStats.Record(time.Since(start), req.NumRows()) }()
  	}
  	req.Reset()
  	if e.evaluated {
  		return nil
  	}
  	e.evaluated = true
  	err := e.children[0].Next(ctx, req)
  	if err != nil {
  		return err
  	}
  
  	if num := req.NumRows(); num == 0 {
  		for i := range e.schema.Columns {
  			req.AppendNull(i)
  		}
  		return nil
  	} else if num != 1 {
  		return errors.New("subquery returns more than 1 row")
  	}
  
  	childChunk := e.children[0].newFirstChunk()
  	err = e.children[0].Next(ctx, chunk.NewRecordBatch(childChunk))
  	if err != nil {
  		return err
  	}
  	if childChunk.NumRows() != 0 {
  		return errors.New("subquery returns more than 1 row")
  	}
  
  	return nil
  }
docs: // Next implements the Executor Next interface.