Support for AggregateFunction data type
- Dominant language
- Go
- Stars
- 428
- Forks
- 84
- Avg merge
- 9d 6h
- Merged PRs (30d)
- 4
Description
This is a parent issue to add support for the data type [`AggregateFunction`](https://clickhouse.com/docs/en/sql-reference/data-types/aggregatefunction). Several different categories of quantile functions can be used with `AggregateFunction`. I think each of them deserves their own type as they have custom serialization/deserialization. I would like to help with this effort starting with `quantile(s)DDSketch` and `quantileBFloat16` and more to follow. I have a quick prototype for DDSketch here https://github.com/ClickHouse/ch-go/compare/main...srikanthccv:ch-go:ddsketch.
@ernado do you have anything in mind how the API should look like?
```[tasklist]
### Tasks
- [ ] Add support for uniq AggregateFunction
- [ ] Add support for anyIf AggregateFunction
- [ ] Add support for quantiles AggregateFunction
- [ ] Add support for quantilesDeterministic AggregateFunction
- [ ] Add support for quantilesTiming(Weighted) AggregateFunction
- [ ] Add support for quantilesExact(Weighted) AggregateFunction
- [ ] Add support for quantilesTDigest AggregateFunction
- [ ] Add support for quantilesBFloat16 AggregateFunction
- [ ] Add support for quantilesDDSketch AggregateFunction
```
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the ClickHouse AggregateFunction documentation and the linked DDSketch prototype to understand the proposed serialization and deserialization approach. Resolve the API shape with the maintainer, then use the task list to define which AggregateFunction categories are in scope; done means the selected categories are supported.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- databases
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100