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

JDBC: ResultSet.getObject(int, java.time.OffsetTime.class) fails for TIME_WITH_TIME_ZONE column

Offen
#899 1 Kommentar 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
Ein halber Tag
Anfängerfreundlichkeit
55/100
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Aktiv
Tech-Stack
java, sql
Bereich
databases

Rechercherichtung

Start by reproducing the failure with the time_tz_col TIME WITH TIME ZONE table from the issue and a ResultSet.getObject(1, OffsetTime.class) call. Then find where the driver converts a TIME_WITH_TIME_ZONE value for a requested Java class, and check why OffsetTime is reported by the metadata but rejected by the typed getter. Done means the call returns the stored time with its offset, and a regression test covers it.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

Bug description

For a TIME WITH TIME ZONE column, DuckDB JDBC reports java.time.OffsetTime as the column class through ResultSetMetaData, but ResultSet.getObject(..., OffsetTime.class) fails with a conversion error.

Reproduction

Create a table containing a TIME WITH TIME ZONE column:

CREATE TABLE test_table (
    time_tz_col TIME WITH TIME ZONE NOT NULL
);

Execute a simple query:

SELECT time_tz_col FROM test_table;

The ResultSetMetaData correctly reports:

Metadata Value
getColumnName() time_tz_col
getColumnTypeName() TIME WITH TIME ZONE
getColumnType() 2013 (java.sql.Types.TIME_WITH_TIMEZONE)
getColumnClassName() java.time.OffsetTime

These metadata values appear correct and indicate that the JDBC driver maps TIME WITH TIME ZONE to java.time.OffsetTime.

However, attempting to retrieve the value using the corresponding JDBC typed getter fails:

OffsetTime value = resultSet.getObject(1, OffsetTime.class);

Results in:

java.sql.SQLException: Can't convert value to class java.time.OffsetTime, SQL type: TIME_WITH_TIME_ZONE
Environment
  • DuckDB JDBC: 1.5.6.0
  • SQL type: TIME WITH TIME ZONE
  • Java type reported by metadata: java.time.OffsetTime
  • JDBC type: java.sql.Types.TIME_WITH_TIMEZONE (2013)
Vorherrschende Sprache
C++
Sterne
127
Forks
83
Ø Merge
14 Std. 35 Min.
Gemergte PRs (30 T.)
45

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.