prestodb/presto · error · ParquetDecodingException

Plain values reader does not support:

Error message

Plain values reader does not support: 

What it means

Dispatch guard in getValuesReader for PLAIN encoding: the column's Parquet physical type has no plain values reader implementation (falls past BOOLEAN/BINARY/FLOAT/INT32/INT64/INT96/... cases). Unsupported type-encoding combination for that column.

Source

Thrown at presto-parquet/src/main/java/com/facebook/presto/parquet/ParquetEncoding.java:75

            switch (descriptor.getType()) {
                case BOOLEAN:
                    return new BooleanPlainValuesReader();
                case BINARY:
                    return new BinaryPlainValuesReader();
                case FLOAT:
                    return new FloatPlainValuesReader();
                case DOUBLE:
                    return new DoublePlainValuesReader();
                case INT32:
                    return new IntegerPlainValuesReader();
                case INT64:
                    return new LongPlainValuesReader();
                case INT96:
                    return new FixedLenByteArrayPlainValuesReader(INT96_TYPE_LENGTH);
                case FIXED_LEN_BYTE_ARRAY:
                    return new FixedLenByteArrayPlainValuesReader(descriptor.getPrimitiveType().getTypeLength());
                default:
                    throw new ParquetDecodingException("Plain values reader does not support: " + descriptor.getType());
            }
        }

        @Override
        public Dictionary initDictionary(ColumnDescriptor descriptor, DictionaryPage dictionaryPage)
                throws IOException
        {
            switch (descriptor.getType()) {
                case BINARY:
                    return new BinaryDictionary(dictionaryPage);
                case FIXED_LEN_BYTE_ARRAY:
                    return new BinaryDictionary(dictionaryPage, descriptor.getTypeLength());
                case INT96:
                    return new BinaryDictionary(dictionaryPage, INT96_TYPE_LENGTH);
                case INT64:
                    return new LongDictionary(dictionaryPage);
                case DOUBLE:
                    return new DoubleDictionary(dictionaryPage);

View on GitHub (pinned to 55bb57d202)

Solutions

  1. Rewrite the column as a supported physical type (e.g. convert FIXED_LEN_BYTE_ARRAY or unusual types)
  2. Upgrade Presto to a version that implements the reader for that physical type
  3. Confirm the schema in the footer matches the actual page data
Defensive patterns

Strategy: type-guard

When it happens

Trigger: Thrown at presto-parquet/src/main/java/com/facebook/presto/parquet/ParquetEncoding.java:75 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/224dccb0927fc347. Report an issue: GitHub.