code: func (b *executorBuilder) buildExplain(v *plannercore.Explain) Executor {
  	explainExec := &ExplainExec{
  		baseExecutor: newBaseExecutor(b.ctx, v.Schema(), v.ExplainID()),
  		explain:      v,
  	}
  	if v.Analyze {
  		b.ctx.GetSessionVars().StmtCtx.RuntimeStatsColl = execdetails.NewRuntimeStatsColl()
  		explainExec.analyzeExec = b.build(v.ExecPlan)
  	}
  	return explainExec
  }
docs: // buildExplain builds a explain executor. `e.rows` collects final result to `ExplainExec`.