public static SqlDecimal of(String unscaledValue, int precision, int scale) { return new SqlDecimal(new BigInteger(unscaledValue), precision, scale); }
public static SqlDecimal of(String decimalValue) { BigDecimal bigDecimal = new BigDecimal(decimalValue); return new SqlDecimal(bigDecimal.unscaledValue(), bigDecimal.precision(), bigDecimal.scale()); }
private List<SqlDecimal> createDecimalValuesNoNull() { Random random = new Random(); List<SqlDecimal> values = new ArrayList<>(); for (int i = 0; i < ROWS; ++i) { values.add(new SqlDecimal(BigInteger.valueOf(random.nextLong() % 10000000000L), 10, 5)); } return values; } }
private List<SqlDecimal> createDecimalValues() { Random random = new Random(); List<SqlDecimal> values = new ArrayList<>(); for (int i = 0; i < 1000000; ++i) { values.add(new SqlDecimal(BigInteger.valueOf(random.nextLong() % 10000000000L), 10, 5)); } return values; } }
private static List<SqlDecimal> decimalSequence(String start, String step, int items, int precision, int scale) { BigInteger decimalStep = new BigInteger(step); List<SqlDecimal> values = new ArrayList<>(); BigInteger nextValue = new BigInteger(start); for (int i = 0; i < items; i++) { values.add(new SqlDecimal(nextValue, precision, scale)); nextValue = nextValue.add(decimalStep); } return values; } }
private static List<SqlDecimal> decimalSequence(String start, String step, int items, int precision, int scale) { BigInteger decimalStep = new BigInteger(step); List<SqlDecimal> values = new ArrayList<>(); BigInteger nextValue = new BigInteger(start); for (int i = 0; i < items; i++) { values.add(new SqlDecimal(nextValue, precision, scale)); nextValue = nextValue.add(decimalStep); } return values; }
private List<SqlDecimal> createDecimalValuesNoNull() { Random random = new Random(); List<SqlDecimal> values = new ArrayList<>(); for (int i = 0; i < ROWS; ++i) { values.add(new SqlDecimal(BigInteger.valueOf(random.nextLong() % 10000000000L), 10, 5)); } return values; } }
private static List<SqlDecimal> decimalSequence(String start, String step, int items, int precision, int scale) { BigInteger decimalStep = new BigInteger(step); List<SqlDecimal> values = new ArrayList<>(); BigInteger nextValue = new BigInteger(start); for (int i = 0; i < items; i++) { values.add(new SqlDecimal(nextValue, precision, scale)); nextValue = nextValue.add(decimalStep); } return values; }
private static List<SqlDecimal> decimalSequence(String start, String step, int items, int precision, int scale) { BigInteger decimalStep = new BigInteger(step); List<SqlDecimal> values = new ArrayList<>(); BigInteger nextValue = new BigInteger(start); for (int i = 0; i < items; i++) { values.add(new SqlDecimal(nextValue, precision, scale)); nextValue = nextValue.add(decimalStep); } return values; } }
private List<SqlDecimal> createDecimalValues() { Random random = new Random(); List<SqlDecimal> values = new ArrayList<>(); for (int i = 0; i < 1000000; ++i) { values.add(new SqlDecimal(BigInteger.valueOf(random.nextLong() % 10000000000L), 10, 5)); } return values; } }
@Override public Object getObjectValue(ConnectorSession session, Block block, int position) { if (block.isNull(position)) { return null; } long unscaledValue = block.getLong(position, 0); return new SqlDecimal(BigInteger.valueOf(unscaledValue), getPrecision(), getScale()); }
@Override public SqlDecimal getExpectedValue(int start, int length) { if (length == 0) { return null; } BigDecimal sum = BigDecimal.ZERO; for (int i = start; i < start + length; i++) { sum = sum.add(getBigDecimalForCounter(i)); } return new SqlDecimal(sum.unscaledValue(), sum.precision(), sum.scale()); }
@Override public SqlDecimal getExpectedValue(int start, int length) { if (length == 0) { return null; } BigDecimal sum = BigDecimal.ZERO; for (int i = start; i < start + length; i++) { sum = sum.add(getBigDecimalForCounter(i)); } return new SqlDecimal(sum.unscaledValue(), sum.precision(), sum.scale()); }
@Override public SqlDecimal getExpectedValue(int start, int length) { if (length == 0) { return null; } BigDecimal avg = BigDecimal.ZERO; for (int i = start; i < start + length; i++) { avg = avg.add(getBigDecimalForCounter(i)); } avg = avg.divide(BigDecimal.valueOf(length), ROUND_HALF_UP); return new SqlDecimal(avg.unscaledValue(), avg.precision(), avg.scale()); }
private void assertExecute(List<String> expressions, BigDecimal decimal) { Type type = getDecimalType(decimal); SqlDecimal value = decimal == null ? null : new SqlDecimal(decimal.unscaledValue(), decimal.precision(), decimal.scale()); for (String expression : expressions) { assertExecute(expression, type, value); } }
private void assertExecute(List<String> expressions, BigDecimal decimal) { Type type = getDecimalType(decimal); SqlDecimal value = decimal == null ? null : new SqlDecimal(decimal.unscaledValue(), decimal.precision(), decimal.scale()); for (String expression : expressions) { assertExecute(expression, type, value); } }
private SqlDecimal randomDecimal(DecimalType type) { int maxBits = (int) (Math.log(Math.pow(10, type.getPrecision())) / Math.log(2)); BigInteger bigInteger = new BigInteger(maxBits, random); if (bigInteger.equals(ZERO)) { bigInteger = ONE; } if (random.nextBoolean()) { bigInteger = bigInteger.negate(); } return new SqlDecimal(bigInteger, type.getPrecision(), type.getScale()); } }
@Override public Object getObjectValue(ConnectorSession session, Block block, int position) { if (block.isNull(position)) { return null; } Slice slice = block.getSlice(position, 0, getFixedSize()); return new SqlDecimal(decodeUnscaledValue(slice), getPrecision(), getScale()); }
protected static SqlDecimal decimal(String decimalString) { DecimalParseResult parseResult = Decimals.parseIncludeLeadingZerosInPrecision(decimalString); BigInteger unscaledValue; if (parseResult.getType().isShort()) { unscaledValue = BigInteger.valueOf((Long) parseResult.getObject()); } else { unscaledValue = Decimals.decodeUnscaledValue((Slice) parseResult.getObject()); } return new SqlDecimal(unscaledValue, parseResult.getType().getPrecision(), parseResult.getType().getScale()); }
protected static SqlDecimal decimal(String decimalString) { DecimalParseResult parseResult = Decimals.parseIncludeLeadingZerosInPrecision(decimalString); BigInteger unscaledValue; if (parseResult.getType().isShort()) { unscaledValue = BigInteger.valueOf((Long) parseResult.getObject()); } else { unscaledValue = Decimals.decodeUnscaledValue((Slice) parseResult.getObject()); } return new SqlDecimal(unscaledValue, parseResult.getType().getPrecision(), parseResult.getType().getScale()); }