Package io.debezium.connector.mysql
Class MySqlDefaultValueConverter
java.lang.Object
io.debezium.connector.mysql.MySqlDefaultValueConverter
- All Implemented Interfaces:
DefaultValueConverter
This class is used by a DDL parser to convert the string default value to a Java type
recognized by value converters for a subset of types. The functionality is kept separate
from the main converters to centralize the formatting logic if necessary.
- Author:
- Jiri Pechanec
- See Also:
-
AbstractRowsEventDataDeserializer
-
Nested Class Summary
Nested classes/interfaces inherited from interface io.debezium.relational.DefaultValueConverter
DefaultValueConverter.DefaultValueMapper -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final MySqlValueConvertersprivate static final Stringprivate static final Patternprivate static final Patternprivate static final Stringprivate static final DateTimeFormatterprivate static final org.slf4j.Loggerprivate static final Pattern -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate StringClean input timestamp to yyyy-mm-dd hh:mm:ss[.fffffffff] formatConverts a default value from the expected format to a logical object acceptable by the main JDBC converter.private ObjectconvertToBit(String value) private ObjectconvertToBits(Column column, String value) Converts a string object for an expected JDBC type ofTypes.BIT.private ObjectconvertToBits(String value) private ObjectconvertToBoolean(String value) Converts a string object for an expected JDBC type ofTypes.BOOLEAN.private ObjectconvertToDecimal(Column column, String value) Converts a string object for an expected JDBC type ofTypes.DECIMAL.private ObjectconvertToDouble(String value) Converts a string object for an expected JDBC type ofTypes.DOUBLE.private ObjectconvertToDuration(Column column, String value) Converts a string object for an object type ofDuration.private ObjectconvertToLocalDate(Column column, String value) Converts a string object for an object type ofLocalDateorLocalDateTimein case of MySql Date type.private ObjectconvertToLocalDateTime(Column column, String value) Converts a string object for an object type ofLocalDateTime.private ObjectconvertToTimestamp(Column column, String value) Converts a string object for an object type ofTimestamp.parseDefaultValue(Column column, String defaultValueExpression) This interface is used by a DDL parser to convert the string default value to a Java type recognized by value converters for a subset of types.private StringreplaceFirstNonNumericSubstring(String s, int startIndex, char c) Replace the first non-numeric substringprivate DateTimeFormattertimestampFormat(int length)
-
Field Details
-
LOGGER
private static final org.slf4j.Logger LOGGER -
EPOCH_EQUIVALENT_TIMESTAMP
-
EPOCH_EQUIVALENT_DATE
-
EPOCH_TIMESTAMP
- See Also:
-
EPOCH_DATE
- See Also:
-
TIMESTAMP_PATTERN
-
TRIM_DATA_TYPES
-
NUMBER_DATA_TYPES
-
ISO_LOCAL_DATE_WITH_OPTIONAL_TIME
-
converters
-
-
Constructor Details
-
MySqlDefaultValueConverter
-
-
Method Details
-
parseDefaultValue
This interface is used by a DDL parser to convert the string default value to a Java type recognized by value converters for a subset of types.- Specified by:
parseDefaultValuein interfaceDefaultValueConverter- Parameters:
column- the column definition describing thedatavalue; never nulldefaultValueExpression- the default value literal; may be null- Returns:
- value converted to a Java type; optional
-
convert
Converts a default value from the expected format to a logical object acceptable by the main JDBC converter.- Parameters:
column- column definitionvalue- string formatted default value- Returns:
- value converted to a Java type
-
convertToLocalDate
Converts a string object for an object type ofLocalDateorLocalDateTimein case of MySql Date type. If the column definition allows null and default value is 0000-00-00, we need return null; else 0000-00-00 will be replaced with 1970-01-01;- Parameters:
column- the column definition describing thedatavalue; never nullvalue- the string object to be converted into aLocalDatetype orLocalDateTimein case of MySql Date type;- Returns:
- the converted value;
-
convertToLocalDateTime
Converts a string object for an object type ofLocalDateTime. If the column definition allows null and default value is 0000-00-00 00:00:00, we need return null, else 0000-00-00 00:00:00 will be replaced with 1970-01-01 00:00:00;- Parameters:
column- the column definition describing thedatavalue; never nullvalue- the string object to be converted into aLocalDateTimetype;- Returns:
- the converted value;
-
convertToTimestamp
Converts a string object for an object type ofTimestamp. If the column definition allows null and default value is 0000-00-00 00:00:00, we need return null, else 0000-00-00 00:00:00 will be replaced with 1970-01-01 00:00:00;- Parameters:
column- the column definition describing thedatavalue; never nullvalue- the string object to be converted into aTimestamptype;- Returns:
- the converted value;
-
convertToDuration
Converts a string object for an object type ofDuration.- Parameters:
column- the column definition describing thedatavalue; never nullvalue- the string object to be converted into aDurationtype;- Returns:
- the converted value;
-
convertToDouble
Converts a string object for an expected JDBC type ofTypes.DOUBLE.- Parameters:
value- the string object to be converted into aTypes.DOUBLEtype;- Returns:
- the converted value;
-
convertToDecimal
Converts a string object for an expected JDBC type ofTypes.DECIMAL.- Parameters:
column- the column definition describing thedatavalue; never nullvalue- the string object to be converted into aTypes.DECIMALtype;- Returns:
- the converted value;
-
convertToBits
Converts a string object for an expected JDBC type ofTypes.BIT.- Parameters:
column- the column definition describing thedatavalue; never nullvalue- the string object to be converted into aTypes.BITtype;- Returns:
- the converted value;
-
convertToBit
-
convertToBits
-
convertToBoolean
Converts a string object for an expected JDBC type ofTypes.BOOLEAN.- Parameters:
value- the string object to be converted into aTypes.BOOLEANtype;- Returns:
- the converted value;
-
timestampFormat
-
cleanTimestamp
Clean input timestamp to yyyy-mm-dd hh:mm:ss[.fffffffff] format- Parameters:
s- input timestamp- Returns:
- cleaned timestamp
-
replaceFirstNonNumericSubstring
Replace the first non-numeric substring- Parameters:
s- the original stringstartIndex- the beginning index, inclusivec- the new character- Returns:
-