{"record":{"id":"56d340e723dabba7","repo":"apache/seatunnel","slug":"common-17-56d340","errorCode":"COMMON-17","errorMessage":"'${identifier}' unsupported convert type '${dataType}' of '${field}' to SeaTunnel data type.","messagePattern":"'(.+?)' unsupported convert type '(.+?)' of '(.+?)' to SeaTunnel data type\\.","errorType":"error_code","errorClass":"SeaTunnelRuntimeException","httpStatus":null,"severity":"error","filePath":"seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/redshift/RedshiftTypeConverter.java","lineNumber":187,"sourceCode":"                builder.sourceType(REDSHIFT_TIMETZ);\n                builder.dataType(LocalTimeType.LOCAL_TIME_TYPE);\n                builder.scale(MAX_TIME_SCALE);\n                break;\n            case REDSHIFT_TIMESTAMP:\n                builder.sourceType(REDSHIFT_TIMESTAMP);\n                builder.dataType(LocalTimeType.LOCAL_DATE_TIME_TYPE);\n                builder.scale(MAX_TIMESTAMP_SCALE);\n                break;\n            case REDSHIFT_TIMESTAMPTZ:\n                builder.sourceType(REDSHIFT_TIMESTAMPTZ);\n                builder.dataType(LocalTimeType.OFFSET_DATE_TIME_TYPE);\n                builder.scale(MAX_TIMESTAMP_SCALE);\n                break;\n            default:\n                try {\n                    return super.convert(typeDefine);\n                } catch (SeaTunnelRuntimeException e) {\n                    throw CommonError.convertToSeaTunnelTypeError(\n                            DatabaseIdentifier.REDSHIFT,\n                            typeDefine.getDataType(),\n                            typeDefine.getName());\n                }\n        }\n        return builder.build();\n    }\n\n    @Override\n    public BasicTypeDefine reconvert(Column column) {\n        BasicTypeDefine.BasicTypeDefineBuilder builder =\n                BasicTypeDefine.builder()\n                        .name(column.getName())\n                        .nullable(column.isNullable())\n                        .comment(column.getComment())\n                        .defaultValue(column.getDefaultValue());\n        switch (column.getDataType().getSqlType()) {\n            case BOOLEAN:","sourceCodeStart":169,"sourceCodeEnd":205,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/redshift/RedshiftTypeConverter.java#L169-L205","documentation":"RedshiftTypeConverter.convert() throws this when a Redshift column type is not handled locally; it first delegates to the parent JDBC converter (super.convert), and if that also fails the exception is rethrown as CommonError.convertToSeaTunnelTypeError with DatabaseIdentifier.REDSHIFT. So any type unsupported by both Redshift-specific and generic JDBC mappings triggers it.","triggerScenarios":"Reading a Redshift table whose column type (e.g. SUPER subtypes, unsupported geometry or custom types) fails both the Redshift switch and AbstractJdbcTypeConverter.convert.","commonSituations":"Redshift tables using SUPER object columns on older connector versions, geometry columns, or recently added Redshift types; catalog read fails when the job starts.","solutions":["CAST the unsupported column in the query (e.g. SUPER columns via JSON functions like JSON_SERIALIZE)","Enable explicit column selection excluding unsupported columns","Upgrade SeaTunnel for improved Redshift SUPER/type support or extend RedshiftTypeConverter"],"exampleFix":"// before: SELECT data FROM t (SUPER)\n// after\nString query = \"SELECT JSON_SERIALIZE(data) AS data FROM t\";","handlingStrategy":"validation","validationCode":"// Probe Redshift column types before reading:\nResultSet cols = meta.getColumns(null, schema, table, null);\nSet<String> risky = Set.of(\"SUPER\",\"GEOMETRY\",\"GEOGRAPHY\",\"HLL_SKETCH\",\"PARTIAL_DATE\");\nwhile (cols.next()) {\n    String tn = cols.getString(\"TYPE_NAME\").toUpperCase();\n    if (risky.contains(tn)) {\n    LOG.warn(\"Cast or JSON_SERIALize Redshift column {} of type {}\", cols.getString(\"COLUMN_NAME\"), tn);\n    }\n}","typeGuard":null,"tryCatchPattern":"try {\n    return super.convert(typeDefinition);\n} catch (SeaTunnelRuntimeException e) {\n    LOG.warn(\"Unsupported Redshift type; cast in query: {}\", e.getMessage());\n    throw e; // or exclude the column\n}","preventionTips":["Use JSON_SERIALIZE / json_extract for SUPER columns in the source query","Avoid SELECT * on tables with SUPER or geometry columns","Track Redshift type support in the SeaTunnel version you deploy"],"tags":["jdbc","redshift","type-conversion"],"backgroundTag":"unsupported-dtype","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"}