@HiveDecimalVersionV1
  public static HiveDecimal create(BigInteger bigInteger, int scale) {
    HiveDecimal result = new HiveDecimal();
    if (!result.fastSetFromBigIntegerAndScale(
        bigInteger, scale)) {
      return null;
    }
    return result;
  }
Creates a HiveDecimal from a BigInteger's value with a specified scale.

We will have overflow if BigInteger exceed MAX_PRECISION digits or
99,999,999,999,999,999,999,999,999,999,999,999,999 or 10^38 - 1.

The resulting decimal will have fractional digits when the specified scale is greater than 0.

When the BigInteger's value's precision exceeds MAX_PRECISION and there are fractional digits
because of scale &gt; 0, then lower digits are trimmed off with rounding to meet the
MAX_PRECISION requirement.

@param bigInteger the value to set
@param scale the scale to set
@return  A HiveDecimal object with the BigInteger's value adjusted for scale.
         Otherwise, null is returned on overflow.
storage-api/src/java/org/apache/hadoop/hive/common/type/HiveDecimal.java