Skip to content

Commit 870e023

Browse files
committed
[FLINK-39196][pipeline-connector][oracle] Support change column nullable without data type
[FLINK-39196][pipeline-connector][oracle] Support change column nullable without data type
1 parent c155638 commit 870e023

2 files changed

Lines changed: 11 additions & 5 deletions

File tree

flink-cdc-connect/flink-cdc-pipeline-connectors/flink-cdc-pipeline-connector-oracle/src/main/java/org/apache/flink/cdc/connectors/oracle/source/parser/OracleAlterTableParserListener.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
import io.debezium.ddl.parser.oracle.generated.PlSqlParser;
2929
import io.debezium.relational.Column;
3030
import io.debezium.relational.ColumnEditor;
31-
import io.debezium.relational.Table;
3231
import io.debezium.relational.TableEditor;
3332
import io.debezium.relational.TableId;
3433
import io.debezium.text.ParsingException;
@@ -88,7 +87,7 @@ public OracleAlterTableParserListener(
8887
@Override
8988
public void enterAlter_table(PlSqlParser.Alter_tableContext ctx) {
9089
TableId tableId = new TableId(catalogName, schemaName, getTableName(ctx.tableview_name()));
91-
tableEditor = Table.editor().tableId(tableId);
90+
tableEditor = parser.databaseTables().editTable(tableId);
9291
if (tableEditor == null) {
9392
throw new ParsingException(
9493
null,
@@ -174,7 +173,7 @@ public void enterModify_column_clauses(PlSqlParser.Modify_column_clausesContext
174173
columnEditors = new ArrayList<>(columns.size());
175174
for (PlSqlParser.Modify_col_propertiesContext column : columns) {
176175
String columnName = getColumnName(column.column_name());
177-
Column existingColumn = Column.editor().name(columnName).create();
176+
Column existingColumn = tableEditor.create().columnWithName(columnName);
178177
if (existingColumn != null) {
179178
ColumnEditor columnEditor = existingColumn.edit();
180179
columnDefinitionParserListener =

flink-cdc-connect/flink-cdc-pipeline-connectors/flink-cdc-pipeline-connector-oracle/src/test/java/org/apache/flink/cdc/connectors/oracle/source/OraclePipelineITCase.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1727,13 +1727,20 @@ private List<Event> executeAlterAndProvideExpected(TableId tableId, Statement st
17271727

17281728
statement.execute(
17291729
String.format(
1730-
"ALTER TABLE %s.products ADD DESC1 VARCHAR(45) DEFAULT NULL", "debezium"));
1730+
"ALTER TABLE %s.products ADD DESC1 VARCHAR(45) DEFAULT '' NOT NULL",
1731+
"debezium"));
17311732
expected.add(
17321733
new AddColumnEvent(
17331734
tableId,
17341735
Collections.singletonList(
17351736
new AddColumnEvent.ColumnWithPosition(
1736-
Column.physicalColumn("DESC1", DataTypes.VARCHAR(45))))));
1737+
Column.physicalColumn(
1738+
"DESC1", DataTypes.VARCHAR(45).notNull())))));
1739+
1740+
statement.execute(String.format("ALTER TABLE %s.products MODIFY DESC1 NULL", "DEBEZIUM"));
1741+
expected.add(
1742+
new AlterColumnTypeEvent(
1743+
tableId, Collections.singletonMap("DESC1", DataTypes.VARCHAR(45))));
17371744

17381745
statement.execute(
17391746
String.format(

0 commit comments

Comments
 (0)