{"record":{"id":"12fb03aefe5d5abb","repo":"apache/seatunnel","slug":"common-19-12fb03","errorCode":"COMMON-19","errorMessage":"'${identifier}' unsupported convert SeaTunnel data type '${dataType}' of '${field}' to connector data type.","messagePattern":"'(.+?)' unsupported convert SeaTunnel data type '(.+?)' of '(.+?)' to connector 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":403,"sourceCode":"                            column.getScale(),\n                            MAX_TIMESTAMP_SCALE,\n                            timestampTzScale);\n                }\n                builder.columnType(REDSHIFT_TIMESTAMPTZ);\n                builder.dataType(REDSHIFT_TIMESTAMPTZ);\n                builder.scale(timestampTzScale);\n                break;\n            case MAP:\n            case ARRAY:\n            case ROW:\n                builder.columnType(REDSHIFT_SUPER);\n                builder.dataType(REDSHIFT_SUPER);\n                break;\n            default:\n                try {\n                    return super.reconvert(column);\n                } catch (SeaTunnelRuntimeException e) {\n                    throw CommonError.convertToConnectorTypeError(\n                            DatabaseIdentifier.REDSHIFT,\n                            column.getDataType().getSqlType().name(),\n                            column.getName());\n                }\n        }\n        return builder.build();\n    }\n}\n","sourceCodeStart":385,"sourceCodeEnd":412,"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#L385-L412","documentation":"RedshiftTypeConverter.reconvert() throws this when reverse-mapping a SeaTunnel column to a Redshift type; after handling local cases it delegates to super.reconvert, and any failure is rethrown as CommonError.convertToConnectorTypeError with DatabaseIdentifier.REDSHIFT. Types unsupported by both the Redshift switch and the base converter trigger it.","triggerScenarios":"Auto-create-table on a Redshift sink where the SeaTunnel column type (e.g. MAP, ROW, certain time/byte types) has no Redshift mapping in either reconvert level — outer default.","commonSituations":"Sinking complex-type payloads into Redshift with auto-create enabled; Redshift lacks native MAP/ROW so schema generation fails at startup.","solutions":["Pre-create the Redshift table (e.g. use SUPER for complex data) and disable auto-create-table","Convert complex columns to strings/JSON before the sink","Extend RedshiftTypeConverter.reconvert to map the type (e.g. to SUPER)"],"exampleFix":"// before: auto-create with MAP column\n// after: convert to JSON string then map to SUPER\nsource/transform produce JSON strings; sink { Jdbc { auto_create_table = false } }","handlingStrategy":"validation","validationCode":"// Ensure all sink columns have Redshift mappings before auto-create:\nfor (CatalogColumn col : schema.getColumns()) {\n    SqlType t = col.getDataType().getSqlType();\n    if (t == SqlType.MAP || t == SqlType.ROW) {\n    throw new IllegalStateException(\"Pre-create SUPER column for: \" + col.getName());\n    }\n}","typeGuard":null,"tryCatchPattern":"try {\n    return super.reconvert(column);\n} catch (SeaTunnelRuntimeException e) {\n    LOG.warn(\"No Redshift mapping for {}: {}\", column.getDataType(), e.getMessage());\n    // pre-create table with SUPER or stringify the column\n}","preventionTips":["Use pre-created SUPER columns for nested data in Redshift","Convert MAP/ROW to JSON strings before sinking","Disable auto_create_table when schemas are complex"],"tags":["jdbc","redshift","type-conversion","auto-create"],"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"}