You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@inlong.apache.org by he...@apache.org on 2022/03/31 01:54:11 UTC

[incubator-inlong] branch master updated: [INLONG-3483][Sort] Fix bug of wrong date data in ORC formatted output (#3484)

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

healchow pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-inlong.git


The following commit(s) were added to refs/heads/master by this push:
     new d7697db  [INLONG-3483][Sort] Fix bug of wrong date data in ORC formatted output (#3484)
d7697db is described below

commit d7697db6eba5a6983149db0b2cef23560fa7cb6a
Author: Kevin Wen <ke...@gmail.com>
AuthorDate: Thu Mar 31 09:54:08 2022 +0800

    [INLONG-3483][Sort] Fix bug of wrong date data in ORC formatted output (#3484)
---
 .../inlong/sort/flink/hive/formats/orc/OrcBulkWriterUtil.java      | 1 +
 .../apache/inlong/sort/flink/hive/formats/orc/RowVectorizer.java   | 7 ++++---
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/inlong-sort/sort-connectors/src/main/java/org/apache/inlong/sort/flink/hive/formats/orc/OrcBulkWriterUtil.java b/inlong-sort/sort-connectors/src/main/java/org/apache/inlong/sort/flink/hive/formats/orc/OrcBulkWriterUtil.java
index cf90d54..3d1fc8f 100644
--- a/inlong-sort/sort-connectors/src/main/java/org/apache/inlong/sort/flink/hive/formats/orc/OrcBulkWriterUtil.java
+++ b/inlong-sort/sort-connectors/src/main/java/org/apache/inlong/sort/flink/hive/formats/orc/OrcBulkWriterUtil.java
@@ -61,6 +61,7 @@ public class OrcBulkWriterUtil {
             case SMALLINT:
                 return TypeDescription.createShort();
             case INTEGER:
+            case TIME_WITHOUT_TIME_ZONE:
                 return TypeDescription.createInt();
             case BIGINT:
                 return TypeDescription.createLong();
diff --git a/inlong-sort/sort-connectors/src/main/java/org/apache/inlong/sort/flink/hive/formats/orc/RowVectorizer.java b/inlong-sort/sort-connectors/src/main/java/org/apache/inlong/sort/flink/hive/formats/orc/RowVectorizer.java
index 710855c..534bb0e 100644
--- a/inlong-sort/sort-connectors/src/main/java/org/apache/inlong/sort/flink/hive/formats/orc/RowVectorizer.java
+++ b/inlong-sort/sort-connectors/src/main/java/org/apache/inlong/sort/flink/hive/formats/orc/RowVectorizer.java
@@ -21,9 +21,9 @@ package org.apache.inlong.sort.flink.hive.formats.orc;
 import java.io.Serializable;
 import java.math.BigDecimal;
 import java.nio.charset.StandardCharsets;
+import java.sql.Date;
 import java.sql.Time;
 import java.sql.Timestamp;
-import java.util.Date;
 import java.util.Map;
 
 import org.apache.flink.shaded.guava18.com.google.common.annotations.VisibleForTesting;
@@ -36,6 +36,7 @@ import org.apache.orc.TypeDescription;
 import org.apache.orc.storage.common.type.HiveDecimal;
 import org.apache.orc.storage.ql.exec.vector.BytesColumnVector;
 import org.apache.orc.storage.ql.exec.vector.ColumnVector;
+import org.apache.orc.storage.ql.exec.vector.DateColumnVector;
 import org.apache.orc.storage.ql.exec.vector.DecimalColumnVector;
 import org.apache.orc.storage.ql.exec.vector.DoubleColumnVector;
 import org.apache.orc.storage.ql.exec.vector.ListColumnVector;
@@ -123,8 +124,8 @@ public class RowVectorizer implements Serializable {
                 break;
             }
             case DATE: {
-                LongColumnVector vector = (LongColumnVector) column;
-                vector.vector[rowId] = ((Date) field).getTime();
+                DateColumnVector vector = (DateColumnVector) column;
+                vector.vector[rowId] = ((Date) field).toLocalDate().toEpochDay();
                 break;
             }
             case INTEGER: {