apache/seatunnel · error · OpenMldbConnectorException

UNSUPPORTED_DATA_TYPE

UNSUPPORTED_DATA_TYPE

Error message

Unsupported this data type

What it means

Thrown by OpenMldbSourceReader.getObject when converting a JDBC result-set value whose SeaTunnel SeaTunnelDataType is not among the handled cases (string/boolean/tinyint/smallint/int/bigint/float/double/date/timestamp). The reader cannot materialize the row, so it raises UNSUPPORTED_DATA_TYPE during pollNext.

Source

Thrown at seatunnel-connectors-v2/connector-openmldb/src/main/java/org/apache/seatunnel/connectors/seatunnel/openmldb/source/OpenMldbSourceReader.java:114

                return resultSet.getInt(index);
            case SMALLINT:
                return resultSet.getShort(index);
            case BIGINT:
                return resultSet.getLong(index);
            case FLOAT:
                return resultSet.getFloat(index);
            case DOUBLE:
                return resultSet.getDouble(index);
            case STRING:
                return resultSet.getString(index);
            case DATE:
                Date date = resultSet.getDate(index);
                return date.toLocalDate();
            case TIMESTAMP:
                Timestamp timestamp = resultSet.getTimestamp(index);
                return timestamp.toLocalDateTime();
            default:
                throw new OpenMldbConnectorException(
                        CommonErrorCodeDeprecated.UNSUPPORTED_DATA_TYPE,
                        "Unsupported this data type");
        }
    }
}

View on GitHub (pinned to cf67b549a7)

Solutions

  1. Exclude or CAST the offending column in the source SQL to a supported type.
  2. Check that the table schema did not change since job startup; restart with the updated schema.
  3. Add a read-side case for the type in OpenMldbSourceReader.getObject if you maintain the connector.
  4. File/verify a SeaTunnel issue for the missing type mapping in the OpenMldb connector.

Example fix

// before
SELECT id, payload FROM db1.table1  -- payload is BINARY
// after
SELECT id, CAST(payload AS STRING) AS payload FROM db1.table1
Defensive patterns

Strategy: validation

Validate before calling

// Before reading, compare result-set metadata types against the supported set:
// ResultSetMetaData md = rs.getMetaData();
// for (int i = 1; i <= md.getColumnCount(); i++) check md.getColumnType(i) is supported.

Try / catch

try {
    row = reader.pollNext();
} catch (OpenMldbConnectorException e) {
    // check message "Unsupported this data type"; re-plan with CASTed columns
    throw e;
}

Prevention

When it happens

Trigger: pollNext iterates result set columns and getObject encounters a column type that fell through the switch default — typically a type that was somehow allowed at schema conversion time but has no read-side conversion (e.g. BYTES/DECIMAL/BINARY).

Common situations: Table schema changed between planning and read time, source SQL selecting binary/decimal columns, or schema/type mismatch between the connector's catalog conversion and the actual result set metadata.

Related errors


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