[minor][cdc-connector][mysql] Code optimization for constants

This closes #3385
pull/3481/head
ChengJie1053 7 months ago committed by GitHub
parent 274401e81b
commit 9a97182fbb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -61,7 +61,11 @@ public class MysqlDebeziumTimeConverter
private static boolean loggedUnknownTimeClass = false;
private static boolean loggedUnknownTimestampWithTimeZoneClass = false;
private final String[] DATE_TYPES = {"DATE", "DATETIME", "TIME", "TIMESTAMP"};
private final String DATE = "DATE";
private final String DATETIME = "DATETIME";
private final String TIME = "TIME";
private final String TIMESTAMP = "TIMESTAMP";
private final String[] DATE_TYPES = {DATE, DATETIME, TIME, TIMESTAMP};
protected static final String DATE_FORMAT = "yyyy-MM-dd";
protected static final String TIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
@ -124,13 +128,13 @@ public class MysqlDebeziumTimeConverter
return convertDateDefaultValue(field);
}
switch (columnType.toUpperCase(Locale.ROOT)) {
case "DATE":
case DATE:
if (value instanceof Integer) {
return this.convertToDate(
columnType, LocalDate.ofEpochDay((Integer) value));
}
return this.convertToDate(columnType, value);
case "TIME":
case TIME:
if (value instanceof Long) {
long l =
Math.multiplyExact(
@ -138,7 +142,7 @@ public class MysqlDebeziumTimeConverter
return this.convertToTime(columnType, LocalTime.ofNanoOfDay(l));
}
return this.convertToTime(columnType, value);
case "DATETIME":
case DATETIME:
if (value instanceof Long) {
if (getTimePrecision(field) <= 3) {
return this.convertToTimestamp(
@ -152,7 +156,7 @@ public class MysqlDebeziumTimeConverter
}
}
return this.convertToTimestamp(columnType, value);
case "TIMESTAMP":
case TIMESTAMP:
return this.convertToTimestampWithTimezone(columnType, value);
default:
throw new IllegalArgumentException(
@ -303,13 +307,13 @@ public class MysqlDebeziumTimeConverter
LocalDateTime.parse(DEFAULT_DATE_FORMAT_PATTERN, originalFormat);
String columnType = field.typeName().toUpperCase();
switch (columnType.toUpperCase(Locale.ROOT)) {
case "DATE":
case DATE:
return dateTime.format(dateFormatter);
case "DATETIME":
case DATETIME:
return dateTime.format(datetimeFormatter);
case "TIME":
case TIME:
return dateTime.format(timeFormatter);
case "TIMESTAMP":
case TIMESTAMP:
return dateTime.format(timestampFormatter);
}
}

Loading…
Cancel
Save