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 static final Patternprivate 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 Stringprivate 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
-
CHARSET_INTRODUCER_PATTERN
-
TRIM_DATA_TYPES_BESIDES_NUMBER
-
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:
-
stripCharacterSetIntroducer
-