Skip to content

Commit 94613eb

Browse files
author
Paultagoras
committed
Adding additional tests and added geo support
1 parent da0387a commit 94613eb

File tree

3 files changed

+335
-1
lines changed

3 files changed

+335
-1
lines changed

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -205,9 +205,12 @@ public <T> T readValue(ClickHouseColumn column, Class<?> typeHint) throws IOExce
205205
return (T) readGeoPolygon();
206206
case MultiPolygon:
207207
return (T) readGeoMultiPolygon();
208+
case MultiLineString:
209+
return (T) readGeoPolygon();
208210
case Ring:
209211
return (T) readGeoRing();
210-
212+
case LineString:
213+
return (T) readGeoRing();
211214
case JSON: // experimental https://clickhouse.com/docs/en/sql-reference/data-types/newjson
212215
if (jsonAsString) {
213216
return (T) readString(input);

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,10 @@ public static void serializeData(OutputStream stream, Object value, ClickHouseCo
8383
value = value instanceof ClickHouseGeoRingValue ? ((ClickHouseGeoRingValue)value).getValue() : value;
8484
serializeArrayData(stream, value, GEO_RING_ARRAY);
8585
break;
86+
case LineString:
87+
value = value instanceof ClickHouseGeoRingValue ? ((ClickHouseGeoRingValue)value).getValue() : value;
88+
serializeArrayData(stream, value, GEO_LINE_ARRAY);
89+
break;
8690
case Polygon:
8791
value = value instanceof ClickHouseGeoPolygonValue ? ((ClickHouseGeoPolygonValue)value).getValue() : value;
8892
serializeArrayData(stream, value, GEO_POLYGON_ARRAY);
@@ -91,6 +95,10 @@ public static void serializeData(OutputStream stream, Object value, ClickHouseCo
9195
value = value instanceof ClickHouseGeoMultiPolygonValue ? ((ClickHouseGeoMultiPolygonValue)value).getValue() : value;
9296
serializeArrayData(stream, value, GEO_MULTI_POLYGON_ARRAY);
9397
break;
98+
case MultiLineString:
99+
value = value instanceof ClickHouseGeoMultiPolygonValue ? ((ClickHouseGeoMultiPolygonValue)value).getValue() : value;
100+
serializeArrayData(stream, value, GEO_MULTI_LINE_ARRAY);
101+
break;
94102
case Dynamic:
95103
ClickHouseColumn typeColumn = valueToColumnForDynamicType(value);
96104
writeDynamicTypeTag(stream, typeColumn);
@@ -678,7 +686,9 @@ private static void serializerVariant(OutputStream out, ClickHouseColumn column,
678686
}
679687

680688
private static final ClickHouseColumn GEO_POINT_TUPLE = ClickHouseColumn.parse("geopoint Tuple(Float64, Float64)").get(0);
689+
private static final ClickHouseColumn GEO_LINE_ARRAY = ClickHouseColumn.parse("geoline Array(Tuple(Float64, Float64))").get(0);
681690
private static final ClickHouseColumn GEO_RING_ARRAY = ClickHouseColumn.parse("georing Array(Tuple(Float64, Float64))").get(0);
691+
private static final ClickHouseColumn GEO_MULTI_LINE_ARRAY = ClickHouseColumn.parse("geomultiline Array(Array(Tuple(Float64, Float64)))").get(0);
682692
private static final ClickHouseColumn GEO_POLYGON_ARRAY = ClickHouseColumn.parse("geopolygin Array(Array(Tuple(Float64, Float64)))").get(0);
683693
private static final ClickHouseColumn GEO_MULTI_POLYGON_ARRAY = ClickHouseColumn.parse("geomultipolygin Array(Array(Array(Tuple(Float64, Float64))))").get(0);
684694

0 commit comments

Comments
 (0)