{"record":{"id":"ca58a02e2a3f35a6","repo":"apache/iceberg","slug":"skip-is-not-supported-ca58a0","errorCode":null,"errorMessage":"skip is not supported","messagePattern":"skip is not supported","errorType":"exception","errorClass":"UnsupportedOperationException","httpStatus":null,"severity":"error","filePath":"arrow/src/main/java/org/apache/iceberg/arrow/vectorized/parquet/VectorizedDeltaLengthByteArrayValuesReader.java","lineNumber":81,"sourceCode":"            buffer.array(), buffer.arrayOffset() + buffer.position(), len);\n      } else {\n        byte[] bytes = new byte[len];\n        buffer.get(bytes);\n        return Binary.fromConstantByteArray(bytes);\n      }\n    } catch (IOException e) {\n      throw new UncheckedIOException(\"Failed to read binary data\", e);\n    }\n  }\n\n  @Override\n  public int readInteger() {\n    return lengths[currentRow];\n  }\n\n  @Override\n  public void skip() {\n    throw new UnsupportedOperationException(\"skip is not supported\");\n  }\n}\n","sourceCodeStart":63,"sourceCodeEnd":84,"githubUrl":"https://github.com/apache/iceberg/blob/86d9c8fc543e7c56c9f624eb725f76c9baff9570/arrow/src/main/java/org/apache/iceberg/arrow/vectorized/parquet/VectorizedDeltaLengthByteArrayValuesReader.java#L63-L84","documentation":"VectorizedDeltaLengthByteArrayValuesReader.skip() is not implemented; skipping values in DELTA_LENGTH_BYTE_ARRAY-encoded columns is unsupported in Iceberg's vectorized reader. Any call throws UnsupportedOperationException immediately. It is a fail-fast marker for an unimplemented reader capability.","triggerScenarios":"A vectorized scan needs to skip values in a DELTA_LENGTH_BYTE_ARRAY column (e.g. via row skipping in filtering or null-value handling paths).","commonSituations":"Queries with filters triggering skip paths over delta-length-encoded string columns read via the vectorized reader.","solutions":["Disable vectorized reads for the scan (e.g. read.split.vectorization.enabled=false) so the non-vectorized reader, which supports skipping, is used.","Rewrite the data files with a supported encoding (e.g. plain or dictionary) so skipping works under vectorized reads.","Avoid scan configurations that require row skipping over these columns."],"exampleFix":"// before\nSELECT ... FROM tbl WHERE ... -- vectorized read hits skip on DELTA_LENGTH_BYTE_ARRAY column\n// after\nSET spark.sql.iceberg.vectorization.enabled=false;\nSELECT ... FROM tbl WHERE ...","handlingStrategy":"fallback","validationCode":"// Check whether vectorized reads are on and data may use DELTA_LENGTH_BYTE_ARRAY\nboolean vectorized = conf.getBoolean(\"spark.sql.iceberg.vectorization.enabled\", true);","typeGuard":null,"tryCatchPattern":"try {\n  // vectorized read\n} catch (UnsupportedOperationException e) {\n  if (e.getMessage().contains(\"skip is not supported\")) {\n    // rerun with vectorization disabled\n  } else throw e;\n}","preventionTips":["Disable vectorization for tables with delta-length-encoded string/binary columns","Prefer dictionary/plain encodings when writing files intended for vectorized reads","Avoid filters that force row skipping in vectorized mode"],"tags":["parquet","unsupported-operation","vectorized-reader"],"backgroundTag":"unsupported-operation","analyzedSha":"86d9c8fc543e7c56c9f624eb725f76c9baff9570","analyzedAt":"2026-09-12T00:46:39.097Z","contentChangedAt":"2026-09-12T00:46:39.097Z","schemaVersion":2},"datasetVersion":"2026-09-14T16:17:12.679Z"}