From 9a97182fbbcb7a4d5277a4085553d689a3153b97 Mon Sep 17 00:00:00 2001 From: ChengJie1053 <18033291053@163.com> Date: Wed, 17 Jul 2024 18:07:20 +0800 Subject: [PATCH] [minor][cdc-connector][mysql] Code optimization for constants This closes #3385 --- .../MysqlDebeziumTimeConverter.java | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/flink-cdc-connect/flink-cdc-source-connectors/flink-connector-mysql-cdc/src/main/java/io/debezium/connector/mysql/converters/MysqlDebeziumTimeConverter.java b/flink-cdc-connect/flink-cdc-source-connectors/flink-connector-mysql-cdc/src/main/java/io/debezium/connector/mysql/converters/MysqlDebeziumTimeConverter.java index 493fd682c..c893d1801 100644 --- a/flink-cdc-connect/flink-cdc-source-connectors/flink-connector-mysql-cdc/src/main/java/io/debezium/connector/mysql/converters/MysqlDebeziumTimeConverter.java +++ b/flink-cdc-connect/flink-cdc-source-connectors/flink-connector-mysql-cdc/src/main/java/io/debezium/connector/mysql/converters/MysqlDebeziumTimeConverter.java @@ -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); } }