prestodb/presto · error · PinotException
PINOT_UNSUPPORTED_COLUMN_TYPE
PINOT_UNSUPPORTED_COLUMN_TYPE
Error message
Not support type conversion for pinot data type: %s
What it means
getPrestoTypeFromPinotType hits its default branch when a Pinot column DataType has no mapping to a Presto type. The connector refuses to expose the column rather than guessing a lossy conversion (PINOT_UNSUPPORTED_COLUMN_TYPE).
Source
Thrown at presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotColumnUtils.java:153
return DoubleType.DOUBLE;
case INT:
return IntegerType.INTEGER;
case LONG:
return BigintType.BIGINT;
case STRING:
return VarcharType.VARCHAR;
case BYTES:
return VarbinaryType.VARBINARY;
case TIMESTAMP:
return TimestampType.TIMESTAMP;
case JSON:
return JsonType.JSON;
case BIG_DECIMAL:
return DecimalType.createDecimalType();
default:
break;
}
throw new PinotException(PINOT_UNSUPPORTED_COLUMN_TYPE, Optional.empty(), "Not support type conversion for pinot data type: " + dataType);
}
}
View on GitHub (pinned to 55bb57d202)
Solutions
- Upgrade the Presto-Pinot connector to a version whose PinotColumnUtils maps the offending DataType
- Exclude the unsupported column from your query (select only supported columns instead of *)
- Change the Pinot table schema to use a supported type for that column
- Add a mapping case in PinotColumnUtils.getPrestoTypeFromPinotType if you build the connector yourself
Example fix
// before SELECT * FROM pinot.mytable -- includes unsupported column type // after SELECT supportedCol1, supportedCol2 FROM pinot.mytable
Defensive patterns
Strategy: validation
Validate before calling
// Check Pinot schema types before selecting a column curl -s http://<controller>:9000/tables/<table>/schema | jq '.columnDataTypes'
Prevention
- List explicit columns instead of SELECT * when schema may contain exotic types
- Keep connector and Pinot versions aligned (new Pinot DataTypes need newer mappings)
- Validate table schemas against supported types before exposing them in Presto
- If self-building, extend PinotColumnUtils with a mapping for the new DataType
When it happens
Trigger: A Pinot table schema contains a column of a DataType the connector doesn't translate (e.g. newer Pinot types like JSON/BIG_DECIMAL/UNKNOWN on an older connector, or truly unmapped types).
Common situations: Upgraded Pinot introduced new column types before the connector supports them; SELECT * pulls in a column with an unsupported type; schema evolved to add exotic types (BYTES variants, GEO types) mid-flight.
Related errors
AI-assisted analysis of prestodb/presto@55bb57d202 (2026-09-04).
Data as JSON: /api/errors/2047873da0e5604e.
Report an issue: GitHub.