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]