{"record":{"id":"15553542265f7134","repo":"apache/iceberg","slug":"readfloat-is-not-supported","errorCode":null,"errorMessage":"readFloat is not supported","messagePattern":"readFloat is not supported","errorType":"exception","errorClass":"UnsupportedOperationException","httpStatus":null,"severity":"error","filePath":"arrow/src/main/java/org/apache/iceberg/arrow/vectorized/parquet/VectorizedValuesReader.java","lineNumber":66,"sourceCode":"\n  /** Read a single short */\n  default short readShort() {\n    throw new UnsupportedOperationException(\"readShort is not supported\");\n  }\n\n  /** Read a single integer */\n  default int readInteger() {\n    throw new UnsupportedOperationException(\"readInteger is not supported\");\n  }\n\n  /** Read a single long */\n  default long readLong() {\n    throw new UnsupportedOperationException(\"readLong is not supported\");\n  }\n\n  /** Read a single float */\n  default float readFloat() {\n    throw new UnsupportedOperationException(\"readFloat is not supported\");\n  }\n\n  /** Read a single double */\n  default double readDouble() {\n    throw new UnsupportedOperationException(\"readDouble is not supported\");\n  }\n\n  /**\n   * Read binary data of some length\n   *\n   * @param len The number of bytes to read\n   */\n  default Binary readBinary(int len) {\n    throw new UnsupportedOperationException(\"readBinary is not supported\");\n  }\n\n  /** Read `total` integers into `vec` starting at `vec[rowId]` */\n  default void readIntegers(int total, FieldVector vec, int rowId) {","sourceCodeStart":48,"sourceCodeEnd":84,"githubUrl":"https://github.com/apache/iceberg/blob/86d9c8fc543e7c56c9f624eb725f76c9baff9570/arrow/src/main/java/org/apache/iceberg/arrow/vectorized/parquet/VectorizedValuesReader.java#L48-L84","documentation":"This default method in VectorizedValuesReader is a placeholder that throws UnsupportedOperationException; concrete reader implementations override it only when they support single float reads. Reaching it means nextVal() dispatched a FLOAT column to a reader class that never implemented readFloat(). The throw is by design to fail fast on unimplemented type paths rather than silently return garbage.","triggerScenarios":"VectorizedPageReader.nextVal() calls readFloat() for a Parquet FLOAT column, but the active VectorizedValuesReader subclass (e.g. a default/fallback reader) does not override readFloat().","commonSituations":"Reading float columns with vectorized/Arrow reads enabled in a configuration where the reader factory falls back to the base reader; custom reader implementations missing the float override; Iceberg versions without vectorized float support for the relevant encoding.","solutions":["Disable vectorized reads (e.g. read.arrow.enabled=false) to use the non-vectorized Parquet reader for this query.","Upgrade Iceberg to a version with vectorized float support for your Parquet encoding.","If you wrote the reader class, implement readFloat() for the underlying page buffer."],"exampleFix":"// before\n// reader inherits default readFloat() which throws\n// after\n@Override\npublic float readFloat() { return buffer.getFloat(offset); }","handlingStrategy":"fallback","validationCode":"// check schema before enabling vectorized reads\nboolean floatCols = schema.columns().stream().anyMatch(c -> c.type().equals(Types.FloatType.get()));\nif (floatCols && !vectorizedFloatSupported) props.put(\"read.arrow.enabled\", \"false\");","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Verify vectorized float support exists in your Iceberg version before enabling Arrow reads.","Catch UnsupportedOperationException at scan planning time and fall back to non-vectorized reads.","If writing custom readers, implement every read* method your column types can dispatch to."],"tags":["arrow","parquet","vectorized-read","unsupported-operation"],"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"}