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

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

commit b40d4d73cbb7f5b5bd4d1ea728229362a0b9b9af
Author: wudi <676366...@qq.com>
AuthorDate: Tue May 6 11:35:10 2025 +0800

    add date type
---
 .../org/apache/doris/flink/table/DorisDynamicOutputFormat.java | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git 
a/flink-doris-connector/src/main/java/org/apache/doris/flink/table/DorisDynamicOutputFormat.java
 
b/flink-doris-connector/src/main/java/org/apache/doris/flink/table/DorisDynamicOutputFormat.java
index 03a26dbf..72c58a9a 100644
--- 
a/flink-doris-connector/src/main/java/org/apache/doris/flink/table/DorisDynamicOutputFormat.java
+++ 
b/flink-doris-connector/src/main/java/org/apache/doris/flink/table/DorisDynamicOutputFormat.java
@@ -31,6 +31,7 @@ import org.apache.flink.runtime.util.ExecutorThreadFactory;
 import org.apache.flink.table.data.RowData;
 import org.apache.flink.table.types.DataType;
 import org.apache.flink.table.types.logical.LogicalType;
+import org.apache.flink.table.types.logical.LogicalTypeRoot;
 import org.apache.flink.types.RowKind;
 import org.apache.flink.util.CollectionUtil;
 import org.slf4j.Logger;
@@ -38,6 +39,8 @@ import org.slf4j.LoggerFactory;
 
 import java.io.IOException;
 import java.nio.charset.StandardCharsets;
+import java.sql.Date;
+import java.time.LocalDate;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
@@ -80,6 +83,7 @@ public class DorisDynamicOutputFormat<T> extends 
RichOutputFormat<T> {
     private final String[] fieldNames;
     private final boolean jsonFormat;
     private final RowData.FieldGetter[] fieldGetters;
+    private final LogicalType[] logicalTypes;
     private final List batch = new ArrayList<>();
     private long batchBytes = 0L;
     private String fieldDelimiter;
@@ -111,6 +115,7 @@ public class DorisDynamicOutputFormat<T> extends 
RichOutputFormat<T> {
 
 
         handleStreamloadProp();
+        this.logicalTypes = logicalTypes;
         this.fieldGetters = new RowData.FieldGetter[logicalTypes.length];
         for (int i = 0; i < logicalTypes.length; i++) {
             fieldGetters[i] = createFieldGetter(logicalTypes[i], i);
@@ -244,6 +249,11 @@ public class DorisDynamicOutputFormat<T> extends 
RichOutputFormat<T> {
             StringJoiner value = new StringJoiner(this.fieldDelimiter);
             for (int i = 0; i < rowData.getArity() && i < fieldGetters.length; 
++i) {
                 Object field = fieldGetters[i].getFieldOrNull(rowData);
+                LogicalType logicalType = logicalTypes[i];
+                // Compatible date types
+                if(LogicalTypeRoot.DATE.equals(logicalType.getTypeRoot())) {
+                    field = Date.valueOf(LocalDate.ofEpochDay((int) field));
+                }
                 if (jsonFormat) {
                     String data = field != null ? field.toString() : null;
                     valueMap.put(this.fieldNames[i], data);


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to