public void decrementDestructive() {
    if (this.negative) {
      if (this.mag.equals(SqlMathUtil.FULLBITS_32, SqlMathUtil.FULLBITS_32,
          SqlMathUtil.FULLBITS_32, SqlMathUtil.FULLBITS_31)) {
        SqlMathUtil.throwOverflowException();
      }
      this.mag.incrementDestructive();
      assert (this.mag.getV3() >= 0);
    } else {
      if (this.mag.isZero()) {
        this.negative = true;
        this.mag.incrementDestructive();
      } else {
        this.mag.decrementDestructive();
      }
    }
  }
Subtracts one from this value. This version is destructive, meaning it
modifies this object.
common/src/java/org/apache/hadoop/hive/common/type/SignedInt128.java