DBZ-6554 Added method to override alter statement field delimiter, setting it to comma for MySQL dialect
This commit is contained in:
parent
bda4676108
commit
89ad5c5a40
@ -96,6 +96,15 @@ public interface DatabaseDialect {
|
|||||||
*/
|
*/
|
||||||
String getAlterTableStatement(TableDescriptor table, SinkRecordDescriptor record, Set<String> missingFields);
|
String getAlterTableStatement(TableDescriptor table, SinkRecordDescriptor record, Set<String> 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.
|
* Construct a {@code INSERT INTO} statement specific for this dialect.
|
||||||
*
|
*
|
||||||
|
@ -292,7 +292,7 @@ public String getAlterTableStatement(TableDescriptor table, SinkRecordDescriptor
|
|||||||
builder.append("ALTER TABLE ");
|
builder.append("ALTER TABLE ");
|
||||||
builder.append(getQualifiedTableName(table.getId()));
|
builder.append(getQualifiedTableName(table.getId()));
|
||||||
builder.append(" ");
|
builder.append(" ");
|
||||||
builder.appendList(" ", missingFields, (name) -> {
|
builder.appendList(getAlterTableStatementFieldDelimiter(), missingFields, (name) -> {
|
||||||
final FieldDescriptor field = record.getFields().get(name);
|
final FieldDescriptor field = record.getFields().get(name);
|
||||||
final StringBuilder addColumnSpec = new StringBuilder();
|
final StringBuilder addColumnSpec = new StringBuilder();
|
||||||
addColumnSpec.append("ADD ");
|
addColumnSpec.append("ADD ");
|
||||||
|
@ -111,6 +111,11 @@ protected void registerTypes() {
|
|||||||
registerType(MapToJsonType.INSTANCE);
|
registerType(MapToJsonType.INSTANCE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getAlterTableStatementFieldDelimiter() {
|
||||||
|
return ",";
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getMaxVarcharLengthInKey() {
|
public int getMaxVarcharLengthInKey() {
|
||||||
return 255;
|
return 255;
|
||||||
|
Loading…
Reference in New Issue
Block a user