@HiveDecimalVersionV1
  public static HiveDecimal create(BigDecimal bigDecimal) {
    return create(bigDecimal, true);
  }
Create a HiveDecimal from BigDecimal object.

A BigDecimal object has a decimal scale.

We will have overflow if BigDecimal's integer part exceed MAX_PRECISION digits or
99,999,999,999,999,999,999,999,999,999,999,999,999 or 10^38 - 1.

When the BigDecimal 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.

Also, BigDecimal supports negative scale -- which means multiplying the value by 10^abs(scale).
And, BigDecimal allows for a non-zero scale for zero.  We normalize that so zero always has
scale 0.

@param bigDecimal the value to set
@return  The HiveDecimal with the BigDecimal's value adjusted down to a maximum precision.
         Otherwise, null is returned for overflow.
storage-api/src/java/org/apache/hadoop/hive/common/type/HiveDecimal.java