{"record":{"id":"fdda1381f7f3d4a4","repo":"apache/seatunnel","slug":"common-17-fdda13","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/teradata/TeradataTypeMapper.java","lineNumber":95,"sourceCode":"                return new DecimalType(\n                        metadata.getPrecision(colIndex), metadata.getScale(colIndex));\n            case TERADATA_CHAR:\n            case TERADATA_VARCHAR:\n            case TERADATA_CLOB:\n                return BasicType.STRING_TYPE;\n            case TERADATA_BYTE:\n            case TERADATA_VARBYTE:\n            case TERADATA_BLOB:\n                return PrimitiveByteArrayType.INSTANCE;\n            case TERADATA_DATE:\n                return LocalTimeType.LOCAL_DATE_TYPE;\n            case TERADATA_TIME:\n                return LocalTimeType.LOCAL_TIME_TYPE;\n            case TERADATA_TIMESTAMP:\n                return LocalTimeType.LOCAL_DATE_TIME_TYPE;\n            default:\n                final String jdbcColumnName = metadata.getColumnName(colIndex);\n                throw CommonError.convertToSeaTunnelTypeError(\n                        DatabaseIdentifier.TERADATA, teradataType, jdbcColumnName);\n        }\n    }\n}\n","sourceCodeStart":77,"sourceCodeEnd":100,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/teradata/TeradataTypeMapper.java#L77-L100","documentation":"TeradataTypeMapper.mapping() maps a Teradata JDBC column type to a SeaTunnel type while reading. Unmapped Teradata type constants (e.g. INTERVAL, PERIOD, XML, JSON, ST_GEOMETRY) fall to default and throw CommonError.convertToSeaTunnelTypeError, including the Teradata type name and column name.","triggerScenarios":"Reading a Teradata table containing a column whose type constant has no case in the mapper switch — commonly TERADATA_INTERVAL, TERADATA_PERIOD, TERADATA_XML/JSON, or spatial types.","commonSituations":"Migrating legacy Teradata warehouses that use PERIOD/INTERVAL columns; tables with XML or ST_GEOMETRY columns; UDT columns in Teradata.","solutions":["Cast unsupported columns in the source query, e.g. SELECT CAST(p AS VARCHAR(100)) AS p FROM t.","Create a Teradata view that casts/excludes unsupported columns and read from the view.","Select only supported columns in the connector query config.","Add a mapper case (e.g. INTERVAL -> STRING) and contribute upstream if support is needed."],"exampleFix":"// before: SELECT * FROM emp (has PERIOD col)\n// after\nSELECT emp_id, CAST(dur AS VARCHAR(80)) AS dur_str FROM emp","handlingStrategy":"validation","validationCode":"-- Detect unsupported Teradata column types before reading\nSELECT ColumnName, ColumnType\nFROM dbc.ColumnsV\nWHERE DatabaseName = 'MYDB' AND TableName = 'MYTABLE'\n  AND ColumnType IN ('IV','IP','XML','JSON','ST','PM','UD');","typeGuard":null,"tryCatchPattern":"try {\n    sourceReader.read();\n} catch (SeaTunnelRuntimeException e) {\n    if (e.getMessage().contains(\"unsupported convert type\")) {\n        // rewrite query with CAST(unsupported_col AS VARCHAR(n)) and retry\n    } else { throw e; }\n}","preventionTips":["Check dbc.ColumnsV when onboarding Teradata tables to pipelines.","Replace PERIOD/INTERVAL columns with start/end scalar columns in ETL-facing views.","Cast XML/JSON/spatial columns to VARCHAR in the read query.","Prefer views over raw table reads for legacy Teradata schemas."],"tags":["jdbc","teradata","type-conversion","source","unsupported-type"],"backgroundTag":"unsupported-dtype","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"}