Package io.debezium.connector.oracle.olr
Class OpenLogReplicatorValueConverter
java.lang.Object
io.debezium.jdbc.JdbcValueConverters
io.debezium.connector.oracle.OracleValueConverters
io.debezium.connector.oracle.olr.OpenLogReplicatorValueConverter
- All Implemented Interfaces:
ValueConverterProvider
Provides custom value converter behavior specific to OpenLogReplicator.
OpenLogReplicator payloads are JSON-based and several value types are not serialized in the same format
as we would normally get them from a JDBC result set or an Oracle JDBC driver equivalent type. So, this
converter implementation is meant to pre-transform the values from OpenLogReplicator into a data type
that is more appropriate for the column being converted. This avoids polluting the base implementation
with any highly-specific OpenLogReplicator details.
- Author:
- Chris Cranford
-
Nested Class Summary
Nested classes/interfaces inherited from class io.debezium.jdbc.JdbcValueConverters
JdbcValueConverters.BigIntUnsignedMode, JdbcValueConverters.DecimalMode -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final Stringprivate static final Stringprivate static final Stringprivate static final Stringprivate static final Stringprivate final Map<Integer,DateTimeFormatter> private final Map<Integer,DateTimeFormatter> Fields inherited from class io.debezium.connector.oracle.OracleValueConverters
EMPTY_BLOB_FUNCTION, EMPTY_CLOB_FUNCTION, HEXTORAW_FUNCTION_END, HEXTORAW_FUNCTION_START, UNAVAILABLE_VALUEFields inherited from class io.debezium.jdbc.JdbcValueConverters
adaptiveTimeMicrosecondsPrecisionMode, adaptiveTimePrecisionMode, adjuster, bigIntUnsignedMode, binaryMode, decimalMode, defaultOffset, fallbackTimestampWithTimeZone, logger -
Constructor Summary
ConstructorsConstructorDescriptionOpenLogReplicatorValueConverter(OracleConnectorConfig connectorConfig, OracleConnection connection) -
Method Summary
Modifier and TypeMethodDescriptionprotected ObjectconvertBinary(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object value, CommonConnectorConfig.BinaryHandlingMode mode) protected ObjectconvertIntervalDaySecond(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object value) protected ObjectconvertIntervalYearMonth(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object value) protected ObjectconvertNumeric(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object value) protected ObjectconvertTimestampToEpochMicros(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object value) protected ObjectconvertTimestampToEpochMillis(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object value) protected ObjectconvertTimestampToEpochMillisAsDate(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object value) protected ObjectconvertTimestampToEpochNanos(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object value) private ObjectconvertTimestampValue(Column column, Object value) protected ObjectconvertTimestampWithLocalZone(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object value) protected ObjectconvertTimestampWithZone(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object value) private static DateTimeFormattercreatePrecisionBasedFormatter(int precision, String format) private DateTimeFormatterprivate DateTimeFormatterprivate ZoneIdgetZoneIdFromTimeZone(String timeZone) Methods inherited from class io.debezium.connector.oracle.OracleValueConverters
convertBoolean, convertDateToEpochDays, convertDateToEpochDaysAsDate, convertDecimal, convertDouble, converter, convertFloat, convertInteger, convertNumericAsBigInteger, convertNumericAsInteger, convertNumericAsSmallInt, convertNumericAsTinyInt, convertString, convertTinyInt, convertVariableScale, fromOracleTimeClasses, getHexToRawHexString, getUnavailableValuePlaceholderBinary, getUnavailableValuePlaceholderString, isHexToRawFunctionCall, schemaBuilder, withScaleAdjustedIfNeededMethods inherited from class io.debezium.jdbc.JdbcValueConverters
byteOrderOfBitType, convertBigInt, convertBinaryToBase64, convertBinaryToBase64UrlSafe, convertBinaryToBytes, convertBinaryToHex, convertBit, convertBits, convertBits, convertReal, convertRowId, convertSmallInt, convertTime, convertTimeToMicrosPastMidnight, convertTimeToMillisPastMidnight, convertTimeToMillisPastMidnightAsDate, convertTimeToNanosPastMidnight, convertTimeWithZone, convertValue, getTimePrecision, handleUnknownData, normalizeBinaryData, padLittleEndian, toBigDecimal, toByteBuffer, unexpectedBinary
-
Field Details
-
COLUMN_TYPE_DATE
- See Also:
-
COMMA
- See Also:
-
PRECISION
- See Also:
-
TIMESTAMP_TIME_ZONE_FORMAT
- See Also:
-
TIMESTAMP_LOCAL_TIME_ZONE_FORMAT
- See Also:
-
timestampWithTimeZoneFormatterCache
-
timestampWithLocalTimeZoneFormatterCache
-
-
Constructor Details
-
OpenLogReplicatorValueConverter
public OpenLogReplicatorValueConverter(OracleConnectorConfig connectorConfig, OracleConnection connection)
-
-
Method Details
-
convertNumeric
protected Object convertNumeric(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object value) - Overrides:
convertNumericin classOracleValueConverters
-
convertTimestampToEpochMillis
protected Object convertTimestampToEpochMillis(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object value) - Overrides:
convertTimestampToEpochMillisin classOracleValueConverters
-
convertTimestampToEpochMicros
protected Object convertTimestampToEpochMicros(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object value) - Overrides:
convertTimestampToEpochMicrosin classOracleValueConverters
-
convertTimestampToEpochNanos
protected Object convertTimestampToEpochNanos(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object value) - Overrides:
convertTimestampToEpochNanosin classOracleValueConverters
-
convertTimestampToEpochMillisAsDate
protected Object convertTimestampToEpochMillisAsDate(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object value) - Overrides:
convertTimestampToEpochMillisAsDatein classOracleValueConverters
-
convertTimestampWithZone
protected Object convertTimestampWithZone(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object value) - Overrides:
convertTimestampWithZonein classOracleValueConverters
-
convertTimestampWithLocalZone
protected Object convertTimestampWithLocalZone(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object value) - Overrides:
convertTimestampWithLocalZonein classOracleValueConverters
-
convertBinary
protected Object convertBinary(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object value, CommonConnectorConfig.BinaryHandlingMode mode) - Overrides:
convertBinaryin classOracleValueConverters
-
convertIntervalYearMonth
protected Object convertIntervalYearMonth(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object value) - Overrides:
convertIntervalYearMonthin classOracleValueConverters
-
convertIntervalDaySecond
protected Object convertIntervalDaySecond(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object value) - Overrides:
convertIntervalDaySecondin classOracleValueConverters
-
convertTimestampValue
-
getZoneIdFromTimeZone
-
getTimestampWithTimeZoneFormatter
-
getTimestampWithLocalTimeZoneFormatter
-
createPrecisionBasedFormatter
-