{"record":{"id":"e5b337d83ad182b4","repo":"apache/seatunnel","slug":"unsupported-data-type-e5b337","errorCode":"UNSUPPORTED_DATA_TYPE","errorMessage":"Unsupported this data type: \" + type","messagePattern":"Unsupported this data type: \" \\+ type","errorType":"error_code","errorClass":"CassandraConnectorException","httpStatus":null,"severity":"error","filePath":"seatunnel-connectors-v2/connector-cassandra/src/main/java/org/apache/seatunnel/connectors/seatunnel/cassandra/util/TypeConvertUtil.java","lineNumber":103,"sourceCode":"                return BasicType.BOOLEAN_TYPE;\n            case ProtocolConstants.DataType.TIME:\n                return LocalTimeType.LOCAL_TIME_TYPE;\n            case ProtocolConstants.DataType.DATE:\n                return LocalTimeType.LOCAL_DATE_TYPE;\n            case ProtocolConstants.DataType.TIMESTAMP:\n                return LocalTimeType.LOCAL_DATE_TIME_TYPE;\n            case ProtocolConstants.DataType.BLOB:\n                return ArrayType.BYTE_ARRAY_TYPE;\n            case ProtocolConstants.DataType.MAP:\n                return new MapType<>(\n                        convert(((DefaultMapType) type).getKeyType()),\n                        convert(((DefaultMapType) type).getValueType()));\n            case ProtocolConstants.DataType.LIST:\n                return convertToArrayType(convert(((DefaultListType) type).getElementType()));\n            case ProtocolConstants.DataType.SET:\n                return convertToArrayType(convert(((DefaultSetType) type).getElementType()));\n            default:\n                throw new CassandraConnectorException(\n                        CommonErrorCodeDeprecated.UNSUPPORTED_DATA_TYPE,\n                        \"Unsupported this data type: \" + type);\n        }\n    }\n\n    private static ArrayType<?, ?> convertToArrayType(SeaTunnelDataType<?> dataType) {\n        if (dataType.equals(BasicType.STRING_TYPE)) {\n            return ArrayType.STRING_ARRAY_TYPE;\n        } else if (dataType.equals(BasicType.BYTE_TYPE)) {\n            return ArrayType.BYTE_ARRAY_TYPE;\n        } else if (dataType.equals(BasicType.SHORT_TYPE)) {\n            return ArrayType.SHORT_ARRAY_TYPE;\n        } else if (dataType.equals(BasicType.INT_TYPE)) {\n            return ArrayType.INT_ARRAY_TYPE;\n        } else if (dataType.equals(BasicType.LONG_TYPE)) {\n            return ArrayType.LONG_ARRAY_TYPE;\n        } else if (dataType.equals(BasicType.FLOAT_TYPE)) {\n            return ArrayType.FLOAT_ARRAY_TYPE;","sourceCodeStart":85,"sourceCodeEnd":121,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-cassandra/src/main/java/org/apache/seatunnel/connectors/seatunnel/cassandra/util/TypeConvertUtil.java#L85-L121","documentation":"TypeConvertUtil.convert maps Cassandra protocol data types (MAP, LIST, SET, and primitive codes) to SeaTunnel data types. When the Cassandra DataType code is not one of the handled ProtocolConstants.DataType values, it throws UNSUPPORTED_DATA_TYPE via CassandraConnectorException. This typically means the table contains a column type the connector has no SeaTunnel mapping for.","triggerScenarios":"Reading a Cassandra table whose column uses a protocol DataType not covered by the switch (e.g. custom/UDT types, exotic protocol types), during split/type resolution in the Cassandra source.","commonSituations":"Tables with user-defined types (UDT), tuples, or newer Cassandra data types the connector mapping was never extended for; schema drift after ALTER TABLE adding an unmapped column.","solutions":["Identify the column whose type printed in the message is unsupported and exclude it from the query/schema","Change the table column to a supported type (e.g. basic primitives, list/set/map)","Extend TypeConvertUtil.convert with a mapping for the missing DataType","Upgrade SeaTunnel to a version that supports the type"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"ProtocolConstants.DataType code = type.asCqlType().getProtocolCode();\n// allow only codes mapped in TypeConvertUtil.convert before running the source","typeGuard":"boolean isSupportedCassandraType(DataType t) {\n    switch (t.getProtocolCode()) {\n        case ProtocolConstants.DataType.VARCHAR:\n        case ProtocolConstants.DataType.INT:\n        case ProtocolConstants.DataType.BIGINT:\n        case ProtocolConstants.DataType.DOUBLE:\n        case ProtocolConstants.DataType.BOOLEAN:\n            return true;\n        default:\n            return false;\n    }\n}","tryCatchPattern":"try {\n    SeaTunnelDataType<?> st = TypeConvertUtil.convert(cqlType);\n} catch (CassandraConnectorException e) {\n    if (CommonErrorCodeDeprecated.UNSUPPORTED_DATA_TYPE.equals(e.getCode())) {\n        LOG.warn(\"Skipping unsupported column type: {}\", e.getMessage());\n    } else { throw e; }\n}","preventionTips":["Review table schemas for UDT/tuple columns before connecting the source","Keep column types limited to primitives and list/set/map of primitives","Test type mapping against the real schema during development"],"tags":["cassandra","type-conversion","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"}