Wrong WKB produced by jdbc driver when reading geometry type
- Vorherrschende Sprache
- C++
- Sterne
- 127
- Forks
- 80
- Ø Merge
- 13 Std. 49 Min.
- Gemergte PRs (30 T.)
- 48
Beschreibung
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.
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Rechercherichtung
Reproduziere das Java-JDBC-Beispiel im Issue und vergleiche die zurückgegebenen Bytes mit st_ashexwkb und der st_asbinary-Ausgabe von PostgreSQL. Verfolge, ob das ungültige WKB vom JDBC-Treiber oder von DuckDB erzeugt wird, und bestätige anschließend, dass die zurückgegebenen Geometrie-Bytes der gültigen Punktdarstellung entsprechen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- java, sql
- Bereich
- database
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100