ClickHouse / ClickHouse/clickhouse-java

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

Abierto
#2,662 1 comentario 0 reacciones 0 asignados Ver en GitHub
area:data-type bug client-api-v2
Lenguaje dominante
Java
Estrellas
1.6k
Forks
636
Merge medio
2 d 23 h
PR fusionados (30 d)
29

Descripción

## 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

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Comienza con BinaryStreamReader.java, especialmente con readValue y readBitmap, y reproduce la consulta de la vista materializada usando ClickHouse Java client 0.9.4 contra ClickHouse 25.5.1. Inspecciona por qué AggregateFunction no tiene columnas anidadas; se considera terminado cuando JDBC pueda leer las columnas del resultado agregado sin la SQLException.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
java, sql
Área
database
Tipo de issue
Error
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
38/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.