{"record":{"id":"354caac0d5749d1b","repo":"apache/iceberg","slug":"cannot-support-vectorized-reads-for-column-des","errorCode":null,"errorMessage":"Cannot support vectorized reads for column \" + desc + \" with encoding \" + dataEncoding + \". Disable vectorized reads to read this table/file","messagePattern":"Cannot support vectorized reads for column \" \\+ desc \\+ \" with encoding \" \\+ dataEncoding \\+ \"\\. Disable vectorized reads to read this table/file","errorType":"exception","errorClass":"UnsupportedOperationException","httpStatus":null,"severity":"error","filePath":"arrow/src/main/java/org/apache/iceberg/arrow/vectorized/parquet/VectorizedPageIterator.java","lineNumber":116,"sourceCode":"        case PLAIN:\n          valuesReader = new VectorizedPlainValuesReader();\n          break;\n        case DELTA_BINARY_PACKED:\n          valuesReader = new VectorizedDeltaEncodedValuesReader();\n          break;\n        case DELTA_LENGTH_BYTE_ARRAY:\n          valuesReader = new VectorizedDeltaLengthByteArrayValuesReader();\n          break;\n        case DELTA_BYTE_ARRAY:\n          valuesReader = new VectorizedDeltaByteArrayValuesReader();\n          break;\n        case BYTE_STREAM_SPLIT:\n          valuesReader =\n              new VectorizedByteStreamSplitValuesReader(\n                  byteStreamSplitElementSize(desc.getPrimitiveType()));\n          break;\n        default:\n          throw new UnsupportedOperationException(\n              \"Cannot support vectorized reads for column \"\n                  + desc\n                  + \" with \"\n                  + \"encoding \"\n                  + dataEncoding\n                  + \". Disable vectorized reads to read this table/file\");\n      }\n      try {\n        valuesReader.initFromPage(valueCount, in);\n      } catch (IOException e) {\n        throw new ParquetDecodingException(\n            \"could not read page \" + valueCount + \" in col \" + desc, e);\n      }\n      dictionaryDecodeMode = DictionaryDecodeMode.NONE;\n    }\n    if (CorruptDeltaByteArrays.requiresSequentialReads(writerVersion, dataEncoding)\n        && previousReader instanceof RequiresPreviousReader) {\n      // previous reader can only be set if reading sequentially","sourceCodeStart":98,"sourceCodeEnd":134,"githubUrl":"https://github.com/apache/iceberg/blob/86d9c8fc543e7c56c9f624eb725f76c9baff9570/arrow/src/main/java/org/apache/iceberg/arrow/vectorized/parquet/VectorizedPageIterator.java#L98-L134","documentation":"The vectorized Parquet reader only implements vectorized decoding for a fixed set of encodings (PLAIN, dictionary-based, DELTA_BYTE_ARRAY, BYTE_STREAM_SPLIT, etc.). If a data page uses any other encoding, initDataReader throws UnsupportedOperationException and tells the user to disable vectorized reads. It is a capability limitation, not data corruption.","triggerScenarios":"initDataReader's encoding switch hits the default branch — e.g. pages encoded with DELTA_BINARY_PACKED, RLE on non-boolean data, or other unsupported encodings read via the vectorized path.","commonSituations":"Files written by other engines/writers (e.g. delta-binary-packed integer columns from Spark/Parquet-mr defaults) read through Iceberg's vectorized reader.","solutions":["Disable vectorized reads for the scan/table (Spark: SET spark.sql.iceberg.vectorization.enabled=false; or table property read.split.vectorization.enabled=false).","Rewrite the data files with encodings the vectorized reader supports (e.g. via Iceberg rewrite_data_files after adjusting parquet writer settings).","Upgrade Iceberg — newer versions add vectorized support for more encodings (e.g. DELTA_BINARY_PACKED)."],"exampleFix":"// before\nSELECT ... FROM tbl -- vectorized read hits unsupported encoding\n// after\nSET spark.sql.iceberg.vectorization.enabled=false;\nSELECT ... FROM tbl","handlingStrategy":"fallback","validationCode":"// Inspect file encodings before enabling vectorized reads\n// parquet-tools meta file.parquet  -> check encodings per column\n// If DELTA_BINARY_PACKED or other unsupported encodings are present, disable vectorization","typeGuard":null,"tryCatchPattern":"try {\n  // vectorized read\n} catch (UnsupportedOperationException e) {\n  if (e.getMessage().contains(\"Cannot support vectorized reads\")) {\n    // retry the read with vectorization disabled\n  } else throw e;\n}","preventionTips":["Check file encodings (parquet-tools / metadata) before enabling vectorized reads","Set spark.sql.iceberg.vectorization.enabled=false for tables written by engines using unsupported encodings","Rewrite files with vectorized-supported encodings; upgrade Iceberg for newer encoding support"],"tags":["parquet","encoding","vectorized-reader"],"backgroundTag":"operation-not-supported","analyzedSha":"86d9c8fc543e7c56c9f624eb725f76c9baff9570","analyzedAt":"2026-09-12T00:46:39.097Z","contentChangedAt":"2026-09-12T00:46:39.097Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}