|
48 | 48 |
|
49 | 49 | - **[client-v2]** The public `ClickHouseBinaryFormatWriter` interface gained two methods, `setString(String, byte[])` and `setString(int, byte[])`, for writing raw `String`/`FixedString` bytes. Code that only *uses* the interface is unaffected, but any third party that *implements* `ClickHouseBinaryFormatWriter` directly is source- and binary-incompatible until it adds these methods (recompiling against the new version is required; otherwise an `AbstractMethodError` can occur at runtime). |
50 | 50 |
|
| 51 | +- **[client-v2]** HTTP `503 Service Unavailable` responses are now surfaced as a connection-style failure ( |
| 52 | + `java.net.ConnectException`) and are retried by default. Previously a `503` was treated as a server error ( |
| 53 | + `ServerException`) and fell under the `ServerRetryable` fault cause. It has been moved to the `ConnectTimeout` fault |
| 54 | + cause category so that connectivity/availability failures are handled uniformly with other connection errors. Callers |
| 55 | + that specifically excluded `ServerRetryable` to avoid retrying `503` should now adjust their |
| 56 | + `client_retry_on_failures` configuration to exclude `ConnectTimeout` instead. |
| 57 | + |
| 58 | +- **[client-v2]** Unexpected/unknown HTTP status codes (those the client cannot interpret as a ClickHouse response) now |
| 59 | + throw a `ClientException` instead of a `ServerException`. Since the client cannot meaningfully handle these responses, |
| 60 | + they are reported as a client-side error rather than being attributed to the server. |
| 61 | + |
51 | 62 | ### New Features |
52 | 63 |
|
53 | 64 | - **[jdbc-v2, client-v2]** Implemented SSL modes configuration. Now it is possible to set `ssl_mode` to `DISABLED`, |
|
97 | 108 | to be returned in their native form regardless of the user-supplied map. Existing maps keyed only by JDBC `SQLType` |
98 | 109 | names continue to work unchanged. (https://github.com/ClickHouse/clickhouse-java/pull/2865) |
99 | 110 |
|
100 | | - - **[jdbc-v2]** Added support of custom mapping for JDBC types. Mainly used in cases when big integers should be |
| 111 | +- **[jdbc-v2]** Added support of custom mapping for JDBC types. Mainly used in cases when big integers should be |
101 | 112 | presented as string. Use `DriverProperties.JDBC_TYPE_MAPPINGS` (`jdbc_type_mappings`) and set needed type mapping |
102 | 113 | as `key=value[,]` list (For example, `Int32=Long,UInt64=String`). Deprecation notice: V1 property `typeMappings` is |
103 | 114 | supported but will be removed. Please migrate to the new property. |
|
115 | 126 | expected to carry large/binary strings. On the JDBC side, `ResultSet#getBinaryStream(int)` and |
116 | 127 | `ResultSet#getBinaryStream(String)` are now implemented (previously unsupported) and, together with `getBytes(...)`, |
117 | 128 | return the raw column bytes. |
| 129 | + |
| 130 | +- **[client-v2]** Added `Client#cancelTransportRequest(String queryId)` to cancel an in-flight request that has not yet |
| 131 | + received a response from the server, identified by the query id supplied in the operation settings. This aborts the |
| 132 | + request on the client side (cancels the underlying IO operation) but does **not** issue a `KILL QUERY` on the server, |
| 133 | + so a query that already started executing may continue to run server-side. It is recommended to use operation timeout |
| 134 | + settings where possible; this API is intended for explicitly aborting a request from the client. |
118 | 135 |
|
119 | 136 | ### Improvements |
120 | 137 |
|
|
0 commit comments