{"record":{"id":"1c93001fb855dc52","repo":"apache/iceberg","slug":"readfloats-is-not-supported","errorCode":null,"errorMessage":"readFloats is not supported","messagePattern":"readFloats 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":95,"sourceCode":"   * @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) {\n    throw new UnsupportedOperationException(\"readIntegers is not supported\");\n  }\n\n  /** Read `total` longs into `vec` starting at `vec[rowId]` */\n  default void readLongs(int total, FieldVector vec, int rowId) {\n    throw new UnsupportedOperationException(\"readLongs is not supported\");\n  }\n\n  /** Read `total` floats into `vec` starting at `vec[rowId]` */\n  default void readFloats(int total, FieldVector vec, int rowId) {\n    throw new UnsupportedOperationException(\"readFloats is not supported\");\n  }\n\n  /** Read `total` doubles into `vec` starting at `vec[rowId]` */\n  default void readDoubles(int total, FieldVector vec, int rowId) {\n    throw new UnsupportedOperationException(\"readDoubles is not supported\");\n  }\n\n  /**\n   * Initialize the reader from a page. See {@link ValuesReader#initFromPage(int,\n   * ByteBufferInputStream)}.\n   */\n  void initFromPage(int valueCount, ByteBufferInputStream in) throws IOException;\n}\n","sourceCodeStart":77,"sourceCodeEnd":109,"githubUrl":"https://github.com/apache/iceberg/blob/86d9c8fc543e7c56c9f624eb725f76c9baff9570/arrow/src/main/java/org/apache/iceberg/arrow/vectorized/parquet/VectorizedValuesReader.java#L77-L109","documentation":"readFloats(total, vec, rowId) is the batch float read on VectorizedValuesReader; the default implementation throws UnsupportedOperationException because only float-capable concrete readers override it. Reaching it via nextVals() means the active reader does not support bulk float decoding into an Arrow FloatVector.","triggerScenarios":"nextVals(total) tries to bulk-fill a float Arrow vector for a Parquet FLOAT column, and the selected reader subclass lacks a readFloats() override.","commonSituations":"Vectorized scans of float columns where only integer/long batch paths are implemented in the chosen reader; older Iceberg versions before float batch support; custom readers.","solutions":["Disable vectorized reads (read.arrow.enabled=false) for this workload.","Upgrade Iceberg to a version implementing vectorized float batch reads.","Implement readFloats() in the reader to fill vec[rowId..rowId+total)."],"exampleFix":"// before\n// default readFloats throws\n// after\n@Override\npublic void readFloats(int total, FieldVector vec, int rowId) {\n  for (int i = 0; i < total; i++) ((Float4Vector) vec).setSafe(rowId + i, readFloat());\n}","handlingStrategy":"try-catch","validationCode":"// check float support before enabling vectorization\nif (schema.columns().stream().anyMatch(c -> c.type().equals(Types.FloatType.get())) && !floatsBatchSupported) {\n  props.put(\"read.arrow.enabled\", \"false\");\n}","typeGuard":null,"tryCatchPattern":"try {\n  readVectorized();\n} catch (UnsupportedOperationException e) {\n  readNonVectorized();\n}","preventionTips":["Confirm batch float support in your Iceberg release before enabling Arrow reads.","Catch UnsupportedOperationException once at reader init and switch strategy, not per value.","Cover float columns in vectorized-read integration tests."],"tags":["arrow","parquet","vectorized-read","batch-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"}