code: func (b *builtinMakeDateSig) evalTime(row chunk.Row) (d types.Time, isNull bool, err error) {
  	args := b.getArgs()
  	var year, dayOfYear int64
  	year, isNull, err = args[0].EvalInt(b.ctx, row)
  	if isNull || err != nil {
  		return d, true, err
  	}
  	dayOfYear, isNull, err = args[1].EvalInt(b.ctx, row)
  	if isNull || err != nil {
  		return d, true, err
  	}
  	if dayOfYear <= 0 || year < 0 || year > 9999 {
  		return d, true, nil
  	}
  	if year < 70 {
  		year += 2000
  	} else if year < 100 {
  		year += 1900
  	}
  	startTime := types.Time{
  		Time: types.FromDate(int(year), 1, 1, 0, 0, 0, 0),
  		Type: mysql.TypeDate,
  		Fsp:  0,
  	}
  	retTimestamp := types.TimestampDiff("DAY", types.ZeroDate, startTime)
  	if retTimestamp == 0 {
  		return d, true, handleInvalidTimeError(b.ctx, types.ErrIncorrectDatetimeValue.GenWithStackByArgs(startTime.String()))
  	}
  	ret := types.TimeFromDays(retTimestamp + dayOfYear - 1)
  	if ret.IsZero() || ret.Time.Year() > 9999 {
  		return d, true, nil
  	}
  	return ret, false, nil
  }
docs: // evalTime evaluates a builtinMakeDateSig.
  // See https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_makedate