Releases: ClickHouse/clickhouse-java
Release v0.3.0
This is a feature release with enhancements and breaking changes. It's NOT recommended to upgrade if you feel comfortable with 0.2.x. If your work relies on non-JDBC APIs, you may want to wait until we're done with the refactoring in 0.4.0.
-
BREAKING CHANGES
- dropped JDK 7 support
- removed Guava dependency - please use long/BigInteger to deal with UInt64 instead of UnsignedLong
-
NEW FEATURES
-
JDBC 4.2 support
-
add connection setting client_name for load-balancing and troubleshooting
-
add writeBytes & writeUUIDArray and remove UnsignedLong related methods in ClickHouseRowBinaryStream
-
support more data types: IPv4, IPv6, Int128, UInt128, Int256, UInt256, Decimal256, DateTime*, and Map
-
support ORC/Parquet streaming
-
support read/write Bitmap from/into AggregateFunction(groupBitmap, UInt[8-64]) column
Examples...
// use JDBC interface - NOT recommended before 0.3.1 try (PreparedStatement statement = connection.prepareStatement("insert into my_bitmap_table values(..., ?, ...)")) { ... // RoaringBitmap bitmap = RoaringBitmap.bitmapOf(1,2,3,...); s.setObject(index++, ClickHouseBitmap.wrap(bitmap, ClickHouseDataType.UInt32)); ... // the actual SQL in 0.3.0 will be something like, which is also why batch insertion does not work... // insert into my_bitmap_table values(..., bitmapBuild([toUInt32(1),toUInt32(3),toUInt32(3),...]) ...) s.execute(); } // use extended API - recommended in 0.3.0 try (ClickHouseStatement statement = connection.createStatement()) { statement.sendRowBinaryStream("insert into my_bitmap_table", new ClickHouseStreamCallback() { public void writeTo(ClickHouseRowBinaryStream stream) throws IOException { ... // RoaringBitmap bitmap = RoaringBitmap.bitmapOf(1,2,3,...); // In addition to RoaringBitmap, you can pass: // ImmutableRoaringBitmap, MutableRoaringBitmap and even Roaring64NavigableMap stream.writeBitmap(ClickHouseBitmap.wrap(bitmap, ClickHouseDataType.UInt32)); ... } }); }
-
-
BUG FIXES
- fix error when using ClickHouseCompression.none against 19.16
- fix NegativeArraySizeException when dealing with large array
- fix datetime/date display issue caused by timezone differences(between client and column/server)
- throw SQLException instead of RuntimeException when instantiating ClickHouseConnectionImpl
-
MISC
- 19.14-lts and 20.3-lts are no longer supported so they're removed from regression list
Release v0.2.6
This is again a patch release with below changes:
- Add new feature for sending compressed files/streams
- Introduce an experimental SQL parser to fix parsing related issues - set connection setting
use_new_parser
to false to disable - Restore
String[] getColumnNames()
method for backward compatibility - Retry idempotent operation up to 3 times when server closed connection - set connection setting
maxRetries
to zero to disable - Return inserted rows(not accurate) when query parameter
send_progress_in_http_headers
is set to true - Set socket timeout in ClickHouseConnectionImpl.isValid()
- Upgrade to lz4-java and improve performance of LZ4 stream
- Use HTTP Basic Auth for credentials instead of query parameters
- Use static version instead of property-based revision in pom.xml
Release v0.2.5
This is a patch release with the following changes:
- bump dependencies and include lz4 in shaded jar
- new API: ClickHouseRowBinaryStream.writeUInt64Array(UnsignedLong[])
- support column comments
- support explain queries
- fix keep-alive timeout issue by reusing validated connection
- fix ResultSet.findColumn(String) issue
- fix the issue of not being able to use NULL constant in PreparedStatement
- fix toLowerCase issue for Turkish
Minor bugfix
Fix FORMAT clause append for queries, ending with comments.
0.2.3
Adding support for Decimals in RowBinary protocol
Release 0.2.2 (bugfix)
- close certificate keystore
- fix for Boolean data type
release_0.2
- New API for sending streams of data
- Old extension of ClickHouseStatement deprecated