code: func MulInteger(a uint64, b int64) (uint64, error) {
  	if a == 0 || b == 0 {
  		return 0, nil
  	}
  
  	if b < 0 {
  		return 0, ErrOverflow.GenWithStackByArgs("BIGINT UNSIGNED", fmt.Sprintf("(%d, %d)", a, b))
  	}
  
  	return MulUint64(a, uint64(b))
  }
docs: // MulInteger multiplies uint64 a and int64 b, and returns uint64 if no overflow error.