Follow-up to #2577. At the time it was noted that ClickHouse has no MultiPoint type:
ClickHouse doesn't support GeometryCollection, MultiPoint. Here is link for supported types https://clickhouse.com/docs/sql-reference/data-types/geo
There is a Ring what may be a MultiPoint.
Originally posted by @chernser in #2577
That has since changed on the server side. MultiPoint is now a first-class geo type documented on that same page, defined as Array(Point), and Geometry is documented as a common type for all the geo types listed there.
Note on versions: this is a heads-up, not a regression report. MultiPoint is not in 26.7 or earlier — I'm testing against a master/head build (26.8.1.146), so it should land in the next release. Filing now so client support can be in place before then.
The client already ships Geometry support (#2815) for CH 25.11+, where Geometry became Variant(Point, Ring, LineString, MultiLineString, Polygon, MultiPolygon). MultiPoint appears to be the one geo type left out of both the concrete-type path and that variant list.
GeometryCollection remains correctly out of scope — Geometry is the ClickHouse equivalent.
Reproduction
CREATE TABLE geo_multipoint (mp MultiPoint) ENGINE = Memory();
INSERT INTO geo_multipoint VALUES([(0, 0), (10, 0), (10, 10), (0, 10)]);
SELECT mp, toTypeName(mp) FROM geo_multipoint;
-- via WKT, and through the unified type
SELECT readWKT('MULTIPOINT(0 0, 10 0, 10 10)') AS mp, toTypeName(mp);
CREATE TABLE geo_any (g Geometry) ENGINE = Memory();
INSERT INTO geo_any SELECT readWKT('MULTIPOINT(0 0, 10 0, 10 10)');
SELECT g, toTypeName(g) FROM geo_any;
Expected: MultiPoint is recognised as a geo column type and returned in the same geometry-aware representation the other geo types got after #2581, and it round-trips on insert.
Actual: reading a MultiPoint column via jdbc-v2 gives:
Caused by: java.lang.IllegalArgumentException: Unsupported data type: MultiPoint
Proposed changes
Environment
- clickhouse-java: 0.9.8
- Driver: jdbc-v2 / client-v2
- ClickHouse server: 26.8.1.146 (master/head build — not a stable release)
Follow-up to #2577. At the time it was noted that ClickHouse has no
MultiPointtype:That has since changed on the server side.
MultiPointis now a first-class geo type documented on that same page, defined asArray(Point), andGeometryis documented as a common type for all the geo types listed there.Note on versions: this is a heads-up, not a regression report.
MultiPointis not in 26.7 or earlier — I'm testing against a master/head build (26.8.1.146), so it should land in the next release. Filing now so client support can be in place before then.The client already ships
Geometrysupport (#2815) for CH 25.11+, whereGeometrybecameVariant(Point, Ring, LineString, MultiLineString, Polygon, MultiPolygon).MultiPointappears to be the one geo type left out of both the concrete-type path and that variant list.GeometryCollectionremains correctly out of scope —Geometryis the ClickHouse equivalent.Reproduction
Expected:
MultiPointis recognised as a geo column type and returned in the same geometry-aware representation the other geo types got after #2581, and it round-trips on insert.Actual: reading a
MultiPointcolumn via jdbc-v2 gives:Proposed changes
MultiPointto the ClickHouse data-type enum / type parser.MultiPointto the same geometry representation used forRing/LineString(both are alsoArray(Point)).MultiPoint, including viareadWKT/ WKB round-trip.getColumnType/getColumnTypeName/getColumnClassNameforMultiPointcolumns, so v2 doesn't NPE the way the types in #2711 did.Geometryvariant handling if the server includesMultiPointin it.Environment