code: func (a *ExecStmt) RebuildPlan() (int64, error) {
  	is := GetInfoSchema(a.Ctx)
  	a.InfoSchema = is
  	if err := plannercore.Preprocess(a.Ctx, a.StmtNode, is, plannercore.InTxnRetry); err != nil {
  		return 0, err
  	}
  	p, err := planner.Optimize(a.Ctx, a.StmtNode, is)
  	if err != nil {
  		return 0, err
  	}
  	a.Plan = p
  	return is.SchemaMetaVersion(), nil
  }
docs: // RebuildPlan rebuilds current execute statement plan.
  // It returns the current information schema version that 'a' is using.