This is an automated email from the ASF dual-hosted git repository.
diwu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris-flink-connector.git
The following commit(s) were added to refs/heads/master by this push:
new 9e06de98 [Fix](cdc) When a doris field has default value '' (empty
str), the ddl to modify the column type is incorrectly (#600)
9e06de98 is described below
commit 9e06de984e199f352afd603f231976f9131d9eb7
Author: potterhe <[email protected]>
AuthorDate: Wed Jun 11 14:11:08 2025 +0800
[Fix](cdc) When a doris field has default value '' (empty str), the ddl to
modify the column type is incorrectly (#600)
---
.../flink/sink/schema/SchemaChangeHelper.java | 2 +-
.../flink/sink/schema/SchemaManagerITCase.java | 31 ++++++++++++++++++++++
2 files changed, 32 insertions(+), 1 deletion(-)
diff --git
a/flink-doris-connector/src/main/java/org/apache/doris/flink/sink/schema/SchemaChangeHelper.java
b/flink-doris-connector/src/main/java/org/apache/doris/flink/sink/schema/SchemaChangeHelper.java
index b772ec3d..aacd6f7f 100644
---
a/flink-doris-connector/src/main/java/org/apache/doris/flink/sink/schema/SchemaChangeHelper.java
+++
b/flink-doris-connector/src/main/java/org/apache/doris/flink/sink/schema/SchemaChangeHelper.java
@@ -175,7 +175,7 @@ public class SchemaChangeHelper {
DorisSchemaFactory.quoteTableIdentifier(tableIdentifier),
DorisSchemaFactory.identifier(columnName),
dataType));
- if (StringUtils.isNotBlank(defaultValue)) {
+ if (defaultValue != null) {
modifyDDL
.append(" DEFAULT ")
.append(DorisSchemaFactory.quoteDefaultValue(defaultValue));
diff --git
a/flink-doris-connector/src/test/java/org/apache/doris/flink/sink/schema/SchemaManagerITCase.java
b/flink-doris-connector/src/test/java/org/apache/doris/flink/sink/schema/SchemaManagerITCase.java
index b3cc0abc..67f731bb 100644
---
a/flink-doris-connector/src/test/java/org/apache/doris/flink/sink/schema/SchemaManagerITCase.java
+++
b/flink-doris-connector/src/test/java/org/apache/doris/flink/sink/schema/SchemaManagerITCase.java
@@ -291,6 +291,37 @@ public class SchemaManagerITCase extends
AbstractITCaseService {
Assert.assertEquals(newColumnType, columnType.toLowerCase());
}
+ @Test
+ public void testModifyColumnTypeWithDefault2()
+ throws IOException, IllegalArgumentException, InterruptedException
{
+ String modifyColumnTbls = "modify_column_type_with_default_value2";
+ ContainerUtils.executeSQLStatement(
+ getDorisQueryConnection(),
+ LOG,
+ String.format("CREATE DATABASE IF NOT EXISTS %s", DATABASE),
+ String.format("DROP TABLE IF EXISTS %s.%s", DATABASE,
modifyColumnTbls),
+ String.format(
+ "CREATE TABLE %s.%s ( \n"
+ + "`id` int not null,\n"
+ + "`cname` varchar(10) NOT NULL DEFAULT ''\n"
+ + ")"
+ + "UNIQUE KEY(`id`)\n"
+ + "DISTRIBUTED BY HASH(`id`) BUCKETS 1\n"
+ + "PROPERTIES (\n"
+ + "\"replication_num\" = \"1\"\n"
+ + ")\n",
+ DATABASE, modifyColumnTbls));
+
+ String columnName = "cname";
+ String newColumnType = "varchar(11)";
+ FieldSchema field = new FieldSchema(columnName, newColumnType, "");
+ schemaChangeManager.modifyColumnDataType(DATABASE, modifyColumnTbls,
field);
+
+ Thread.sleep(3_000);
+ String columnType = getColumnType(modifyColumnTbls, columnName);
+ Assert.assertEquals("varchar", columnType.toLowerCase());
+ }
+
@Test
public void testModifyColumnTypeWithDefaultAndChange()
throws IOException, IllegalArgumentException, InterruptedException
{
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]