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

diwu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris-flink-connector.git


The following commit(s) were added to refs/heads/master by this push:
     new 9ea56b9f [improve](testcase) add unit test for flink type (#409)
9ea56b9f is described below

commit 9ea56b9f5075160ac0072d0aa7f0d9c8c2d4542e
Author: Petrichor <[email protected]>
AuthorDate: Wed Jun 26 14:19:00 2024 +0800

    [improve](testcase) add unit test for flink type (#409)
---
 .../doris/flink/catalog/DorisTypeMapper.java       | 28 +++++++++++++++
 .../doris/flink/catalog/DorisTypeMapperTest.java   | 42 ++++++++++++++++++++--
 2 files changed, 68 insertions(+), 2 deletions(-)

diff --git 
a/flink-doris-connector/src/main/java/org/apache/doris/flink/catalog/DorisTypeMapper.java
 
b/flink-doris-connector/src/main/java/org/apache/doris/flink/catalog/DorisTypeMapper.java
index ba612256..a8e3d7d6 100644
--- 
a/flink-doris-connector/src/main/java/org/apache/doris/flink/catalog/DorisTypeMapper.java
+++ 
b/flink-doris-connector/src/main/java/org/apache/doris/flink/catalog/DorisTypeMapper.java
@@ -29,14 +29,18 @@ import org.apache.flink.table.types.logical.DecimalType;
 import org.apache.flink.table.types.logical.DoubleType;
 import org.apache.flink.table.types.logical.FloatType;
 import org.apache.flink.table.types.logical.IntType;
+import org.apache.flink.table.types.logical.LocalZonedTimestampType;
 import org.apache.flink.table.types.logical.LogicalType;
 import org.apache.flink.table.types.logical.MapType;
+import org.apache.flink.table.types.logical.MultisetType;
 import org.apache.flink.table.types.logical.RowType;
 import org.apache.flink.table.types.logical.SmallIntType;
+import org.apache.flink.table.types.logical.TimeType;
 import org.apache.flink.table.types.logical.TimestampType;
 import org.apache.flink.table.types.logical.TinyIntType;
 import org.apache.flink.table.types.logical.VarBinaryType;
 import org.apache.flink.table.types.logical.VarCharType;
+import org.apache.flink.table.types.logical.ZonedTimestampType;
 import org.apache.flink.table.types.logical.utils.LogicalTypeDefaultVisitor;
 
 import org.apache.doris.flink.catalog.doris.DorisType;
@@ -226,6 +230,25 @@ public class DorisTypeMapper {
                     "%s(%s)", DorisType.DATETIME_V2, 
Math.min(Math.max(precision, 0), 6));
         }
 
+        @Override
+        public String visit(ZonedTimestampType timestampType) {
+            int precision = timestampType.getPrecision();
+            return String.format(
+                    "%s(%s)", DorisType.DATETIME_V2, 
Math.min(Math.max(precision, 0), 6));
+        }
+
+        @Override
+        public String visit(LocalZonedTimestampType localZonedTimestampType) {
+            int precision = localZonedTimestampType.getPrecision();
+            return String.format(
+                    "%s(%s)", DorisType.DATETIME_V2, 
Math.min(Math.max(precision, 0), 6));
+        }
+
+        @Override
+        public String visit(TimeType timeType) {
+            return STRING;
+        }
+
         @Override
         public String visit(ArrayType arrayType) {
             return STRING;
@@ -241,6 +264,11 @@ public class DorisTypeMapper {
             return STRING;
         }
 
+        @Override
+        public String visit(MultisetType multisetType) {
+            return STRING;
+        }
+
         @Override
         public String visit(BinaryType binaryType) {
             return STRING;
diff --git 
a/flink-doris-connector/src/test/java/org/apache/doris/flink/catalog/DorisTypeMapperTest.java
 
b/flink-doris-connector/src/test/java/org/apache/doris/flink/catalog/DorisTypeMapperTest.java
index 2be07913..84cd367c 100644
--- 
a/flink-doris-connector/src/test/java/org/apache/doris/flink/catalog/DorisTypeMapperTest.java
+++ 
b/flink-doris-connector/src/test/java/org/apache/doris/flink/catalog/DorisTypeMapperTest.java
@@ -76,12 +76,16 @@ public class DorisTypeMapperTest {
     public void testDecimalType() {
         DataType result = DorisTypeMapper.toFlinkType("col", "DECIMAL", 10, 2);
         assertEquals(DataTypes.DECIMAL(10, 2), result);
+        String dorisType = DorisTypeMapper.toDorisType(DataTypes.DECIMAL(10, 
2));
+        assertEquals("DECIMALV3(10,2)", dorisType);
     }
 
     @Test
     public void testDecimalV3Type() {
         DataType result = DorisTypeMapper.toFlinkType("col", "DECIMALV3", 10, 
2);
         assertEquals(DataTypes.DECIMAL(10, 2), result);
+        String dorisType = DorisTypeMapper.toDorisType(DataTypes.DECIMAL(10, 
2));
+        assertEquals("DECIMALV3(10,2)", dorisType);
     }
 
     @Test
@@ -136,8 +140,42 @@ public class DorisTypeMapperTest {
     public void testDatetimeType() {
         DataType result = DorisTypeMapper.toFlinkType("col", "DATETIME", 0, 3);
         assertEquals(DataTypes.TIMESTAMP(3), result);
-        String dorisType = DorisTypeMapper.toDorisType(DataTypes.DECIMAL(10, 
2));
-        assertEquals("DECIMALV3(10,2)", dorisType);
+        String dorisType = DorisTypeMapper.toDorisType(DataTypes.TIMESTAMP(3));
+        assertEquals("DATETIMEV2(3)", dorisType);
+    }
+
+    @Test
+    public void testDatetimeTypeWithTimezoneType() {
+        DataType result = DorisTypeMapper.toFlinkType("col", "DATETIME", 0, 3);
+        assertEquals(DataTypes.TIMESTAMP(3), result);
+        String dorisType = 
DorisTypeMapper.toDorisType(DataTypes.TIMESTAMP_WITH_TIME_ZONE(3));
+        assertEquals("DATETIMEV2(3)", dorisType);
+    }
+
+    @Test
+    public void testDatetimeTypeWithLocalTimezoneType() {
+        DataType result = DorisTypeMapper.toFlinkType("col", "DATETIME", 0, 3);
+        assertEquals(DataTypes.TIMESTAMP(3), result);
+        String dorisType = 
DorisTypeMapper.toDorisType(DataTypes.TIMESTAMP_WITH_LOCAL_TIME_ZONE(3));
+        assertEquals("DATETIMEV2(3)", dorisType);
+    }
+
+    @Test
+    public void testTimeTypeWithLocalTimezoneType() {
+        String dorisType = DorisTypeMapper.toDorisType(DataTypes.TIME());
+        assertEquals("STRING", dorisType);
+    }
+
+    @Test
+    public void testTimeType() {
+        String dorisType = DorisTypeMapper.toDorisType(DataTypes.TIME(3));
+        assertEquals("STRING", dorisType);
+    }
+
+    @Test
+    public void testMultisetType() {
+        String dorisType = 
DorisTypeMapper.toDorisType(DataTypes.MULTISET(DataTypes.INT()));
+        assertEquals("STRING", dorisType);
     }
 
     @Test(expected = UnsupportedOperationException.class)


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to