code: func (b *builtinFloorIntToDecSig) evalDecimal(row chunk.Row) (*types.MyDecimal, bool, error) {
  	val, isNull, err := b.args[0].EvalInt(b.ctx, row)
  	if isNull || err != nil {
  		return nil, true, err
  	}
  
  	if mysql.HasUnsignedFlag(b.args[0].GetType().Flag) || val >= 0 {
  		return types.NewDecFromUint(uint64(val)), false, nil
  	}
  	return types.NewDecFromInt(val), false, nil
  }
docs: // evalDecimal evals a builtinFloorIntToDecSig.
  // See https://dev.mysql.com/doc/refman/5.7/en/mathematical-functions.html#function_floor