From 730d61c1dd4e6daf1ac797a029032ac6dbbb460a Mon Sep 17 00:00:00 2001 From: "guoyou.zhen" Date: Wed, 21 Sep 2022 11:17:21 +0800 Subject: [PATCH 1/4] bug fix: GenericRowData can not cast ColumnRowData --- .../chunjun/connector/kudu/converter/KuduRowConverter.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/chunjun-connectors/chunjun-connector-kudu/src/main/java/com/dtstack/chunjun/connector/kudu/converter/KuduRowConverter.java b/chunjun-connectors/chunjun-connector-kudu/src/main/java/com/dtstack/chunjun/connector/kudu/converter/KuduRowConverter.java index 412213c7e7..73bdedd853 100644 --- a/chunjun-connectors/chunjun-connector-kudu/src/main/java/com/dtstack/chunjun/connector/kudu/converter/KuduRowConverter.java +++ b/chunjun-connectors/chunjun-connector-kudu/src/main/java/com/dtstack/chunjun/connector/kudu/converter/KuduRowConverter.java @@ -40,6 +40,7 @@ import java.math.BigDecimal; import java.math.BigInteger; import java.sql.Date; +import java.sql.Timestamp; import java.time.LocalDate; import java.util.List; @@ -212,7 +213,8 @@ protected ISerializationConverter createExternalConverter(LogicalType .getRow() .addTimestamp( columnName.get(index), - ((ColumnRowData) val).getField(index).asTimestamp()); + Timestamp.valueOf( + ((GenericRowData) val).getField(index).toString())); default: throw new UnsupportedTypeException(type); } From f8ef1e60c09ebd1c79e5962823d295f42fdf52c8 Mon Sep 17 00:00:00 2001 From: "guoyou.zhen" Date: Wed, 21 Sep 2022 16:30:32 +0800 Subject: [PATCH 2/4] bug fix: GenericRowData can not cast ColumnRowData --- .../chunjun/connector/kudu/converter/KuduRowConverter.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/chunjun-connectors/chunjun-connector-kudu/src/main/java/com/dtstack/chunjun/connector/kudu/converter/KuduRowConverter.java b/chunjun-connectors/chunjun-connector-kudu/src/main/java/com/dtstack/chunjun/connector/kudu/converter/KuduRowConverter.java index 73bdedd853..7162e48532 100644 --- a/chunjun-connectors/chunjun-connector-kudu/src/main/java/com/dtstack/chunjun/connector/kudu/converter/KuduRowConverter.java +++ b/chunjun-connectors/chunjun-connector-kudu/src/main/java/com/dtstack/chunjun/connector/kudu/converter/KuduRowConverter.java @@ -213,8 +213,11 @@ protected ISerializationConverter createExternalConverter(LogicalType .getRow() .addTimestamp( columnName.get(index), - Timestamp.valueOf( - ((GenericRowData) val).getField(index).toString())); + new Timestamp( + ((TimestampData) + ((GenericRowData) val) + .getField(index)) + .getMillisecond())); default: throw new UnsupportedTypeException(type); } From b7e814e9a3d551aff9c267675761bc0d63a5a03f Mon Sep 17 00:00:00 2001 From: "guoyou.zhen" Date: Thu, 22 Sep 2022 19:44:15 +0800 Subject: [PATCH 3/4] fix DECIMAL convert --- .../connector/kudu/converter/KuduRowConverter.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/chunjun-connectors/chunjun-connector-kudu/src/main/java/com/dtstack/chunjun/connector/kudu/converter/KuduRowConverter.java b/chunjun-connectors/chunjun-connector-kudu/src/main/java/com/dtstack/chunjun/connector/kudu/converter/KuduRowConverter.java index 7162e48532..8d2ee80cc8 100644 --- a/chunjun-connectors/chunjun-connector-kudu/src/main/java/com/dtstack/chunjun/connector/kudu/converter/KuduRowConverter.java +++ b/chunjun-connectors/chunjun-connector-kudu/src/main/java/com/dtstack/chunjun/connector/kudu/converter/KuduRowConverter.java @@ -183,12 +183,16 @@ protected ISerializationConverter createExternalConverter(LogicalType return (val, index, operation) -> operation.getRow().addBinary(columnName.get(index), val.getBinary(index)); case "DECIMAL": + final int decimalPrecision = ((DecimalType) type).getPrecision(); + final int decimalScale = ((DecimalType) type).getScale(); return (val, index, operation) -> operation .getRow() .addDecimal( - columnName.get(index), - ((ColumnRowData) val).getField(index).asBigDecimal()); + index, + val.getDecimal(index, decimalPrecision, decimalScale) + .toBigDecimal()); + ; case "VARCHAR": return (val, index, operation) -> operation From b3466daca74046cfbd5804f24595b2f7e774af9e Mon Sep 17 00:00:00 2001 From: "guoyou.zhen" Date: Thu, 22 Sep 2022 19:44:32 +0800 Subject: [PATCH 4/4] fix DECIMAL convert --- .../chunjun/connector/kudu/converter/KuduRowConverter.java | 1 - 1 file changed, 1 deletion(-) diff --git a/chunjun-connectors/chunjun-connector-kudu/src/main/java/com/dtstack/chunjun/connector/kudu/converter/KuduRowConverter.java b/chunjun-connectors/chunjun-connector-kudu/src/main/java/com/dtstack/chunjun/connector/kudu/converter/KuduRowConverter.java index 8d2ee80cc8..d016060594 100644 --- a/chunjun-connectors/chunjun-connector-kudu/src/main/java/com/dtstack/chunjun/connector/kudu/converter/KuduRowConverter.java +++ b/chunjun-connectors/chunjun-connector-kudu/src/main/java/com/dtstack/chunjun/connector/kudu/converter/KuduRowConverter.java @@ -192,7 +192,6 @@ protected ISerializationConverter createExternalConverter(LogicalType index, val.getDecimal(index, decimalPrecision, decimalScale) .toBigDecimal()); - ; case "VARCHAR": return (val, index, operation) -> operation