From 80b4abe29b92683c28968c3075076aebd37f6f83 Mon Sep 17 00:00:00 2001 From: iuwqyir Date: Fri, 16 May 2025 20:02:23 +0300 Subject: [PATCH] limit for aggregations --- internal/storage/clickhouse.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/internal/storage/clickhouse.go b/internal/storage/clickhouse.go index 2685c6a..29ae646 100644 --- a/internal/storage/clickhouse.go +++ b/internal/storage/clickhouse.go @@ -504,6 +504,14 @@ func (c *ClickHouseConnector) GetAggregations(table string, qf QueryFilter) (Que query += fmt.Sprintf(" ORDER BY %s %s", qf.SortBy, qf.SortOrder) } + // Add limit clause + if qf.Page > 0 && qf.Limit > 0 { + offset := (qf.Page - 1) * qf.Limit + query += fmt.Sprintf(" LIMIT %d OFFSET %d", qf.Limit, offset) + } else if qf.Limit > 0 { + query += fmt.Sprintf(" LIMIT %d", qf.Limit) + } + if err := common.ValidateQuery(query); err != nil { return QueryResult[interface{}]{}, err }