{"record":{"id":"6e0788c833e977b9","repo":"apache/seatunnel","slug":"unsupported-altertablecolumnevent-event-6e0788","errorCode":null,"errorMessage":"Unsupported AlterTableColumnEvent: ${event}","messagePattern":"Unsupported AlterTableColumnEvent: (.+?)","errorType":"exception","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/yashandb/YashanDbDialect.java","lineNumber":449,"sourceCode":"                        .append(columnType);\n\n        if (column.getDefaultValue() != null && sameCatalog) {\n            sqlBuilder.append(\" \").append(sqlClauseWithDefaultValue(typeDefine, sourceDialectName));\n        }\n\n        // Handle nullability based on operation type\n        appendNullableClause(sqlBuilder, connection, tablePath, column, event);\n\n        return sqlBuilder.toString();\n    }\n\n    private Column extractColumn(AlterTableColumnEvent event) {\n        if (event instanceof AlterTableModifyColumnEvent) {\n            return ((AlterTableModifyColumnEvent) event).getColumn();\n        } else if (event instanceof AlterTableAddColumnEvent) {\n            return ((AlterTableAddColumnEvent) event).getColumn();\n        }\n        throw new IllegalArgumentException(\"Unsupported AlterTableColumnEvent: \" + event);\n    }\n\n    private String getActionType(AlterTableColumnEvent event) {\n        if (event instanceof AlterTableModifyColumnEvent) {\n            return \"MODIFY\";\n        } else if (event instanceof AlterTableAddColumnEvent) {\n            return \"ADD\";\n        }\n        throw new IllegalArgumentException(\"Unsupported AlterTableColumnEvent: \" + event);\n    }\n\n    private void appendNullableClause(\n            StringBuilder sqlBuilder,\n            Connection connection,\n            TablePath tablePath,\n            Column column,\n            AlterTableColumnEvent event)\n            throws SQLException {","sourceCodeStart":431,"sourceCodeEnd":467,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/yashandb/YashanDbDialect.java#L431-L467","documentation":"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.","triggerScenarios":"Schema evolution applies an unsupported event type — e.g. AlterTableDropColumnEvent, AlterTableRenameColumnEvent, or a custom AlterTableColumnEvent — against a YashanDB sink.","commonSituations":"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.","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"],"exampleFix":null,"handlingStrategy":"type-guard","validationCode":"// Filter unsupported events before applying schema evolution\nboolean supported = event instanceof AlterTableModifyColumnEvent\n        || event instanceof AlterTableAddColumnEvent;\nif (!supported) { /* skip or translate to supported event */ }","typeGuard":"boolean isSupportedColumnEvent(SchemaChangeEvent e) {\n    return e instanceof AlterTableModifyColumnEvent || e instanceof AlterTableAddColumnEvent;\n}","tryCatchPattern":"try {\n    applySchemaChange(event);\n} catch (IllegalArgumentException e) {\n    if (e.getMessage().startsWith(\"Unsupported AlterTableColumnEvent\")) {\n        // drop or rewrite the event; log unsupported change type\n    }\n}","preventionTips":["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"],"tags":["jdbc","yashandb","schema-evolution","unsupported-operation"],"backgroundTag":"unsupported-operation","analyzedSha":"cf67b549a7a6c35fa0beb12d83c62892427ea919","analyzedAt":"2026-09-10T21:44:55.265Z","contentChangedAt":"2026-09-10T21:44:55.265Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}