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 jdbcTableSchema = getJdbcColumnsInfo(dbName, tableName); List 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; }