public Decimal128 update(int[] array, int offset, int precision) {
    int scaleAndSignum = array[offset];
    this.scale = (short) (scaleAndSignum >> 16);
    this.signum = (byte) (scaleAndSignum & 0xFF);
    this.unscaledValue.update(array, offset + 1, precision);
    return this;
  }
Updates the value of this object by reading from the given array, using the
required number of ints for the given precision.

@param array
         array to read values from
@param offset
         offset of the long array
@param precision
         0 to 38. Decimal digits.
common/src/java/org/apache/hadoop/hive/common/type/Decimal128.java