- Update outdated README.md by @kokizzu in ClickHouse#1006
- Remove incorrect usage of KeepAlive in DialContext by @jkaflik in ClickHouse#1009
- @kokizzu made their first contribution in ClickHouse#1006
Full Changelog: https://github.com/ClickHouse/clickhouse-go/compare/v2.10.0...v2.10.1
- Support [16]byte/[]byte typed scan/append for IPv6 column by @crisismaple in ClickHouse#996
- Add custom dialer option to http protocol by @stephaniehingtgen in ClickHouse#998
- Tuple scan respects both value and pointer variable by @crisismaple in ClickHouse#971
- Auto close idle connections in native protocol in respect of ConnMaxLifetime option by @jkaflik in ClickHouse#999
- @stephaniehingtgen made their first contribution in ClickHouse#998
Full Changelog: https://github.com/ClickHouse/clickhouse-go/compare/v2.9.3...v2.10.0
- Pass http.ProxyFromEnvironment configuration to http.Transport by @slvrtrn in ClickHouse#987
- Use
any
instead ofinterface{}
by @candiduslynx in ClickHouse#984
- @candiduslynx made their first contribution in ClickHouse#984
- @slvrtrn made their first contribution in ClickHouse#987
Full Changelog: https://github.com/ClickHouse/clickhouse-go/compare/v2.9.1...v2.9.2
- Do not return hard error on unparsable version in HTTP proto by @hexchain in ClickHouse#975
- Return ErrBadConn in stdDriver Prepare if connection is broken by @czubocha in ClickHouse#977
- @czubocha made their first contribution in ClickHouse#977
- @hexchain made their first contribution in ClickHouse#975
Full Changelog: https://github.com/ClickHouse/clickhouse-go/compare/v2.9.0...v2.9.1
- External tables support for HTTP protocol by @crisismaple in ClickHouse#942
- Support driver.Valuer in String and FixedString columns by @jkaflik in ClickHouse#946
- Support boolean and pointer type parameter binding by @crisismaple in ClickHouse#963
- Support insert/scan IPv4 using UInt32/*UInt32 types by @crisismaple in ClickHouse#966
- Reset the pointer to the nullable field by @xiaochaoren1 in ClickHouse#964
- Enable to use ternary operator with named arguments by @crisismaple in ClickHouse#965
- chore: explain async insert in docs by @jkaflik in ClickHouse#969
- @xiaochaoren1 made their first contribution in ClickHouse#964
Full Changelog: https://github.com/ClickHouse/clickhouse-go/compare/v2.8.3...v2.9.0
- Revert: Expire idle connections no longer acquired during lifetime #958 by @jkaflik
- Expire idle connections no longer acquired during lifetime #945 by @jkaflik
- Fix idle connection check for TLS connections #951 by @jkaflik & @alekar
- Support customized "url path" in http connection #938 by @crisismaple
- Allow Auth.Database option to be empty #926 by @v4run
- Bump github.com/stretchr/testify from 1.8.1 to 1.8.2 #933
- fix: small typo in the text of an error #936 by @lspgn
- Improved bug template #916 by @mshustov
- fix: fix connect.compression's format verb #924 by @mind1949
- Add extra padding for strings shorter than FixedColumn length #910 by @jkaflik
- Bump github.com/andybalholm/brotli from 1.0.4 to 1.0.5 #911
- Bump github.com/paulmach/orb from 0.8.0 to 0.9.0 #912
- Bump golang.org/x/net from 0.0.0-20220722155237-a158d28d115b to 0.7.0 #928
- Fix array parameter formatting in binding mechanism #921 by @genzgd
- Fixed concurrency issue in stdConnOpener #918 by @jkaflik
- Fixed
lib/binary/string_safe.go
for non 64bit arch #914 by @atoulme
- Fix decimal encoding with non-standard exponential representation #909 by @vogrelord
- Add extra padding for strings shorter than FixedColumn length #910 by @jkaflik
- Remove Yandex ClickHouse image from Makefile #895 by @alexey-milovidov
- Remove duplicate of error handling #898 by @Astemirdum
- Bump github.com/ClickHouse/ch-go from 0.51.2 to 0.52.1 #901
- Do not reuse expired connections (
ConnMaxLifetime
) #892 by @iamluc - Extend default dial timeout value to 30s #893 by @jkaflik
- Compression name fixed in sendQuery log #884 by @fredngr
- Client info specification implementation #876 by @jkaflik
- Better handling for broken connection errors in the std interface #879 by @n-oden
- Document way to provide table or database identifier with query parameters #875 by @jkaflik
- Bump github.com/ClickHouse/ch-go from 0.51.0 to 0.51.2 #881
- Flag connection as closed on broken pipe #871 by @n-oden
- Buffered compression column by column for a native protocol. Introduces the
MaxCompressionBuffer
option - max size (bytes) of compression buffer during column-by-column compression (default 10MiB) #808 by @gingerwizard and @jkaflik - Support custom types that implement
sql.Scanner
interface (e.g.type customString string
) #850 by @DarkDrim - Append query options to the context instead of overwriting #860 by @aaron276h
- Query parameters support #854 by @jkaflik
- Expose
DialStrategy
function to the user for custom connection routing. #855 by @jkaflik
- Close connection on
Cancel
. This is to make sure context timed out/canceled connection is not reused further #764 by @gingerwizard - Fully parse
secure
andskip_verify
in DSN query parameters. #862 by @n-oden
- Added tests covering read-only user queries #837 by @jkaflik
- Agreed on a batch append fail semantics #853 by @jkaflik
- 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).
- Don't panic on
Send()
on batch after invalidAppend
. #830 - Fix JSON issue with
nil
if column order is inconsisent. #824
- Patch release to fix "Regression - escape character was not considered when comparing column names". #828
- Support for Nullables in Tuples. #821 #817
- Use headers for auth and not url if SSL. #811
- Support additional headers. #811
- Support int64 for DateTime. #807
- Support inserting Enums as int8/int16/int. #802
- Print error if unsupported server. #792
- Allow block buffer size to tuned for performance - see
BlockBufferSize
. #776 - Support custom datetime in Scan. #767
- Support insertion of an orderedmap. #763
- Decompress errors over HTTP. #792
- Use
timezone
vstimeZone
so we work on older versions. #781 - Ensure only columns specified in INSERT are required in batch. #790
- Respect order of columns in insert for batch. #790
- Handle double pointers for Nullable columns when batch inserting. #774
- Use nil for
LowCardinality(Nullable(X))
. #768
- Align timezone handling with spec. #776, specifically:
- If parsing strings for datetime, datetime64 or dates we assume the locale is Local (i.e. the client) if not specified in the string.
- 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
- Addresses bind when no location is set