{"record":{"id":"3807f0cce5e50f07","repo":"apache/seatunnel","slug":"not-implemented","errorCode":null,"errorMessage":"Not implemented","messagePattern":"Not implemented","errorType":"exception","errorClass":"UnsupportedOperationException","httpStatus":null,"severity":"warning","filePath":"seatunnel-api/src/main/java/org/apache/seatunnel/api/table/catalog/MetadataColumn.java","lineNumber":80,"sourceCode":"    @Override\n    public Column copy() {\n        return MetadataColumn.of(name, dataType, columnLength, nullable, defaultValue, comment);\n    }\n\n    @Override\n    public Column rename(String newColumnName) {\n        return MetadataColumn.of(\n                newColumnName, dataType, columnLength, nullable, defaultValue, comment);\n    }\n\n    public PhysicalColumn toPhysicalColumn() {\n        return PhysicalColumn.of(\n                name, dataType, columnLength, scale, nullable, defaultValue, comment);\n    }\n\n    @Override\n    public Column reSourceType(String sourceType) {\n        throw new UnsupportedOperationException(\"Not implemented\");\n    }\n\n    @Override\n    public Column copyWithComment(String newComment) {\n        return MetadataColumn.of(name, dataType, columnLength, nullable, defaultValue, newComment);\n    }\n}\n","sourceCodeStart":62,"sourceCodeEnd":88,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-api/src/main/java/org/apache/seatunnel/api/table/catalog/MetadataColumn.java#L62-L88","documentation":"MetadataColumn.reSourceType is an unsupported operation: re-declaring the source type only makes sense for physical columns, so calling it on a MetadataColumn always throws UnsupportedOperationException.","triggerScenarios":"Calling reSourceType(sourceType) on a MetadataColumn instance, usually by schema-conversion code that uniformly rewrites source types across all columns of a table.","commonSituations":"Type-mapping/normalization passes over TableSchema that don't distinguish physical vs metadata columns; refactoring code that switched from PhysicalColumn to MetadataColumn handling without updating the call site.","solutions":["Skip MetadataColumn instances when rewriting source types (only apply to PhysicalColumn)","Implement reSourceType in custom column classes if the operation is meaningful","Guard with instanceof before calling reSourceType"],"exampleFix":"// before\ncolumns.forEach(c -> c.reSourceType(srcType));\n// after\ncolumns.stream()\n    .filter(c -> c instanceof PhysicalColumn)\n    .forEach(c -> c.reSourceType(srcType));","handlingStrategy":"type-guard","validationCode":null,"typeGuard":"boolean canReSource = column instanceof PhysicalColumn;","tryCatchPattern":"try { col.reSourceType(t); } catch (UnsupportedOperationException e) { /* skip metadata columns */ }","preventionTips":["Filter to PhysicalColumn before source-type rewrites","Treat MetadataColumn as immutable in schema transforms","Override reSourceType if custom columns need it"],"tags":["column","metadata","unsupported"],"backgroundTag":"method-not-implemented","analyzedSha":"cf67b549a7a6c35fa0beb12d83c62892427ea919","analyzedAt":"2026-09-10T21:44:55.265Z","contentChangedAt":"2026-09-10T21:44:55.265Z","schemaVersion":2},"datasetVersion":"2026-09-14T11:17:12.474Z"}