{"record":{"id":"4dd5e008257339e1","repo":"apache/iceberg","slug":"skip-is-not-supported","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/BaseVectorizedParquetValuesReader.java","lineNumber":220,"sourceCode":"            valueIndex += 8;\n          }\n          return;\n        default:\n          throw new ParquetDecodingException(\"not a valid mode \" + this.mode);\n      }\n    } catch (IOException e) {\n      throw new ParquetDecodingException(\"Failed to read from input stream\", e);\n    }\n  }\n\n  @Override\n  public boolean readBoolean() {\n    return this.readInteger() != 0;\n  }\n\n  @Override\n  public void skip() {\n    throw new UnsupportedOperationException();\n  }\n\n  @Override\n  public int readValueDictionaryId() {\n    return readInteger();\n  }\n\n  @Override\n  public int readInteger() {\n    if (this.currentCount == 0) {\n      this.readNextGroup();\n    }\n\n    this.currentCount--;\n    switch (mode) {\n      case RLE:\n        return this.currentValue;\n      case PACKED:","sourceCodeStart":202,"sourceCodeEnd":238,"githubUrl":"https://github.com/apache/iceberg/blob/86d9c8fc543e7c56c9f624eb725f76c9baff9570/arrow/src/main/java/org/apache/iceberg/arrow/vectorized/parquet/BaseVectorizedParquetValuesReader.java#L202-L238","documentation":"Unimplemented skip() in this vectorized Parquet values reader: the column-chunk reading path does not support skipping values (used when projecting out parts of a repetition level run). It fires only when a caller tries to advance the reader without reading — an unsupported operation for this vectorized reader, not a data error.","triggerScenarios":"Calling skip() on a BaseVectorizedParquetValuesReader instance, e.g. from a record reader that tries to skip over values instead of materializing them.","commonSituations":"Custom or engine integrations reusing the vectorized reader with column pruning/predicate paths that skip values.","solutions":["Read the batch and discard the values instead of calling skip().","Use the non-vectorized Parquet values reader, which supports skip.","File/await an Iceberg issue adding skip support to the vectorized reader."],"exampleFix":"// before\nreader.skip();\n// after\nreader.readInteger(); // read and discard","handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":"// catch (UnsupportedOperationException e) {\n//   if (\"skip is not supported\".equals(e.getMessage())) { readAndDiscard(); }\n//   else throw e;\n// }","preventionTips":["Never call skip() on vectorized readers; read batches and discard.","Use the non-vectorized reader when skip semantics are needed.","Check reader capabilities before invoking skip."],"tags":["parquet","vectorized-reader","unsupported-feature"],"backgroundTag":"method-not-implemented","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"}