Skip to content

wrong result rows number when query from buffer table #929

Open
@zdyj3170101136

Description

@zdyj3170101136

Issue description

sql query log contain 66 rows.

type:                                  QueryFinish
event_date:                            2023-03-07
event_time:                            2023-03-07 14:44:05
event_time_microseconds:               2023-03-07 14:44:05.748939
query_start_time:                      2023-03-07 14:44:02
query_start_time_microseconds:         2023-03-07 14:44:02.133012
query_duration_ms:                     3614
read_rows:                             8482549
read_bytes:                            722832834
written_rows:                          0
written_bytes:                         0
result_rows:                           66
result_bytes:                          14080
memory_usage:                          75409057
current_database:                      default
query:                                  select any(totalValue), any(labels.key), any(labels.value), any(timestamp), any(duration) from parca_index_buffer WHERE  name = 'memory' AND sampleType = 'inuse_space' AND sampleUnit = 'bytes' AND periodType = 'space' AND periodUnit = 'bytes' AND duration = 0  AND labels.value[indexOf(labels.key, 'host_ip')] = '10.14.246.145' AND timestamp > toDateTime('2023-03-07 02:54:00', 'UTC') AND timestamp < toDateTime('2023-03-07 03:54:00', 'UTC') GROUP BY toInt64(toUInt64(timestamp) / 1000 / 3), labels.key, labels.value

but i could only get one row from clickhouse-go driver

the table parca_index_buffer is a distributed buffer table:
and query directly from parca_index is correct.(the clickhouse-go driver would return 66 rows)

CREATE TABLE default.parca_index_buffer
(
)
ENGINE = Distributed('default', 'default', 'parca_index_buffer_local', cityHash64(profileID))

CREATE TABLE default.parca_index_buffer_local
(
)
ENGINE = Buffer('default', 'parca_index_local', 16, 10, 100, 10000, 1000000, 10000000, 100000000)

 CREATE TABLE default.parca_index
(
)
ENGINE = Distributed('default', 'default', 'parca_index_local', cityHash64(profileID))

Example code

       rows, err := q.DB.QueryContext(ctx, query, args...)
	if err != nil {
		return nil, err
	}
	defer rows.Close()
	for rows.Next() {
		var (
			value    int64
			keys     []string
			values   []string
			t        time.Time
			duration int64
		)
		err = rows.Scan(&value, &keys, &values, &t, &duration)
		if err != nil {
			return nil, err
		}
      }

Error log

If you have an error log, please paste it here.

Configuration

OS: linux

Interface: database/sql

Driver version: v2.6.5

go version: go1.18.2

ClickHouse Server version: 21.8.2

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions