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 54ea6a9  [buf](fix) fix inaccurate mapping of RDMS datetime/timestamp 
to Doris (#292)
54ea6a9 is described below

commit 54ea6a99a9d61c4b48b7f26c037fa3c7d6f45b58
Author: Petrichor <[email protected]>
AuthorDate: Fri Jan 12 17:29:50 2024 +0800

    [buf](fix) fix inaccurate mapping of RDMS datetime/timestamp to Doris (#292)
    
    * Fix incorrect datetime precision mapping
---
 .../main/java/org/apache/doris/flink/tools/cdc/mysql/MysqlType.java   | 4 ++--
 .../main/java/org/apache/doris/flink/tools/cdc/oracle/OracleType.java | 2 +-
 .../java/org/apache/doris/flink/tools/cdc/postgres/PostgresType.java  | 3 +--
 3 files changed, 4 insertions(+), 5 deletions(-)

diff --git 
a/flink-doris-connector/src/main/java/org/apache/doris/flink/tools/cdc/mysql/MysqlType.java
 
b/flink-doris-connector/src/main/java/org/apache/doris/flink/tools/cdc/mysql/MysqlType.java
index e1e8854..180414b 100644
--- 
a/flink-doris-connector/src/main/java/org/apache/doris/flink/tools/cdc/mysql/MysqlType.java
+++ 
b/flink-doris-connector/src/main/java/org/apache/doris/flink/tools/cdc/mysql/MysqlType.java
@@ -144,8 +144,8 @@ public class MysqlType {
                 return DorisType.DATE_V2;
             case DATETIME:
             case TIMESTAMP:
-                return String.format(
-                        "%s(%s)", DorisType.DATETIME_V2, Math.min(length == 
null ? 0 : length, 6));
+                int dtScale = length > 19 ? length - 20 : 0;
+                return String.format("%s(%s)", DorisType.DATETIME_V2, 
Math.min(dtScale, 6));
             case CHAR:
             case VARCHAR:
                 Preconditions.checkNotNull(length);
diff --git 
a/flink-doris-connector/src/main/java/org/apache/doris/flink/tools/cdc/oracle/OracleType.java
 
b/flink-doris-connector/src/main/java/org/apache/doris/flink/tools/cdc/oracle/OracleType.java
index 6bd5ce3..b6d2bae 100644
--- 
a/flink-doris-connector/src/main/java/org/apache/doris/flink/tools/cdc/oracle/OracleType.java
+++ 
b/flink-doris-connector/src/main/java/org/apache/doris/flink/tools/cdc/oracle/OracleType.java
@@ -48,7 +48,7 @@ public class OracleType {
         if (oracleType.startsWith(INTERVAL)) {
             oracleType = oracleType.substring(0, 8);
         } else if (oracleType.startsWith(TIMESTAMP)) {
-            return String.format("%s(%s)", DorisType.DATETIME_V2, 6);
+            return String.format("%s(%s)", DorisType.DATETIME_V2, 
Math.min(scale, 6));
         }
         switch (oracleType) {
             case NUMBER:
diff --git 
a/flink-doris-connector/src/main/java/org/apache/doris/flink/tools/cdc/postgres/PostgresType.java
 
b/flink-doris-connector/src/main/java/org/apache/doris/flink/tools/cdc/postgres/PostgresType.java
index 2508b15..ed80d45 100644
--- 
a/flink-doris-connector/src/main/java/org/apache/doris/flink/tools/cdc/postgres/PostgresType.java
+++ 
b/flink-doris-connector/src/main/java/org/apache/doris/flink/tools/cdc/postgres/PostgresType.java
@@ -97,8 +97,7 @@ public class PostgresType {
             case TIMESTAMP:
             case TIMESTAMPTZ:
                 return String.format(
-                        "%s(%s)",
-                        DorisType.DATETIME_V2, Math.min(precision == null ? 0 
: precision, 6));
+                        "%s(%s)", DorisType.DATETIME_V2, Math.min(scale == 
null ? 0 : scale, 6));
             case DATE:
                 return DorisType.DATE_V2;
             case BOOL:


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to