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

kirs 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 e898819d9 [Bug][Core] Fixed the bug that BigDecimal could not be 
converted correctly (#2408)
e898819d9 is described below

commit e898819d900efa0240037f20e4ad08780fe3ff61
Author: TyrantLucifer <[email protected]>
AuthorDate: Mon Aug 15 12:22:35 2022 +0800

    [Bug][Core] Fixed the bug that BigDecimal could not be converted correctly 
(#2408)
    
    * [Bug][Core] Fixed the bug that BigDecimal could not be converted correctly
    
    * [Bug][Core] Fixed the bug that BigDecimal could not be converted correctly
---
 .../spark/common/serialization/InternalRowConverter.java            | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git 
a/seatunnel-translation/seatunnel-translation-spark/seatunnel-translation-spark-common/src/main/java/org/apache/seatunnel/translation/spark/common/serialization/InternalRowConverter.java
 
b/seatunnel-translation/seatunnel-translation-spark/seatunnel-translation-spark-common/src/main/java/org/apache/seatunnel/translation/spark/common/serialization/InternalRowConverter.java
index 329352f13..0224654d6 100644
--- 
a/seatunnel-translation/seatunnel-translation-spark/seatunnel-translation-spark-common/src/main/java/org/apache/seatunnel/translation/spark/common/serialization/InternalRowConverter.java
+++ 
b/seatunnel-translation/seatunnel-translation-spark/seatunnel-translation-spark-common/src/main/java/org/apache/seatunnel/translation/spark/common/serialization/InternalRowConverter.java
@@ -35,9 +35,11 @@ import org.apache.spark.sql.catalyst.expressions.MutableLong;
 import org.apache.spark.sql.catalyst.expressions.MutableShort;
 import org.apache.spark.sql.catalyst.expressions.MutableValue;
 import org.apache.spark.sql.catalyst.expressions.SpecificInternalRow;
+import org.apache.spark.sql.types.Decimal;
 import org.apache.spark.unsafe.types.UTF8String;
 
 import java.io.IOException;
+import java.math.BigDecimal;
 import java.sql.Date;
 import java.sql.Timestamp;
 import java.time.LocalDate;
@@ -80,6 +82,8 @@ public final class InternalRowConverter extends 
RowConverter<InternalRow> {
                 return convertMap((Map<?, ?>) field, (MapType<?, ?>) dataType, 
InternalRowConverter::convert);
             case STRING:
                 return UTF8String.fromString((String) field);
+            case DECIMAL:
+                return Decimal.apply((BigDecimal) field);
             default:
                 return field;
         }
@@ -164,6 +168,8 @@ public final class InternalRowConverter extends 
RowConverter<InternalRow> {
                 return convertMap((Map<?, ?>) field, (MapType<?, ?>) dataType, 
InternalRowConverter::reconvert);
             case STRING:
                 return field.toString();
+            case DECIMAL:
+                return ((Decimal) field).toJavaBigDecimal();
             default:
                 return field;
         }

Reply via email to