Skip to content

Commit a171344

Browse files
committed
Add getSchema() to GenericRecord
1 parent b022645 commit a171344

File tree

4 files changed

+33
-22
lines changed

4 files changed

+33
-22
lines changed

client-v2/src/main/java/com/clickhouse/client/api/data_formats/internal/AbstractBinaryFormatReader.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,7 @@
3232
import java.time.ZoneOffset;
3333
import java.time.ZonedDateTime;
3434
import java.time.temporal.ChronoUnit;
35-
import java.util.Collections;
36-
import java.util.HashMap;
37-
import java.util.List;
38-
import java.util.Map;
39-
import java.util.TimeZone;
40-
import java.util.UUID;
35+
import java.util.*;
4136
import java.util.concurrent.ConcurrentHashMap;
4237
import java.util.concurrent.atomic.AtomicBoolean;
4338
import java.util.function.Function;

client-v2/src/main/java/com/clickhouse/client/api/data_formats/internal/BinaryReaderBackedRecord.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.clickhouse.client.api.data_formats.internal;
22

33
import com.clickhouse.client.api.data_formats.ClickHouseBinaryFormatReader;
4+
import com.clickhouse.client.api.metadata.TableSchema;
45
import com.clickhouse.client.api.query.GenericRecord;
56
import com.clickhouse.data.value.ClickHouseBitmap;
67
import com.clickhouse.data.value.ClickHouseGeoMultiPolygonValue;
@@ -377,4 +378,9 @@ public ClickHouseBitmap getClickHouseBitmap(String colName) {
377378
public ClickHouseBitmap getClickHouseBitmap(int index) {
378379
return reader.readValue(index);
379380
}
381+
382+
@Override
383+
public TableSchema getSchema() {
384+
return reader.getSchema();
385+
}
380386
}

client-v2/src/main/java/com/clickhouse/client/api/data_formats/internal/MapBackedRecord.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import com.clickhouse.client.api.query.GenericRecord;
66
import com.clickhouse.client.api.query.NullValueException;
77
import com.clickhouse.data.ClickHouseColumn;
8-
import com.clickhouse.data.value.ClickHouseArrayValue;
98
import com.clickhouse.data.value.ClickHouseBitmap;
109
import com.clickhouse.data.value.ClickHouseGeoMultiPolygonValue;
1110
import com.clickhouse.data.value.ClickHouseGeoPointValue;
@@ -23,17 +22,14 @@
2322
import java.time.ZoneOffset;
2423
import java.time.ZonedDateTime;
2524
import java.time.temporal.ChronoUnit;
26-
import java.util.HashMap;
27-
import java.util.List;
28-
import java.util.Map;
29-
import java.util.UUID;
25+
import java.util.*;
3026
import java.util.function.Function;
3127

3228
public class MapBackedRecord implements GenericRecord {
3329

3430
private final Map<String, Object> record;
3531

36-
private TableSchema schema;
32+
private final TableSchema schema;
3733

3834
private Map[] columnConverters;
3935

@@ -513,6 +509,11 @@ public ClickHouseBitmap getClickHouseBitmap(int index) {
513509
return readValue(index);
514510
}
515511

512+
@Override
513+
public TableSchema getSchema() {
514+
return this.schema;
515+
}
516+
516517
@Override
517518
public Object getObject(String colName) {
518519
return readValue(colName);

client-v2/src/main/java/com/clickhouse/client/api/query/GenericRecord.java

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,18 @@
11
package com.clickhouse.client.api.query;
22

3-
import com.clickhouse.data.value.ClickHouseBitmap;
4-
import com.clickhouse.data.value.ClickHouseGeoMultiPolygonValue;
5-
import com.clickhouse.data.value.ClickHouseGeoPointValue;
6-
import com.clickhouse.data.value.ClickHouseGeoPolygonValue;
7-
import com.clickhouse.data.value.ClickHouseGeoRingValue;
3+
import com.clickhouse.client.api.metadata.TableSchema;
4+
import com.clickhouse.data.ClickHouseColumn;
5+
import com.clickhouse.data.value.*;
86

97
import java.math.BigDecimal;
108
import java.math.BigInteger;
119
import java.net.Inet4Address;
1210
import java.net.Inet6Address;
13-
import java.time.Duration;
14-
import java.time.Instant;
15-
import java.time.LocalDate;
16-
import java.time.LocalDateTime;
17-
import java.time.ZonedDateTime;
11+
import java.time.*;
1812
import java.util.List;
13+
import java.util.Map;
1914
import java.util.UUID;
15+
import java.util.stream.Collectors;
2016

2117
public interface GenericRecord {
2218

@@ -500,4 +496,17 @@ public interface GenericRecord {
500496
ClickHouseBitmap getClickHouseBitmap(String colName);
501497

502498
ClickHouseBitmap getClickHouseBitmap(int index);
499+
500+
TableSchema getSchema();
501+
502+
/**
503+
* Returns all values of this record in Map.
504+
*
505+
* @return a Map of column names and values.
506+
*/
507+
default Map<String, Object> getAll() {
508+
return this.getSchema().getColumns().stream().collect(Collectors.toMap(
509+
ClickHouseColumn::getColumnName,
510+
column -> this.getObject(column.getColumnName())));
511+
}
503512
}

0 commit comments

Comments
 (0)