ClickHouse / ClickHouse/clickhouse-java
In the JDBC query result set, columns of type AggregateFunction cannot be parsed normally
- Lingua principale
- Java
- Stelle
- 1.6k
- Fork
- 636
- Merge medio
- 2g 23h
- PR unite (30g)
- 29
Descrizione
## 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
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
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Start with BinaryStreamReader.java, especially readValue and readBitmap, and reproduce the materialized-view query using ClickHouse Java client 0.9.4 against ClickHouse 25.5.1. Inspect why AggregateFunction has no nested columns; done means JDBC can read the aggregate result columns without the SQLException.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- java, sql
- Ambito
- database
- Tipo di issue
- Bug
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 38/100