diff --git a/debezium-connector-jdbc/src/main/java/io/debezium/connector/jdbc/dialect/DatabaseDialect.java b/debezium-connector-jdbc/src/main/java/io/debezium/connector/jdbc/dialect/DatabaseDialect.java index 566a7e9a9..14a49ea7c 100644 --- a/debezium-connector-jdbc/src/main/java/io/debezium/connector/jdbc/dialect/DatabaseDialect.java +++ b/debezium-connector-jdbc/src/main/java/io/debezium/connector/jdbc/dialect/DatabaseDialect.java @@ -96,6 +96,15 @@ public interface DatabaseDialect { */ String getAlterTableStatement(TableDescriptor table, SinkRecordDescriptor record, Set missingFields); + /** + * Gets the field delimeter used when contructing {@code ALTER TABLE} statements. + * + * @return the field delimeter for alter table SQL statement + */ + default String getAlterTableStatementFieldDelimiter() { + return " "; + } + /** * Construct a {@code INSERT INTO} statement specific for this dialect. * diff --git a/debezium-connector-jdbc/src/main/java/io/debezium/connector/jdbc/dialect/GeneralDatabaseDialect.java b/debezium-connector-jdbc/src/main/java/io/debezium/connector/jdbc/dialect/GeneralDatabaseDialect.java index 6c1deccf4..6cdb5a3ed 100644 --- a/debezium-connector-jdbc/src/main/java/io/debezium/connector/jdbc/dialect/GeneralDatabaseDialect.java +++ b/debezium-connector-jdbc/src/main/java/io/debezium/connector/jdbc/dialect/GeneralDatabaseDialect.java @@ -292,7 +292,7 @@ public String getAlterTableStatement(TableDescriptor table, SinkRecordDescriptor builder.append("ALTER TABLE "); builder.append(getQualifiedTableName(table.getId())); builder.append(" "); - builder.appendList(" ", missingFields, (name) -> { + builder.appendList(getAlterTableStatementFieldDelimiter(), missingFields, (name) -> { final FieldDescriptor field = record.getFields().get(name); final StringBuilder addColumnSpec = new StringBuilder(); addColumnSpec.append("ADD "); diff --git a/debezium-connector-jdbc/src/main/java/io/debezium/connector/jdbc/dialect/mysql/MySqlDatabaseDialect.java b/debezium-connector-jdbc/src/main/java/io/debezium/connector/jdbc/dialect/mysql/MySqlDatabaseDialect.java index 516cbe432..a03749e31 100644 --- a/debezium-connector-jdbc/src/main/java/io/debezium/connector/jdbc/dialect/mysql/MySqlDatabaseDialect.java +++ b/debezium-connector-jdbc/src/main/java/io/debezium/connector/jdbc/dialect/mysql/MySqlDatabaseDialect.java @@ -111,6 +111,11 @@ protected void registerTypes() { registerType(MapToJsonType.INSTANCE); } + @Override + public String getAlterTableStatementFieldDelimiter() { + return ","; + } + @Override public int getMaxVarcharLengthInKey() { return 255;