clickhouse-java v0.10.0-rc2
clickhouse-java v0.10.0-rc2
Additionally to v0.10.0-rc1
Breaking Changes
-
[client-v2] The public
ClickHouseBinaryFormatWriterinterface gained two methods,setString(String, byte[])andsetString(int, byte[]), for writing rawString/FixedStringbytes. Code that only uses the interface is unaffected, but any third party that implementsClickHouseBinaryFormatWriterdirectly is source- and binary-incompatible until it adds these methods (recompiling against the new version is required; otherwise anAbstractMethodErrorcan occur at runtime). -
[client-v2] HTTP
503 Service Unavailableresponses are now surfaced as a connection-style failure (java.net.ConnectException) and are retried by default. Previously a503was treated as a server error (ServerException) and fell under theServerRetryablefault cause. It has been moved to theConnectTimeoutfault cause category so that connectivity/availability failures are handled uniformly with other connection errors. Callers that specifically excludedServerRetryableto avoid retrying503should now adjust theirclient_retry_on_failuresconfiguration to excludeConnectTimeoutinstead. -
[client-v2] Unexpected/unknown HTTP status codes (those the client cannot interpret as a ClickHouse response) now throw a
ClientExceptioninstead of aServerException. Since the client cannot meaningfully handle these responses, they are reported as a client-side error rather than being attributed to the server.
New Features
-
[client-v2, jdbc-v2] Added opt-in binary string support through the
binary_string_supportconfiguration property (orClient.Builder#binaryStringSupport(boolean)), disabled by default. The setting is resolved per operation from the merged client and query settings, so it can be overridden for a single request via thebinary_string_supportoperation option (e.g.QuerySettings#setOption(ClientConfigProperties.BINARY_STRING_SUPPORT.getKey(), true)) independently of the client-level default. When enabled, top-levelStringandFixedStringcolumns are read into aStringValuethat preserves the raw bytes instead of decoding them into aString, allowing non-UTF-8/binary content to round-trip byte-for-byte.StringValueexposes the bytes viatoByteArray()/asByteBuffer()and lazily decodes aStringviaasString()(UTF-8 by default, or a caller-suppliedCharset). Values nested inside containers (Array,Map,Tuple,Nested,Variant) continue to be read asString, since those types are not expected to carry large/binary strings. On the JDBC side,ResultSet#getBinaryStream(int)andResultSet#getBinaryStream(String)are now implemented (previously unsupported) and, together withgetBytes(...), return the raw column bytes. -
[client-v2] Added
Client#cancelTransportRequest(String queryId)to cancel an in-flight request that has not yet received a response from the server, identified by the query id supplied in the operation settings. This aborts the request on the client side (cancels the underlying IO operation) but does not issue aKILL QUERYon the server, so a query that already started executing may continue to run server-side. It is recommended to use operation timeout settings where possible; this API is intended for explicitly aborting a request from the client.
Source ClickHouse/clickhouse-java ·
v0.10.0-rc2· 2026-07-22 · upstream release
Mirrored verbatim for indexing. All rights belong to the upstream project.
Release notes are published by the upstream project and mirrored here for indexing. All rights belong to their authors.