refactor(sync): double precision类型映射改为double
This commit is contained in:
@@ -48,9 +48,9 @@ public class TypeConverterV2 implements TypeConverter {
|
||||
private static final Pattern LONG_REGEX = Pattern.compile("^((int|bigint) unsigned)|((bigint|serial|long)(\\(\\d+\\))?)$");
|
||||
private static final Pattern DATE_REGEX = Pattern.compile("^date|timestamp|timestamp without time zone|datetime|time$");
|
||||
private static final Pattern FLOAT_REGEX = Pattern.compile("^float(\\(\\d+\\))?$");
|
||||
private static final Pattern DOUBLE_REGEX = Pattern.compile("^double(\\(\\d+\\))?$");
|
||||
private static final Pattern DOUBLE_REGEX = Pattern.compile("^(double precision)|double(\\(\\d+\\))?$");
|
||||
private static final Pattern FIXED_REGEX = Pattern.compile("^(number|money|bigserial)(\\(\\d+\\))?$");
|
||||
private static final Pattern DECIMAL_REGEX = Pattern.compile("^(double precision)|(decimal(\\(\\s*\\d+\\s*(,\\s*\\d+\\s*)?\\))?)$");
|
||||
private static final Pattern DECIMAL_REGEX = Pattern.compile("^(decimal(\\(\\s*\\d+\\s*(,\\s*\\d+\\s*)?\\))?)$");
|
||||
private static final Pattern NUMERIC_REGEX = Pattern.compile("^numeric(\\(\\s*\\d+\\s*(,\\s*\\d+\\s*)?\\))?$");
|
||||
private static final Pattern STRING_REGEX = Pattern.compile("^(character varying|(long|medium)text)|((varchar|char|text|clob|binary|bit)(\\(\\d+\\))?)$");
|
||||
private static final Pattern YYYYMMDD = Pattern.compile("\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}");
|
||||
|
||||
@@ -54,6 +54,7 @@ public class TypeConvertTest {
|
||||
// double
|
||||
assertEquals(NULLABLE_DOUBLE_SCHEMA, convertType.exec("test", "test", "double", 0L, null));
|
||||
assertEquals(NULLABLE_DOUBLE_SCHEMA, convertType.exec("test", "test", "Double", 0L, null));
|
||||
assertEquals(NULLABLE_DOUBLE_SCHEMA, convertType.exec("test", "test", "double precision", 6L, null));
|
||||
|
||||
// date
|
||||
assertEquals(NULLABLE_STRING_SCHEMA, convertType.exec("test", "test", "date", 0L, null));
|
||||
@@ -80,51 +81,50 @@ public class TypeConvertTest {
|
||||
assertEquals(NULLABLE_DECIMAL_SCHEMA("test", 6, 3), convertType.exec("test", "test", "decimal(6,3)", 6L, 3));
|
||||
assertEquals(NULLABLE_DECIMAL_SCHEMA("test", 6, 6), convertType.exec("test", "test", "decimal(6)", 6L, null));
|
||||
assertEquals(NULLABLE_DECIMAL_SCHEMA("test", 6, 6), convertType.exec("test", "test", "decimal", 6L, null));
|
||||
assertEquals(NULLABLE_DECIMAL_SCHEMA("test", 6, 6), convertType.exec("test", "test", "double precision", 6L, null));
|
||||
assertEquals(NULLABLE_DECIMAL_SCHEMA("test", 2, 1), convertType.exec("test", "test", "numeric(2,1)", 2L, 1));
|
||||
assertEquals(NULLABLE_DECIMAL_SCHEMA("test", 2, 1), convertType.exec("test", "test", "numeric", 2L, 1));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testConvertValue() throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {
|
||||
Executor convertValue = new Executor("covertValue", Schema.class, Object.class);
|
||||
Executor convertValue = new Executor("covertValue", Schema.class, String.class, Object.class);
|
||||
|
||||
// null
|
||||
assertNull(convertValue.exec(NULLABLE_BOOLEAN_SCHEMA, null));
|
||||
assertNull(convertValue.exec(NULLABLE_BOOLEAN_SCHEMA, "test", null));
|
||||
|
||||
// boolean
|
||||
assertEquals(true, convertValue.exec(NULLABLE_BOOLEAN_SCHEMA, "true"));
|
||||
assertEquals(false, convertValue.exec(NULLABLE_BOOLEAN_SCHEMA, "false"));
|
||||
assertEquals(false, convertValue.exec(NULLABLE_BOOLEAN_SCHEMA, "1"));
|
||||
assertEquals(false, convertValue.exec(NULLABLE_BOOLEAN_SCHEMA, "hello"));
|
||||
assertEquals(true, convertValue.exec(NULLABLE_BOOLEAN_SCHEMA, "test", "true"));
|
||||
assertEquals(false, convertValue.exec(NULLABLE_BOOLEAN_SCHEMA, "test", "false"));
|
||||
assertEquals(false, convertValue.exec(NULLABLE_BOOLEAN_SCHEMA, "test", "1"));
|
||||
assertEquals(false, convertValue.exec(NULLABLE_BOOLEAN_SCHEMA, "test", "hello"));
|
||||
|
||||
// int
|
||||
assertEquals(1, convertValue.exec(NULLABLE_INT_SCHEMA, "1"));
|
||||
assertEquals(10, convertValue.exec(NULLABLE_INT_SCHEMA, "10"));
|
||||
Assertions.assertThrows(InvocationTargetException.class, () -> convertValue.exec(NULLABLE_INT_SCHEMA, "10.0"));
|
||||
assertEquals(1, convertValue.exec(NULLABLE_INT_SCHEMA, "test", "1"));
|
||||
assertEquals(10, convertValue.exec(NULLABLE_INT_SCHEMA, "test", "10"));
|
||||
Assertions.assertThrows(Exception.class, () -> convertValue.exec(NULLABLE_INT_SCHEMA, "test", "10.0"));
|
||||
|
||||
// long
|
||||
assertEquals(1L, convertValue.exec(NULLABLE_LONG_SCHEMA, "1"));
|
||||
assertEquals(10L, convertValue.exec(NULLABLE_LONG_SCHEMA, "10"));
|
||||
Assertions.assertThrows(InvocationTargetException.class, () -> convertValue.exec(NULLABLE_LONG_SCHEMA, "10.0"));
|
||||
assertEquals(1L, convertValue.exec(NULLABLE_LONG_SCHEMA, "test", "1"));
|
||||
assertEquals(10L, convertValue.exec(NULLABLE_LONG_SCHEMA, "test", "10"));
|
||||
Assertions.assertThrows(Exception.class, () -> convertValue.exec(NULLABLE_LONG_SCHEMA, "test", "10.0"));
|
||||
|
||||
// float
|
||||
assertEquals(1.0f, convertValue.exec(NULLABLE_FLOAT_SCHEMA, "1.0"));
|
||||
assertEquals(10.0f, convertValue.exec(NULLABLE_FLOAT_SCHEMA, "10.0"));
|
||||
assertEquals(100f, convertValue.exec(NULLABLE_FLOAT_SCHEMA, "100"));
|
||||
assertEquals(1.0f, convertValue.exec(NULLABLE_FLOAT_SCHEMA, "test", "1.0"));
|
||||
assertEquals(10.0f, convertValue.exec(NULLABLE_FLOAT_SCHEMA, "test", "10.0"));
|
||||
assertEquals(100f, convertValue.exec(NULLABLE_FLOAT_SCHEMA, "test", "100"));
|
||||
|
||||
// double
|
||||
assertEquals(1.0, convertValue.exec(NULLABLE_DOUBLE_SCHEMA, "1.0"));
|
||||
assertEquals(100d, convertValue.exec(NULLABLE_DOUBLE_SCHEMA, "100"));
|
||||
assertEquals(1.0, convertValue.exec(NULLABLE_DOUBLE_SCHEMA, "test", "1.0"));
|
||||
assertEquals(100d, convertValue.exec(NULLABLE_DOUBLE_SCHEMA, "test", "100"));
|
||||
|
||||
// string
|
||||
assertEquals(StringData.fromString("2020-10-10 01:01:01"), convertValue.exec(NULLABLE_STRING_SCHEMA, "2020-10-10 01:01:01"));
|
||||
assertEquals(StringData.fromString("123"), convertValue.exec(NULLABLE_STRING_SCHEMA, "123"));
|
||||
assertEquals(StringData.fromString("123.456"), convertValue.exec(NULLABLE_STRING_SCHEMA, "123.456"));
|
||||
assertEquals(StringData.fromString("2020-10-10 01:01:01"), convertValue.exec(NULLABLE_STRING_SCHEMA, "test", "2020-10-10 01:01:01"));
|
||||
assertEquals(StringData.fromString("123"), convertValue.exec(NULLABLE_STRING_SCHEMA, "test", "123"));
|
||||
assertEquals(StringData.fromString("123.456"), convertValue.exec(NULLABLE_STRING_SCHEMA, "test", "123.456"));
|
||||
|
||||
// decimal
|
||||
assertEquals(DecimalData.fromBigDecimal(new BigDecimal("123.0"), 10, 0), convertValue.exec(NULLABLE_DECIMAL_SCHEMA("test", 10, 0), "123.0"));
|
||||
assertEquals(DecimalData.fromBigDecimal(new BigDecimal("123456789987654321.123456789987654321"), 37, 18), convertValue.exec(NULLABLE_DECIMAL_SCHEMA("test", 37, 18), "123456789987654321.123456789987654321"));
|
||||
assertEquals(DecimalData.fromBigDecimal(new BigDecimal("123.0"), 10, 0), convertValue.exec(NULLABLE_DECIMAL_SCHEMA("test", 10, 0), "test", "123.0"));
|
||||
assertEquals(DecimalData.fromBigDecimal(new BigDecimal("123456789987654321.123456789987654321"), 37, 18), convertValue.exec(NULLABLE_DECIMAL_SCHEMA("test", 37, 18), "test", "123456789987654321.123456789987654321"));
|
||||
}
|
||||
|
||||
private static final class Executor {
|
||||
|
||||
Reference in New Issue
Block a user