From 016fe95c3d287c1988b47850773f0d56b5d3813e Mon Sep 17 00:00:00 2001 From: Sergey Chernov Date: Tue, 26 Aug 2025 20:31:50 -0700 Subject: [PATCH 1/5] added antlr to shaded libraries --- clickhouse-jdbc/pom.xml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/clickhouse-jdbc/pom.xml b/clickhouse-jdbc/pom.xml index 2f6c5fd22..b75183420 100644 --- a/clickhouse-jdbc/pom.xml +++ b/clickhouse-jdbc/pom.xml @@ -419,7 +419,7 @@ net.jpountz - ${shade.base}.jpountz + ${shade.base}.net.jpountz org.roaringbitmap @@ -435,12 +435,17 @@ com.google - ${shade.base}.google + ${shade.base}.com.google org.apache - ${shade.base}.apache + ${shade.base}.org.apache + + + + org.antlr + ${shade.base}.org.antlr From 4ee121eae9622a827f7a7fad10de013376b37db7 Mon Sep 17 00:00:00 2001 From: Sergey Chernov Date: Wed, 27 Aug 2025 11:01:20 -0700 Subject: [PATCH 2/5] fixed Compression in performance that uses internal lz4 --- .../main/java/com/clickhouse/benchmark/clients/Compression.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/performance/src/main/java/com/clickhouse/benchmark/clients/Compression.java b/performance/src/main/java/com/clickhouse/benchmark/clients/Compression.java index f347adbc5..016724315 100644 --- a/performance/src/main/java/com/clickhouse/benchmark/clients/Compression.java +++ b/performance/src/main/java/com/clickhouse/benchmark/clients/Compression.java @@ -2,7 +2,7 @@ import com.clickhouse.benchmark.data.DataSet; import com.clickhouse.client.api.internal.ClickHouseLZ4OutputStream; -import com.clickhouse.client.internal.jpountz.lz4.LZ4Factory; +import com.clickhouse.client.internal.net.jpountz.lz4.LZ4Factory; import com.clickhouse.data.ClickHouseOutputStream; import com.clickhouse.data.stream.Lz4OutputStream; import org.openjdk.jmh.annotations.Benchmark; From 231d17365700abaad4a64812cc0bb9c69b156608 Mon Sep 17 00:00:00 2001 From: Sergey Chernov Date: Fri, 29 Aug 2025 14:32:30 -0700 Subject: [PATCH 3/5] fixed holdability check for DataGrip. Bumped version for http client --- client-v2/pom.xml | 1 - jdbc-v2/src/main/java/com/clickhouse/jdbc/ConnectionImpl.java | 4 ---- pom.xml | 2 +- 3 files changed, 1 insertion(+), 6 deletions(-) diff --git a/client-v2/pom.xml b/client-v2/pom.xml index ef1a1c1ba..2a8748287 100644 --- a/client-v2/pom.xml +++ b/client-v2/pom.xml @@ -17,7 +17,6 @@ https://github.com/ClickHouse/clickhouse-java/tree/main/client-v2 - 5.3.1 ${project.groupId}.shaded diff --git a/jdbc-v2/src/main/java/com/clickhouse/jdbc/ConnectionImpl.java b/jdbc-v2/src/main/java/com/clickhouse/jdbc/ConnectionImpl.java index 0b62b2411..5a8b073e0 100644 --- a/jdbc-v2/src/main/java/com/clickhouse/jdbc/ConnectionImpl.java +++ b/jdbc-v2/src/main/java/com/clickhouse/jdbc/ConnectionImpl.java @@ -369,10 +369,6 @@ private void checkResultSetFlags(int resultSetType, int resultSetConcurrency, in throw new SQLFeatureNotSupportedException("Cannot create statement with result set concurrency other then ResultSet.CONCUR_READ_ONLY", ExceptionUtils.SQL_STATE_FEATURE_NOT_SUPPORTED); } - if (resultSetHoldability != ResultSet.CLOSE_CURSORS_AT_COMMIT) { - throw new SQLFeatureNotSupportedException("Cannot create statement with result set holdability other then ResultSet.CLOSE_CURSORS_AT_COMMIT", - ExceptionUtils.SQL_STATE_FEATURE_NOT_SUPPORTED); - } } } diff --git a/pom.xml b/pom.xml index fad81405a..9c5ecf4f8 100644 --- a/pom.xml +++ b/pom.xml @@ -75,7 +75,7 @@ UTF-8 6.0.53 - 5.3.1 + 5.4.4 12.0.1 9.7 1.11.4 From 87b8204bbd3d45391d4da080df5fb630d4f909e2 Mon Sep 17 00:00:00 2001 From: Sergey Chernov Date: Fri, 29 Aug 2025 15:47:22 -0700 Subject: [PATCH 4/5] fixed tests --- .../src/test/java/com/clickhouse/client/query/QueryTests.java | 4 ++-- jdbc-v2/src/test/java/com/clickhouse/jdbc/ConnectionTest.java | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/client-v2/src/test/java/com/clickhouse/client/query/QueryTests.java b/client-v2/src/test/java/com/clickhouse/client/query/QueryTests.java index 31d6cbfee..a35746143 100644 --- a/client-v2/src/test/java/com/clickhouse/client/query/QueryTests.java +++ b/client-v2/src/test/java/com/clickhouse/client/query/QueryTests.java @@ -1947,14 +1947,14 @@ public void testReadingJSONValues() throws Exception { client.execute("INSERT INTO test_json_values VALUES ('{\"a\" : {\"b\" : 42}, \"c\" : [1, 2, 3]}')", commandSettings).get(1, TimeUnit.SECONDS); - QuerySettings settings = new QuerySettings().setFormat(ClickHouseFormat.CSV); + QuerySettings settings = new QuerySettings().setFormat(ClickHouseFormat.CSV).serverSetting("output_format_json_quote_64bit_integers", "1"); try (QueryResponse resp = client.query("SELECT json FROM test_json_values", settings).get(1, TimeUnit.SECONDS)) { BufferedReader reader = new BufferedReader(new InputStreamReader(resp.getInputStream())); Assert.assertEquals(StringEscapeUtils.unescapeCsv(reader.lines().findFirst().get()), "{\"a\":{\"b\":\"42\"},\"c\":[\"1\",\"2\",\"3\"]}"); } settings = new QuerySettings() - .serverSetting(ServerSettings.OUTPUT_FORMAT_BINARY_WRITE_JSON_AS_STRING, "1"); + .serverSetting(ServerSettings.OUTPUT_FORMAT_BINARY_WRITE_JSON_AS_STRING, "1").serverSetting("output_format_json_quote_64bit_integers", "1"); try (QueryResponse resp = client.query("SELECT json FROM test_json_values", settings).get(1, TimeUnit.SECONDS)) { ClickHouseBinaryFormatReader reader = client.newBinaryFormatReader(resp); Assert.assertNotNull(reader.next()); diff --git a/jdbc-v2/src/test/java/com/clickhouse/jdbc/ConnectionTest.java b/jdbc-v2/src/test/java/com/clickhouse/jdbc/ConnectionTest.java index 076418a3a..1d6808be0 100644 --- a/jdbc-v2/src/test/java/com/clickhouse/jdbc/ConnectionTest.java +++ b/jdbc-v2/src/test/java/com/clickhouse/jdbc/ConnectionTest.java @@ -99,13 +99,11 @@ public void testCreateUnsupportedStatements() throws Throwable { Assert.ThrowingRunnable[] createStatements = new Assert.ThrowingRunnable[]{ () -> conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY), () -> conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE), - () -> conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY, ResultSet.HOLD_CURSORS_OVER_COMMIT), () -> conn.prepareStatement("SELECT 1", Statement.RETURN_GENERATED_KEYS), () -> conn.prepareStatement("SELECT 1", new int[]{1}), () -> conn.prepareStatement("SELECT 1", new String[]{"1"}), () -> conn.prepareStatement("SELECT 1", ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE), () -> conn.prepareStatement("SELECT 1", ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY), - () -> conn.prepareStatement("SELECT 1", ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY, ResultSet.HOLD_CURSORS_OVER_COMMIT), () -> conn.prepareCall("SELECT 1"), () -> conn.prepareCall("SELECT 1", ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY), () -> conn.prepareCall("SELECT 1", ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY, ResultSet.HOLD_CURSORS_OVER_COMMIT), From 0a04501b7999f13089c06d768e5e3142a7e086dd Mon Sep 17 00:00:00 2001 From: Sergey Chernov Date: Fri, 29 Aug 2025 21:51:36 -0700 Subject: [PATCH 5/5] fix jdbc tests --- jdbc-v2/src/test/java/com/clickhouse/jdbc/DataTypeTests.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jdbc-v2/src/test/java/com/clickhouse/jdbc/DataTypeTests.java b/jdbc-v2/src/test/java/com/clickhouse/jdbc/DataTypeTests.java index f707ccc2f..bb958adb4 100644 --- a/jdbc-v2/src/test/java/com/clickhouse/jdbc/DataTypeTests.java +++ b/jdbc-v2/src/test/java/com/clickhouse/jdbc/DataTypeTests.java @@ -1404,7 +1404,7 @@ public void testJSONWritingAsString() throws SQLException { double key1 = rand.nextDouble(); int key2 = rand.nextInt(); final String json = "{\"key1\": \"" + key1 + "\", \"key2\": " + key2 + ", \"key3\": [1000, \"value3\", 400000]}"; - final String serverJson = "{\"key1\":\"" + key1 + "\",\"key2\":" + key2 + ",\"key3\":[\"1000\",\"value3\",\"400000\"]}"; + final String serverJson = "{\"key1\":\"" + key1 + "\",\"key2\":\"" + key2 + "\",\"key3\":[\"1000\",\"value3\",\"400000\"]}"; insertData(String.format("INSERT INTO test_json VALUES ( 1, '%s' )", json)); // Check the results @@ -1412,7 +1412,7 @@ public void testJSONWritingAsString() throws SQLException { props.setProperty( ClientConfigProperties.serverSetting(ServerSettings.OUTPUT_FORMAT_BINARY_WRITE_JSON_AS_STRING), "1"); - props.setProperty(ClientConfigProperties.serverSetting("output_format_json_quote_64bit_integers"), "0"); + props.setProperty(ClientConfigProperties.serverSetting("output_format_json_quote_64bit_integers"), "1"); try (Connection conn = getJdbcConnection(props)) { try (Statement stmt = conn.createStatement()) { try (ResultSet rs = stmt.executeQuery("SELECT * FROM test_json ORDER BY order")) {