vitessio/vitess · error
no dataType/columnType found in information_schema.columns f
Error message
no dataType/columnType found in information_schema.columns for table %s, column %s
What it means
When building the column info map for a table during vreplication, vreplicator queries information_schema.columns for each column's DATA_TYPE and COLUMN_TYPE (needed to construct target-side type conversions). If either comes back empty for a column, the schema metadata is unusable and this error is thrown naming the table and column.
Source
Thrown at go/vt/vttablet/tabletmanager/vreplication/vreplicator.go:438
columnName = row[2].ToString()
var currentField *querypb.Field
for _, field := range td.Fields {
if field.Name == columnName {
currentField = field
break
}
}
if currentField == nil {
continue
}
dataType = row[3].ToString()
columnType = row[4].ToString()
if sqltypes.IsText(currentField.Type) {
charSet = row[0].ToString()
collation = row[1].ToString()
}
if dataType == "" || columnType == "" {
return nil, fmt.Errorf("no dataType/columnType found in information_schema.columns for table %s, column %s", td.Name, columnName)
}
for _, pk := range pks {
if columnName == pk {
isPK = true
}
}
extra := strings.ToLower(row[5].ToString())
if strings.Contains(extra, "stored generated") || strings.Contains(extra, "virtual generated") {
isGenerated = true
}
colInfo = append(colInfo, &ColumnInfo{
Name: columnName,
CharSet: charSet,
Collation: collation,
DataType: dataType,
ColumnType: columnType,
IsPK: isPK,
IsGenerated: isGenerated,View on GitHub (pinned to 01a25a7d17)
Solutions
- Run the equivalent information_schema.columns query on the source for the named table/column to see what MySQL returns and why it is empty
- Verify the column still exists and check for recent DDL; re-sync the schema (e.g. via a fresh copy or schema swap) and restart the workflow
- Check source user privileges so information_schema metadata is fully visible to the vreplication user
- If using an unusual engine/flavor, confirm DATA_TYPE/COLUMN_TYPE are populated; upgrade Vitess or MySQL as needed
Defensive patterns
Strategy: validation
Validate before calling
-- Preflight: confirm DATA_TYPE/COLUMN_TYPE are populated for all workflow tables SELECT table_name, column_name, data_type, column_type FROM information_schema.columns WHERE table_schema = 'mykeyspace' AND (data_type = '' OR column_type = '');
Try / catch
if err != nil && strings.Contains(err.Error(), "no dataType/columnType found in information_schema.columns") {
// parse table/column from the message, inspect source metadata, fix DDL, restart workflow
} Prevention
- Avoid schema changes on source tables mid-copy; coordinate DDL with workflow pauses
- Grant the vreplication user full information_schema visibility
- Verify column metadata integrity after exotic engine or generated-column usage
- Re-sync schemas between source and target before starting or resuming copy workflows
When it happens
Trigger: buildColInfoMap (called from replicate) reads a row from the information_schema.columns query where dataType or columnType is the empty string for a given column of table td.Name.
Common situations: Column dropped/altered on the source between plan creation and the information_schema query; corrupted information_schema views; permissions preventing full metadata reads; non-standard storage engines or generated columns returning empty metadata; case-sensitive table name mismatches.
Related errors
- value out of range
- both atomic copy and partial mode cannot be specified for th
- invalid workflow
- multiple source keyspaces for a single workflow
- multiple target keyspaces for a single workflow
AI-assisted analysis of vitessio/vitess@01a25a7d17 (2026-09-01).
Data as JSON: /api/errors/74512ea64f2b6da0.
Report an issue: GitHub.