The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
1.4.1 Fix DateTime with TimeZone
1 year ago
## What's Changed
* FIx DateTime with TimeZone by @planetMDX in https://github.com/patrick-zippenfenig/ClickHouseNIO/pull/9
**Full Changelog**: https://github.com/patrick-zippenfenig/ClickHouseNIO/compare/1.4.0...1.4.1
1.4.0 Additional datatypes
1 year ago
## What's Changed
* Support for more ClickHouse-Types by @planetMDX in https://github.com/patrick-zippenfenig/ClickHouseNIO/pull/8
## New Contributors
* @planetMDX made their first contribution in https://github.com/patrick-zippenfenig/ClickHouseNIO/pull/8
**Full Changelog**: https://github.com/patrick-zippenfenig/ClickHouseNIO/compare/1.3.0...1.4.0
1.3.0 Nullable
2 years ago
This feature release adds support for Nullable datatype
1.2.0 Timeouts
3 years ago
This release adds timeouts to make ClickHouseNIO more reliable in production environments.
While running ClickHouseNIO we discovered various edge cases where a connection could get stuck. These events are infrequent (once every 2 weeks), but result in annoying deadlocks.
Because networks unreliable by nature, ClickHouseNIO uses different timeouts to prevent potential deadlocks while waiting for a server response. All timeouts can be controlled via `ClickHouseConfiguration` and use default values as shown below:
```swift
let config = try ClickHouseConfiguration(
hostname: "localhost",
...,
connectTimeout: .seconds(10),
readTimeout: .seconds(90),
queryTimeout: .seconds(600))
,
```
All timeouts will close the connection. Different timeouts trigger different exceptions:
- `connectTimeout` will throw `NIO.ChannelError.connectTimeout(TimeAmount)` if the connection to the ClickHouse server cannot be establised after this period of time.
- `readTimeout`: If a query is running, and the ClickHouseNIO client does not receive any network package, the conncection is closed and throws `ClickHouseError.readTimeout`. This can happen, if the network connection is interrupted while waiting for a response. Usually, even while waiting for a query result, packages are exchanged very frequently.
- `queryTimeout` is the total time after a query will be terminated and the connection is closed. Because ClickHouseNIO is also capable of queueing queries, this includes the time in the queue as well. On a very busy server, a long waiting time starts to close connections. If a connection is closed, all queries in the queue will return a failed future with the exception `ClickHouseError.queryTimeout`.
Timeouts can also be specified for a single query with `connection.command(sql: sql, timeout: .seconds(30))`, but keep in mind that this also includes queue time.
1.1.2 Fix insert + select statements
3 years ago
Fixed a bug with the combination of insert & select statements like `INSERT INTO db.table SELECT * FROM db2.table2` which triggered an assertion on non production builds
1.1.1 UUID coding bugfix
3 years ago
ixed:
- Bug #2 ClickHouse uses little endian encoding for UUIDs
1.1.0 TLS encryption support
3 years ago
TLS encrypted connections are now supported!
For TLS encrypted connections to the ClickHouse server, a `tlsConfiguration` attribute can be set in the configuration. Usually port 9440 is used. `certificateVerification: .none` disables certificate verification for self signed certificates. TLS connections use BoringSSL with [SwiftNIO SSL](https://github.com/apple/swift-nio-ssl).
```swift
let tls = TLSConfiguration.forClient(certificateVerification: .none)
let config = try ClickHouseConfiguration(
hostname: "localhost",
port: 9440,
user: "default",
password: "admin",
database: "default",
tlsConfiguration: tls)
```
1.0.1 ClickHouse server 20.x bugfix
3 years ago
Fix a small compatibility issue with ClickHouse server 20.x. For DROP TABLE statements a progress message is now send which was unexpected for this library.
See https://github.com/patrick-zippenfenig/ClickHouseNIO/commit/789deba0e5e06530ec86c6d2bb7c33f201b5e950
1.0.0 First release
3 years ago
First version declared stable. Before it was in use at meteoblue for a while.