apache/seatunnel · error · IllegalArgumentException
Unsupported AlterTableColumnEvent: ${event}
Error message
Unsupported AlterTableColumnEvent: ${event} What it means
Thrown by YashanDbDialect.extractColumn (called from column()) when a schema-change AlterTableColumnEvent is neither AlterTableModifyColumnEvent nor AlterTableAddColumnEvent. The dialect only supports MODIFY and ADD column events for schema evolution.
Source
Thrown at seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/yashandb/YashanDbDialect.java:449
.append(columnType);
if (column.getDefaultValue() != null && sameCatalog) {
sqlBuilder.append(" ").append(sqlClauseWithDefaultValue(typeDefine, sourceDialectName));
}
// Handle nullability based on operation type
appendNullableClause(sqlBuilder, connection, tablePath, column, event);
return sqlBuilder.toString();
}
private Column extractColumn(AlterTableColumnEvent event) {
if (event instanceof AlterTableModifyColumnEvent) {
return ((AlterTableModifyColumnEvent) event).getColumn();
} else if (event instanceof AlterTableAddColumnEvent) {
return ((AlterTableAddColumnEvent) event).getColumn();
}
throw new IllegalArgumentException("Unsupported AlterTableColumnEvent: " + event);
}
private String getActionType(AlterTableColumnEvent event) {
if (event instanceof AlterTableModifyColumnEvent) {
return "MODIFY";
} else if (event instanceof AlterTableAddColumnEvent) {
return "ADD";
}
throw new IllegalArgumentException("Unsupported AlterTableColumnEvent: " + event);
}
private void appendNullableClause(
StringBuilder sqlBuilder,
Connection connection,
TablePath tablePath,
Column column,
AlterTableColumnEvent event)
throws SQLException {View on GitHub (pinned to cf67b549a7)
Solutions
- Only enable schema evolution for ADD/MODIFY column changes when sinking to YashanDB
- Handle/drop unsupported events upstream before they reach the sink
- Extend YashanDbDialect to support the missing event types (implement DROP/RENAME handling)
- Check the event class name in the message and confirm it is expected for your pipeline
Defensive patterns
Strategy: type-guard
Validate before calling
// Filter unsupported events before applying schema evolution
boolean supported = event instanceof AlterTableModifyColumnEvent
|| event instanceof AlterTableAddColumnEvent;
if (!supported) { /* skip or translate to supported event */ } Type guard
boolean isSupportedColumnEvent(SchemaChangeEvent e) {
return e instanceof AlterTableModifyColumnEvent || e instanceof AlterTableAddColumnEvent;
} Try / catch
try {
applySchemaChange(event);
} catch (IllegalArgumentException e) {
if (e.getMessage().startsWith("Unsupported AlterTableColumnEvent")) {
// drop or rewrite the event; log unsupported change type
}
} Prevention
- Restrict upstream schema changes to ADD/MODIFY column when targeting YashanDB
- Handle DROP/RENAME column events in your pipeline before the sink
- Track connector dialect feature support before enabling schema evolution
When it happens
Trigger: Schema evolution applies an unsupported event type — e.g. AlterTableDropColumnEvent, AlterTableRenameColumnEvent, or a custom AlterTableColumnEvent — against a YashanDB sink.
Common situations: Upstream schema changes include column drops or renames and schema-evolution is enabled on the YashanDB sink; connector version does not yet support those event types for this dialect.
Understand the failure class
Background: UnsupportedOperationException and "is not supported" errors: when a library deliberately refuses a call — this error's family across 30 libraries.
Related errors
- Unsupported schemaChangeEvent:
- Unsupported action type:
- Unsupported constraint type:
- Unsupported constraint type:
- Unsupported JDBC type:
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/6e0788c833e977b9.
Report an issue: GitHub.