{"record":{"id":"8954647dcedd9971","repo":"dbeaver/dbeaver","slug":"editing-of-geo-data-is-not-yet-supported","errorCode":null,"errorMessage":"Editing of geo data is not yet supported","messagePattern":"Editing of geo data is not yet supported","errorType":"exception","errorClass":"DBCException","httpStatus":null,"severity":"info","filePath":"plugins/org.jkiss.dbeaver.ext.clickhouse/src/org/jkiss/dbeaver/ext/clickhouse/model/data/ClickhouseGeometryValueHandler.java","lineNumber":101,"sourceCode":"    @Override\n    protected Object fetchColumnValue(\n        @NotNull DBCSession session,\n        @NotNull JDBCResultSet resultSet,\n        @NotNull DBSTypedObject type,\n        int index\n    ) throws DBCException, SQLException {\n        return getValueFromObject(session, type, resultSet.getObject(index), false, false);\n    }\n\n    @Override\n    protected void bindParameter(\n        @NotNull JDBCSession session,\n        @NotNull JDBCPreparedStatement statement,\n        @NotNull DBSTypedObject paramType,\n        int paramIndex,\n        Object value\n    ) throws DBCException {\n        throw new DBCException(\"Editing of geo data is not yet supported\", null, session.getExecutionContext());\n    }\n\n    @NotNull\n    @Override\n    public Class<?> getValueObjectType(@NotNull DBSTypedObject attribute) {\n        return DBGeometry.class;\n    }\n\n    @NotNull\n    private static Point createPoint(@NotNull GeometryFactory factory, @NotNull double[] object) {\n        return factory.createPoint(new Coordinate(object[0], object[1]));\n    }\n\n    @NotNull\n    private static LinearRing createRing(@NotNull GeometryFactory factory, @NotNull double[][] object) {\n        var coordinates = Stream.concat(Arrays.stream(object), Arrays.stream(object).limit(1))\n            .map(point -> new Coordinate(point[0], point[1]))\n            .toArray(Coordinate[]::new);","sourceCodeStart":83,"sourceCodeEnd":119,"githubUrl":"https://github.com/dbeaver/dbeaver/blob/1e5ee1042bc61661368942aece126f3e67049955/plugins/org.jkiss.dbeaver.ext.clickhouse/src/org/jkiss/dbeaver/ext/clickhouse/model/data/ClickhouseGeometryValueHandler.java#L83-L119","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","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."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"// Disable editing for geo columns before bindParameter is reached\nif (ClickhouseGeometryValueHandler.isGeometryType(col.getTypeName())) {\n    setColumnEditable(col, false);\n}","typeGuard":null,"tryCatchPattern":"try {\n    handler.bindParameter(session, stmt, paramType, idx, value);\n} catch (DBCException e) {\n    if (e.getMessage().contains(\"not yet supported\")) {\n        log.info(\"Geo edit blocked; use raw SQL with a text literal instead\");\n    }\n    throw e;\n}","preventionTips":["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."],"tags":["clickhouse","geo","geometry","editing","unsupported","parameter-binding"],"backgroundTag":null,"analyzedSha":"1e5ee1042bc61661368942aece126f3e67049955","analyzedAt":"2026-08-13T23:31:13.467Z","schemaVersion":2},"datasetVersion":"2026-08-14T00:17:13.853Z"}