duckdb / duckdb/duckdb-java

Wrong WKB produced by jdbc driver when reading geometry type

Abierto
#486 7 comentarios 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
C++
Estrellas
127
Forks
80
Merge medio
13 h 49 min
PR fusionados (30 d)
48

Descripción

Try this:

```java
try (Statement s = connection.createStatement()) {
s.executeUpdate("install spatial");
s.executeUpdate("load spatial");

try (ResultSet rs = s.executeQuery("select cast('point (1 1)' as geometry)")) {
rs.next();
println(HexFormat.of().formatHex(rs.getBytes(1)));
}
}
```

This prints:

```
00000000000000000000000001000000000000000000f03f000000000000f03f
```

Which is an invalid WKB representation of `point(1 1)`. The correct representation is:

```
0101000000000000000000f03f000000000000f03f
```

This can be validated with this query:

```sql
select st_ashexwkb(cast ('POINT(1 1)' as geometry));
```

Or also with PostgreSQL:

```sql
select encode(st_asbinary(cast('point (1 1)' as geometry)), 'hex')`
```

I'm not sure if this is a duckdb_jdbc problem or a duckdb problem. Feel free to move the issue if it's not a JDBC problem.

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Línea de trabajo

Reproduce el ejemplo de Java JDBC del issue y compara los bytes devueltos con st_ashexwkb y la salida de st_asbinary de PostgreSQL. Rastrea si el WKB no válido lo produce el controlador JDBC o DuckDB y, después, confirma que los bytes de geometría devueltos coinciden con la representación válida del punto.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
java, sql
Área
database
Tipo de issue
Error
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.