{"record":{"id":"1cc764a4d79abbeb","repo":"prestodb/presto","slug":"unsupported-column-encoding-kind","errorCode":null,"errorMessage":"Unsupported column encoding kind: ","messagePattern":"Unsupported column encoding kind: ","errorType":"exception","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"presto-orc/src/main/java/com/facebook/presto/orc/metadata/OrcMetadataWriter.java","lineNumber":369,"sourceCode":"        return OrcProto.ColumnEncoding.newBuilder()\n                .setKind(toColumnEncoding(columnEncodings.getColumnEncodingKind()))\n                .setDictionarySize(columnEncodings.getDictionarySize())\n                .build();\n    }\n\n    private static OrcProto.ColumnEncoding.Kind toColumnEncoding(ColumnEncodingKind columnEncodingKind)\n    {\n        switch (columnEncodingKind) {\n            case DIRECT:\n                return OrcProto.ColumnEncoding.Kind.DIRECT;\n            case DICTIONARY:\n                return OrcProto.ColumnEncoding.Kind.DICTIONARY;\n            case DIRECT_V2:\n                return OrcProto.ColumnEncoding.Kind.DIRECT_V2;\n            case DICTIONARY_V2:\n                return OrcProto.ColumnEncoding.Kind.DICTIONARY_V2;\n        }\n        throw new IllegalArgumentException(\"Unsupported column encoding kind: \" + columnEncodingKind);\n    }\n\n    @Override\n    public int writeRowIndexes(SliceOutput output, List<RowGroupIndex> rowGroupIndexes)\n            throws IOException\n    {\n        OrcProto.RowIndex rowIndexProtobuf = OrcProto.RowIndex.newBuilder()\n                .addAllEntry(rowGroupIndexes.stream()\n                        .map(OrcMetadataWriter::toRowGroupIndex)\n                        .collect(toList()))\n                .build();\n        return writeProtobufObject(output, rowIndexProtobuf);\n    }\n\n    private static RowIndexEntry toRowGroupIndex(RowGroupIndex rowGroupIndex)\n    {\n        OrcProto.RowIndexEntry.Builder builder = OrcProto.RowIndexEntry.newBuilder();\n        for (int position : rowGroupIndex.getPositions()) {","sourceCodeStart":351,"sourceCodeEnd":387,"githubUrl":"https://github.com/prestodb/presto/blob/55bb57d202de3b926896fa966c2c4a44c779634e/presto-orc/src/main/java/com/facebook/presto/orc/metadata/OrcMetadataWriter.java#L351-L387","documentation":"OrcMetadataWriter.toColumnEncoding() maps internal ColumnEncodingKind values to ORC protobuf ColumnEncoding.Kind when writing column metadata. An unmapped encoding kind triggers IllegalArgumentException(\"Unsupported column encoding kind: ...\"). It guards against serializing encodings the ORC protobuf schema cannot represent.","triggerScenarios":"Writing column encodings for an ORC file where a ColumnEncodingKind (e.g. a new DICTIONARY variant) is not handled in the switch in toColumnEncoding().","commonSituations":"Newer encoding variants added internally but not mapped to protobuf; fork maintenance drift; version mismatch between column writers and metadata writer.","solutions":["Upgrade presto-orc so the encoding kind is mapped","Check the message for the offending kind and add the missing case in toColumnEncoding() if forking","Configure the writer to use supported encodings (DIRECT/DICTIONARY variants) via column writer options"],"exampleFix":"// before\nthrow new IllegalArgumentException(\"Unsupported column encoding kind: \" + columnEncodingKind);\n// after\ncase MAP_FLAT:\n    return OrcProto.ColumnEncoding.Kind.MAP; // add missing mapping","handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try {\n    orcWriter.close();\n} catch (IllegalArgumentException e) {\n    if (e.getMessage() != null && e.getMessage().startsWith(\"Unsupported column encoding kind:\")) {\n        throw new IOException(\"Column encoding not serializable by this writer version: \" + e.getMessage(), e);\n    }\n    throw e;\n}","preventionTips":["Use default column encoding options unless a fork adds kinds deliberately","Add encoder-kind mappings when adding new column writers","Round-trip test encodings against the reader"],"tags":["orc","column-encoding","metadata-writer","unsupported-kind"],"backgroundTag":"unsupported-column-encoding","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"}