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

zhouyao2023 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 afdcb3236b [Fix][Transform] Fix sql transform lose source type and 
options (#6855)
afdcb3236b is described below

commit afdcb3236b7b0788c666af7ad5abaeb9d18aab26
Author: Jia Fan <[email protected]>
AuthorDate: Tue May 21 10:25:06 2024 +0800

    [Fix][Transform] Fix sql transform lose source type and options (#6855)
---
 .../seatunnel/transform/sql/SQLTransform.java      |  6 +++--
 .../seatunnel/transform/sql/SQLTransformTest.java  | 29 +++++++++++++++++++---
 2 files changed, 30 insertions(+), 5 deletions(-)

diff --git 
a/seatunnel-transforms-v2/src/main/java/org/apache/seatunnel/transform/sql/SQLTransform.java
 
b/seatunnel-transforms-v2/src/main/java/org/apache/seatunnel/transform/sql/SQLTransform.java
index ac573f29ce..a9d04b0739 100644
--- 
a/seatunnel-transforms-v2/src/main/java/org/apache/seatunnel/transform/sql/SQLTransform.java
+++ 
b/seatunnel-transforms-v2/src/main/java/org/apache/seatunnel/transform/sql/SQLTransform.java
@@ -163,14 +163,16 @@ public class SQLTransform extends 
AbstractCatalogSupportTransform {
             Column column;
             if (simpleColumn != null) {
                 column =
-                        PhysicalColumn.of(
+                        new PhysicalColumn(
                                 fieldNames[i],
                                 fieldTypes[i],
                                 simpleColumn.getColumnLength(),
                                 simpleColumn.getScale(),
                                 simpleColumn.isNullable(),
                                 simpleColumn.getDefaultValue(),
-                                simpleColumn.getComment());
+                                simpleColumn.getComment(),
+                                simpleColumn.getSourceType(),
+                                simpleColumn.getOptions());
             } else {
                 column = PhysicalColumn.of(fieldNames[i], fieldTypes[i], 0, 
true, null, null);
             }
diff --git 
a/seatunnel-transforms-v2/src/test/java/org/apache/seatunnel/transform/sql/SQLTransformTest.java
 
b/seatunnel-transforms-v2/src/test/java/org/apache/seatunnel/transform/sql/SQLTransformTest.java
index afafa57514..c1002b5968 100644
--- 
a/seatunnel-transforms-v2/src/test/java/org/apache/seatunnel/transform/sql/SQLTransformTest.java
+++ 
b/seatunnel-transforms-v2/src/test/java/org/apache/seatunnel/transform/sql/SQLTransformTest.java
@@ -43,7 +43,7 @@ public class SQLTransformTest {
     private static final String GENERATE_PARTITION_KEY = "dt";
     private static final ReadonlyConfig READONLY_CONFIG =
             ReadonlyConfig.fromMap(
-                    new HashMap() {
+                    new HashMap<String, Object>() {
                         {
                             put(
                                     "query",
@@ -69,6 +69,23 @@ public class SQLTransformTest {
                         });
     }
 
+    @Test
+    public void testNotLoseSourceTypeAndOptions() {
+        SQLTransform sqlTransform = new SQLTransform(READONLY_CONFIG, 
getCatalogTable());
+        TableSchema tableSchema = sqlTransform.transformTableSchema();
+        tableSchema
+                .getColumns()
+                .forEach(
+                        column -> {
+                            if 
(!column.getName().equals(GENERATE_PARTITION_KEY)) {
+                                Assertions.assertEquals(
+                                        "source_" + column.getDataType(), 
column.getSourceType());
+                                Assertions.assertEquals(
+                                        "testInSQL", 
column.getOptions().get("context"));
+                            }
+                        });
+    }
+
     private CatalogTable getCatalogTable() {
         SeaTunnelRowType rowType =
                 new SeaTunnelRowType(
@@ -89,14 +106,20 @@ public class SQLTransformTest {
                 columnLength = 3L;
             }
             PhysicalColumn column =
-                    PhysicalColumn.of(
+                    new PhysicalColumn(
                             rowType.getFieldName(i),
                             rowType.getFieldType(i),
                             columnLength,
                             scale,
                             true,
                             null,
-                            null);
+                            null,
+                            "source_" + rowType.getFieldType(i),
+                            new HashMap<String, Object>() {
+                                {
+                                    put("context", "testInSQL");
+                                }
+                            });
             schemaBuilder.column(column);
         }
         return CatalogTable.of(

Reply via email to