Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

JDBC: ResultSet.getObject(int, java.util.Map.class) fails for MAP column

Offen
#901 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

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
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Aktiv
Tech-Stack
cpp, java
Bereich
database

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

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus duckdb/duckdb-java

Alle Issues in duckdb/duckdb-java

Ähnliche Issues

Weitere Issues zu C++

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.