[fix](jdbc catalog) fix DefaultValueExpr in Jdbc table column when CTAS (#22978)

This commit is contained in:
zy-kkk
2023-08-17 15:52:20 +08:00
committed by GitHub
parent f092afc946
commit a248cb720c

View File

@ -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;
}