Releases: ClickHouse/clickhouse-go
v2.43.0
What's Changed
Enhancements π
- Implement Unwrap() on BlockError by @ilidemi in #1741
- Feat: Add clickhouse cluster mode setup via docker compose by @kavirajk in #1749
- Feat: support LineString and MultiLineString by @imkonsowa in #1751
- feat: support BFloat16 datatype by @kavirajk in #1755
- feat(slog): add support for structured and leveled logger by @kavirajk in #1756
- feat: support
QBitcolumn type by @kavirajk in #1761
Bug fixes π
- fix: Fixes the failure againt HEAD of CH server by @kavirajk in #1752
- fix(time/time64): fix the ScanType of both time and time64 by @kavirajk in #1758
Other Changes π
- update
UseContextexample to handlerows.Err()correct by @ehsansouri23 in #1726 - chore(deps): bump golang.org/x/net from 0.48.0 to 0.49.0 by @dependabot[bot] in #1750
- doc(pooling): Clarify connection pooling is enabled on both protocols by @kavirajk in #1753
- add codeowners by @mshustov in #1754
New Contributors
- @ehsansouri23 made their first contribution in #1726
- @ilidemi made their first contribution in #1741
- @imkonsowa made their first contribution in #1751
Full Changelog: v2.42.0...v2.43.0
v2.42.0
What's Changed
Enhancements π
- Add context option to append more ClientInfo to the system.query_log by @SpencerTorres in #1736
- refactor: idle pool and fix non-deterministic teardown of idle cleanup goroutine by @GeorgeMac in #1687
- chore: Improve EOF error messages. by @kavirajk in #1723
NOTE now direct comparision oferr == io.EOFwon't work, useerrors.Is(err, io.EOF - feat: Add support for proper exception handling by @kavirajk in #1694
Bug Fixes π
Other Changes π
- chore(release): Workflow Authentication by @juliojimenez in #1718
- Bump golang.org/x/crypto from 0.44.0 to 0.45.0 by @dependabot[bot] in #1717
- Fix #1719: Fix invalid links and add link checking for PRs by @tsics in #1720
- fix: restore minimal Go version to 1.24 by @vincentbernat in #172
- chore(deps): bump golang.org/x/net from 0.47.0 to 0.48.0 by @dependabot[bot] in #1733
- chore(deps): bump go.opentelemetry.io/otel/trace from 1.38.0 to 1.39.0 by @dependabot[bot] in #1734
New Contributors
- @juliojimenez made their first contribution in #1718
- @tsics made their first contribution in #1720
- @GeorgeMac made their first contribution in #1687
Full Changelog: v2.41.0...v2.42.0
v2.41.0
What's Changed
Enhancements π
- feat: add custom http transport by @r0bobo in #1656
- Support interface typed NamedValue binding by @crisismaple in #1633
- remove deprecated Object('json') column by @kavirajk in #1674
- feat: OpenDB api now sets few configs passed via options by @kavirajk in #1675
- chore: Async inserts docs and example updates by @kavirajk in #1690
- Set HttpUrlPath from DSN to resolve missing path in HTTP requests by @RokibulHasan7 in #1692
- Add support to
timeandtime64datatypes by @kavirajk @shivanshuraj1333 in #1669 - fix: Don't scan profile events if listener is not set by @erezrokah in #1686
- Allow oneline comment in insert query by @luckyevildev in #1693
- Update cloud version matrix (25.10) by @SpencerTorres in #1704
- Disable default transport layer gzip compression by default by @kavirajk 5c8c388 and #1704 (comment)
- Add some examples for ephemeral column by @kavirajk in #1710
Bug fixes π
- Fix potential Divide by Zero panic by @kavirajk in #1665
- fix: SimpleAggregateFunction(anyLast, JSON) by @bripkens in #1645
- bug: Fix Nullable(JSON) with
nilmap by @kavirajk in #1667 - bug: Fixes some correctness bug with ContextWatchdog by @kavirajk in #1688
Other Changes π
- chore: Remove unused bash script by @kavirajk in #1663
- chore: Remove license header from each go file by @kavirajk in #1662
- Bump github.com/paulmach/orb from 0.11.1 to 0.12.0 by @dependabot[bot] in #1664
- Bump github.com/testcontainers/testcontainers-go from 0.38.0 to 0.39.0 by @dependabot[bot] in #1666
- Bump github.com/docker/docker from 28.4.0+incompatible to 28.5.0+incompatible by @dependabot[bot] in #1676
- Bump github.com/docker/docker from 28.5.0+incompatible to 28.5.1+incompatible by @dependabot[bot] in #1679
- Bump golang.org/x/net from 0.44.0 to 0.46.0 by @dependabot[bot] in #1683
- Bump github.com/ClickHouse/ch-go from 0.68.0 to 0.69.0 by @dependabot[bot] in #1678
- chore: Update contributing guide and docker compose stack by @erezrokah in #1684
- chore: Upgrade Go toolchain to 1.25.x by @kavirajk in #1689
- Bump github.com/docker/docker from 28.5.1+incompatible to 28.5.2+incompatible by @dependabot[bot] in #1706
- Bump github.com/testcontainers/testcontainers-go from 0.39.0 to 0.40.0 by @dependabot[bot] in #1705
- Bump golang.org/x/net from 0.46.0 to 0.47.0 by @dependabot[bot] in #1711
New Contributors
- @kavirajk made their first contribution in #1663
- @bripkens made their first contribution in #1645
- @erezrokah made their first contribution in #1684
- @RokibulHasan7 made their first contribution in #1692
- @luckyevildev made their first contribution in #1693
Full Changelog: v2.40.3...v2.41.0
v2.40.3
What's Changed
Other Changes π
- bug: deserializing into nullable field by @rbroggi in #1649
- Fixes for #1649 by @SpencerTorres in #1654
New Contributors
Full Changelog: v2.40.2...v2.40.3
v2.40.2
What's Changed
Other Changes π
- Bump golang.org/x/net from 0.42.0 to 0.43.0 by @dependabot[bot] in #1634
- Bump github.com/ClickHouse/ch-go from 0.67.0 to 0.68.0 by @dependabot[bot] in #1639
- Bump github.com/stretchr/testify from 1.10.0 to 1.11.1 by @dependabot[bot] in #1641
- Bump go.opentelemetry.io/otel/trace from 1.37.0 to 1.38.0 by @dependabot[bot] in #1642
- Bump github.com/docker/docker from 28.3.3+incompatible to 28.4.0+incompatible by @dependabot[bot] in #1646
- Bump golang.org/x/net from 0.43.0 to 0.44.0 by @dependabot[bot] in #1647
- chore: migrate to maintained YAML library by @joschi in #1651
- skip random tests on Go 1.25 by @SpencerTorres in #1652
- bug: headers map can be nil by @r0bobo in #1650
New Contributors
Full Changelog: v2.40.1...v2.40.2
v2.40.1
What's Changed
Bug fixes π
- fix:
database/sqlNullable(JSON) string scan by @SpencerTorres in #1625
Full Changelog: v2.40.0...v2.40.1
v2.40.0
What's Changed
Enhancements π
- support
database/sqlscanning json intostring/[]byte/json.RawMessageby @SpencerTorres in #1623
Bug fixes π
- fix: json v1 encoding/decoding for prefixed types by @SpencerTorres in #1622
- fix: Nullable base types with prefix by @SpencerTorres in #1624
Other Changes π
- Bump github.com/docker/docker from 28.3.2+incompatible to 28.3.3+incompatible by @dependabot[bot] in #1621
Full Changelog: v2.39.0...v2.40.0
v2.39.0
What's Changed
Bug fixes π
- Fix
ReadTimeoutso that it applies to each call toconn.Readnot just the first read block by @GeorgeMac in #1616, @SpencerTorres #1617
Read Timeout behavior changes
This bug fix has potential to affect longer running queries, ensure you're setting clickhouse.Options ReadTimeout to a reasonable value, and that your context.WithDeadline is also set to a reasonable value. The read timeout will now be applied to all blocks, previously it was only set for the first block.
New Contributors
- @GeorgeMac made their first contribution in #1616
Full Changelog: v2.38.1...v2.39.0
v2.38.1
What's Changed
Bug fixes π
- fix: build failure due to 32-bit integer overflow on 386 arch by @SpencerTorres in #1616
Full Changelog: v2.38.0...v2.38.1
v2.38.0
What's Changed
Enhancements π
Dynamicserialization version 3 by @SpencerTorres in #1588JSONserialization version 3 by @SpencerTorres in #1589- Add
client_protocol_versionparam for HTTP interface by @SpencerTorres in #1594 - Add missing interval types by @marcboeker in #1613
Bug fixes π
- fix format function to handle pointer of time.Time by @KimMachineGun in #1559
- Fix variant prefix by @SpencerTorres in #1591
- fix(batch): nested column name parsing #1587 by @RuslanSibgatulin in #1614
Other Changes π
- Bump github.com/andybalholm/brotli from 1.1.1 to 1.2.0 by @dependabot[bot] in #1581
- Bump github.com/docker/docker from 28.2.2+incompatible to 28.3.0+incompatible by @dependabot[bot] in #1583
- Bump go.opentelemetry.io/otel/trace from 1.36.0 to 1.37.0 by @dependabot[bot] in #1584
- Bump github.com/docker/docker from 28.3.0+incompatible to 28.3.1+incompatible by @dependabot[bot] in #1585
- Bump github.com/docker/docker from 28.3.1+incompatible to 28.3.2+incompatible by @dependabot[bot] in #1593
- Bump golang.org/x/net from 0.41.0 to 0.42.0 by @dependabot[bot] in #1595
- add HTTP wait condition for container tests by @SpencerTorres in #1604
- include server revision in block/column parsing by @SpencerTorres in #1605
- Bump github.com/testcontainers/testcontainers-go from 0.37.0 to 0.38.0 by @dependabot[bot] in #1603
- docs: add client configuration options by @shivanshuraj1333 in #1598
- Bump github.com/ClickHouse/ch-go from 0.66.1 to 0.67.0 by @dependabot[bot] in #1609
Upgrades for Dynamic / JSON
Dynamic and JSON were never fully functional in previous versions. If you exceeded the maximum types for Dynamic, the data would become unreadable since it was encoded as a single SharedVariant type. Same for JSON, if you exceeded the maximum dynamic paths the data would also become unreadable since it was stored in a SharedData structure.
In ClickHouse 25.6, a setting was added that abstracts these structures away so that clients don't have to implement them.
To begin using Dynamic and JSON to their fullest ability, upgrade to ClickHouse 25.6 along with clickhouse-go v2.38.0, and enable output_format_native_use_flattened_dynamic_and_json_serialization in your connection settings. This will allow you to read all Dynamic and JSON data, even the portions that are stored in the SharedVariant and SharedData blobs on the server.
If you are using older versions of ClickHouse, things will continue to work as before (with the previously mentioned limitations).
Feel free to create an issue in the clickhouse-go repository to report any concerns or bugs with this change.
New Contributors
- @KimMachineGun made their first contribution in #1559
- @shivanshuraj1333 made their first contribution in #1598
- @RuslanSibgatulin made their first contribution in #1614
- @marcboeker made their first contribution in #1613
Full Changelog: v2.37.2...v2.38.0