apache/seatunnel · warning
Skipping unsupported default value for column {} in table {}
Error message
Skipping unsupported default value for column {} in table {}. What it means
This is a log warning emitted while building ALTER TABLE DDL in the Dameng dialect's applySchemaChange. When the sink is not the same catalog and the column's default value is a 'special' default (dialect-specific expression unsupported by Dameng, e.g. CURRENT_TIMESTAMP from another dialect), the dialect omits the DEFAULT clause and only logs. The column will be created/altered without the default value.
Source
Thrown at seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/dm/DmdbDialect.java:335
// Handle null constraints
// DamengDB does not direct support modifying the NULL to NOT-NUll constraint directly.
// if supported, need update null value to defaultvalue, then modify the column to NOT NULL.
// this is a high-risk operation, so we do not support it.
boolean targetColumnNullable = columnIsNullable(connection, tablePath, column.getName());
if (column.isNullable() != targetColumnNullable && !targetColumnNullable) {
sqlBuilder.append(" NULL ");
}
// Handle default value
if (column.getDefaultValue() != null) {
if (sameCatalog
|| !isSpecialDefaultValue(typeDefine.getDefaultValue(), sourceDialectName)) {
String defaultValueClause =
sqlClauseWithDefaultValue(typeDefine, sourceDialectName);
sqlBuilder.append(" ").append(defaultValueClause);
} else {
log.warn(
"Skipping unsupported default value for column {} in table {}.",
column.getName(),
tablePath.getFullName());
}
}
List<String> ddlSQL = new ArrayList<>();
ddlSQL.add(sqlBuilder.toString());
// Process column comment
if (column.getComment() != null) {
ddlSQL.add(buildColumnCommentSQL(tablePath, column));
}
// Execute the DDL statement
executeDDL(connection, ddlSQL);
}
@Override
public boolean needsQuotesWithDefaultValue(BasicTypeDefine columnDefine) {
String dmDataType = columnDefine.getDataType();View on GitHub (pinned to cf67b549a7)
Solutions
- Set the desired DEFAULT explicitly on the Dameng column with a manual ALTER TABLE statement after the sync DDL
- Translate the source default to a Dameng-supported expression in the upstream table definition
- Keep the same catalog (in-DM replication) so defaults are preserved verbatim
- Adjust isSpecialDefaultValue/sqlClauseWithDefaultValue handling or use a custom dialect subclass to map supported defaults
Example fix
// before: default dropped by sync CREATE TABLE t (created DATETIME); // after: apply default manually on Dameng ALTER TABLE t MODIFY created DATETIME DEFAULT SYSDATE;
Defensive patterns
Strategy: validation
Validate before calling
// check default value compatibility before sync
if (isSpecialDefaultValue(column.getDefaultValue(), sourceDialectName)) {
// plan a manual ALTER TABLE ... DEFAULT ... on Dameng
} Prevention
- Replace vendor-specific defaults (CURRENT_TIMESTAMP etc.) with literal defaults upstream
- After sync, compare column defaults between source and Dameng and patch with ALTER TABLE
- Use same-catalog (Dameng-to-Dameng) replication when defaults must be preserved
- Keep defaults simple literals in synced schemas
When it happens
Trigger: applySchemaChange on a cross-dialect sync (e.g. MySQL->Dameng) where a column carries a source-dialect default value that isSpecialDefaultValue(..., sourceDialectName) classifies as unsupported for Dameng.
Common situations: Replicating MySQL tables with DEFAULT CURRENT_TIMESTAMP or other vendor-specific defaults into Dameng; schema evolution enabled; users noticing the DM column lacks the default after DDL is applied.
Related errors
- Default value is not supported for column {} in table {}. Sk
- Skipping unsupported default value for column {} in table {}
- DamengDB does not support modifying the TEXT type directly.
- Skipping unsupported default value for column {} in table {}
- DATABASE_NOT_EXISTED
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/b24aa2c0b334b929.
Report an issue: GitHub.