public void subtractDestructive(SignedInt128 right) {
    if (this.negative != right.negative) {
      this.mag.addDestructive(right.mag);
      if (this.mag.getV3() < 0) {
        SqlMathUtil.throwOverflowException();
      }
      return;
    }

    byte signum = UnsignedInt128.difference(this.mag, right.mag, this.mag);
    this.negative = (signum > 0 ? this.negative : !this.negative);
  }
Calculates subtraction and stores the result into this object. This method
is destructive.

@param right
         right operand
common/src/java/org/apache/hadoop/hive/common/type/SignedInt128.java