This is an automated email from the ASF dual-hosted git repository.

wuchunfu pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/seatunnel.git


The following commit(s) were added to refs/heads/dev by this push:
     new 7130382123 [Hotifx][Jdbc] Fix MySQL unsupport 'ZEROFILL' column type 
(#7407)
7130382123 is described below

commit 71303821238f02125eb668ad4fb20dd48b00a152
Author: hailin0 <[email protected]>
AuthorDate: Fri Aug 16 15:41:35 2024 +0800

    [Hotifx][Jdbc] Fix MySQL unsupport 'ZEROFILL' column type (#7407)
---
 .../jdbc/internal/dialect/mysql/MySqlTypeConverter.java       |  4 ++++
 .../jdbc/internal/dialect/mysql/MySqlTypeConverterTest.java   | 11 +++++++++++
 2 files changed, 15 insertions(+)

diff --git 
a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/mysql/MySqlTypeConverter.java
 
b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/mysql/MySqlTypeConverter.java
index 6d0fb80af9..5d8f7809cf 100644
--- 
a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/mysql/MySqlTypeConverter.java
+++ 
b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/mysql/MySqlTypeConverter.java
@@ -129,6 +129,10 @@ public class MySqlTypeConverter implements 
TypeConverter<BasicTypeDefine<MysqlTy
                         .comment(typeDefine.getComment());
 
         String mysqlDataType = typeDefine.getDataType().toUpperCase();
+        if (mysqlDataType.endsWith("ZEROFILL")) {
+            mysqlDataType =
+                    mysqlDataType.substring(0, mysqlDataType.length() - 
"ZEROFILL".length()).trim();
+        }
         if (typeDefine.isUnsigned() && !(mysqlDataType.endsWith(" UNSIGNED"))) 
{
             mysqlDataType = mysqlDataType + " UNSIGNED";
         }
diff --git 
a/seatunnel-connectors-v2/connector-jdbc/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/mysql/MySqlTypeConverterTest.java
 
b/seatunnel-connectors-v2/connector-jdbc/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/mysql/MySqlTypeConverterTest.java
index 2e11212b31..fa0b71594e 100644
--- 
a/seatunnel-connectors-v2/connector-jdbc/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/mysql/MySqlTypeConverterTest.java
+++ 
b/seatunnel-connectors-v2/connector-jdbc/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/mysql/MySqlTypeConverterTest.java
@@ -263,6 +263,17 @@ public class MySqlTypeConverterTest {
         Assertions.assertEquals(typeDefine.getName(), column.getName());
         Assertions.assertEquals(new DecimalType(20, 0), column.getDataType());
         Assertions.assertEquals(typeDefine.getColumnType(), 
column.getSourceType());
+
+        typeDefine =
+                BasicTypeDefine.builder()
+                        .name("test")
+                        .columnType("bigint unsigned zerofill")
+                        .dataType("bigint unsigned zerofill")
+                        .build();
+        column = MySqlTypeConverter.DEFAULT_INSTANCE.convert(typeDefine);
+        Assertions.assertEquals(typeDefine.getName(), column.getName());
+        Assertions.assertEquals(new DecimalType(20, 0), column.getDataType());
+        Assertions.assertEquals(typeDefine.getColumnType(), 
column.getSourceType());
     }
 
     @Test

Reply via email to