{"record":{"id":"f82d0830224f0cb9","repo":"apache/seatunnel","slug":"unsupported-data-type-f82d08","errorCode":"UNSUPPORTED_DATA_TYPE","errorMessage":"Doesn't support TDENGINE type '%s' yet.","messagePattern":"Doesn't support TDENGINE type '(.+?)' yet\\.","errorType":"error_code","errorClass":"TDengineConnectorException","httpStatus":null,"severity":"error","filePath":"seatunnel-connectors-v2/connector-tdengine/src/main/java/org/apache/seatunnel/connectors/seatunnel/tdengine/typemapper/TDengineTypeMapper.java","lineNumber":150,"sourceCode":"            case TDENGINE_TIME:\n                return LocalTimeType.LOCAL_TIME_TYPE;\n            case TDENGINE_DATETIME:\n            case TDENGINE_TIMESTAMP:\n                return LocalTimeType.LOCAL_DATE_TIME_TYPE;\n\n            case TDENGINE_TINYBLOB:\n            case TDENGINE_MEDIUMBLOB:\n            case TDENGINE_BLOB:\n            case TDENGINE_LONGBLOB:\n            case TDENGINE_VARBINARY:\n            case TDENGINE_BINARY:\n                return PrimitiveByteArrayType.INSTANCE;\n\n                // Doesn't support yet\n            case TDENGINE_GEOMETRY:\n            case TDENGINE_UNKNOWN:\n            default:\n                throw new TDengineConnectorException(\n                        CommonErrorCodeDeprecated.UNSUPPORTED_DATA_TYPE,\n                        String.format(\"Doesn't support TDENGINE type '%s' yet.\", tdengineType));\n        }\n    }\n}\n","sourceCodeStart":132,"sourceCodeEnd":156,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-tdengine/src/main/java/org/apache/seatunnel/connectors/seatunnel/tdengine/typemapper/TDengineTypeMapper.java#L132-L156","documentation":"TDengineTypeMapper.mapping() throws when converting a TDengine column type that SeaTunnel does not yet support — specifically TDENGINE_GEOMETRY, TDENGINE_UNKNOWN, or any unrecognized type string. It fails fast instead of silently losing data.","triggerScenarios":"Reading (schema conversion for) a table containing a GEOMETRY column, an unknown type returned by the driver, or a type added in a newer TDengine version that the mapper has no case for.","commonSituations":"Querying TDengine 3.x tables with GEOMETRY columns; upgrading TDengine introduces a new data type the connector doesn't map; typo'd/unsupported type strings in metadata.","solutions":["Exclude GEOMETRY/unsupported columns from the query (select only supported columns).","Convert the GEOMETRY column to a supported type in TDengine (e.g. store WKT as BINARY/VARCHAR) and read that instead.","Upgrade SeaTunnel to a version whose TDengineTypeMapper supports the type, if available.","Check the tdengineType value in the message to confirm which type is unhandled before changing schema."],"exampleFix":"// before\nquery = \"SELECT id, location FROM sensors\"; // location is GEOMETRY\n// after\nquery = \"SELECT id, CAST(location AS BINARY) AS location FROM sensors\"; // or drop the column","handlingStrategy":"validation","validationCode":"// Check column types up front\ntry (ResultSet rs = stmt.executeQuery(\"DESCRIBE \" + table)) {\n    while (rs.next()) {\n        String type = rs.getString(\"type\");\n        if (type.contains(\"GEOMETRY\")) throw new IllegalStateException(\"Unsupported column: \" + rs.getString(\"field\"));\n    }\n}","typeGuard":"boolean isSupportedTdengineType(String t) {\n    String u = t == null ? \"\" : t.toUpperCase();\n    return u.contains(\"BOOL\") || u.contains(\"TINYINT\") || u.contains(\"SMALLINT\") || u.contains(\"INT\")\n        || u.contains(\"BIGINT\") || u.contains(\"FLOAT\") || u.contains(\"DOUBLE\")\n        || u.contains(\"TIMESTAMP\") || u.contains(\"BINARY\") || u.contains(\"NCHAR\") || u.contains(\"VARCHAR\");\n}","tryCatchPattern":"try {\n    catalog.getTable(tablePath);\n} catch (UnsupportedOperationException | IllegalArgumentException e) {\n    log.error(\"Table has unsupported TDengine types; exclude or cast them\", e);\n}","preventionTips":["Exclude or CAST GEOMETRY columns before reading","Describe the table schema and validate types against the mapper's supported list before the job","Upgrade TDengine/connector versions together so new types are mapped"],"tags":["tdengine","type-mapping","schema","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"}