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;
|
package io.debezium.connector.mysql;
|
||||||
|
|
||||||
import static io.debezium.config.CommonConnectorConfig.EventConvertingFailureHandlingMode.FAIL;
|
import static io.debezium.config.CommonConnectorConfig.EventConvertingFailureHandlingMode.FAIL;
|
||||||
|
import static io.debezium.config.CommonConnectorConfig.EventConvertingFailureHandlingMode.WARN;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
@ -137,10 +138,32 @@ else if (70 <= year && year <= 99) {
|
|||||||
*/
|
*/
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
public MySqlValueConverters(DecimalMode decimalMode, TemporalPrecisionMode temporalPrecisionMode, BigIntUnsignedMode bigIntUnsignedMode,
|
public MySqlValueConverters(DecimalMode decimalMode, TemporalPrecisionMode temporalPrecisionMode, BigIntUnsignedMode bigIntUnsignedMode,
|
||||||
BinaryHandlingMode binaryMode, EventConvertingFailureHandlingMode eventConvertingFailureHandlingMode) {
|
BinaryHandlingMode binaryMode) {
|
||||||
this(decimalMode, temporalPrecisionMode, bigIntUnsignedMode, binaryMode, x -> x, resolveDefaultAdapter(), eventConvertingFailureHandlingMode);
|
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() {
|
private static ConnectorAdapter resolveDefaultAdapter() {
|
||||||
Configuration config = Configuration.empty();
|
Configuration config = Configuration.empty();
|
||||||
MySqlConnectorConfig connectorConfig = new MySqlConnectorConfig(config);
|
MySqlConnectorConfig connectorConfig = new MySqlConnectorConfig(config);
|
||||||
|
@ -35,7 +35,6 @@
|
|||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import io.debezium.config.CommonConnectorConfig.BinaryHandlingMode;
|
import io.debezium.config.CommonConnectorConfig.BinaryHandlingMode;
|
||||||
import io.debezium.config.CommonConnectorConfig.EventConvertingFailureHandlingMode;
|
|
||||||
import io.debezium.connector.mysql.antlr.MySqlAntlrDdlParser;
|
import io.debezium.connector.mysql.antlr.MySqlAntlrDdlParser;
|
||||||
import io.debezium.doc.FixFor;
|
import io.debezium.doc.FixFor;
|
||||||
import io.debezium.jdbc.JdbcValueConverters;
|
import io.debezium.jdbc.JdbcValueConverters;
|
||||||
@ -82,8 +81,7 @@ public void beforeEach() {
|
|||||||
JdbcValueConverters.DecimalMode.DOUBLE,
|
JdbcValueConverters.DecimalMode.DOUBLE,
|
||||||
TemporalPrecisionMode.ADAPTIVE_TIME_MICROSECONDS,
|
TemporalPrecisionMode.ADAPTIVE_TIME_MICROSECONDS,
|
||||||
JdbcValueConverters.BigIntUnsignedMode.PRECISE,
|
JdbcValueConverters.BigIntUnsignedMode.PRECISE,
|
||||||
BinaryHandlingMode.BYTES,
|
BinaryHandlingMode.BYTES);
|
||||||
EventConvertingFailureHandlingMode.WARN);
|
|
||||||
tableSchemaBuilder = new TableSchemaBuilder(
|
tableSchemaBuilder = new TableSchemaBuilder(
|
||||||
converters,
|
converters,
|
||||||
new MySqlDefaultValueConverter(converters),
|
new MySqlDefaultValueConverter(converters),
|
||||||
|
@ -69,8 +69,7 @@ private MySqlDatabaseSchema getSchema(Configuration config) {
|
|||||||
BigIntUnsignedMode.LONG,
|
BigIntUnsignedMode.LONG,
|
||||||
BinaryHandlingMode.BYTES,
|
BinaryHandlingMode.BYTES,
|
||||||
MySqlValueConverters::adjustTemporal,
|
MySqlValueConverters::adjustTemporal,
|
||||||
connectorConfig.getConnectorAdapter(),
|
connectorConfig.getConnectorAdapter());
|
||||||
EventConvertingFailureHandlingMode.WARN);
|
|
||||||
return new MySqlDatabaseSchema(
|
return new MySqlDatabaseSchema(
|
||||||
connectorConfig,
|
connectorConfig,
|
||||||
mySqlValueConverters,
|
mySqlValueConverters,
|
||||||
|
@ -23,7 +23,6 @@
|
|||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import io.debezium.config.CommonConnectorConfig.BinaryHandlingMode;
|
import io.debezium.config.CommonConnectorConfig.BinaryHandlingMode;
|
||||||
import io.debezium.config.CommonConnectorConfig.EventConvertingFailureHandlingMode;
|
|
||||||
import io.debezium.connector.mysql.antlr.MySqlAntlrDdlParser;
|
import io.debezium.connector.mysql.antlr.MySqlAntlrDdlParser;
|
||||||
import io.debezium.doc.FixFor;
|
import io.debezium.doc.FixFor;
|
||||||
import io.debezium.jdbc.JdbcValueConverters;
|
import io.debezium.jdbc.JdbcValueConverters;
|
||||||
@ -55,8 +54,7 @@ public void beforeEach() {
|
|||||||
converters = new MySqlValueConverters(JdbcValueConverters.DecimalMode.DOUBLE,
|
converters = new MySqlValueConverters(JdbcValueConverters.DecimalMode.DOUBLE,
|
||||||
TemporalPrecisionMode.CONNECT,
|
TemporalPrecisionMode.CONNECT,
|
||||||
JdbcValueConverters.BigIntUnsignedMode.LONG,
|
JdbcValueConverters.BigIntUnsignedMode.LONG,
|
||||||
BinaryHandlingMode.BYTES,
|
BinaryHandlingMode.BYTES);
|
||||||
EventConvertingFailureHandlingMode.WARN);
|
|
||||||
parser = new MySqlAntlrDdlParser(converters);
|
parser = new MySqlAntlrDdlParser(converters);
|
||||||
tables = new Tables();
|
tables = new Tables();
|
||||||
tableSchemaBuilder = new TableSchemaBuilder(
|
tableSchemaBuilder = new TableSchemaBuilder(
|
||||||
@ -196,8 +194,7 @@ public void parseUnsignedBigIntDefaultValueToBigDecimal() {
|
|||||||
final MySqlValueConverters converters = new MySqlValueConverters(JdbcValueConverters.DecimalMode.DOUBLE,
|
final MySqlValueConverters converters = new MySqlValueConverters(JdbcValueConverters.DecimalMode.DOUBLE,
|
||||||
TemporalPrecisionMode.CONNECT,
|
TemporalPrecisionMode.CONNECT,
|
||||||
JdbcValueConverters.BigIntUnsignedMode.PRECISE,
|
JdbcValueConverters.BigIntUnsignedMode.PRECISE,
|
||||||
BinaryHandlingMode.BYTES,
|
BinaryHandlingMode.BYTES);
|
||||||
EventConvertingFailureHandlingMode.WARN);
|
|
||||||
final AbstractDdlParser parser = new MySqlAntlrDdlParser(converters);
|
final AbstractDdlParser parser = new MySqlAntlrDdlParser(converters);
|
||||||
final TableSchemaBuilder tableSchemaBuilder = new TableSchemaBuilder(
|
final TableSchemaBuilder tableSchemaBuilder = new TableSchemaBuilder(
|
||||||
converters,
|
converters,
|
||||||
@ -355,8 +352,7 @@ public void parseNumericAndDecimalToDecimalDefaultValue() {
|
|||||||
final MySqlValueConverters converters = new MySqlValueConverters(JdbcValueConverters.DecimalMode.PRECISE,
|
final MySqlValueConverters converters = new MySqlValueConverters(JdbcValueConverters.DecimalMode.PRECISE,
|
||||||
TemporalPrecisionMode.CONNECT,
|
TemporalPrecisionMode.CONNECT,
|
||||||
JdbcValueConverters.BigIntUnsignedMode.LONG,
|
JdbcValueConverters.BigIntUnsignedMode.LONG,
|
||||||
BinaryHandlingMode.BYTES,
|
BinaryHandlingMode.BYTES);
|
||||||
EventConvertingFailureHandlingMode.WARN);
|
|
||||||
final AbstractDdlParser parser = new MySqlAntlrDdlParser(converters);
|
final AbstractDdlParser parser = new MySqlAntlrDdlParser(converters);
|
||||||
final TableSchemaBuilder tableSchemaBuilder = new TableSchemaBuilder(
|
final TableSchemaBuilder tableSchemaBuilder = new TableSchemaBuilder(
|
||||||
converters,
|
converters,
|
||||||
|
@ -81,8 +81,7 @@ public void testJsonValues() {
|
|||||||
String sql = "CREATE TABLE JSON_TABLE (" + " A JSON," + " B JSON NOT NULL" + ");";
|
String sql = "CREATE TABLE JSON_TABLE (" + " A JSON," + " B JSON NOT NULL" + ");";
|
||||||
|
|
||||||
MySqlValueConverters converters = new MySqlValueConverters(JdbcValueConverters.DecimalMode.DOUBLE,
|
MySqlValueConverters converters = new MySqlValueConverters(JdbcValueConverters.DecimalMode.DOUBLE,
|
||||||
TemporalPrecisionMode.CONNECT, JdbcValueConverters.BigIntUnsignedMode.LONG, BinaryHandlingMode.BYTES,
|
TemporalPrecisionMode.CONNECT, JdbcValueConverters.BigIntUnsignedMode.LONG, BinaryHandlingMode.BYTES);
|
||||||
EventConvertingFailureHandlingMode.WARN);
|
|
||||||
|
|
||||||
DdlParser parser = new MySqlAntlrDdlParser();
|
DdlParser parser = new MySqlAntlrDdlParser();
|
||||||
Tables tables = new Tables();
|
Tables tables = new Tables();
|
||||||
@ -163,7 +162,7 @@ public void testFallbackDecimalValueScale() {
|
|||||||
|
|
||||||
MySqlValueConverters converters = new MySqlValueConverters(JdbcValueConverters.DecimalMode.PRECISE,
|
MySqlValueConverters converters = new MySqlValueConverters(JdbcValueConverters.DecimalMode.PRECISE,
|
||||||
TemporalPrecisionMode.CONNECT, JdbcValueConverters.BigIntUnsignedMode.LONG, BinaryHandlingMode.BYTES,
|
TemporalPrecisionMode.CONNECT, JdbcValueConverters.BigIntUnsignedMode.LONG, BinaryHandlingMode.BYTES,
|
||||||
x -> x, null, EventConvertingFailureHandlingMode.WARN);
|
x -> x, null);
|
||||||
|
|
||||||
DdlParser parser = new MySqlAntlrDdlParser();
|
DdlParser parser = new MySqlAntlrDdlParser();
|
||||||
Tables tables = new Tables();
|
Tables tables = new Tables();
|
||||||
@ -184,7 +183,7 @@ public void testZonedDateTimeWithMicrosecondPrecision() {
|
|||||||
|
|
||||||
MySqlValueConverters converters = new MySqlValueConverters(JdbcValueConverters.DecimalMode.PRECISE,
|
MySqlValueConverters converters = new MySqlValueConverters(JdbcValueConverters.DecimalMode.PRECISE,
|
||||||
TemporalPrecisionMode.ADAPTIVE_TIME_MICROSECONDS, JdbcValueConverters.BigIntUnsignedMode.LONG, BinaryHandlingMode.BYTES,
|
TemporalPrecisionMode.ADAPTIVE_TIME_MICROSECONDS, JdbcValueConverters.BigIntUnsignedMode.LONG, BinaryHandlingMode.BYTES,
|
||||||
x -> x, null, EventConvertingFailureHandlingMode.WARN);
|
x -> x, null);
|
||||||
|
|
||||||
DdlParser parser = new MySqlAntlrDdlParser();
|
DdlParser parser = new MySqlAntlrDdlParser();
|
||||||
Tables tables = new Tables();
|
Tables tables = new Tables();
|
||||||
|
Loading…
Reference in New Issue
Block a user