{"record":{"id":"014e428f955d8a7e","repo":"apache/seatunnel","slug":"unsupported-data-type-014e42","errorCode":"UNSUPPORTED_DATA_TYPE","errorMessage":"SeaTunnel does not support this data type","messagePattern":"SeaTunnel does not support this data type","errorType":"error_code","errorClass":"OpenMldbConnectorException","httpStatus":null,"severity":"error","filePath":"seatunnel-connectors-v2/connector-openmldb/src/main/java/org/apache/seatunnel/connectors/seatunnel/openmldb/source/OpenMldbSource.java","lineNumber":123,"sourceCode":"                return BasicType.BOOLEAN_TYPE;\n            case Types.INTEGER:\n                return BasicType.INT_TYPE;\n            case Types.SMALLINT:\n                return BasicType.SHORT_TYPE;\n            case Types.BIGINT:\n                return BasicType.LONG_TYPE;\n            case Types.FLOAT:\n                return BasicType.FLOAT_TYPE;\n            case Types.DOUBLE:\n                return BasicType.DOUBLE_TYPE;\n            case Types.VARCHAR:\n                return BasicType.STRING_TYPE;\n            case Types.DATE:\n                return LocalTimeType.LOCAL_DATE_TYPE;\n            case Types.TIMESTAMP:\n                return LocalTimeType.LOCAL_DATE_TIME_TYPE;\n            default:\n                throw new OpenMldbConnectorException(\n                        CommonErrorCodeDeprecated.UNSUPPORTED_DATA_TYPE,\n                        \"SeaTunnel does not support this data type\");\n        }\n    }\n\n    private CatalogTable convert(List<Column> columnList) {\n        TableSchema.Builder builder = TableSchema.builder();\n        for (int i = 0; i < columnList.size(); i++) {\n            Column column = columnList.get(i);\n            builder.column(\n                    PhysicalColumn.of(\n                            column.getColumnName(),\n                            convertSeaTunnelDataType(column.getSqlType()),\n                            (Long) null,\n                            column.isNotNull(),\n                            null,\n                            null));\n        }","sourceCodeStart":105,"sourceCodeEnd":141,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-openmldb/src/main/java/org/apache/seatunnel/connectors/seatunnel/openmldb/source/OpenMldbSource.java#L105-L141","documentation":"Thrown by OpenMldbSource.convertSeaTunnelDataType when a java.sql.Types column type from the OpenMldb schema has no mapping to a SeaTunnel data type. The switch over SQL type codes covers the common numeric/string/date/timestamp cases; any other code falls into the default branch and raises UNSUPPORTED_DATA_TYPE.","triggerScenarios":"Schema returned by getInputSchema contains a column whose java.sql.Types code is not handled by the switch (e.g. BINARY, ARRAY, exotic OpenMldb types), reached during CatalogTable conversion of every column.","commonSituations":"Selecting columns with unsupported OpenMldb types such as BLOB/binary or array/vector types, or a connector/driver version emitting new type codes the connector's mapping does not know.","solutions":["Remove unsupported columns from the SQL so only mappable types (numeric, string, date, timestamp) are selected.","CAST unsupported columns in the SQL to a supported type (e.g. CAST(col AS STRING)).","Upgrade the connector to a version that maps the offending type.","Add a case in convertSeaTunnelDataType mapping the type code to an appropriate SeaTunnel type if you maintain a fork."],"exampleFix":"// before\nSELECT id, features FROM db1.table1  -- features is ARRAY type\n// after\nSELECT id, CAST(features AS STRING) AS features FROM db1.table1","handlingStrategy":"validation","validationCode":"// Inspect column types before running:\n// for (Column c : inputSchema.getColumnList()) check c.getSqlType()\n//   is one of the supported java.sql.Types used by convertSeaTunnelDataType\n// Otherwise CAST unsupported columns to STRING in the SQL.","typeGuard":null,"tryCatchPattern":"try {\n    source.initialize(...);\n} catch (OpenMldbConnectorException e) {\n    if (String.valueOf(e).contains(\"does not support this data type\")) {\n        // rewrite SQL with CASTs for unsupported columns\n    }\n    throw e;\n}","preventionTips":["CAST binary/array/complex columns to STRING in the source SQL.","Keep the select list limited to primitive, mappable types.","Pin connector and driver versions and verify type mappings after upgrades."],"tags":["openmldb","data-type","type-mapping","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"}