Skip to content

Commit e9b9197

Browse files
authored
Merge pull request #1344 from zhicwu/main
Fix deserialization issue of nested array in other nested types
2 parents 7c5ccbe + bf68187 commit e9b9197

12 files changed

+49
-23
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
### Bug Fixes
88
* NoClassDefFoundError with clickhouse-apache-http-client-jdbc. [#1319](https://github.com/ClickHouse/clickhouse-java/issues/1319)
9+
* Nested array in tuple array is incorrectly deserialized. [#1324](https://github.com/ClickHouse/clickhouse-java/issues/1324)
910
* client certificate password exposure in exception. [#1331](https://github.com/ClickHouse/clickhouse-java/issues/1331)
1011

1112
## 0.4.5, 2023-04-25

clickhouse-data/src/main/java/com/clickhouse/data/ClickHouseDeserializer.java

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,19 +12,6 @@
1212
*/
1313
@FunctionalInterface
1414
public interface ClickHouseDeserializer {
15-
static final class ResetValueDeserializer implements ClickHouseDeserializer {
16-
private final ClickHouseDeserializer deserializer;
17-
18-
public ResetValueDeserializer(ClickHouseDeserializer deserializer) {
19-
this.deserializer = deserializer;
20-
}
21-
22-
@Override
23-
public ClickHouseValue deserialize(ClickHouseValue ref, ClickHouseInputStream input) throws IOException {
24-
return deserializer.deserialize(ref.resetToDefault(), input);
25-
}
26-
}
27-
2815
static class CompositeDeserializer implements ClickHouseDeserializer {
2916
protected final ClickHouseDeserializer[] deserializers;
3017

clickhouse-data/src/main/java/com/clickhouse/data/format/ClickHouseRowBinaryProcessor.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -483,8 +483,7 @@ public ClickHouseDeserializer getDeserializer(ClickHouseDataConfig config, Click
483483
}
484484
} else {
485485
deserializer = new BinaryDataProcessor.ArrayDeserializer(config, column, true,
486-
new ClickHouseDeserializer.ResetValueDeserializer(
487-
getDeserializer(config, column.getNestedColumns().get(0))));
486+
getDeserializer(config, column.getNestedColumns().get(0)));
488487
}
489488
break;
490489
}

clickhouse-data/src/main/java/com/clickhouse/data/value/ClickHouseArrayValue.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -573,7 +573,7 @@ public ClickHouseArraySequence allocate(int length, Class<?> clazz, int level) {
573573
? ClickHouseValues.createPrimitiveArray(clazz, 0, level)
574574
: ClickHouseValues.createObjectArray(clazz, 0, level)));
575575
}
576-
} else if (length() != length) {
576+
} else {
577577
set((T[]) (clazz.isPrimitive()
578578
? ClickHouseValues.createPrimitiveArray(clazz, length, level)
579579
: ClickHouseValues.createObjectArray(clazz, length, level)));

clickhouse-data/src/main/java/com/clickhouse/data/value/array/ClickHouseBoolArrayValue.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -519,7 +519,7 @@ public int hashCode() {
519519
public ClickHouseArraySequence allocate(int length, Class<?> clazz, int level) {
520520
if (length < 1) {
521521
resetToDefault();
522-
} else if (length() != length) {
522+
} else {
523523
set(new boolean[length]);
524524
}
525525
return this;

clickhouse-data/src/main/java/com/clickhouse/data/value/array/ClickHouseByteArrayValue.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -605,7 +605,7 @@ public int hashCode() {
605605
public ClickHouseArraySequence allocate(int length, Class<?> clazz, int level) {
606606
if (length < 1) {
607607
resetToDefault();
608-
} else if (length() != length) {
608+
} else {
609609
set(new byte[length]);
610610
}
611611
return this;

clickhouse-data/src/main/java/com/clickhouse/data/value/array/ClickHouseDoubleArrayValue.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -497,7 +497,7 @@ public int hashCode() {
497497
public ClickHouseArraySequence allocate(int length, Class<?> clazz, int level) {
498498
if (length < 1) {
499499
resetToDefault();
500-
} else if (length() != length) {
500+
} else {
501501
set(new double[length]);
502502
}
503503
return this;

clickhouse-data/src/main/java/com/clickhouse/data/value/array/ClickHouseFloatArrayValue.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -497,7 +497,7 @@ public int hashCode() {
497497
public ClickHouseArraySequence allocate(int length, Class<?> clazz, int level) {
498498
if (length < 1) {
499499
resetToDefault();
500-
} else if (length() != length) {
500+
} else {
501501
set(new float[length]);
502502
}
503503
return this;

clickhouse-data/src/main/java/com/clickhouse/data/value/array/ClickHouseIntArrayValue.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -583,7 +583,7 @@ public int hashCode() {
583583
public ClickHouseArraySequence allocate(int length, Class<?> clazz, int level) {
584584
if (length < 1) {
585585
resetToDefault();
586-
} else if (length() != length) {
586+
} else {
587587
set(new int[length]);
588588
}
589589
return this;

clickhouse-data/src/main/java/com/clickhouse/data/value/array/ClickHouseLongArrayValue.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -595,7 +595,7 @@ public int hashCode() {
595595
public ClickHouseArraySequence allocate(int length, Class<?> clazz, int level) {
596596
if (length < 1) {
597597
resetToDefault();
598-
} else if (length() != length) {
598+
} else {
599599
set(new long[length]);
600600
}
601601
return this;

0 commit comments

Comments
 (0)