{"record":{"id":"4523c214d4d19370","repo":"apache/seatunnel","slug":"common-16","errorCode":"COMMON-16","errorMessage":"'<connector>' <type> unsupported convert type '<dataType>' of '<field>' to SeaTunnel data type.","messagePattern":"'<connector>' <type> unsupported convert type '<dataType>' of '<field>' to SeaTunnel data type\\.","errorType":"error_code","errorClass":"org.apache.seatunnel.common.exception.SeaTunnelRuntimeException","httpStatus":null,"severity":"error","filePath":"seatunnel-connectors-v2/connector-hive/src/main/java/org/apache/seatunnel/connectors/seatunnel/hive/utils/HiveTypeConvertor.java","lineNumber":39,"sourceCode":"import org.apache.seatunnel.api.table.type.BasicType;\nimport org.apache.seatunnel.api.table.type.DecimalType;\nimport org.apache.seatunnel.api.table.type.PrimitiveByteArrayType;\nimport org.apache.seatunnel.api.table.type.SeaTunnelDataType;\nimport org.apache.seatunnel.common.constants.PluginType;\nimport org.apache.seatunnel.common.exception.CommonError;\nimport org.apache.seatunnel.common.utils.JsonUtils;\nimport org.apache.seatunnel.connectors.seatunnel.hive.config.HiveConstants;\n\nimport java.util.LinkedHashMap;\n\npublic class HiveTypeConvertor {\n\n    public static SeaTunnelDataType<?> covertHiveTypeToSeaTunnelType(String name, String hiveType) {\n        if (hiveType.contains(\"varchar\")) {\n            return BasicType.STRING_TYPE;\n        }\n        if (hiveType.contains(\"char\")) {\n            throw CommonError.convertToSeaTunnelTypeError(\n                    HiveConstants.CONNECTOR_NAME, PluginType.SOURCE, hiveType, name);\n        }\n        if (hiveType.contains(\"binary\")) {\n            return PrimitiveByteArrayType.INSTANCE;\n        }\n        if (hiveType.contains(\"struct\")) {\n            LinkedHashMap<String, Object> fields = new LinkedHashMap<>();\n            int start = hiveType.indexOf(\"<\");\n            int end = hiveType.lastIndexOf(\">\");\n            String[] columns = hiveType.substring(start + 1, end).split(\",\");\n            for (String column : columns) {\n                String[] splits = column.split(\":\");\n                fields.put(\n                        splits[0], covertHiveTypeToSeaTunnelType(splits[0], splits[1]).toString());\n            }\n            return SeaTunnelDataTypeConvertorUtil.deserializeSeaTunnelDataType(\n                    name, JsonUtils.toJsonString(fields));\n        }","sourceCodeStart":21,"sourceCodeEnd":57,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-hive/src/main/java/org/apache/seatunnel/connectors/seatunnel/hive/utils/HiveTypeConvertor.java#L21-L57","documentation":"HiveTypeConvertor.covertHiveTypeToSeaTunnelType maps Hive column types to SeaTunnel types. Hive CHAR (e.g. char(n)) has no supported SeaTunnel mapping here and is rejected with COMMON-16 convertToSeaTunnelTypeError naming the connector, type, and field. Note varchar maps to STRING but char intentionally throws.","triggerScenarios":"Reading a Hive table whose schema contains a column of Hive type char(n) (or any type string containing 'char') during source split/schema conversion.","commonSituations":"Hive tables created with CHAR columns (common in legacy warehouses); partitions or tables where DDL uses char instead of string/varchar.","solutions":["Alter the Hive table column from char(n) to string (or varchar) and re-sync metadata","Change the SeaTunnel table schema/config so the field is read as string via a supported type","Cast the char column in the Hive view/query feeding SeaTunnel","Upgrade SeaTunnel to a version that maps char types if available"],"exampleFix":"// before\nCREATE TABLE t (c CHAR(10));\n// after\nALTER TABLE t CHANGE COLUMN c c STRING;","handlingStrategy":"validation","validationCode":"// Check Hive schema for CHAR columns before running the job\nSHOW CREATE TABLE my_table; -- reject any column of type CHAR(n)","typeGuard":"boolean hasCharColumn(java.util.List<String> hiveTypes) {\n    return hiveTypes.stream().anyMatch(t -> t.trim().toLowerCase().startsWith(\"char(\"));\n}","tryCatchPattern":null,"preventionTips":["Avoid CHAR(n) in Hive DDL; prefer STRING or VARCHAR","Pre-scan table DDL with SHOW CREATE TABLE / DESCRIBE before ingestion","Use views casting char columns to string when schema changes are not possible","Check partition schemas too, not only the table's"],"tags":["hive","type-conversion","schema"],"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"}