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

kxiao pushed a commit to branch branch-2.0
in repository https://gitbox.apache.org/repos/asf/doris.git

commit 5564a157b629844fa3e003fc2620030d38318c51
Author: zy-kkk <[email protected]>
AuthorDate: Thu Aug 17 15:52:20 2023 +0800

    [fix](jdbc catalog) fix DefaultValueExpr in Jdbc table column when CTAS 
(#22978)
---
 .../apache/doris/datasource/jdbc/client/JdbcMySQLClient.java  | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcMySQLClient.java
 
b/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcMySQLClient.java
index a09077ac49..7d4f342ac5 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcMySQLClient.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcMySQLClient.java
@@ -17,6 +17,7 @@
 
 package org.apache.doris.datasource.jdbc.client;
 
+import org.apache.doris.analysis.DefaultValueExprDef;
 import org.apache.doris.catalog.Column;
 import org.apache.doris.catalog.PrimitiveType;
 import org.apache.doris.catalog.ScalarType;
@@ -197,10 +198,18 @@ public class JdbcMySQLClient extends JdbcClient {
         List<JdbcFieldSchema> jdbcTableSchema = getJdbcColumnsInfo(dbName, 
tableName);
         List<Column> dorisTableSchema = 
Lists.newArrayListWithCapacity(jdbcTableSchema.size());
         for (JdbcFieldSchema field : jdbcTableSchema) {
+            DefaultValueExprDef defaultValueExprDef = null;
+            if (field.getDefaultValue() != null
+                    && 
field.getDefaultValue().toLowerCase().startsWith("current_timestamp")) {
+                long precision = 
field.getDefaultValue().toLowerCase().contains("(")
+                        ? Long.parseLong(field.getDefaultValue().toLowerCase()
+                        .split("\\(")[1].split("\\)")[0]) : 0;
+                defaultValueExprDef = new DefaultValueExprDef("now", 
precision);
+            }
             dorisTableSchema.add(new Column(field.getColumnName(),
                     jdbcTypeToDoris(field), field.isKey(), null,
                     field.isAllowNull(), field.isAutoincrement(), 
field.getDefaultValue(), field.getRemarks(),
-                    true, null, -1, null));
+                    true, defaultValueExprDef, -1, null));
         }
         return dorisTableSchema;
     }


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

Reply via email to