code: func (b *builtinPeriodAddSig) evalInt(row chunk.Row) (int64, bool, error) {
  	p, isNull, err := b.args[0].EvalInt(b.ctx, row)
  	if isNull || err != nil {
  		return 0, true, err
  	}
  
  	if p == 0 {
  		return 0, false, nil
  	}
  
  	n, isNull, err := b.args[1].EvalInt(b.ctx, row)
  	if isNull || err != nil {
  		return 0, true, err
  	}
  
  	sumMonth := int64(period2Month(uint64(p))) + n
  	return int64(month2Period(uint64(sumMonth))), false, nil
  }
docs: // evalInt evals PERIOD_ADD(P,N).
  // See https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_period-add