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

fanjia 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 02d2b69d85 [improve][Connector-jdbc] add comments when schema not 
include all columns (#9559)
02d2b69d85 is described below

commit 02d2b69d8549580144a635a32813b62aacdd7c1f
Author: wildpea <[email protected]>
AuthorDate: Mon Jul 14 12:09:49 2025 +0800

    [improve][Connector-jdbc] add comments when schema not include all columns 
(#9559)
    
    Co-authored-by: 龙妮 <[email protected]>
---
 .../seatunnel/jdbc/utils/JdbcCatalogUtils.java     | 38 +++++++++++++++++++++-
 .../seatunnel/jdbc/utils/JdbcCatalogUtilsTest.java | 12 +++----
 2 files changed, 43 insertions(+), 7 deletions(-)

diff --git 
a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/utils/JdbcCatalogUtils.java
 
b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/utils/JdbcCatalogUtils.java
index e81166ffd9..8fac3a6e5a 100644
--- 
a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/utils/JdbcCatalogUtils.java
+++ 
b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/utils/JdbcCatalogUtils.java
@@ -25,6 +25,7 @@ import org.apache.seatunnel.api.table.catalog.Catalog;
 import org.apache.seatunnel.api.table.catalog.CatalogTable;
 import org.apache.seatunnel.api.table.catalog.Column;
 import org.apache.seatunnel.api.table.catalog.ConstraintKey;
+import org.apache.seatunnel.api.table.catalog.PhysicalColumn;
 import org.apache.seatunnel.api.table.catalog.PrimaryKey;
 import org.apache.seatunnel.api.table.catalog.TableIdentifier;
 import org.apache.seatunnel.api.table.catalog.TablePath;
@@ -319,13 +320,48 @@ public class JdbcCatalogUtils {
                         tableOfPath.getTableId().getDatabaseName(),
                         tableOfPath.getTableId().getSchemaName(),
                         tableOfPath.getTableId().getTableName());
+        List<Column> columnsWithComment =
+                tableSchemaOfQuery.getColumns().stream()
+                        .map(
+                                column -> {
+                                    return 
columnsOfPath.containsKey(column.getName())
+                                                    && columnsOfPath
+                                                            
.get(column.getName())
+                                                            .getDataType()
+                                                            .getSqlType()
+                                                            .equals(
+                                                                    
columnsOfQuery
+                                                                            
.get(column.getName())
+                                                                            
.getDataType()
+                                                                            
.getSqlType())
+                                            ? PhysicalColumn.of(
+                                                    column.getName(),
+                                                    column.getDataType(),
+                                                    column.getColumnLength() 
== null
+                                                            ? null
+                                                            : Math.toIntExact(
+                                                                    
column.getColumnLength()),
+                                                    column.isNullable(),
+                                                    column.getDefaultValue(),
+                                                    columnsOfPath
+                                                            
.get(column.getName())
+                                                            .getComment(),
+                                                    column.getSourceType(),
+                                                    column.isUnsigned(),
+                                                    column.isZeroFill(),
+                                                    column.getBitLen(),
+                                                    column.getOptions(),
+                                                    
column.getLongColumnLength())
+                                            : column;
+                                })
+                        .collect(Collectors.toList());
         CatalogTable mergedCatalogTable =
                 CatalogTable.of(
                         tableIdentifier,
                         TableSchema.builder()
                                 .primaryKey(primaryKeyOfMerge)
                                 .constraintKey(constraintKeysOfMerge)
-                                .columns(tableSchemaOfQuery.getColumns())
+                                .columns(columnsWithComment)
                                 .build(),
                         tableOfPath.getOptions(),
                         partitionKeysOfMerge,
diff --git 
a/seatunnel-connectors-v2/connector-jdbc/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/utils/JdbcCatalogUtilsTest.java
 
b/seatunnel-connectors-v2/connector-jdbc/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/utils/JdbcCatalogUtilsTest.java
index 223a5b345d..3067e3c2ce 100644
--- 
a/seatunnel-connectors-v2/connector-jdbc/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/utils/JdbcCatalogUtilsTest.java
+++ 
b/seatunnel-connectors-v2/connector-jdbc/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/utils/JdbcCatalogUtilsTest.java
@@ -67,7 +67,7 @@ public class JdbcCatalogUtilsTest {
                                             null,
                                             false,
                                             null,
-                                            null,
+                                            "f1 comment",
                                             "int unsigned",
                                             false,
                                             false,
@@ -81,7 +81,7 @@ public class JdbcCatalogUtilsTest {
                                             10,
                                             false,
                                             null,
-                                            null,
+                                            "f2 comment",
                                             "varchar(10)",
                                             false,
                                             false,
@@ -95,7 +95,7 @@ public class JdbcCatalogUtilsTest {
                                             20,
                                             false,
                                             null,
-                                            null,
+                                            "f3 comment",
                                             "varchar(20)",
                                             false,
                                             false,
@@ -261,7 +261,7 @@ public class JdbcCatalogUtilsTest {
                                                 null,
                                                 true,
                                                 null,
-                                                null,
+                                                "f1 comment",
                                                 null,
                                                 false,
                                                 false,
@@ -275,7 +275,7 @@ public class JdbcCatalogUtilsTest {
                                                 10,
                                                 true,
                                                 null,
-                                                null,
+                                                "f2 comment",
                                                 null,
                                                 false,
                                                 false,
@@ -289,7 +289,7 @@ public class JdbcCatalogUtilsTest {
                                                 20,
                                                 false,
                                                 null,
-                                                null,
+                                                "f3 comment",
                                                 null,
                                                 false,
                                                 false,

Reply via email to