Skip to content

Releases: ClickHouse/clickhouse-java

Release v0.9.0

12 Jun 03:24
27ccb8e
Compare
Choose a tag to compare

Important Changes

  • [repo] Artifacts clickhouse-jdbc:http, clickhouse-jdbc:shaded-all, clickhouse-jdbc:shaded are not published anymore. Use clickhouse-jdbc:all instead. It contains all required shaded libraries except org.slf4j:slf4j-api because it may not be shaded.
  • [repo] Artifacts jdbc-v2:all, jdbc-v2:http, jdbc-v2:shaded are not published anymore because jdbc-v2 is part of clickhouse-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 returning 0. (#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

16 May 19:04
2d305b7
Compare
Choose a tag to compare

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 property com.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 contain VALUES. (#2283)
  • [jdbc-v2] Fixed parsing INSERT statement when VALUES 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
    to Inet6Address. 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

26 Apr 01:05
547e352
Compare
Choose a tag to compare

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 inside SimpleAggregateFunction 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 in DataBaseMetadata.supportsBatchUpdates(). Returns true 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 is OTHER because
    JDBC (as well as Java) doesn't provide good mapping for unsigned integers. (#2333)
  • [jdbc-v2] Disallowed to call method from Statement interface on PreparedStatement instance according to the JDBC spec. (#2339)

Release v0.8.4

19 Apr 02:06
63be1b9
Compare
Choose a tag to compare

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 with INSERT statement because internally columns 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 in PreparedStatementImpl to correctly reset parameters array. (#2299)
  • [jdbc-v2] Fixed logging. (#2303)

Release v0.8.3

08 Apr 21:47
5758ec5
Compare
Choose a tag to compare

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

28 Feb 16:00
1414421
Compare
Choose a tag to compare

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

15 Feb 07:15
25af97d
Compare
Choose a tag to compare

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 calling com.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 for INSERT 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

24 Jan 04:01
Compare
Choose a tag to compare

Highlights

  • We've updated ClickHouseDriver and ClickHouseDataSource to default to using the new (jdbc-v2) implementation of the JDBC driver. Setting clickhouse.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-only
  • jdbc-v2 - Removed support for Multi-Statement SQL. Multi-statement support was only simulated, now it strictly follows 1:1
  • jdbc-v2 - Removed support for Named Parameters. Not part of the JDBC spec
  • jdbc-v2 - Removed support for Stream-based PreparedStatement. Early version of the driver allowed for non-jdbc usage of PreparedStatement - 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 using com.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 uses class.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

31 Dec 06:07
33b1fad
Compare
Choose a tag to compare

New Components

  • jdbc-v2 - pre-release version of upcoming clickhouse-jdbc replacement. Supports basic functionality, works only with client-v2.
    More information will be available after its release

Highlights

  • [repo] Added shaded packages with requires a set of dependencies. Use all classified for client-v2 full package.
    Use shaded-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. See com.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 and queryRecords 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

07 Nov 17:42
b704b95
Compare
Choose a tag to compare

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)