ClickHouse / ClickHouse/clickhouse-go

v3 Changes

Open
#678 5 comments 3 reactions 0 assignees View on GitHub
enhancement
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.