{"record":{"id":"91ed4109542b11d3","repo":"apache/seatunnel","slug":"jdbc-type-not-currently-supported","errorCode":null,"errorMessage":"JDBC type {} ({}) not currently supported","messagePattern":"JDBC type (.+?) \\((.+?)\\) not currently supported","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/GenericTypeConverter.java","lineNumber":179,"sourceCode":"                break;\n            case Types.TIME:\n                builder.dataType(LocalTimeType.LOCAL_TIME_TYPE);\n                builder.scale(typeDefine.getScale());\n                break;\n            case Types.TIMESTAMP:\n                builder.dataType(LocalTimeType.LOCAL_DATE_TIME_TYPE);\n                builder.scale(typeDefine.getScale());\n                break;\n\n            case Types.OTHER:\n            case Types.ARRAY:\n            case Types.JAVA_OBJECT:\n            case Types.DISTINCT:\n            case Types.STRUCT:\n            case Types.REF:\n            case Types.ROWID:\n            default:\n                log.warn(\n                        \"JDBC type {} ({}) not currently supported\",\n                        sqlType,\n                        typeDefine.getNativeType());\n        }\n        return builder.build();\n    }\n\n    /**\n     * Convert {@link Column} to an external system's type definition.\n     *\n     * @param column\n     * @return\n     */\n    @Override\n    public BasicTypeDefine reconvert(Column column) {\n        throw new UnsupportedOperationException(\n                String.format(\n                        \"%s (%s) type doesn't have a mapping to the SQL database column type\",","sourceCodeStart":161,"sourceCodeEnd":197,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/GenericTypeConverter.java#L161-L197","documentation":"GenericTypeConverter.convert() maps a JDBC column type definition to a SeaTunnel data type. When the java.sql.Types code is one of JAVA_OBJECT, DISTINCT, STRUCT, REF, ROWID, or any unrecognized code, no mapping is added and the converter logs this warning, falling back to an (incomplete) built row type. Data of that column will be missing or null downstream.","triggerScenarios":"Source table contains columns typed as JDBC STRUCT / JAVA_OBJECT / DISTINCT / REF / ROWID (e.g. Oracle OBJECT types, PostgreSQL composite/geometry in some mappings, struct columns) during catalog/table type conversion.","commonSituations":"Reading tables with spatial types (geometry), user-defined object types, or array/struct columns not covered by the dialect's type converter; schema obtained from DatabaseMetaData where dialect lacks a mapping.","solutions":["Check the log line for the offending sqlType and native type; exclude or cast that column in the SQL query (e.g. CAST(col AS TEXT))","Define an explicit user-defined type mapping (table_path/column type mapping) supported by the connector","Upgrade SeaTunnel or the dialect — newer versions often add mappings for spatial/struct types","Transform unsupported columns on the DB side into supported primitives via a view"],"exampleFix":"// before\nSELECT id, shape FROM geo_table\n// after\nSELECT id, ST_AsText(shape) AS shape FROM geo_table","handlingStrategy":"validation","validationCode":"// inspect source schema for unsupported JDBC types before the job\nResultSet cols = meta.getColumns(catalog, schema, table, null);\nwhile (cols.next()) {\n    int t = cols.getInt(\"DATA_TYPE\");\n    if (t == Types.STRUCT || t == Types.JAVA_OBJECT || t == Types.DISTINCT\n        || t == Types.REF || t == Types.ROWID) {\n        throw new IllegalStateException(\"Unsupported column type: \" + cols.getString(\"COLUMN_NAME\"));\n    }\n}","typeGuard":"boolean isSupportedJdbcType(int sqlType) {\n    switch (sqlType) {\n        case Types.JAVA_OBJECT: case Types.DISTINCT: case Types.STRUCT:\n        case Types.REF: case Types.ROWID:\n            return false;\n        default:\n            return true;\n    }\n}","tryCatchPattern":null,"preventionTips":["Pre-scan table DDL for OBJECT/STRUCT/spatial columns","CAST unsupported columns in the source query or via a DB view","Configure explicit type mappings for exotic columns","Watch logs for this warning during catalog retrieval"],"tags":["jdbc","type-conversion","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"}