{"record":{"id":"a83071b9b953e1b4","repo":"apache/iceberg","slug":"skip-is-not-supported-a83071","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/VectorizedDeltaEncodedValuesReader.java","lineNumber":108,"sourceCode":"    firstValue = BytesUtils.readZigZagVarLong(this.inputStream);\n  }\n\n  @Override\n  public int readInteger() {\n    readValues(1, null, 0, INT_SIZE, (f, i, v) -> intVal = (int) v);\n    return intVal;\n  }\n\n  @Override\n  public long readLong() {\n    readValues(1, null, 0, LONG_SIZE, (f, i, v) -> longVal = v);\n    return longVal;\n  }\n\n  /** The Iceberg reader currently does not do skipping */\n  @Override\n  public void skip() {\n    throw new UnsupportedOperationException(\"skip is not supported\");\n  }\n\n  int totalValueCount() {\n    return totalValueCount;\n  }\n\n  @Override\n  public void readIntegers(int total, FieldVector vec, int rowId) {\n    readValues(total, vec, rowId, INT_SIZE, (f, i, v) -> f.getDataBuffer().setInt(i, (int) v));\n  }\n\n  int[] readIntegers(int total, int rowId) {\n    int[] result = new int[total];\n    readValues(\n        total,\n        null,\n        rowId,\n        INT_SIZE,","sourceCodeStart":90,"sourceCodeEnd":126,"githubUrl":"https://github.com/apache/iceberg/blob/86d9c8fc543e7c56c9f624eb725f76c9baff9570/arrow/src/main/java/org/apache/iceberg/arrow/vectorized/parquet/VectorizedDeltaEncodedValuesReader.java#L90-L126","documentation":"VectorizedDeltaEncodedValuesReader.skip() is not implemented for DELTA_BINARY_PACKED-encoded columns in Iceberg's vectorized Parquet reader. The Iceberg vectorized path reads all values into Arrow vectors and has no row-skipping logic for this decoder, so any skip request fails fast with UnsupportedOperationException. It signals an unsupported code path, not data corruption.","triggerScenarios":"Reading a Parquet column encoded with DELTA_BINARY_PACKED via the vectorized reader when the scan path requests skipping values (e.g. row-group filtering or column-index-based row skip).","commonSituations":"Tables written with delta-encoded integer columns read through Spark with vectorized reads enabled and a filter that uses page/row-group offsets to skip values.","solutions":["Set the read option to disable vectorized reads (e.g. Spark: vectorized reader disabled via table property read.split.vectorization.enabled=false) to fall back to the plain Parquet reader.","Rewrite the data files with a supported encoding (e.g. plain dictionary encoding) via a rewrite operation so skipping is supported.","If you control the scan, avoid paths that request skipping on delta-encoded columns (remove column-index-based skip configurations)."],"exampleFix":"// before (Spark SQL)\nSELECT ... FROM delta_encoded_table WHERE ... -- vectorized read, skip path throws\n// after\nSET spark.sql.iceberg.vectorization.enabled=false;\nSELECT ... FROM delta_encoded_table WHERE ...","handlingStrategy":"fallback","validationCode":"// Before scanning, check if the table/files may use unsupported encodings under vectorization\nboolean vectorized = conf.getBoolean(\"spark.sql.iceberg.vectorization.enabled\", true);\n// if data may contain DELTA_BINARY_PACKED columns, plan to disable vectorization","typeGuard":null,"tryCatchPattern":"try {\n  icebergTable.scan().project(schema).planFiles()... /* vectorized read */;\n} catch (UnsupportedOperationException e) {\n  if (e.getMessage().contains(\"skip is not supported\")) {\n    // retry with vectorization disabled\n  } else throw e;\n}","preventionTips":["Disable vectorized reads when files are known to use delta encodings","Rewrite files with dictionary/plain encodings before enabling vectorization","Avoid scan configurations that trigger 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"}