{"record":{"id":"d781f6c5d77ee981","repo":"prestodb/presto","slug":"not-supported-d781f6","errorCode":"NOT_SUPPORTED","errorMessage":"Unsupported parquet type: ","messagePattern":"Unsupported parquet type: ","errorType":"error_code","errorClass":"PrestoException","httpStatus":null,"severity":"error","filePath":"presto-parquet/src/main/java/com/facebook/presto/parquet/ColumnReaderFactory.java","lineNumber":142,"sourceCode":"                    return new LongTimeMicrosColumnReader(descriptor);\n                }\n                return createDecimalColumnReader(descriptor).orElseGet(() -> new LongColumnReader(descriptor));\n            case INT96:\n                return new TimestampColumnReader(descriptor);\n            case FLOAT:\n                return new FloatColumnReader(descriptor);\n            case DOUBLE:\n                return new DoubleColumnReader(descriptor);\n            case BINARY:\n                return createDecimalColumnReader(descriptor).orElseGet(() -> new BinaryColumnReader(descriptor));\n            case FIXED_LEN_BYTE_ARRAY:\n                if (isUuidType(descriptor)) {\n                    return new BinaryColumnReader(descriptor);\n                }\n                return createDecimalColumnReader(descriptor)\n                        .orElseThrow(() -> new PrestoException(NOT_SUPPORTED, \" type FIXED_LEN_BYTE_ARRAY supported as DECIMAL; got \" + descriptor.getPrimitiveType().getOriginalType()));\n            default:\n                throw new PrestoException(NOT_SUPPORTED, \"Unsupported parquet type: \" + descriptor.getPrimitiveType().getPrimitiveTypeName());\n        }\n    }\n\n    private static Optional<ColumnReader> createDecimalBatchColumnReader(RichColumnDescriptor descriptor)\n    {\n        if (isDecimalType(descriptor)) {\n            if (isShortDecimalType(descriptor)) {\n                return Optional.of(new ShortDecimalFlatBatchReader(descriptor));\n            }\n            return Optional.of(new LongDecimalFlatBatchReader(descriptor));\n        }\n        return Optional.empty();\n    }\n\n    private static Optional<AbstractColumnReader> createDecimalColumnReader(RichColumnDescriptor descriptor)\n    {\n        if (isDecimalType(descriptor)) {\n            if (isShortDecimalType(descriptor)) {","sourceCodeStart":124,"sourceCodeEnd":160,"githubUrl":"https://github.com/prestodb/presto/blob/55bb57d202de3b926896fa966c2c4a44c779634e/presto-parquet/src/main/java/com/facebook/presto/parquet/ColumnReaderFactory.java#L124-L160","documentation":"ColumnReaderFactory.createReader maps a Parquet physical type to a ColumnReader implementation; when the primitive type falls through all supported cases (e.g., an unexpected INT96 usage or unmapped physical type), a PrestoException with NOT_SUPPORTED is raised. The library simply has no reader for that Parquet type combination.","triggerScenarios":"A Parquet file contains a column whose PrimitiveTypeName has no case in createReader — typically an exotic/unmapped type or a type reached via a schema combination the reader doesn't handle.","commonSituations":"Files written by newer/other engines with types Presto's parquet reader predates (e.g., certain INTERVAL/JSON annotations); TIMESTAMP_MILLIS conversions not covered; reading files from tools emitting rare types.","solutions":["Upgrade Presto to a version supporting the type.","Exclude/reproject the unsupported column from the query or table schema.","Rewrite the Parquet file with supported types (e.g., cast to DECIMAL/BINARY in the writer pipeline).","Convert the file with parquet-tools/Spark to a supported type set before ingestion."],"exampleFix":"// before: selecting unsupported column\nSELECT weird_col FROM parquet_table;\n// after\nSELECT CAST(other_col AS VARCHAR) AS safe_col FROM parquet_table; // drop weird_col","handlingStrategy":"validation","validationCode":"Set<PrimitiveTypeName> supported = Set.of(INT96, BINARY, INT64, DOUBLE, FLOAT, BOOLEAN, INT32, FIXED_LEN_BYTE_ARRAY);\nif (!supported.contains(schema.getType(\"col\"))) throw new IllegalArgumentException(\"unsupported parquet type\");","typeGuard":null,"tryCatchPattern":"try { reader = ColumnReaderFactory.createReader(descriptor); } catch (PrestoException e) {\n    if (e.getErrorCode().equals(NOT_SUPPORTED.toErrorCode())) {\n        columns.remove(descriptor); return; // skip unsupported column\n    }\n    throw e;\n}","preventionTips":["Keep Presto/parquet reader current with writers producing the files.","Restrict table schemas to supported types.","Convert files with exotic types (BROTLI-era INTERVAL/JSON annotations) before ingestion.","Document supported type matrix for producers."],"tags":["parquet","not-supported","schema","column-reader"],"backgroundTag":"unsupported-parquet-type","analyzedSha":"55bb57d202de3b926896fa966c2c4a44c779634e","analyzedAt":"2026-09-04T12:50:26.162Z","contentChangedAt":"2026-09-04T12:50:26.162Z","schemaVersion":2},"datasetVersion":"2026-09-11T21:17:09.523Z"}