apache/seatunnel · warning
Unsupported Databend type: {}, fallback to STRING type
Error message
Unsupported Databend type: {}, fallback to STRING type What it means
DatabendCatalog.convertDatabendType maps Databend SQL type names to SeaTunnel types. Unknown/unmapped type names hit the default branch: the warning is logged and STRING is used as fallback. The catalog continues, but the column type is widened/approximated, potentially causing precision loss or wrong downstream types.
Source
Thrown at seatunnel-connectors-v2/connector-databend/src/main/java/org/apache/seatunnel/connectors/seatunnel/databend/catalog/DatabendCatalog.java:504
case "DOUBLE":
case "FLOAT64":
return BasicType.DOUBLE_TYPE;
case "DECIMAL":
return new DecimalType(columnSize, decimalDigits);
case "STRING":
case "VARCHAR":
case "CHAR":
case "TEXT":
return BasicType.STRING_TYPE;
case "DATE":
return LocalTimeType.LOCAL_DATE_TYPE;
case "TIMESTAMP":
return LocalTimeType.LOCAL_DATE_TIME_TYPE;
case "VARBINARY":
case "BINARY":
return BasicType.BYTE_TYPE;
default:
log.warn("Unsupported Databend type: {}, fallback to STRING type", typeName);
return BasicType.STRING_TYPE;
}
}
private Connection getConnection() throws SQLException {
return DatabendUtil.createConnection(this.readonlyConfig);
}
private void checkOpen() {
if (!isOpened) {
throw new DatabendConnectorException(
DatabendConnectorErrorCode.ILLEGAL_STATE,
"Databend catalog is not opened. Please call open() first.");
}
}
}
View on GitHub (pinned to cf67b549a7)
Solutions
- Identify the reported typeName and cast that column to a supported type in your query/view (e.g. CAST(col AS VARCHAR))
- Upgrade the SeaTunnel connector version to one that maps the new Databend types
- If the type should map to something specific, contribute/patch convertDatabendType to add a case for it
Example fix
// before SELECT id, variant_col FROM t; // after SELECT id, CAST(variant_col AS VARCHAR) AS variant_col FROM t;
Defensive patterns
Strategy: fallback
Validate before calling
// Check table columns for unmapped types before sync SELECT data_type FROM information_schema.columns WHERE table_schema=? AND table_name=?; // Compare each data_type against supported mapping list
Prevention
- Avoid semi-structured Databend types (VARIANT/JSON) in synced tables, or cast them to VARCHAR
- Pin connector versions tested against your Databell/Databend server version
- Review fallback warnings at catalog initialization and adjust schema
When it happens
Trigger: A table contains a Databend column type that has no case in convertDatabendType's switch (e.g. newer Databend types like GEOGRAPHY, VARIANT, JSON, or bitmap types).
Common situations: Reading Databend semi-structured columns (VARIANT/OBJECT/ARRAY); Databend version newer than the connector's supported type map; user-defined domain types surfaced through JDBC metadata.
Related errors
- UNSUPPORTED_DATA_TYPE
- Unsupported SQL type: {}, type name: {}, using STRING_TYPE a
- CONNECT_FAILED
- DatabaseNotExistException: catalogName, databaseName
- TableNotExistException: catalogName, tablePath
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/8f2e3c34b97395bc.
Report an issue: GitHub.