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

  1. Upgrade the Presto-Pinot connector to a version whose PinotColumnUtils maps the offending DataType
  2. Exclude the unsupported column from your query (select only supported columns instead of *)
  3. Change the Pinot table schema to use a supported type for that column
  4. 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

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.