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(