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

  1. Identify the reported typeName and cast that column to a supported type in your query/view (e.g. CAST(col AS VARCHAR))
  2. Upgrade the SeaTunnel connector version to one that maps the new Databend types
  3. 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

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


AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10). Data as JSON: /api/errors/8f2e3c34b97395bc. Report an issue: GitHub.