Skip to content

Releases: ClickHouse/clickhouse-go

v2.4.3

29 Nov 14:59
100f039
Compare
Choose a tag to compare

Bug Fixes

  • Fix in batch concurrency - batch could panic if used in separate go routines.

The issue was originally detected due to the use of a batch in a go routine and Abort being called after the connection was released on the batch. This would invalidate the connection which had been subsequently reassigned.

This issue could occur as soon as the conn is released (this can happen in a number of places e.g. after Send or an Append error), and it potentially returns to the pool for use in another go routine. Subsequent releases could then occur e.g., the user calls Abort mainly but also Send would do it. The result is the connection being closed in the release function while another batch or query potentially used it.

This release includes a guard to prevent release from being called more than once on a batch. It assumes that batches are not thread-safe - they aren't (only connections are).

v2.4.2

24 Nov 10:28
7bc9573
Compare
Choose a tag to compare

Bug Fixes

  • Don't panic on Send() on batch after invalid Append - #830
  • Fix JSON issue with nil if column order is inconsisent - #824

v2.4.1

22 Nov 10:30
eeff0f4
Compare
Choose a tag to compare

Bug Fixes

  • Patch release to fix "Regression - escape character was not considered when comparing column names" - #828

v2.4.0

21 Nov 09:40
Compare
Choose a tag to compare

New Features

  1. Support for Nullables in Tuples - #821 #817
  2. Use headers for auth and not url if SSL #811
  3. Support additional headers - #811
  4. Support int64 for DateTime #807
  5. Support inserting Enums as int8/int16/int #802
  6. Print error if unsupported server #792
  7. Allow block buffer size to tuned for performance - see BlockBufferSize - #776
  8. Support custom datetime in Scan - #767
  9. Support insertion of an orderedmap - #763

Bug Fixes

  1. Decompress errors over HTTP - #792
  2. Use timezone vs timeZone so we work on older versions - #781
  3. Ensure only columns specified in INSERT are required in batch - #79
  4. Respect order of columns in insert for batch - #790
  5. Handle double pointers for Nullable columns when batch inserting - #77
  6. Use nil for LowCardinality(Nullable(X)) - #768

Breaking Changes

  1. Align timezone handling with spec - #766, specifically:
    1. if parsing strings for datetime, datetime64 or dates we assume the locale is Local (i.e. the client) if not specified in the string.
    2. The server (or column tz) is used for datetime and datetime64 rendering. For date/date32, these have no tz info in the server. For now, they will be rendered as UTC - consistent with the clickhouse-client
    3. Addresses bind when no location is set

v2.3.0

22 Aug 15:03
78ecf43
Compare
Choose a tag to compare
  • Support for uuid types via Scanner/Stringer #720
  • Fix copylock when use sync.Pool in clickhouse.Pool #724
  • Remove 128mb limit on block size for compression #721
  • Fix Insertion into quoted table #715

v2.3.0-beta.2

01 Aug 10:44
34665af
Compare
Choose a tag to compare

v2.3.0-beta.2

Notes

  • The release is beta as we only have support for Go 1.18. Will be promoted to GA on the release of Go 1.19.
  • Utilizes ch-go v0.47.2.

New Features

  • Support flush (experimental) on batch - allows multiple blocks per batch - #704
  • Respect ReadTimeout for native - #699
  • Support username/password passed as parameters in DSN - #691
  • Support []byte for string - #688
  • Support for sql.Null* types on equivalent ClickHouse types - #686
  • Support for typed maps and slices for tuples (assuming identical sub-column types) - #685
  • Default addresses for native and HTTP - localhost:9000 and localhost:8123, respectively. Handles nil Options. - #683
  • Brotli compression support (for http) - #671
  • Deflate compression support (for http) - #667
  • Gzip compression support (for http) - #664
  • Allow compression algorithm to be specified in DSN - #668
  • Support for Array Sets in parameter binding - #659

Bug Fixes

  • Fix handling of empty response over HTTP - #705
  • Handle empty maps - #694
  • Immutable options - #675
  • Prevent maps from being used with unnamed tuples - #665
  • Handle special chars in column names - #660

v2.3.0-beta.1

11 Jul 14:38
Compare
Choose a tag to compare
  • Adds http support via the std interface #622 #642
  • Low level encoding/decoding performed by ch-go (1.18 golang support only) #646
  • Zstd compression support #656
  • Support for HTTP compression #650
  • Support duration in int64 #635

This version only supports Golang 1.18+.

v2.2.0

27 Jun 15:07
4a65f55
Compare
Choose a tag to compare
  • Fix Uint128, UInt256 integer overflow #629
  • Support for JSON in std interface
  • Support for Nested flatten_nested=0
  • JSON support v2 - still experimental.
  • Named tuples can not be marshalled into a map

v2.1.0

17 Jun 09:13
65eec68
Compare
Choose a tag to compare
  • Experimental JSON Support - #590
  • Allow writing Tuple data as a pointer - #608

v2.0.15

07 Jun 15:59
a5c9ef7
Compare
Choose a tag to compare
  • Error if no address is provided #606
  • Fix Decimal on negatives #605
  • Allow ipv4 to be passed in ipv6 #604
  • Support maps in exec #603
  • Explicit support and testing
  • Failure over connections properly #591
  • Support string decoding into BinaryUnmarshaler #586
  • Support positional arguments #577
  • Support uint128 #568
  • Support string in datetime64 #571
  • Fix race condition on structMap cache #567