Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

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

Aperta
#901 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
60/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
cpp, java
Ambito
database

Direzione di ricerca

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.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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)
Lingua principale
C++
Stelle
127
Fork
83
Merge medio
13h 55m
PR unite (30g)
30

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di duckdb/duckdb-java

Tutte le issue di duckdb/duckdb-java

Issue simili

Altre issue su C++

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.