/** * Get a HiveDecimal instance from the writable and constraint it with maximum precision/scale. * <p> * @param maxPrecision maximum precision * @param maxScale maximum scale * @return HiveDecimal instance */ @HiveDecimalWritableVersionV1 public HiveDecimal getHiveDecimal(int maxPrecision, int maxScale) { if (!isSet) { return null; } HiveDecimal dec = HiveDecimal.createFromFast(this); HiveDecimal result = HiveDecimal.enforcePrecisionScale(dec, maxPrecision, maxScale); return result; }
public static HiveDecimal enforcePrecisionScale(HiveDecimal dec, DecimalTypeInfo typeInfo) { return HiveDecimal.enforcePrecisionScale(dec, typeInfo.precision(), typeInfo.scale()); }
public static HiveDecimal getRandHiveDecimal(Random r, DecimalTypeInfo decimalTypeInfo) { while (true) { final StringBuilder sb = new StringBuilder(); final int precision = 1 + r.nextInt(18); final int scale = 0 + r.nextInt(precision + 1); final int integerDigits = precision - scale; if (r.nextBoolean()) { sb.append("-"); } if (integerDigits == 0) { sb.append("0"); } else { sb.append(RandomTypeUtil.getRandString(r, DECIMAL_CHARS, integerDigits)); } if (scale != 0) { sb.append("."); sb.append(RandomTypeUtil.getRandString(r, DECIMAL_CHARS, scale)); } HiveDecimal dec = HiveDecimal.create(sb.toString()); dec = HiveDecimal.enforcePrecisionScale( dec, decimalTypeInfo.getPrecision(), decimalTypeInfo.getScale()); if (dec != null) { return dec; } } }
HiveDecimal hiveDecimal = r.vector[i].getHiveDecimal(); HiveDecimal expectedHiveDecimal = hiveDecimalValues[i]; if (HiveDecimal.enforcePrecisionScale(expectedHiveDecimal, 5, 2) == null) { assertTrue(r.isNull[i]); } else {
public void set(int elementNum, HiveDecimal hiveDec) { HiveDecimal checkedDec = HiveDecimal.enforcePrecisionScale(hiveDec, precision, scale); if (checkedDec == null) { noNulls = false; isNull[elementNum] = true; } else { vector[elementNum].set(checkedDec); } }
public static HiveDecimal enforcePrecisionScale(HiveDecimal dec, int maxPrecision, int maxScale) { if (dec == null) { return null; } BigDecimal bd = enforcePrecisionScale(dec.bd, maxPrecision, maxScale); if (bd == null) { return null; } return HiveDecimal.create(bd); } }
public void set(HiveDecimal value, int maxPrecision, int maxScale) { set(HiveDecimal.enforcePrecisionScale(value, maxPrecision, maxScale)); }
public void set(HiveDecimal value, int maxPrecision, int maxScale) { set(HiveDecimal.enforcePrecisionScale(value, maxPrecision, maxScale)); }
public void set(HiveDecimal value, int maxPrecision, int maxScale) { set(HiveDecimal.enforcePrecisionScale(value, maxPrecision, maxScale)); }
public static HiveDecimal enforcePrecisionScale(HiveDecimal dec, DecimalTypeInfo typeInfo) { return HiveDecimal.enforcePrecisionScale(dec, typeInfo.precision(), typeInfo.scale()); }
/** * Get a HiveDecimal instance from the writable and constraint it with maximum precision/scale. * <p> * @param maxPrecision maximum precision * @param maxScale maximum scale * @return HiveDecimal instance */ @HiveDecimalWritableVersionV1 public HiveDecimal getHiveDecimal(int maxPrecision, int maxScale) { if (!isSet) { return null; } HiveDecimal dec = HiveDecimal.createFromFast(this); HiveDecimal result = HiveDecimal.enforcePrecisionScale(dec, maxPrecision, maxScale); return result; }
public static HiveDecimal enforcePrecisionScale(HiveDecimal dec,int maxPrecision, int maxScale) { if (dec == null) { return null; } // Minor optimization, avoiding creating new objects. if (dec.precision() - dec.scale() <= maxPrecision - maxScale && dec.scale() <= maxScale) { return dec; } BigDecimal bd = HiveDecimal.enforcePrecisionScale(dec.bigDecimalValue(), maxPrecision, maxScale); if (bd == null) { return null; } return HiveDecimal.create(bd); }
public static HiveDecimal enforcePrecisionScale(HiveDecimal dec,int maxPrecision, int maxScale) { if (dec == null) { return null; } // Minor optimization, avoiding creating new objects. if (dec.precision() - dec.scale() <= maxPrecision - maxScale && dec.scale() <= maxScale) { return dec; } BigDecimal bd = HiveDecimal.enforcePrecisionScale(dec.bigDecimalValue(), maxPrecision, maxScale); if (bd == null) { return null; } return HiveDecimal.create(bd); }
public static HiveDecimal enforcePrecisionScale(HiveDecimal dec,int maxPrecision, int maxScale) { if (dec == null) { return null; } // Minor optimization, avoiding creating new objects. if (dec.precision() - dec.scale() <= maxPrecision - maxScale && dec.scale() <= maxScale) { return dec; } BigDecimal bd = HiveDecimal.enforcePrecisionScale(dec.bigDecimalValue(), maxPrecision, maxScale); if (bd == null) { return null; } return HiveDecimal.create(bd); }