ClickHouse / ClickHouse/clickhouse-go
v3 Changes
- Dominant language
- Go
- Stars
- 3.3k
- Forks
- 680
- Avg merge
- 2d 3h
- Merged PRs (30d)
- 14
Description
We aren't expecting to release v3 soon, but this issue will record changes (potentially breaking) we want to make and/or new features for addition.
- [ ] Make clickhouse.Options a value not a pointer. It can't be nil and main component structs are a pointer so copy is cheap. it also means we have immutability - allowing options to be reused. Currently, we ensure this with https://github.com/ClickHouse/clickhouse-go/pull/675 but this means mixed semantics internally.
- [ ] WithExternalTable should be WithExternalData to align with ClickHouse [https://clickhouse.com/docs/en/engines/table-engines/special/external-data/](https://clickhouse.com/docs/en/engines/table-engines/special/external-data/)
- [ ] Async inserts use the `ExecContext` for std and a custom `AsyncInsert` for native. This seems unnecessary since async insert is just a parameter. No reason for it to not just use normal batch semantics - possibly with a flag.
- [ ] Increase [dialtimeout](https://github.com/ClickHouse/clickhouse-go/blob/58d06b422e4283135fc9fc3954176ce4bfb0731c/clickhouse_options.go#L263-L264) to align with [ClickHouse default](https://clickhouse.com/docs/en/operations/settings/settings/#connect-timeout-receive-timeout-send-timeout) i.e. 10s
- [ ] Decouple batches and connections to allow Retriable/reusable batches - https://github.com/ClickHouse/clickhouse-go/issues/728
- [ ] Support more binary formats - Protobuf and RowBinary https://github.com/ClickHouse/clickhouse-go/issues/737
Contributor guide
Research direction
This is a v3 tracking issue containing several independent changes rather than one scoped task. Start by selecting one unchecked item, read the linked issues 728 or 737 where applicable, and inspect clickhouse_options.go for the dial timeout item. Done means the selected change has its own agreed scope and validation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- clickhouse, go
- Domain
- databases
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 15/100