private void fillDecimalPrecisionScale(DecimalLogicalTypeAnnotation decimalLogicalType,
      DecimalColumnVector decimalColumnVector) {
    if (decimalLogicalType != null) {
      decimalColumnVector.precision = (short) decimalLogicalType.getPrecision();
      decimalColumnVector.scale = (short) decimalLogicalType.getScale();
    } else if (TypeInfoUtils.getBaseName(hiveType.getTypeName())
        .equalsIgnoreCase(serdeConstants.DECIMAL_TYPE_NAME)) {
      decimalColumnVector.precision = (short) ((DecimalTypeInfo) hiveType).getPrecision();
      decimalColumnVector.scale = (short) ((DecimalTypeInfo) hiveType).getScale();
    } else {
      throw new UnsupportedOperationException(
          "The underlying Parquet type cannot be converted to Hive Decimal type: " + type);
    }
  }
The decimal precision and scale is filled into decimalColumnVector.  If the data in
Parquet is in decimal, the precision and scale will come in from decimalLogicalType.  If parquet
is not in decimal, then this call is made because HMS shows the type as decimal.  So, the
precision and scale are picked from hiveType.

@param decimalLogicalType
@param decimalColumnVector
ql/src/java/org/apache/hadoop/hive/ql/io/parquet/vector/VectorizedPrimitiveColumnReader.java