public void multiplyDestructive(int right) {
    if (right == 0) {
      zeroClear();
      return;
    } else if (right == 1) {
      return;
    }

    long sum = 0L;
    long rightUnsigned = right & SqlMathUtil.LONG_MASK;
    for (int i = 0; i < INT_COUNT; ++i) {
      sum = (this.v[i] & SqlMathUtil.LONG_MASK) * rightUnsigned + (sum >>> 32);
      this.v[i] = (int) sum;
    }
    updateCount();

    if ((sum >> 32) != 0) {
      SqlMathUtil.throwOverflowException();
    }
  }
Multiplies this value with the given integer value. This version is
destructive, meaning it modifies this object.

@param right
         the value to multiply
common/src/java/org/apache/hadoop/hive/common/type/UnsignedInt128.java