Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

[client-v2, jdbc-v2] Add MultiPoint type support

Fechada
#3,048 1 comentário 0 reações 1 responsável Ver no GitHub

Mantenedores costumam responder em até 1 dia

@polyglotAI-bot já está trabalhando nisso.

Desde 13/8/2026.

Avaliação

Esta issue ainda não foi avaliada.

Descrição

area:data-type enhancement

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

  • Add MultiPoint to the ClickHouse data-type enum / type parser.
  • Read path: map MultiPoint to the same geometry representation used for Ring / LineString (both are also Array(Point)).
  • Write path: support inserting MultiPoint, including via readWKT / WKB round-trip.
  • JDBC metadata: getColumnType / getColumnTypeName / getColumnClassName for MultiPoint columns, so v2 doesn't NPE the way the types in #2711 did.
  • Extend Geometry variant handling if the server includes MultiPoint in it.

Environment

  • clickhouse-java: 0.9.8
  • Driver: jdbc-v2 / client-v2
  • ClickHouse server: 26.8.1.146 (master/head build — not a stable release)
Linguagem predominante
Java
Estrelas
1.6k
Forks
640
Merge médio
1d 12h
PRs com merge (30d)
39

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de ClickHouse/clickhouse-java

Todas as issues de ClickHouse/clickhouse-java

Issues semelhantes

Mais issues de Java

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.