apache/seatunnel · warning
The column with type will be converted to VECTOR in YashanDB
Error message
The column {} with type {} will be converted to VECTOR in YashanDB What it means
This is a WARN-level log emitted by the YashanDB JDBC dialect's type converter during reconvert(). YashanDB has no dedicated FLOAT16_VECTOR/BFLOAT16_VECTOR column types, so any such SeaTunnel column is silently mapped to a generic VECTOR column with the column's scale. The warning informs the user that precision characteristics of the original vector type may be lost in the conversion.
Solutions
- Accept the VECTOR(scale) mapping if the application tolerates it
- Change the source schema column to a plain VECTOR type so no lossy conversion is attempted
- Explicitly define the target YashanDB table with the desired VECTOR dimension/scale instead of relying on auto-creation
Defensive patterns
Strategy: validation
Validate before calling
// Before writing, check the sink dialect supports the vector type
if (column.getDataType().getSqlType() == SqlType.FLOAT16_VECTOR
|| column.getDataType().getSqlType() == SqlType.BFLOAT16_VECTOR) {
// YashanDB maps these to generic VECTOR(scale) - confirm precision loss is acceptable
log.info("Column {} will be stored as VECTOR({}) in YashanDB", column.getName(), column.getScale());
} Prevention
- Review sink schema for vector column types before enabling auto table creation against YashanDB
- Prefer plain VECTOR types in source schemas when targeting YashanDB
- Watch for this WARN in job logs to know a lossy mapping occurred
When it happens
Trigger: A catalog/table-definition conversion via YashanDbTypeConverter.reconvert() encounters a column whose SeaTunnel SQL type is FLOAT16_VECTOR or BFLOAT16_VECTOR; the converter logs the warning and rewrites the column type to VECTOR(scale).
Common situations: Sink schemas defined with vector columns for engines supporting half-precision/bfloat16 vector types (e.g. Milvus, newer MySQL vector flavors) being written to YashanDB; auto table creation against YashanDB with such a schema.
Understand the failure class
Background: Type mismatch errors: IllegalArgumentException, TypeError and type guards across 150 open-source libraries — this error's family across 150 libraries.
Related errors
- The column with type ARRAY will be converted to VECTOR in…
- Unsupported YashanDB vector value type
- COMMON-17
- COMMON-19
- Invalid YashanDB 2-byte vector buffer length:
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/69845896219893b4.
Report an issue: GitHub.
Appendix: source
Thrown at seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/yashandb/YashanDbTypeConverter.java:448
String.format("%s(%s,FLOAT64)", VECTOR_NAME, column.getColumnLength()));
builder.dataType(VECTOR_NAME);
} else {
throw new UnsupportedOperationException(
"Unsupport "
+ ((ArrayType) column.getDataType())
.getElementType()
.getSqlType()
+ " ARRAY");
}
break;
case FLOAT_VECTOR:
case FLOAT16_VECTOR:
builder.columnType(String.format("%s(%s)", VECTOR_NAME, column.getScale()));
builder.dataType(VECTOR_NAME);
break;
case BFLOAT16_VECTOR:
// Vector types are stored as VECTOR in YashanDB
log.warn(
"The column {} with type {} will be converted to VECTOR in YashanDB",
column.getName(),
column.getDataType().getSqlType().name());
builder.columnType(String.format("%s(%s)", VECTOR_NAME, column.getScale()));
builder.dataType(VECTOR_NAME);
break;
case STRING:
if (column.getColumnLength() == null || column.getColumnLength() <= 0) {
builder.columnType(String.format("%s(%s)", VARCHAR, MAX_VARCHAR_LENGTH));
builder.dataType(VARCHAR);
} else if (column.getColumnLength() <= MAX_VARCHAR_LENGTH) {
builder.columnType(String.format("%s(%s)", VARCHAR, column.getColumnLength()));
builder.dataType(VARCHAR);
} else {
builder.columnType(CLOB);
builder.dataType(CLOB);
}
break;View on GitHub (pinned to cf67b549a7)