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

  1. 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
  2. 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
  3. Check source user privileges so information_schema metadata is fully visible to the vreplication user
  4. 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

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


AI-assisted analysis of vitessio/vitess@01a25a7d17 (2026-09-01). Data as JSON: /api/errors/74512ea64f2b6da0. Report an issue: GitHub.