Releases: ClickHouse/clickhouse-java
Releases · ClickHouse/clickhouse-java
Release v0.9.0
Important Changes
- [repo] Artifacts
clickhouse-jdbc:http
,clickhouse-jdbc:shaded-all
,clickhouse-jdbc:shaded
are not published anymore. Useclickhouse-jdbc:all
instead. It contains all required shaded libraries exceptorg.slf4j:slf4j-api
because it may not be shaded. - [repo] Artifacts
jdbc-v2:all
,jdbc-v2:http
,jdbc-v2:shaded
are not published anymore becausejdbc-v2
is part ofclickhouse-jdbc:all
.
Bug Fixes
- [jdbc-v2] Fixed parsing SQL with alias in
FROM
clause when alias name is a keyword (#2427) - [client-v2] Fixed the issue when parameters are not passed if timeout is set. (#2436, #2096)
- [jdbc-v2] Fixed parser logging issue. Now parser uses same logger as the driver. (#2428)
- [jdbc-v2] Fixed parsing
CREATE USER
statements. Now parser recognises it correctly. (#2398) - [jdbc-v2] Fixed parsing different CTEs statements. (#2431, #2391, #2443)
- [jdbc-v2] Fixed parsing interval values. (#2429)
- [repo] Fixed running unit/integration tests in the CI. (#2430)
- [jdbc-v2] Fixed parsing parameters when function is in back quotes. (#2422)
- [jdbc-v2] Fixed
ResultSet#findColumn
always returning0
. (#2375)
Misc
- [client-v2] Move all default values to
ClientConfigurationProperties
enum. (#2269)
Docs
- [client-v2] Updated documentation of the configuration parameters and how to set server settings and custom HTTP headers.
Release v0.8.6
Improvements
- [jdbc-v2] Now using Antlr4 to parse SQL statements to get meta information about it.
Invalid SQL still possible to execute if logic able to get all required information. (#2351) - [jdbc-v2] Now possible to use
RowBinaryWriter
if enabled by propertycom.clickhouse.jdbc.internal.DriverProperties.BETA_ROW_BINARY_WRITER
.
This works well for batches. Single statements may get no benefits. (#2316)
Bug Fixes
- [jdbc-v2] Fixed parsing prepared statement arguments. (#2348)
- [jdbc-v2] Fixed parsing role name when it contains
-
. (#2325) - [jdbc-v2] Fixed failure when
INSERT
doesn't containVALUES
. (#2283) - [jdbc-v2] Fixed parsing
INSERT
statement whenVALUES
is in lower case. (#2354) - [client-v2] Fixed NPE when async operation is request while client was built without an executor.
In this case default JVM executor will be used. (#2355) - [client-v2, jdbc-v2] Fixed conversion of IP addresses. When IPv4 stored as IPv6 it is correctly converted
toInet6Address
. Similar problem fixed for JDBC. (#2342) - [jdbc-v2] Fixed changing DB schema (DB name) on connection when
USE
statement executed. (#2137) - [client-v2] Fixed serializing POJO with primitive
boolean
fields. (#2248)
Release v0.8.5
Improvements
- [jdbc-v2] Added debug output for final SQL. (#2249)
Bug Fixes
- [client-v2] Fixed creating TableSchema for materialized views. It resolves issues with POJO serde. (#2118,
#2025) - [client-v2, jdbc-v2] Fixed handling
Nullable
insideSimpleAggregateFunction
columns. (#2110) - [jdbc-v2] Fixed problem with server info request. It is fetched now when timezone of the server is set. (#2191)
- [jdbc-v2] Fixed null response for
getIndexInfo()
. Empty Result Set is returned. (#2286) - [jdbc-v2] Fixed wrong
false
response inDataBaseMetadata.supportsBatchUpdates()
. Returnstrue
now. Please note that
no update is supported for result sets. - [jdbc-v2] Fixed handling UUID data type in PreparedStatement. (#2327)
- [jdbc-v2] Fixed unsigned integer type matching.
UInt8
,UInt16
,UInt32
,UInt64
,UInt128
,UInt256
are presented as
short
,int
,long
,BigInteger
,BigInteger
,BigInteger
correspondingly. SQLType for them isOTHER
because
JDBC (as well as Java) doesn't provide good mapping for unsigned integers. (#2333) - [jdbc-v2] Disallowed to call method from
Statement
interface onPreparedStatement
instance according to the JDBC spec. (#2339)
Release v0.8.4
Examples
- [jdbc-v2] - JPA example added. (#2301)
Bug Fixes
- [jdbc-v2] Added implementation of
ResultSetMetaData.getColumnClassName()
to return information
about class name of the value stored in a result. (#2112) - [client-v2] Fixed NPE when
Client.queryAll
used withINSERT
statement because internallycolumns
variable
was accessed and was null. (#2150) - [jdbc-v2] Fixed NPE when
ssl=true
was passed via an connection URL. (#2206) - [jdbc-v2] Fixed sending correct driver version. Problem occurs because context classloader had no access to
a resource file with versions. (#2245) - [jdbc-v2] Fixed incorrect flag for Array values when reading result set. (#2266)
- [jdbc-v2] Fixed parsing parameters in PreparedStatement for cases when '?' is within quotes or similar. (#2290)
- [jdbc-v2] Added implementation for
com.clickhouse.jdbc.PreparedStatementImpl#getMetaData
.
Complete metadata is returned only after statement execution. Partial metadata is returned before execution
of the statement. (#2292) - [jdbc-v2] Fixed
clearParameters
inPreparedStatementImpl
to correctly reset parameters array. (#2299) - [jdbc-v2] Fixed logging. (#2303)
Release v0.8.3
Improvements
- [client-v2] Support for native LZ4 compression (#2274)
Bug Fixes
- [jdbc-v2] Fixed several issues with reading database metadata in JDBC driver. (#2282)
- [jdbc-v2] Fixed settings client name in JDBC. (#2233)
- [client-v2] Fixed reading data from columns defined as
Nullable(FixedString(N))
. (#2218) - [jdbc-v2] Fixed SQL parser failure to parse SQL statement with comments (#2217)
- [client-v2] Fixed issue with excessive logging (#2201)
- [jdbc-v2] Fixed handling IP addresses (#2140)
- [jdbc] - Fixed missing LZ4 dependency in shaded package (#2275)
Release v0.8.2
Bug Fixes
[jdbc-v2] - Fixed a bug affecting JDBC insert performance. (#2165)
[client-v1] - Removed unnecessary object creation and added executor pool configuration (#2164)
Miscellaneous
[client-v1] - Deprecated the old client, though it is still available. We've not yet set a date for its removal, this more serves as a head's up.
Release v0.8.1
New Features
- [client-v2] - Added support for Variant Data Type for RowBinary format. Can be read into a POJO or using a reader.
Writing is supported only for POJO. (#2130) - [client-v2] - Added support for Dynamic Data Type for RowBinary format. Can be read into a POJO or using a reader.
Writing is supported only for POJO. (#2130) - [client-v2] - Added support for JSON Data Type for RowBinary format. Can be read into a POJO or using a reader.
Writing is supported only for POJO. (#2130) - [client-v2] - Added support for
ZonedDateTime
in POJO serde. (#2117) - [client-v2] - Added suport for micrometer metrics for Apache HTTP client connection pool. It is now possible to get metrics registered
in micrometer registry by callingcom.clickhouse.client.api.Client.Builder.registerClientMetrics(registry, groupName)
. (#1901)
Bug Fixes
- [client-v2] - Fixed
getTableSchema(tableName, databaseName)
now it doesn't ignore database name. (#2139) - [client-v2] - Fixed
returnGeneratedValues
to not throw an exception. Keep in mind that ClickHouse doesn't support
returning anything in response forINSERT
statements. This change was done just to make client usable with certain frameworks. (#2121) - [jdbc-v2] - Fixed changing database by
USE
statement. (#2137) - [jbdc-v2] - Fixed
ResultSetMetadata.getColumnClassName()
to return null instead of throwing exception. This change is done only
to allow certain frameworks work with the client. (#2112) - [jdbc-v2] - Fixed using statements with
WITH
in JDBC v2. Previously was causing NPE. (#2132) - [repo] - Fixed failing Test in Windows when attempting to locate files with reserved characters in the file path. (#2114)
Release v0.8.0
Highlights
- We've updated
ClickHouseDriver
andClickHouseDataSource
to default to using the new (jdbc-v2
) implementation of the JDBC driver. Settingclickhouse.jdbc.v1=true
will revert this change.
JDBC Changes
jdbc-v2
- Removed support for Transaction Support. Early versions of the driver only simulated transaction support, which could have unexpected results.jdbc-v2
- Removed support for Response Column Renaming.ResultSet
was mutable - for efficiency sake they're now read-onlyjdbc-v2
- Removed support for Multi-Statement SQL. Multi-statement support was only simulated, now it strictly follows 1:1jdbc-v2
- Removed support for Named Parameters. Not part of the JDBC specjdbc-v2
- Removed support for Stream-basedPreparedStatement
. Early version of the driver allowed for non-jdbc usage ofPreparedStatement
- if you desire such options, we recommend looking at client-v2.
New Features
- [client-v2, jdbc-v2] - Added support for Bearer token authentication like JWT. Now it is possible to specify encoded token while
creating a client and change while runtime usingcom.clickhouse.client.api.Client.updateBearerToken
. (#1834, #1988) - [client-v2] - Exposed connection pool metrics through Micrometer. It allows to monitor internal connection pool for number of active and leased connections. (#1901)
Bug Fixes
- [client-v2] - Fixed construction of
User-Agent
header. Prev. implementation usesclass.getPackage().getImplementationVersion()
what returns
incorrect title and version when library is shaded. New implementation uses build time information from resource files generated while build. (#2007) - [client-v2] - Fixed multiple issues with handling connectivity disruption. Socket timeout is unlimited by default. Added retry on timeout. Added more information to exception message.
Please read the issue for more details. (#1994) - [client-v2] - Client doesn't close provided executor anymore letting application close it instead. (#1956)
- [client-v2] - Removed unnecessary initialization to make startup time shorter. (#2032)
Release v0.7.2
New Components
jdbc-v2
- pre-release version of upcomingclickhouse-jdbc
replacement. Supports basic functionality, works only withclient-v2
.
More information will be available after its release
Highlights
- [repo] Added shaded packages with requires a set of dependencies. Use
all
classified forclient-v2
full package.
Useshaded-all
for old jdbc driver. - [client-v2] New Data Writer API was added. It allows to gain a control over writing data to low-level output stream.
This API makes it possible to write compressed data directly to server. Seecom.clickhouse.client.api.Client#insert(java.lang.String, com.clickhouse.client.api.DataStreamWriter, com.clickhouse.data.ClickHouseFormat, com.clickhouse.client.api.insert.InsertSettings)
(#2034)
New Features
- [client-v2] Added ability to specify client name. It means
User-Agent
will be filled with proper information (#1948) - [client-v2] Implemented statement parameters for
queryAll
andqueryRecords
API methods. (#1979) - [client-v2] Implemented string to number conversion. (#2014)
- [client-v1] Added basic auth support for proxies. Now you can specify username/password when connecting via a proxy that requires it with HttpURLConnection and Apache HttpClient.
- [client-v2] Enum columns can be read as string and number. Previously only as number. Now number matching string constant is returned when get as string. (#2028)
- [client-v2] Client will load some server context (timezone, user) right after build. (#2029)
Bug Fixes
- [jdbc] Fixed default value for
result_overflow_mode
setting. (#1932) - [client-v2] Fixed reading float/double values. Previously was prevented by incorrect overflow check. (#1954)
- [client-v2] Fixed issue with enabling client compression. Previously flag was ignore in some cases. (#1958)
- [client-v2] Fixed issue with reading
Array(UInt64)
because of incorrect class used to create internal array. (#1990) - [client-v2] Fixed ClickHouseLZ4OutputStream issue of sending empty frame when no data left in uncompressed buffer. (#1993)
- [client-v2] Fix handling
ConnectTimeoutException
in retry and wrapping logic. (#2015)
Release v0.7.1-patch1
Bug Fixes
- [JDBC] Fixed
java.lang.NoClassDefFoundError: com/clickhouse/client/internal/apache/hc/core5/http2/HttpVersionPolicy
(#1912) - [client-v2] Fixed multiple issues with error message handling. (#1906)
- [client-v2] Fixed primitive types conversion. Now client correctly handles numbers to boolean and vice-versa. (#1908)