prestodb/presto · error · RuntimeException

Unknown primitive type

Error message

Unknown primitive type 

What it means

Reverse-mapping guard in getType: a Parquet physical type name from the schema or metadata has no corresponding Presto Type (all known cases INT64..FIXED_LEN_BYTE_ARRAY exhausted). Encountered when reading metadata declaring an unknown/unsupported primitive type.

Source

Thrown at presto-parquet/src/main/java/com/facebook/presto/parquet/writer/ParquetTypeConverter.java:44

        switch (type) {
            case INT64:
                return Type.INT64;
            case INT32:
                return Type.INT32;
            case BOOLEAN:
                return Type.BOOLEAN;
            case BINARY:
                return Type.BYTE_ARRAY;
            case FLOAT:
                return Type.FLOAT;
            case DOUBLE:
                return Type.DOUBLE;
            case INT96:
                return Type.INT96;
            case FIXED_LEN_BYTE_ARRAY:
                return Type.FIXED_LEN_BYTE_ARRAY;
            default:
                throw new RuntimeException("Unknown primitive type " + type);
        }
    }
}

View on GitHub (pinned to 55bb57d202)

Solutions

  1. Upgrade Presto to a version recognizing the primitive type
  2. Rewrite the file replacing the unknown type with a supported one
  3. Verify the schema source (e.g. embedded vs hive metastore) is not stale or wrong
Defensive patterns

Strategy: type-guard

When it happens

Trigger: Thrown at presto-parquet/src/main/java/com/facebook/presto/parquet/writer/ParquetTypeConverter.java:44 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of prestodb/presto@55bb57d202 (2026-09-04). Data as JSON: /api/errors/528d307fed493a38. Report an issue: GitHub.