ClickHouse / ClickHouse/clickhouse-java

In the JDBC query result set, columns of type AggregateFunction cannot be parsed normally

Offen
#2,662 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
area:data-type bug client-api-v2
Vorherrschende Sprache
Java
Sterne
1.6k
Forks
636
Ø Merge
2 T. 23 Std.
Gemergte PRs (30 T.)
29

Beschreibung

## Description

When creating a materialized view, specify the Select statement as follows:

```sql
SELECT
toDate(timestamp) AS date,
countState(*) AS count,
quantileState(0.9)(duration) AS tp90_duration_ms,
quantileState(0.99)(duration) AS tp99_duration_ms,
avgState(duration) AS avg_duration_ms,
maxState(duration) AS max_duration_ms,
minState(duration) AS min_duration_ms
FROM test.test_table_local
GROUP BY
date
```
This statement is queried directly with JDBC, and the final error is:
java.sql.SQLException: Failed to read value for column count

final debug result:

1. BinaryStreamReader.java -> readValue method

case AggregateFunction:
return (T)this.readBitmap(actualColumn);
2. readBitmap method
```java
private ClickHouseBitmap readBitmap(ClickHouseColumn column) throws IOException {
return ClickHouseBitmap.deserialize(this.input, ((ClickHouseColumn)column.getNestedColumns().get(0)).getDataType());
}
```
column.getNestedColumns() is empty

Image

3.

### Error Log or Exception StackTrace

```
This statement is queried directly with JDBC, and the final error is:
java.sql.SQLException: Failed to read value for column count
```

### Expected Behaviour

### Code Example

```java

```

### Configuration

#### Client Configuration
```java

```

#### Environment
* [ ] Cloud
* Client version: 0.9.4
* Language version: 1.8
* OS: mac

#### ClickHouse Server
* ClickHouse Server version: 25.5.1

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne mit BinaryStreamReader.java, insbesondere mit readValue und readBitmap, und reproduziere die Abfrage der materialisierten Sicht mit dem ClickHouse Java client 0.9.4 gegen ClickHouse 25.5.1. Untersuche, warum AggregateFunction keine verschachtelten Spalten hat; abgeschlossen ist es, wenn JDBC die Spalten des Aggregationsergebnisses ohne die SQLException lesen kann.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java, sql
Bereich
database
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
38/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.