This is an automated email from the ASF dual-hosted git repository.
tyrantlucifer pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/incubator-seatunnel.git
The following commit(s) were added to refs/heads/dev by this push:
new 7441cd96e [Hotfix][API] Fix parse nested row data type key changed
upper (#4459)
7441cd96e is described below
commit 7441cd96ee260f52ae115bfc97e68eb1c7bc4ea2
Author: 沫 <[email protected]>
AuthorDate: Mon Apr 3 17:33:33 2023 +0800
[Hotfix][API] Fix parse nested row data type key changed upper (#4459)
* [hotfix][api]fix parse nested row data type key changed upper
* [hotfix][api]add ut to verify parse field name correct
---------
Co-authored-by: zhoutao.tobeone <[email protected]>
---
.../seatunnel/api/table/catalog/CatalogTableUtil.java | 16 ++++++++--------
.../api/table/catalog/CatalogTableUtilTest.java | 5 +++++
2 files changed, 13 insertions(+), 8 deletions(-)
diff --git
a/seatunnel-api/src/main/java/org/apache/seatunnel/api/table/catalog/CatalogTableUtil.java
b/seatunnel-api/src/main/java/org/apache/seatunnel/api/table/catalog/CatalogTableUtil.java
index a6fa269ab..637a2c9ff 100644
---
a/seatunnel-api/src/main/java/org/apache/seatunnel/api/table/catalog/CatalogTableUtil.java
+++
b/seatunnel-api/src/main/java/org/apache/seatunnel/api/table/catalog/CatalogTableUtil.java
@@ -184,10 +184,9 @@ public class CatalogTableUtil implements Serializable {
}
public static SeaTunnelDataType<?> parseDataType(String columnStr) {
- columnStr = columnStr.toUpperCase().replace(" ", "");
SqlType sqlType = null;
try {
- sqlType = SqlType.valueOf(columnStr);
+ sqlType = SqlType.valueOf(columnStr.toUpperCase().replace(" ",
""));
} catch (IllegalArgumentException e) {
// nothing
}
@@ -228,14 +227,15 @@ public class CatalogTableUtil implements Serializable {
}
private static SeaTunnelDataType<?> parseComplexDataType(String columnStr)
{
- if (columnStr.startsWith(SqlType.MAP.name())) {
- return parseMapType(columnStr);
+ String column = columnStr.toUpperCase().replace(" ", "");
+ if (column.startsWith(SqlType.MAP.name())) {
+ return parseMapType(column);
}
- if (columnStr.startsWith(SqlType.ARRAY.name())) {
- return parseArrayType(columnStr);
+ if (column.startsWith(SqlType.ARRAY.name())) {
+ return parseArrayType(column);
}
- if (columnStr.startsWith(SqlType.DECIMAL.name())) {
- return parseDecimalType(columnStr);
+ if (column.startsWith(SqlType.DECIMAL.name())) {
+ return parseDecimalType(column);
}
return parseRowType(columnStr);
}
diff --git
a/seatunnel-api/src/test/java/org/apache/seatunnel/api/table/catalog/CatalogTableUtilTest.java
b/seatunnel-api/src/test/java/org/apache/seatunnel/api/table/catalog/CatalogTableUtilTest.java
index 6ed5e5efa..3d8c8344c 100644
---
a/seatunnel-api/src/test/java/org/apache/seatunnel/api/table/catalog/CatalogTableUtilTest.java
+++
b/seatunnel-api/src/test/java/org/apache/seatunnel/api/table/catalog/CatalogTableUtilTest.java
@@ -81,6 +81,11 @@ public class CatalogTableUtilTest {
BasicType.STRING_TYPE,
new MapType<>(BasicType.STRING_TYPE,
ArrayType.INT_ARRAY_TYPE)));
Assertions.assertEquals(seaTunnelRowType.getFieldType(17).getSqlType(),
SqlType.ROW);
+ SeaTunnelRowType nestedRowFieldType = (SeaTunnelRowType)
seaTunnelRowType.getFieldType(17);
+ Assertions.assertEquals(
+ "map",
nestedRowFieldType.getFieldName(nestedRowFieldType.indexOf("map")));
+ Assertions.assertEquals(
+ "row",
nestedRowFieldType.getFieldName(nestedRowFieldType.indexOf("row")));
}
public static String getTestConfigFile(String configFile)