public static SqlDecimal of(long unscaledValue, int precision, int scale) { return new SqlDecimal(BigInteger.valueOf(unscaledValue), precision, scale); }
public static Object getJsonObjectValue(Type valueType, ConnectorSession session, Block block, int position) { Object objectValue = valueType.getObjectValue(session, block, position); if (objectValue instanceof SqlDecimal) { objectValue = ((SqlDecimal) objectValue).toBigDecimal(); } return objectValue; } }
protected void assertDecimalFunction(String statement, SqlDecimal expectedResult) { assertFunction( statement, createDecimalType(expectedResult.getPrecision(), expectedResult.getScale()), expectedResult); }
@Test public void testToString() { assertEquals(new SqlDecimal(new BigInteger("0"), 2, 1).toString(), "0.0"); assertEquals(new SqlDecimal(new BigInteger("0"), 3, 2).toString(), "0.00"); assertEquals(new SqlDecimal(new BigInteger("0"), 6, 5).toString(), "0.00000"); assertEquals(new SqlDecimal(new BigInteger("0"), 10, 5).toString(), "0.00000"); assertEquals(new SqlDecimal(new BigInteger("1"), 2, 1).toString(), "0.1"); assertEquals(new SqlDecimal(new BigInteger("0"), 3, 3).toString(), "0.000"); assertEquals(new SqlDecimal(new BigInteger("1"), 1, 0).toString(), "1"); assertEquals(new SqlDecimal(new BigInteger("1000"), 4, 3).toString(), "1.000"); assertEquals(new SqlDecimal(new BigInteger("12345678901234567890123456789012345678"), 38, 20) .toString(), "123456789012345678.90123456789012345678"); assertEquals(new SqlDecimal(new BigInteger("-10"), 2, 1).toString(), "-1.0"); assertEquals(new SqlDecimal(new BigInteger("-100"), 3, 2).toString(), "-1.00"); assertEquals(new SqlDecimal(new BigInteger("-100000"), 6, 5).toString(), "-1.00000"); assertEquals(new SqlDecimal(new BigInteger("-100000"), 10, 5).toString(), "-1.00000"); assertEquals(new SqlDecimal(new BigInteger("-1"), 2, 1).toString(), "-0.1"); assertEquals(new SqlDecimal(new BigInteger("-1"), 3, 3).toString(), "-0.001"); assertEquals(new SqlDecimal(new BigInteger("-1"), 1, 0).toString(), "-1"); assertEquals(new SqlDecimal(new BigInteger("-1000"), 4, 3).toString(), "-1.000"); assertEquals(new SqlDecimal(new BigInteger("-12345678901234567890123456789012345678"), 38, 20) .toString(), "-123456789012345678.90123456789012345678"); } }
@Override public SqlDecimal getExpectedValue(int start, int length) { if (length == 0) { return null; } return SqlDecimal.of(start, 30, 5); }
type.writeLong(blockBuilder, ((SqlDecimal) element).getUnscaledValue().longValue()); type.writeSlice(blockBuilder, Decimals.encodeUnscaledValue(((SqlDecimal) element).getUnscaledValue()));
@Test public void testToString() { assertEquals(new SqlDecimal(new BigInteger("0"), 2, 1).toString(), "0.0"); assertEquals(new SqlDecimal(new BigInteger("0"), 3, 2).toString(), "0.00"); assertEquals(new SqlDecimal(new BigInteger("0"), 6, 5).toString(), "0.00000"); assertEquals(new SqlDecimal(new BigInteger("0"), 10, 5).toString(), "0.00000"); assertEquals(new SqlDecimal(new BigInteger("1"), 2, 1).toString(), "0.1"); assertEquals(new SqlDecimal(new BigInteger("0"), 3, 3).toString(), "0.000"); assertEquals(new SqlDecimal(new BigInteger("1"), 1, 0).toString(), "1"); assertEquals(new SqlDecimal(new BigInteger("1000"), 4, 3).toString(), "1.000"); assertEquals(new SqlDecimal(new BigInteger("12345678901234567890123456789012345678"), 38, 20) .toString(), "123456789012345678.90123456789012345678"); assertEquals(new SqlDecimal(new BigInteger("-10"), 2, 1).toString(), "-1.0"); assertEquals(new SqlDecimal(new BigInteger("-100"), 3, 2).toString(), "-1.00"); assertEquals(new SqlDecimal(new BigInteger("-100000"), 6, 5).toString(), "-1.00000"); assertEquals(new SqlDecimal(new BigInteger("-100000"), 10, 5).toString(), "-1.00000"); assertEquals(new SqlDecimal(new BigInteger("-1"), 2, 1).toString(), "-0.1"); assertEquals(new SqlDecimal(new BigInteger("-1"), 3, 3).toString(), "-0.001"); assertEquals(new SqlDecimal(new BigInteger("-1"), 1, 0).toString(), "-1"); assertEquals(new SqlDecimal(new BigInteger("-1000"), 4, 3).toString(), "-1.000"); assertEquals(new SqlDecimal(new BigInteger("-12345678901234567890123456789012345678"), 38, 20) .toString(), "-123456789012345678.90123456789012345678"); } }
@Override public SqlDecimal getExpectedValue(int start, int length) { if (length == 0) { return null; } return SqlDecimal.of(start + length - 1, 30, 5); }
type.writeLong(blockBuilder, ((SqlDecimal) element).getUnscaledValue().longValue()); type.writeSlice(blockBuilder, Decimals.encodeUnscaledValue(((SqlDecimal) element).getUnscaledValue()));
public static SqlDecimal of(String unscaledValue, int precision, int scale) { return new SqlDecimal(new BigInteger(unscaledValue), precision, scale); }
public static Object getJsonObjectValue(Type valueType, ConnectorSession session, Block block, int position) { Object objectValue = valueType.getObjectValue(session, block, position); if (objectValue instanceof SqlDecimal) { objectValue = ((SqlDecimal) objectValue).toBigDecimal(); } return objectValue; } }
@Override public SqlDecimal getExpectedValue(int start, int length) { if (length == 0) { return null; } return SqlDecimal.of(start, 30, 5); }
protected void assertDecimalFunction(String statement, SqlDecimal expectedResult) { assertFunction( statement, createDecimalType(expectedResult.getPrecision(), expectedResult.getScale()), expectedResult); }
public static SqlDecimal of(String decimalValue) { BigDecimal bigDecimal = new BigDecimal(decimalValue); return new SqlDecimal(bigDecimal.unscaledValue(), bigDecimal.precision(), bigDecimal.scale()); }
private static Optional<BigDecimal> getDecimalValue(ConnectorSession session, Type type, Block block) { return block.isNull(0) ? Optional.empty() : Optional.of(((SqlDecimal) type.getObjectValue(session, block, 0)).toBigDecimal()); }
@Override public SqlDecimal getExpectedValue(int start, int length) { if (length == 0) { return null; } return SqlDecimal.of(start + length - 1, 10, 5); }
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; } }
convertedValue = ((SqlDecimal) prestoValue).toBigDecimal();
@Override public SqlDecimal getExpectedValue(int start, int length) { if (length == 0) { return null; } return SqlDecimal.of(start, 10, 5); }
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; }