Skip to content

[client-v2] Cannot read values of column type Array(UInt64)  #1990

Closed
@DKyryk

Description

@DKyryk

Describe the bug

ClickHouseBinaryFormatReader cannot handle values of type Array(UInt64).
Array reader logic creates result array using widerPrimitiveType field of ClickHouseDataType.UInt64 which is long.
At the same time reading a value to set into array uses readBigIntegerLE method which leads to attempt to set BigInteger into long[].

Steps to reproduce

  1. Use click house v2 client and binary reader
  2. Query table with Array(UInt64) column
  3. use reader.next

Expected behaviour

Array(UInt64) column should be correctly read into java list (list of BigInteger I assume but whatever working version)

Code example

try (QueryResponse response = client.query(query, params, new QuerySettings()).get(3, TimeUnit.SECONDS);) {
            ClickHouseBinaryFormatReader reader = client.newBinaryFormatReader(response);
            while (reader.hasNext()) {
                reader.next();
            }
        } catch (Exception e) {
            log.error("Failed to read data", e);
        }

Error log

Caused by: java.lang.IllegalArgumentException: Failed to set value at index: 0 value 2193107007138251553 of class java.math.BigInteger
at com.clickhouse.client.api.data_formats.internal.BinaryStreamReader$ArrayValue.set(BinaryStreamReader.java:585)
at com.clickhouse.client.api.data_formats.internal.BinaryStreamReader.readArray(BinaryStreamReader.java:537)
at com.clickhouse.client.api.data_formats.internal.BinaryStreamReader.readValue(BinaryStreamReader.java:209)
... 41 common frames omitted
Caused by: java.lang.IllegalArgumentException: argument type mismatch
at java.base/java.lang.reflect.Array.set(Native Method)
at com.clickhouse.client.api.data_formats.internal.BinaryStreamReader$ArrayValue.set(BinaryStreamReader.java:582)
... 43 common frames omitted

Configuration

Environment

  • Client version: 0.7.1-patch1
  • Language version: jvm 21.0.1+12-LTS

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions