DBZ-7143 Add constructor for testing in MysqlValueConverters
This commit is contained in:
parent
d710ee6b9f
commit
fcee5e7bdc
@ -6,6 +6,7 @@
|
||||
package io.debezium.connector.mysql;
|
||||
|
||||
import static io.debezium.config.CommonConnectorConfig.EventConvertingFailureHandlingMode.FAIL;
|
||||
import static io.debezium.config.CommonConnectorConfig.EventConvertingFailureHandlingMode.WARN;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.math.BigDecimal;
|
||||
@ -137,10 +138,32 @@ else if (70 <= year && year <= 99) {
|
||||
*/
|
||||
@VisibleForTesting
|
||||
public MySqlValueConverters(DecimalMode decimalMode, TemporalPrecisionMode temporalPrecisionMode, BigIntUnsignedMode bigIntUnsignedMode,
|
||||
BinaryHandlingMode binaryMode, EventConvertingFailureHandlingMode eventConvertingFailureHandlingMode) {
|
||||
this(decimalMode, temporalPrecisionMode, bigIntUnsignedMode, binaryMode, x -> x, resolveDefaultAdapter(), eventConvertingFailureHandlingMode);
|
||||
BinaryHandlingMode binaryMode) {
|
||||
this(decimalMode, temporalPrecisionMode, bigIntUnsignedMode, binaryMode, x -> x, resolveDefaultAdapter(), WARN);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new instance that always uses UTC for the default time zone when converting values without timezone information
|
||||
* to values that require timezones.
|
||||
* <p>
|
||||
*
|
||||
* @param decimalMode how {@code DECIMAL} and {@code NUMERIC} values should be treated; may be null if
|
||||
* {@link io.debezium.jdbc.JdbcValueConverters.DecimalMode#PRECISE} is to be used
|
||||
* @param temporalPrecisionMode temporal precision mode based on {@link io.debezium.jdbc.TemporalPrecisionMode}
|
||||
* @param bigIntUnsignedMode how {@code BIGINT UNSIGNED} values should be treated; may be null if
|
||||
* {@link io.debezium.jdbc.JdbcValueConverters.BigIntUnsignedMode#PRECISE} is to be used
|
||||
* @param binaryMode how binary columns should be represented
|
||||
* @param adjuster a temporal adjuster to make a database specific time modification before conversion
|
||||
* @param connectorAdapter the connector adapter
|
||||
*/
|
||||
@VisibleForTesting
|
||||
public MySqlValueConverters(DecimalMode decimalMode, TemporalPrecisionMode temporalPrecisionMode, BigIntUnsignedMode bigIntUnsignedMode,
|
||||
BinaryHandlingMode binaryMode,
|
||||
TemporalAdjuster adjuster, ConnectorAdapter connectorAdapter) {
|
||||
this(decimalMode, temporalPrecisionMode, bigIntUnsignedMode, binaryMode, adjuster, connectorAdapter, WARN);
|
||||
}
|
||||
|
||||
|
||||
private static ConnectorAdapter resolveDefaultAdapter() {
|
||||
Configuration config = Configuration.empty();
|
||||
MySqlConnectorConfig connectorConfig = new MySqlConnectorConfig(config);
|
||||
|
@ -35,7 +35,6 @@
|
||||
import org.junit.Test;
|
||||
|
||||
import io.debezium.config.CommonConnectorConfig.BinaryHandlingMode;
|
||||
import io.debezium.config.CommonConnectorConfig.EventConvertingFailureHandlingMode;
|
||||
import io.debezium.connector.mysql.antlr.MySqlAntlrDdlParser;
|
||||
import io.debezium.doc.FixFor;
|
||||
import io.debezium.jdbc.JdbcValueConverters;
|
||||
@ -82,8 +81,7 @@ public void beforeEach() {
|
||||
JdbcValueConverters.DecimalMode.DOUBLE,
|
||||
TemporalPrecisionMode.ADAPTIVE_TIME_MICROSECONDS,
|
||||
JdbcValueConverters.BigIntUnsignedMode.PRECISE,
|
||||
BinaryHandlingMode.BYTES,
|
||||
EventConvertingFailureHandlingMode.WARN);
|
||||
BinaryHandlingMode.BYTES);
|
||||
tableSchemaBuilder = new TableSchemaBuilder(
|
||||
converters,
|
||||
new MySqlDefaultValueConverter(converters),
|
||||
|
@ -69,8 +69,7 @@ private MySqlDatabaseSchema getSchema(Configuration config) {
|
||||
BigIntUnsignedMode.LONG,
|
||||
BinaryHandlingMode.BYTES,
|
||||
MySqlValueConverters::adjustTemporal,
|
||||
connectorConfig.getConnectorAdapter(),
|
||||
EventConvertingFailureHandlingMode.WARN);
|
||||
connectorConfig.getConnectorAdapter());
|
||||
return new MySqlDatabaseSchema(
|
||||
connectorConfig,
|
||||
mySqlValueConverters,
|
||||
|
@ -23,7 +23,6 @@
|
||||
import org.junit.Test;
|
||||
|
||||
import io.debezium.config.CommonConnectorConfig.BinaryHandlingMode;
|
||||
import io.debezium.config.CommonConnectorConfig.EventConvertingFailureHandlingMode;
|
||||
import io.debezium.connector.mysql.antlr.MySqlAntlrDdlParser;
|
||||
import io.debezium.doc.FixFor;
|
||||
import io.debezium.jdbc.JdbcValueConverters;
|
||||
@ -55,8 +54,7 @@ public void beforeEach() {
|
||||
converters = new MySqlValueConverters(JdbcValueConverters.DecimalMode.DOUBLE,
|
||||
TemporalPrecisionMode.CONNECT,
|
||||
JdbcValueConverters.BigIntUnsignedMode.LONG,
|
||||
BinaryHandlingMode.BYTES,
|
||||
EventConvertingFailureHandlingMode.WARN);
|
||||
BinaryHandlingMode.BYTES);
|
||||
parser = new MySqlAntlrDdlParser(converters);
|
||||
tables = new Tables();
|
||||
tableSchemaBuilder = new TableSchemaBuilder(
|
||||
@ -196,8 +194,7 @@ public void parseUnsignedBigIntDefaultValueToBigDecimal() {
|
||||
final MySqlValueConverters converters = new MySqlValueConverters(JdbcValueConverters.DecimalMode.DOUBLE,
|
||||
TemporalPrecisionMode.CONNECT,
|
||||
JdbcValueConverters.BigIntUnsignedMode.PRECISE,
|
||||
BinaryHandlingMode.BYTES,
|
||||
EventConvertingFailureHandlingMode.WARN);
|
||||
BinaryHandlingMode.BYTES);
|
||||
final AbstractDdlParser parser = new MySqlAntlrDdlParser(converters);
|
||||
final TableSchemaBuilder tableSchemaBuilder = new TableSchemaBuilder(
|
||||
converters,
|
||||
@ -355,8 +352,7 @@ public void parseNumericAndDecimalToDecimalDefaultValue() {
|
||||
final MySqlValueConverters converters = new MySqlValueConverters(JdbcValueConverters.DecimalMode.PRECISE,
|
||||
TemporalPrecisionMode.CONNECT,
|
||||
JdbcValueConverters.BigIntUnsignedMode.LONG,
|
||||
BinaryHandlingMode.BYTES,
|
||||
EventConvertingFailureHandlingMode.WARN);
|
||||
BinaryHandlingMode.BYTES);
|
||||
final AbstractDdlParser parser = new MySqlAntlrDdlParser(converters);
|
||||
final TableSchemaBuilder tableSchemaBuilder = new TableSchemaBuilder(
|
||||
converters,
|
||||
|
@ -81,8 +81,7 @@ public void testJsonValues() {
|
||||
String sql = "CREATE TABLE JSON_TABLE (" + " A JSON," + " B JSON NOT NULL" + ");";
|
||||
|
||||
MySqlValueConverters converters = new MySqlValueConverters(JdbcValueConverters.DecimalMode.DOUBLE,
|
||||
TemporalPrecisionMode.CONNECT, JdbcValueConverters.BigIntUnsignedMode.LONG, BinaryHandlingMode.BYTES,
|
||||
EventConvertingFailureHandlingMode.WARN);
|
||||
TemporalPrecisionMode.CONNECT, JdbcValueConverters.BigIntUnsignedMode.LONG, BinaryHandlingMode.BYTES);
|
||||
|
||||
DdlParser parser = new MySqlAntlrDdlParser();
|
||||
Tables tables = new Tables();
|
||||
@ -163,7 +162,7 @@ public void testFallbackDecimalValueScale() {
|
||||
|
||||
MySqlValueConverters converters = new MySqlValueConverters(JdbcValueConverters.DecimalMode.PRECISE,
|
||||
TemporalPrecisionMode.CONNECT, JdbcValueConverters.BigIntUnsignedMode.LONG, BinaryHandlingMode.BYTES,
|
||||
x -> x, null, EventConvertingFailureHandlingMode.WARN);
|
||||
x -> x, null);
|
||||
|
||||
DdlParser parser = new MySqlAntlrDdlParser();
|
||||
Tables tables = new Tables();
|
||||
@ -184,7 +183,7 @@ public void testZonedDateTimeWithMicrosecondPrecision() {
|
||||
|
||||
MySqlValueConverters converters = new MySqlValueConverters(JdbcValueConverters.DecimalMode.PRECISE,
|
||||
TemporalPrecisionMode.ADAPTIVE_TIME_MICROSECONDS, JdbcValueConverters.BigIntUnsignedMode.LONG, BinaryHandlingMode.BYTES,
|
||||
x -> x, null, EventConvertingFailureHandlingMode.WARN);
|
||||
x -> x, null);
|
||||
|
||||
DdlParser parser = new MySqlAntlrDdlParser();
|
||||
Tables tables = new Tables();
|
||||
|
Loading…
Reference in New Issue
Block a user