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

corgy 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 64b8f1752e [Fix][Connector-V2] Fix starrocks decimal column definition 
generation(#9470) (#9471)
64b8f1752e is described below

commit 64b8f1752e4f879413d640c995c654390c4cbffd
Author: huangkuilin <[email protected]>
AuthorDate: Thu Jun 26 21:38:08 2025 +0800

    [Fix][Connector-V2] Fix starrocks decimal column definition 
generation(#9470) (#9471)
---
 .../starrocks/datatypes/StarRocksType.java         | 18 +++------
 .../datatypes/StarRocksTypeConverter.java          | 35 +++++++----------
 .../catalog/StarRocksTypeConverterTest.java        | 44 +++++++++++-----------
 3 files changed, 41 insertions(+), 56 deletions(-)

diff --git 
a/seatunnel-connectors-v2/connector-starrocks/src/main/java/org/apache/seatunnel/connectors/seatunnel/starrocks/datatypes/StarRocksType.java
 
b/seatunnel-connectors-v2/connector-starrocks/src/main/java/org/apache/seatunnel/connectors/seatunnel/starrocks/datatypes/StarRocksType.java
index 56511e6494..8a4cbf86a5 100644
--- 
a/seatunnel-connectors-v2/connector-starrocks/src/main/java/org/apache/seatunnel/connectors/seatunnel/starrocks/datatypes/StarRocksType.java
+++ 
b/seatunnel-connectors-v2/connector-starrocks/src/main/java/org/apache/seatunnel/connectors/seatunnel/starrocks/datatypes/StarRocksType.java
@@ -32,7 +32,6 @@ public class StarRocksType {
     public static final String SR_FLOAT = "FLOAT";
     public static final String SR_DOUBLE = "DOUBLE";
     public static final String SR_DECIMAL = "DECIMAL";
-    public static final String SR_DECIMALV3 = "DECIMALV3";
     public static final String SR_DATE = "DATE";
     public static final String SR_DATETIME = "DATETIME";
     public static final String SR_CHAR = "CHAR";
@@ -46,22 +45,17 @@ public class StarRocksType {
     public static final String SR_BIGINT_ARRAY = "ARRAY<bigint>";
     public static final String SR_FLOAT_ARRAY = "ARRAY<float>";
     public static final String SR_DOUBLE_ARRAY = "ARRAY<double>";
-    public static final String SR_DECIMALV3_ARRAY = "ARRAY<DECIMALV3>";
-    public static final String SR_DECIMALV3_ARRAY_COLUMN_TYPE_TMP = 
"ARRAY<DECIMALV3(%s, %s)>";
-    public static final String SR_DATEV2_ARRAY = "ARRAY<DATEV2>";
-    public static final String SR_DATETIMEV2_ARRAY = "ARRAY<DATETIMEV2>";
+    public static final String SR_DECIMAL_ARRAY = "ARRAY<DECIMAL>";
+    public static final String SR_DECIMAL_ARRAY_COLUMN_TYPE_TMP = 
"ARRAY<DECIMAL(%s, %s)>";
+    public static final String SR_DATE_ARRAY = "ARRAY<DATE>";
+    public static final String SR_DATETIME_ARRAY = "ARRAY<DATETIME>";
     public static final String SR_STRING_ARRAY = "ARRAY<STRING>";
 
     // Because can not get the column length from array, So the following 
types of arrays cannot be
     // generated properly.
     public static final String SR_LARGEINT_ARRAY = "ARRAY<largeint>";
-    public static final String SR_CHAR_ARRAY = "ARRAY<CHAR>";
-    public static final String SR_CHAR_ARRAY_COLUMN_TYPE_TMP = 
"ARRAY<CHAR(%s)>";
-    public static final String SR_VARCHAR_ARRAY = "ARRAY<VARCHAR>";
-    public static final String SR_VARCHAR_ARRAY_COLUMN_TYPE_TMP = 
"ARRAY<VARCHAR(%s)>";
 
     public static final String SR_JSON = "JSON";
-    public static final String SR_JSONB = "JSONB";
 
     public static final String SR_ARRAY = "ARRAY";
 
@@ -71,10 +65,8 @@ public class StarRocksType {
     public static final String SR_ARRAY_INT_INTER = "int(11)";
     public static final String SR_ARRAY_BIGINT_INTER = "bigint(20)";
     public static final String SR_ARRAY_DECIMAL_PRE = "DECIMAL";
-    public static final String SR_ARRAY_DATE_INTER = "date";
-    public static final String SR_ARRAY_DATEV2_INTER = "DATEV2";
+    public static final String SR_ARRAY_DATE_INTER = "DATE";
     public static final String SR_ARRAY_DATETIME_INTER = "DATETIME";
-    public static final String SR_ARRAY_DATETIMEV2_INTER = "DATETIMEV2";
 
     public static final String SR_MAP = "MAP";
     public static final String SR_MAP_COLUMN_TYPE = "MAP<%s, %s>";
diff --git 
a/seatunnel-connectors-v2/connector-starrocks/src/main/java/org/apache/seatunnel/connectors/seatunnel/starrocks/datatypes/StarRocksTypeConverter.java
 
b/seatunnel-connectors-v2/connector-starrocks/src/main/java/org/apache/seatunnel/connectors/seatunnel/starrocks/datatypes/StarRocksTypeConverter.java
index dcaa0e3254..536598759e 100644
--- 
a/seatunnel-connectors-v2/connector-starrocks/src/main/java/org/apache/seatunnel/connectors/seatunnel/starrocks/datatypes/StarRocksTypeConverter.java
+++ 
b/seatunnel-connectors-v2/connector-starrocks/src/main/java/org/apache/seatunnel/connectors/seatunnel/starrocks/datatypes/StarRocksTypeConverter.java
@@ -42,9 +42,7 @@ import java.util.regex.Pattern;
 import static 
org.apache.seatunnel.connectors.seatunnel.starrocks.datatypes.StarRocksType.SR_ARRAY;
 import static 
org.apache.seatunnel.connectors.seatunnel.starrocks.datatypes.StarRocksType.SR_ARRAY_BIGINT_INTER;
 import static 
org.apache.seatunnel.connectors.seatunnel.starrocks.datatypes.StarRocksType.SR_ARRAY_BOOLEAN_INTER;
-import static 
org.apache.seatunnel.connectors.seatunnel.starrocks.datatypes.StarRocksType.SR_ARRAY_DATETIMEV2_INTER;
 import static 
org.apache.seatunnel.connectors.seatunnel.starrocks.datatypes.StarRocksType.SR_ARRAY_DATETIME_INTER;
-import static 
org.apache.seatunnel.connectors.seatunnel.starrocks.datatypes.StarRocksType.SR_ARRAY_DATEV2_INTER;
 import static 
org.apache.seatunnel.connectors.seatunnel.starrocks.datatypes.StarRocksType.SR_ARRAY_DATE_INTER;
 import static 
org.apache.seatunnel.connectors.seatunnel.starrocks.datatypes.StarRocksType.SR_ARRAY_DECIMAL_PRE;
 import static 
org.apache.seatunnel.connectors.seatunnel.starrocks.datatypes.StarRocksType.SR_ARRAY_INT_INTER;
@@ -58,12 +56,11 @@ import static 
org.apache.seatunnel.connectors.seatunnel.starrocks.datatypes.Star
 import static 
org.apache.seatunnel.connectors.seatunnel.starrocks.datatypes.StarRocksType.SR_CHAR;
 import static 
org.apache.seatunnel.connectors.seatunnel.starrocks.datatypes.StarRocksType.SR_DATE;
 import static 
org.apache.seatunnel.connectors.seatunnel.starrocks.datatypes.StarRocksType.SR_DATETIME;
-import static 
org.apache.seatunnel.connectors.seatunnel.starrocks.datatypes.StarRocksType.SR_DATETIMEV2_ARRAY;
-import static 
org.apache.seatunnel.connectors.seatunnel.starrocks.datatypes.StarRocksType.SR_DATEV2_ARRAY;
+import static 
org.apache.seatunnel.connectors.seatunnel.starrocks.datatypes.StarRocksType.SR_DATETIME_ARRAY;
+import static 
org.apache.seatunnel.connectors.seatunnel.starrocks.datatypes.StarRocksType.SR_DATE_ARRAY;
 import static 
org.apache.seatunnel.connectors.seatunnel.starrocks.datatypes.StarRocksType.SR_DECIMAL;
-import static 
org.apache.seatunnel.connectors.seatunnel.starrocks.datatypes.StarRocksType.SR_DECIMALV3;
-import static 
org.apache.seatunnel.connectors.seatunnel.starrocks.datatypes.StarRocksType.SR_DECIMALV3_ARRAY;
-import static 
org.apache.seatunnel.connectors.seatunnel.starrocks.datatypes.StarRocksType.SR_DECIMALV3_ARRAY_COLUMN_TYPE_TMP;
+import static 
org.apache.seatunnel.connectors.seatunnel.starrocks.datatypes.StarRocksType.SR_DECIMAL_ARRAY;
+import static 
org.apache.seatunnel.connectors.seatunnel.starrocks.datatypes.StarRocksType.SR_DECIMAL_ARRAY_COLUMN_TYPE_TMP;
 import static 
org.apache.seatunnel.connectors.seatunnel.starrocks.datatypes.StarRocksType.SR_DOUBLE;
 import static 
org.apache.seatunnel.connectors.seatunnel.starrocks.datatypes.StarRocksType.SR_DOUBLE_ARRAY;
 import static 
org.apache.seatunnel.connectors.seatunnel.starrocks.datatypes.StarRocksType.SR_FLOAT;
@@ -91,7 +88,6 @@ public class StarRocksTypeConverter implements 
TypeConverter<BasicTypeDefine<Sta
     public static final long MAX_STRING_LENGTH = 2147483643;
     public static final Long MAX_PRECISION = 38L;
     public static final Integer MAX_SCALE = 10;
-    public static final Integer MAX_DATETIME_SCALE = 6;
     public static final long POWER_2_8 = (long) Math.pow(2, 8);
 
     public static final StarRocksTypeConverter INSTANCE = new 
StarRocksTypeConverter();
@@ -148,7 +144,6 @@ public class StarRocksTypeConverter implements 
TypeConverter<BasicTypeDefine<Sta
                 builder.dataType(BasicType.DOUBLE_TYPE);
                 break;
             case SR_DECIMAL:
-            case SR_DECIMALV3:
                 setDecimalType(builder, typeDefine);
                 break;
             case SR_CHAR:
@@ -290,8 +285,8 @@ public class StarRocksTypeConverter implements 
TypeConverter<BasicTypeDefine<Sta
                             precision,
                             scale);
                 }
-                builder.columnType(String.format("%s(%s,%s)", SR_DECIMALV3, 
precision, scale));
-                builder.dataType(SR_DECIMALV3);
+                builder.columnType(String.format("%s(%s,%s)", SR_DECIMAL, 
precision, scale));
+                builder.dataType(SR_DECIMAL);
                 builder.precision((long) precision);
                 builder.scale(scale);
                 break;
@@ -381,11 +376,9 @@ public class StarRocksTypeConverter implements 
TypeConverter<BasicTypeDefine<Sta
                     new DecimalArrayType(
                             new DecimalType(precisionAndScale[0], 
precisionAndScale[1]));
             builder.dataType(decimalArray);
-        } else if (columnInterType.equalsIgnoreCase(SR_ARRAY_DATE_INTER)
-                || columnInterType.equalsIgnoreCase(SR_ARRAY_DATEV2_INTER)) {
+        } else if (columnInterType.equalsIgnoreCase(SR_ARRAY_DATE_INTER)) {
             builder.dataType(ArrayType.LOCAL_DATE_ARRAY_TYPE);
-        } else if (columnInterType.equalsIgnoreCase(SR_ARRAY_DATETIME_INTER)
-                || 
columnInterType.equalsIgnoreCase(SR_ARRAY_DATETIMEV2_INTER)) {
+        } else if (columnInterType.equalsIgnoreCase(SR_ARRAY_DATETIME_INTER)) {
             builder.dataType(ArrayType.LOCAL_DATE_TIME_ARRAY_TYPE);
         } else if (columnInterType.equalsIgnoreCase(SR_LARGEINT)) {
             DecimalArrayType decimalArray = new DecimalArrayType(new 
DecimalType(20, 0));
@@ -539,10 +532,10 @@ public class StarRocksTypeConverter implements 
TypeConverter<BasicTypeDefine<Sta
                 int[] precisionAndScale = 
getPrecisionAndScale(elementType.toString());
                 builder.columnType(
                         String.format(
-                                SR_DECIMALV3_ARRAY_COLUMN_TYPE_TMP,
+                                SR_DECIMAL_ARRAY_COLUMN_TYPE_TMP,
                                 precisionAndScale[0],
                                 precisionAndScale[1]));
-                builder.dataType(SR_DECIMALV3_ARRAY);
+                builder.dataType(SR_DECIMAL_ARRAY);
                 break;
             case STRING:
             case TIME:
@@ -550,12 +543,12 @@ public class StarRocksTypeConverter implements 
TypeConverter<BasicTypeDefine<Sta
                 builder.dataType(SR_STRING_ARRAY);
                 break;
             case DATE:
-                builder.columnType(SR_DATEV2_ARRAY);
-                builder.dataType(SR_DATEV2_ARRAY);
+                builder.columnType(SR_DATE_ARRAY);
+                builder.dataType(SR_DATE_ARRAY);
                 break;
             case TIMESTAMP:
-                builder.columnType(SR_DATETIMEV2_ARRAY);
-                builder.dataType(SR_DATETIMEV2_ARRAY);
+                builder.columnType(SR_DATETIME_ARRAY);
+                builder.dataType(SR_DATETIME_ARRAY);
                 break;
             default:
                 throw CommonError.convertToConnectorTypeError(
diff --git 
a/seatunnel-connectors-v2/connector-starrocks/src/test/java/org/apache/seatunnel/connectors/seatunnel/starrocks/catalog/StarRocksTypeConverterTest.java
 
b/seatunnel-connectors-v2/connector-starrocks/src/test/java/org/apache/seatunnel/connectors/seatunnel/starrocks/catalog/StarRocksTypeConverterTest.java
index d57832c7b0..8bd4ca5f21 100644
--- 
a/seatunnel-connectors-v2/connector-starrocks/src/test/java/org/apache/seatunnel/connectors/seatunnel/starrocks/catalog/StarRocksTypeConverterTest.java
+++ 
b/seatunnel-connectors-v2/connector-starrocks/src/test/java/org/apache/seatunnel/connectors/seatunnel/starrocks/catalog/StarRocksTypeConverterTest.java
@@ -43,9 +43,9 @@ import static 
org.apache.seatunnel.connectors.seatunnel.starrocks.datatypes.Star
 import static 
org.apache.seatunnel.connectors.seatunnel.starrocks.datatypes.StarRocksType.SR_CHAR;
 import static 
org.apache.seatunnel.connectors.seatunnel.starrocks.datatypes.StarRocksType.SR_DATE;
 import static 
org.apache.seatunnel.connectors.seatunnel.starrocks.datatypes.StarRocksType.SR_DATETIME;
-import static 
org.apache.seatunnel.connectors.seatunnel.starrocks.datatypes.StarRocksType.SR_DATETIMEV2_ARRAY;
-import static 
org.apache.seatunnel.connectors.seatunnel.starrocks.datatypes.StarRocksType.SR_DATEV2_ARRAY;
-import static 
org.apache.seatunnel.connectors.seatunnel.starrocks.datatypes.StarRocksType.SR_DECIMALV3;
+import static 
org.apache.seatunnel.connectors.seatunnel.starrocks.datatypes.StarRocksType.SR_DATETIME_ARRAY;
+import static 
org.apache.seatunnel.connectors.seatunnel.starrocks.datatypes.StarRocksType.SR_DATE_ARRAY;
+import static 
org.apache.seatunnel.connectors.seatunnel.starrocks.datatypes.StarRocksType.SR_DECIMAL;
 import static 
org.apache.seatunnel.connectors.seatunnel.starrocks.datatypes.StarRocksType.SR_DOUBLE;
 import static 
org.apache.seatunnel.connectors.seatunnel.starrocks.datatypes.StarRocksType.SR_DOUBLE_ARRAY;
 import static 
org.apache.seatunnel.connectors.seatunnel.starrocks.datatypes.StarRocksType.SR_FLOAT;
@@ -255,7 +255,7 @@ public class StarRocksTypeConverterTest {
         BasicTypeDefine<StarRocksType> typeDefine =
                 BasicTypeDefine.<StarRocksType>builder()
                         .name("test")
-                        .columnType("decimalv3")
+                        .columnType("decimal")
                         .dataType("decimal")
                         .precision(9L)
                         .scale(2)
@@ -270,7 +270,7 @@ public class StarRocksTypeConverterTest {
         typeDefine =
                 BasicTypeDefine.<StarRocksType>builder()
                         .name("test")
-                        .columnType("decimalv3(36,2)")
+                        .columnType("decimal(36,2)")
                         .dataType("decimal")
                         .precision(38L)
                         .scale(2)
@@ -465,7 +465,7 @@ public class StarRocksTypeConverterTest {
         typeDefine =
                 BasicTypeDefine.<StarRocksType>builder()
                         .name("test")
-                        .columnType("array<decimalv3(10, 2)>")
+                        .columnType("array<decimal(10, 2)>")
                         .dataType("ARRAY")
                         .build();
         column = converter.convert(typeDefine);
@@ -598,7 +598,7 @@ public class StarRocksTypeConverterTest {
         typeDefine =
                 BasicTypeDefine.<StarRocksType>builder()
                         .name("test")
-                        .columnType("map<string,decimalv3(10, 2)>")
+                        .columnType("map<string,decimal(10, 2)>")
                         .dataType("MAP")
                         .build();
         column = converter.convert(typeDefine);
@@ -610,7 +610,7 @@ public class StarRocksTypeConverterTest {
         typeDefine =
                 BasicTypeDefine.<StarRocksType>builder()
                         .name("test")
-                        .columnType("map<decimalv3(10, 2),date>")
+                        .columnType("map<decimal(10, 2),date>")
                         .dataType("MAP")
                         .build();
         column = converter.convert(typeDefine);
@@ -779,19 +779,19 @@ public class StarRocksTypeConverterTest {
         Assertions.assertEquals(
                 String.format(
                         "%s(%s,%s)",
-                        SR_DECIMALV3,
+                        SR_DECIMAL,
                         StarRocksTypeConverter.MAX_PRECISION,
                         StarRocksTypeConverter.MAX_SCALE),
                 typeDefine.getColumnType());
-        Assertions.assertEquals(SR_DECIMALV3, typeDefine.getDataType());
+        Assertions.assertEquals(SR_DECIMAL, typeDefine.getDataType());
 
         column = PhysicalColumn.builder().name("test").dataType(new 
DecimalType(10, 2)).build();
 
         typeDefine = converter.reconvert(column);
         Assertions.assertEquals(column.getName(), typeDefine.getName());
-        Assertions.assertEquals(SR_DECIMALV3, typeDefine.getDataType());
+        Assertions.assertEquals(SR_DECIMAL, typeDefine.getDataType());
         Assertions.assertEquals(
-                String.format("%s(%s,%s)", SR_DECIMALV3, 10, 2), 
typeDefine.getColumnType());
+                String.format("%s(%s,%s)", SR_DECIMAL, 10, 2), 
typeDefine.getColumnType());
 
         column = PhysicalColumn.builder().name("test").dataType(new 
DecimalType(40, 2)).build();
 
@@ -1098,8 +1098,8 @@ public class StarRocksTypeConverterTest {
 
         typeDefine = converter.reconvert(column);
         Assertions.assertEquals(column.getName(), typeDefine.getName());
-        Assertions.assertEquals(SR_DATEV2_ARRAY, typeDefine.getColumnType());
-        Assertions.assertEquals(SR_DATEV2_ARRAY, typeDefine.getDataType());
+        Assertions.assertEquals(SR_DATE_ARRAY, typeDefine.getColumnType());
+        Assertions.assertEquals(SR_DATE_ARRAY, typeDefine.getDataType());
 
         column =
                 PhysicalColumn.builder()
@@ -1109,16 +1109,16 @@ public class StarRocksTypeConverterTest {
 
         typeDefine = converter.reconvert(column);
         Assertions.assertEquals(column.getName(), typeDefine.getName());
-        Assertions.assertEquals(SR_DATETIMEV2_ARRAY, 
typeDefine.getColumnType());
-        Assertions.assertEquals(SR_DATETIMEV2_ARRAY, typeDefine.getDataType());
+        Assertions.assertEquals(SR_DATETIME_ARRAY, typeDefine.getColumnType());
+        Assertions.assertEquals(SR_DATETIME_ARRAY, typeDefine.getDataType());
 
         DecimalArrayType decimalArrayType = new DecimalArrayType(new 
DecimalType(10, 2));
         column = 
PhysicalColumn.builder().name("test").dataType(decimalArrayType).build();
 
         typeDefine = converter.reconvert(column);
         Assertions.assertEquals(column.getName(), typeDefine.getName());
-        Assertions.assertEquals("ARRAY<DECIMALV3(10, 2)>", 
typeDefine.getColumnType());
-        Assertions.assertEquals("ARRAY<DECIMALV3>", typeDefine.getDataType());
+        Assertions.assertEquals("ARRAY<DECIMAL(10, 2)>", 
typeDefine.getColumnType());
+        Assertions.assertEquals("ARRAY<DECIMAL>", typeDefine.getDataType());
 
         decimalArrayType = new DecimalArrayType(new DecimalType(20, 0));
         column =
@@ -1129,8 +1129,8 @@ public class StarRocksTypeConverterTest {
                         .build();
         typeDefine = converter.reconvert(column);
         Assertions.assertEquals(column.getName(), typeDefine.getName());
-        Assertions.assertEquals("ARRAY<DECIMALV3(20, 0)>", 
typeDefine.getColumnType());
-        Assertions.assertEquals("ARRAY<DECIMALV3>", typeDefine.getDataType());
+        Assertions.assertEquals("ARRAY<DECIMAL(20, 0)>", 
typeDefine.getColumnType());
+        Assertions.assertEquals("ARRAY<DECIMAL>", typeDefine.getDataType());
     }
 
     @Test
@@ -1222,8 +1222,8 @@ public class StarRocksTypeConverterTest {
 
         typeDefine = converter.reconvert(column);
         Assertions.assertEquals(column.getName(), typeDefine.getName());
-        Assertions.assertEquals("MAP<DECIMALV3(10,2), STRING>", 
typeDefine.getColumnType());
-        Assertions.assertEquals("MAP<DECIMALV3(10,2), STRING>", 
typeDefine.getDataType());
+        Assertions.assertEquals("MAP<DECIMAL(10,2), STRING>", 
typeDefine.getColumnType());
+        Assertions.assertEquals("MAP<DECIMAL(10,2), STRING>", 
typeDefine.getDataType());
 
         column =
                 PhysicalColumn.builder()

Reply via email to