JDBC: ResultSet.getObject(int, java.util.Map.class) fails for MAP column
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 60/100
Rechercherichtung
Reproduce with a table that has a MAP(VARCHAR, INTEGER) column and call getObject(1, Map.class). Search the driver's getObject type-conversion path for the message "Can't convert value to interface" to find where the target class is checked against the SQL type. Done when getObject returns a Map with the expected entries and a test covers a MAP column.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Bug description
For a MAP column, DuckDB JDBC reports java.util.LinkedHashMap as the column class through ResultSetMetaData, but ResultSet.getObject(..., Map.class) fails with a conversion error.
Reproduction
Create a table containing a MAP column:
CREATE TABLE test_table (
map_col MAP(VARCHAR, INTEGER) NOT NULL
);
Execute a simple query:
SELECT map_col FROM test_table;
The ResultSetMetaData reports:
| Metadata | Value |
|---|---|
getColumnName() |
map_col |
getColumnTypeName() |
MAP(VARCHAR, INTEGER) |
getColumnType() |
1111 (java.sql.Types.OTHER) |
getColumnClassName() |
java.util.LinkedHashMap |
However, attempting to retrieve the value using the JDBC typed getter:
Map<?, ?> value = resultSet.getObject(1, Map.class);
fails with:
java.sql.SQLException: Can't convert value to interface java.util.Map, SQL type: MAP
Environment
- DuckDB JDBC: 1.5.6.0
- SQL type:
MAP(VARCHAR, INTEGER) - Java type reported by metadata:
java.util.LinkedHashMap - JDBC type:
java.sql.Types.OTHER(1111)
- Vorherrschende Sprache
- C++
- Sterne
- 127
- Forks
- 83
- Ø Merge
- 13 Std. 55 Min.
- Gemergte PRs (30 T.)
- 30
Entwicklungsumgebung
Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus duckdb/duckdb-java
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
duckdb/duckdb-java#832 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 3/5 Ein halber Tag Anfängerfreundlichkeit 55/100
duckdb/duckdb-java#900 ·
Maintainer antworten meist innerhalb von 1 Tag
-
JDBC: ResultSet.getObject(int, java.time.OffsetTime.class) fails for TIME_WITH_TIME_ZONE columnOffen
Schwierigkeit 3/5 Ein halber Tag Anfängerfreundlichkeit 55/100
duckdb/duckdb-java#899 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Native SIGSEGV in DuckDB JDBC when repeatedly executing queries with window functions and LIMIT 0Offen
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 48/100
duckdb/duckdb-java#871 · 4 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 45/100
duckdb/duckdb-java#872 ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in duckdb/duckdb-java
Ähnliche Issues
-
bug core p3
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
RunanywhereAI/runanywhere-sdks#1083 ·
Maintainer antworten meist innerhalb von 5 Tagen
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
FriendsofECCE/ECCE#336 · 1 Kommentar ·
-
Real literal with a 'd' exponent and a kind suffix (1.0d0_4) is accepted; the suffix is ignoredOffenerror not reported low priority semantics
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 66/100
bitcoin-core/gui-qml#1030 ·
Maintainer antworten meist innerhalb von 3 Tagen