dbeaver/dbeaver · info · DBCException
Editing of geo data is not yet supported
Error message
Editing of geo data is not yet supported
What it means
Thrown unconditionally by ClickhouseGeometryValueHandler.bindParameter whenever the editor attempts to write/bind a geo value. Geo data editing is intentionally unsupported, so any INSERT/UPDATE parameter binding for a geo column hits this guard rather than attempting an unsupported conversion.
Source
Thrown at plugins/org.jkiss.dbeaver.ext.clickhouse/src/org/jkiss/dbeaver/ext/clickhouse/model/data/ClickhouseGeometryValueHandler.java:101
@Override
protected Object fetchColumnValue(
@NotNull DBCSession session,
@NotNull JDBCResultSet resultSet,
@NotNull DBSTypedObject type,
int index
) throws DBCException, SQLException {
return getValueFromObject(session, type, resultSet.getObject(index), false, false);
}
@Override
protected void bindParameter(
@NotNull JDBCSession session,
@NotNull JDBCPreparedStatement statement,
@NotNull DBSTypedObject paramType,
int paramIndex,
Object value
) throws DBCException {
throw new DBCException("Editing of geo data is not yet supported", null, session.getExecutionContext());
}
@NotNull
@Override
public Class<?> getValueObjectType(@NotNull DBSTypedObject attribute) {
return DBGeometry.class;
}
@NotNull
private static Point createPoint(@NotNull GeometryFactory factory, @NotNull double[] object) {
return factory.createPoint(new Coordinate(object[0], object[1]));
}
@NotNull
private static LinearRing createRing(@NotNull GeometryFactory factory, @NotNull double[][] object) {
var coordinates = Stream.concat(Arrays.stream(object), Arrays.stream(object).limit(1))
.map(point -> new Coordinate(point[0], point[1]))
.toArray(Coordinate[]::new);View on GitHub (pinned to 1e5ee1042b)
Solutions
- Do not edit geo columns through the DBeaver data editor — write geo values via raw SQL using ClickHouse's textual geo literals instead.
- For INSERTs, cast the literal text (e.g. '(10.0,20.0)') directly in the SQL rather than binding a parameter.
- Watch / upvote the upstream feature request for geo editing support.
- Hide geo columns from the editable view if accidental edits are common.
Defensive patterns
Strategy: validation
Validate before calling
// Disable editing for geo columns before bindParameter is reached
if (ClickhouseGeometryValueHandler.isGeometryType(col.getTypeName())) {
setColumnEditable(col, false);
} Try / catch
try {
handler.bindParameter(session, stmt, paramType, idx, value);
} catch (DBCException e) {
if (e.getMessage().contains("not yet supported")) {
log.info("Geo edit blocked; use raw SQL with a text literal instead");
}
throw e;
} Prevention
- Do not edit geo columns in the data editor.
- Write geo values via raw SQL text literals.
- Mark geo columns read-only in the editor UI.
When it happens
Trigger: A user triggers an edit (inline edit, INSERT/UPDATE generation, parameter bind) on a ClickHouse geo column (point/ring/linestring/polygon/...). bindParameter is invoked and immediately throws — there is no code path that succeeds.
Common situations: User tries to inline-edit a Point/Polygon cell in the DBeaver data editor; a generated INSERT includes a geo column; a parameterized statement binds a geo value. This is a design limitation, not an environmental fault.
Related errors
- Unexpected geo type: {type.getTypeName()}
- Key is read-only
- Project import is not supported in distributed workspaces
- Error parsing geometry value from binary
- Unsupported geometry value: {}
AI-assisted analysis of dbeaver/dbeaver@1e5ee1042b (2026-08-13).
Data as JSON: /api/errors/8954647dcedd9971.
Report an issue: GitHub.