diff --git a/clickhouse-jdbc/pom.xml b/clickhouse-jdbc/pom.xml
index f1d1b1dad..acdbbf5f9 100644
--- a/clickhouse-jdbc/pom.xml
+++ b/clickhouse-jdbc/pom.xml
@@ -238,7 +238,7 @@
org.projectlombok
lombok
- 1.18.32
+ 1.18.38
org.openjdk.jmh
diff --git a/client-v2/pom.xml b/client-v2/pom.xml
index 7e64b8a8a..88e55688a 100644
--- a/client-v2/pom.xml
+++ b/client-v2/pom.xml
@@ -153,7 +153,7 @@
org.projectlombok
lombok
- 1.18.32
+ 1.18.38
8
diff --git a/examples/client-v2/pom.xml b/examples/client-v2/pom.xml
index ee4b2396c..b4e326bbb 100644
--- a/examples/client-v2/pom.xml
+++ b/examples/client-v2/pom.xml
@@ -103,7 +103,7 @@
org.projectlombok
lombok
- 1.18.32
+ 1.18.38
provided
@@ -148,7 +148,7 @@
org.projectlombok
lombok
- 1.18.32
+ 1.18.38
diff --git a/performance/pom.xml b/performance/pom.xml
index 9e070a582..ffa9f0492 100644
--- a/performance/pom.xml
+++ b/performance/pom.xml
@@ -107,7 +107,7 @@
org.projectlombok
lombok
- 1.18.32
+ 1.18.38
org.openjdk.jmh
diff --git a/performance/src/main/java/com/clickhouse/benchmark/clients/QueryClient.java b/performance/src/main/java/com/clickhouse/benchmark/clients/QueryClient.java
index fe3029371..5ebb92222 100644
--- a/performance/src/main/java/com/clickhouse/benchmark/clients/QueryClient.java
+++ b/performance/src/main/java/com/clickhouse/benchmark/clients/QueryClient.java
@@ -4,8 +4,10 @@
import com.clickhouse.client.api.data_formats.ClickHouseBinaryFormatReader;
import com.clickhouse.client.api.query.QueryResponse;
import com.clickhouse.client.config.ClickHouseClientOption;
+import com.clickhouse.data.ClickHouseColumn;
import com.clickhouse.data.ClickHouseFormat;
import com.clickhouse.data.ClickHouseRecord;
+import com.clickhouse.data.ClickHouseValue;
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.Scope;
import org.openjdk.jmh.annotations.State;
@@ -13,6 +15,8 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.util.List;
+
import static com.clickhouse.benchmark.TestEnvironment.getServer;
@State(Scope.Benchmark)
@@ -45,7 +49,7 @@ public void queryV2(DataState dataState, Blackhole blackhole) {
ClickHouseBinaryFormatReader reader = clientV2.newBinaryFormatReader(response);
while (reader.next() != null) {//Compiler optimization avoidance
for (int i = 1; i <= dataState.dataSet.getSchema().getColumns().size(); i++) {
- blackhole.consume(reader.readValue(1));
+ blackhole.consume(reader.readValue(i));
}
}
}
@@ -53,4 +57,47 @@ public void queryV2(DataState dataState, Blackhole blackhole) {
LOGGER.error("Error: ", e);
}
}
+
+ @Benchmark
+ public void queryV1WithTypes(DataState dataState, Blackhole blackhole) throws Exception {
+ try (ClickHouseResponse response = clientV1.read(getServer())
+ .query(BenchmarkBase.getSelectQuery(dataState.tableNameFilled))
+ .format(ClickHouseFormat.RowBinaryWithNamesAndTypes)
+ .option(ClickHouseClientOption.ASYNC, false)
+ .executeAndWait()) {
+ List columns = dataState.dataSet.getSchema().getColumns();
+ for (ClickHouseRecord record: response.records()) {//Compiler optimization avoidance
+ for (int i = 0; i < columns.size(); i++) {
+ ClickHouseValue value = record.getValue(i);
+ ClickHouseColumn column = columns.get(i);
+ switch (column.getDataType()) {
+ case Int64: blackhole.consume(value.asLong()); break;
+ case Float64: blackhole.consume(value.asDouble()); break;
+ case String: blackhole.consume(value.asString()); break;
+ default: throw new IllegalStateException();
+ }
+ }
+ }
+ }
+ }
+
+ @Benchmark
+ public void queryV2WithTypes(DataState dataState, Blackhole blackhole) throws Exception {
+ try(QueryResponse response = clientV2.query(BenchmarkBase.getSelectQuery(dataState.tableNameFilled)).get()) {
+ ClickHouseBinaryFormatReader reader = clientV2.newBinaryFormatReader(response);
+ List columns = dataState.dataSet.getSchema().getColumns();
+ while (reader.next() != null) {//Compiler optimization avoidance
+ for (int i = 1; i <= columns.size(); i++) {
+ blackhole.consume(reader.readValue(i));
+ ClickHouseColumn column = columns.get(i - 1);
+ switch (column.getDataType()) {
+ case Int64: blackhole.consume(reader.getLong(i)); break;
+ case Float64: blackhole.consume(reader.getDouble(i)); break;
+ case String: blackhole.consume(reader.getString(i)); break;
+ default: throw new IllegalStateException();
+ }
+ }
+ }
+ }
+ }
}