apache/seatunnel · error · SeaTunnelRuntimeException
COMMON-19
COMMON-19
Error message
'${identifier}' unsupported convert SeaTunnel data type '${dataType}' of '${field}' to connector data type. What it means
XuGu JDBC dialect type converter's reconvert() throws this when a SeaTunnel column's SQL type has no mapping to a XuGu connector column type. It is thrown from the switch's default branch, meaning the SeaTunnel SqlType (e.g. TIME or another unmapped type) cannot be represented in XuGu DDL. This guards against silently generating an invalid column type.
Solutions
- Check the source schema and exclude or transform unsupported columns (e.g. cast TIME to TIMESTAMP) before table creation
- Add or extend the type mapping case in XuguTypeConverter.reconvert() for the missing SqlType
- Log/inspect column.getDataType().getSqlType() to identify which type is unmapped
Example fix
// before
default:
throw CommonError.convertToConnectorTypeError(DatabaseIdentifier.XUGU, column.getDataType().getSqlType().name(), column.getName());
// after
// transform the field upstream, e.g. in the source config cast TIME to TIMESTAMP,
// or add a case:
case TIME:
builder.columnType("TIME");
builder.dataType(LocalTimeType.LOCAL_TIME_TYPE);
break; Defensive patterns
Strategy: try-catch
Try / catch
try {
CatalogTable converted = xuguTypeConverter.reconvert(column);
} catch (SeaTunnelConvertException e) {
LOG.warn("Skipping column unsupported by XuGu: {}", e.getMessage());
// fall back: cast the column upstream or exclude it from table creation
} Prevention
- Log the failing SqlType from the exception to decide on a cast strategy
When it happens
Trigger: Calling XuguTypeConverter.reconvert() on a CatalogColumn whose SeaTunnel data type falls into the switch's default branch — e.g. SeaTunnel TIME, ROW, MAP or other types without an explicit XuGu case.
Common situations: Catalog auto table creation against XuGu where the source table contains TIME or complex types; schema evolution bringing in a type the XuGu dialect does not map.
Related errors
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/9698d3dd222ecec3.
Report an issue: GitHub.
Appendix: source
Thrown at seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/xugu/XuguTypeConverter.java:408
if (column.getScale() > MAX_TIMESTAMP_SCALE) {
timestampTzScale = MAX_TIMESTAMP_SCALE;
log.warn(
"The timestamp_tz column {} type timestamp_tz({}) is out of"
+ " range, which exceeds the maximum scale of {}, "
+ "it will be converted to timestamp_tz({})",
column.getName(),
column.getScale(),
MAX_TIMESTAMP_SCALE,
timestampTzScale);
}
builder.columnType(
String.format("TIMESTAMP(%s) WITH TIME ZONE", timestampTzScale));
builder.scale(timestampTzScale);
}
builder.dataType(XUGU_TIMESTAMP_WITH_TIME_ZONE);
break;
default:
throw CommonError.convertToConnectorTypeError(
DatabaseIdentifier.XUGU,
column.getDataType().getSqlType().name(),
column.getName());
}
return builder.build();
}
}
View on GitHub (pinned to cf67b549a7)